tree-loop-distribution.c (enum partition_type): New.
[gcc.git] / gcc / ChangeLog
1 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2
3 * tree-loop-distribution.c (enum partition_type): New.
4 (struct partition): New field type.
5 (partition_merge_into): Add parameter. Update partition type.
6 (data_dep_in_cycle_p, update_type_for_merge): New functions.
7 (build_rdg_partition_for_vertex): Compute partition type.
8 (rdg_build_partitions): Dump partition type.
9 (distribute_loop): Update calls to partition_merge_into.
10
11 2017-07-05 Bin Cheng <bin.cheng@arm.com>
12
13 * tree-loop-distribution.c (struct ddr_hasher): New.
14 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
15 (ddrs_table): New.
16 (classify_partition): Call get_data_dependence.
17 (pg_add_dependence_edges): Ditto.
18 (distribute_loop): Release data dependence hash table.
19
20 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21
22 * tree-loop-distribution.c (ref_base_address): Delete.
23 (similar_memory_accesses): Rename ...
24 (share_memory_accesses): ... to this. Check if partitions access
25 the same memory reference.
26 (distribute_loop): Call share_memory_accesses.
27
28 2017-07-05 Bin Cheng <bin.cheng@arm.com>
29
30 * tree-loop-distribution.c (struct partition): New field recording
31 its data reference.
32 (partition_alloc, partition_free): Init and release data refs.
33 (partition_merge_into): Merge data refs.
34 (build_rdg_partition_for_vertex): Collect data refs for partition.
35 (pg_add_dependence_edges): Change parameters from vector to bitmap.
36 Update uses.
37 (distribute_loop): Remve data refs from vertice data of partition
38 graph.
39
40 2017-07-05 Bin Cheng <bin.cheng@arm.com>
41
42 * tree-loop-distribution.c (params.h): Include header file.
43 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
44 (datarefs_vec): New global var.
45 (create_rdg_vertices): Use datarefs_vec directly.
46 (free_rdg): Don't free data references.
47 (build_rdg): Update use. Don't free data references.
48 (distribute_loop): Compute global variable for data references.
49 Bail out if there are too many data references.
50
51 2017-07-05 Bin Cheng <bin.cheng@arm.com>
52
53 * tree-loop-distribution.c (loop_nest): New global var.
54 (build_rdg): Use loop directly, rather than loop nest.
55 (pg_add_dependence_edges): Remove loop nest parameter. Use global
56 variable directly.
57 (distribute_loop): Compute global variable loop nest. Update use.
58
59 2017-07-05 Bin Cheng <bin.cheng@arm.com>
60
61 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
62 (partition_merge_into): New parameter. Dump reason for fusion.
63 (distribute_loop): Update use of partition_merge_into.
64
65 2017-07-05 Bin Cheng <bin.cheng@arm.com>
66
67 * tree-loop-distribution.c (bb_top_order_index): New.
68 (bb_top_order_index_size, bb_top_order_cmp): New.
69 (stmts_from_loop): Use topological order.
70 (pass_loop_distribution::execute): Compute and release topological
71 order for basic blocks.
72
73 2017-07-05 Bin Cheng <bin.cheng@arm.com>
74
75 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
76 if no loops.
77
78 2017-07-05 Bin Cheng <bin.cheng@arm.com>
79
80 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
81 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
82 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
83 * internal-fn.def (LOOP_DIST_ALIAS): New.
84 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
85 (fold_loop_internal_call): ... this.
86 (vect_loop_dist_alias_call): New function.
87 (set_uid_loop_bbs): Call fold_loop_internal_call.
88 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
89 internal calls.
90
91 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
92
93 PR target/81300
94 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
95 Require dead FLAGS_REG at the beginning of a peephole.
96
97 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
98
99 PR target/81294
100 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
101 arguments in the call to __builtin_ia32_sbb_u32.
102 (_subborrow_u64): Swap _X and _Y arguments in the call to
103 __builtin_ia32_sbb_u64.
104
105 2017-07-04 Jakub Jelinek <jakub@redhat.com>
106
107 PR debug/81278
108 * tree-vrp.c (compare_assert_loc): Turn into a function template
109 with stable template parameter. Only test if a->e is NULL,
110 !a->e == !b->e has been verified already. Use e == NULL or
111 e != NULL instead of e or ! e tests. If stable is true, don't use
112 iterative_hash_expr, on the other side allow a or b or both NULL
113 and sort the NULLs last.
114 (process_assert_insertions): Sort using compare_assert_loc<false>
115 instead of compare_assert_loc, later sort using
116 compare_assert_loc<true> before calling process_assert_insertions_for
117 in a loop. Use break instead of continue once seen NULL pointer.
118
119 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
120
121 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
122 Cortex-R7 and Cortex-R8 processors.
123
124 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
125
126 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
127 uninitialized while src is not.
128
129 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
130
131 * common/config/arm/arm-common.c: Adjust include path for
132 arm-cpu-cdata.h
133 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
134 (arm-cpu.h): Create in build directory. Adjust dependency rules.
135 (arm-cpu-data.h): Likewise.
136 (arm-cpu-cdata.h): Likewise.
137 * config/arm/arm-cpu.h: Delete.
138 * config/arm/arm-cpu-cdata.h: Delete.
139 * config/arm/arm-cpu-data.h: Delete.
140
141 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
142
143 * config/arm/arm-cpus.in (cortex-a55): New.
144 (cortex-a75): Likewise.
145 (cortex-a75.cortex-a55): Likewise.
146 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
147 cortex-a75.
148 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
149 * config/arm/arm-cpu-cdata.h: Regenerate.
150 * config/arm/arm-cpu-data.h: Regenerate.
151 * config/arm/arm-cpu.h: Regenerate.
152 * config/arm/arm-tables.opt: Regenerate.
153 * config/arm/arm-tune.md: Regenerate.
154
155 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
156
157 * haifa-sched.c (sched_create_recovery_edges): Update profile.
158
159 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
160
161 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
162 probability.
163
164 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
165
166 PR tree-optimization/81292
167 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
168 full_string_p, also call adjust_related_strinfos if the adjustment
169 is simple, otherwise invalidate related strinfos.
170
171 2017-07-04 Martin Liska <mliska@suse.cz>
172
173 PR sanitizer/81040
174 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
175 newly created variable as DECL_IGNORED_P.
176
177 2017-07-04 Martin Liska <mliska@suse.cz>
178
179 PR ipa/81293
180 * ipa-inline.c (inline_small_functions):
181 Use xstrdup_for_dump.
182
183 2017-07-04 Tom de Vries <tom@codesourcery.com>
184
185 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
186
187 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
188
189 PR target/81033
190 * config/darwin.c (darwin_function_switched_text_sections):
191 Fix spaces.
192
193 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
194
195 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
196
197 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
198
199 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
200
201 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
202
203 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
204 min_profitable_iters, and th as inclusive lower bounds.
205 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
206 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
207 for min_profitable_iters and min_profitable_estimate.
208 (vect_transform_loop): Treat th as an inclusive lower bound.
209 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
210
211 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
212
213 PR target/81033
214 * config/darwin.c (darwin_function_switched_text_sections):
215 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
216 in two pieces, and suppress the use of buf.
217
218 2017-07-03 Nathan Sidwell <nathan@acm.org>
219
220 * hash-table.h (hash_table_mod1): Fix indentation.
221
222 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
223
224 PR middle-end/81290
225 * predict.c (force_edge_cold): Be more careful about propagation
226 backward.
227 * profile-count.h (profile_probability::guessed,
228 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
229 New.
230 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
231
232 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
233
234 * doc/invoke.texi (rcpc architecture extension): Document it.
235
236 2017-07-03 Richard Biener <rguenther@suse.de>
237
238 PR tree-optimization/60510
239 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
240 the scalar reduction PHI and use it.
241 (vectorizable_reduction): Properly guard the single_defuse_cycle
242 path for non-SLP reduction chains where we cannot use it.
243 Rework reduc_def/index and vector type deduction. Rework
244 vector operand gathering during reduction op code-gen.
245 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
246 chains dissolve the chain and leave it to non-SLP reduction
247 handling.
248
249 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
250
251 * tree-data-ref.h (dr_alignment): Declare.
252 * tree-data-ref.c (dr_alignment): New function.
253 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
254 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
255 set it.
256 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
257
258 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
259
260 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
261 and base_misalignment fields.
262 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
263 * tree-data-ref.c: Include builtins.h.
264 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
265 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
266 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
267 * tree-vect-data-refs.c: Include tree-cfg.h.
268 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
269 fields instead of calculating an alignment here.
270 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
271 innermost_loop_behavior fields.
272
273 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
274
275 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
276 field.
277 (DR_STEP_ALIGNMENT): New macro.
278 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
279 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
280 (create_data_ref): Print it.
281 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
282 to tell whether the step preserves vector (mis)alignment.
283 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
284 Move the check for an integer step and generalise to all INTEGER_CST.
285 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
286 Print the outer step alignment.
287
288 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
289
290 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
291 with offset_alignment.
292 (DR_ALIGNED_TO): Delete.
293 (DR_OFFSET_ALIGNMENT): New macro.
294 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
295 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
296 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
297 (create_data_ref): Likewise.
298 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
299 (vect_analyze_data_refs): Likewise.
300 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
301 creating dummy innermost behavior.
302
303 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
304
305 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
306 with a "innermost_loop_behavior *" and refeence tree.
307 * tree-data-ref.c (dr_analyze_innermost): Likewise.
308 (create_data_ref): Update call accordingly.
309 * tree-predcom.c (find_looparound_phi): Likewise.
310
311 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
312
313 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
314 fields with dr_wrt_vec_loop.
315 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
316 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
317 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
318 (vect_dr_behavior): New function.
319 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
320 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
321 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
322 track whether the step preserves the misalignment.
323 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
324 Use vect_dr_behavior.
325 (vect_setup_realignment): Update call accordingly.
326 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
327 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
328 call to vect_create_addr_base_for_vector_ref.
329 (vect_create_cond_for_align_checks): Likewise.
330 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
331 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
332 (vect_recog_mask_conversion_pattern): Likewise.
333 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
334 (new_stmt_vec_info): Remove redundant zeroing.
335
336 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
337
338 * common/config/arm/arm-common.c (arm_be8_option): New function.
339 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
340 (ISA_ARMv6): Add isa_bit_be8.
341 * config/arm/arm.h (arm_be8_option): Add prototype.
342 (BE8_SPEC_FUNCTION): New define.
343 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
344 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
345 (mlittle-endian): Similarly.
346 (mbe8, mbe32): New options.
347 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
348 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
349
350 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
351
352 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
353
354 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
355
356 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
357 (cleanup_tree_cfg_bb): Use it.
358 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
359 New functions.
360 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
361
362 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
363
364 PR bootstrap/81285
365 * loop-doloop.c (add_test): Update profile.
366
367 2017-07-03 Martin Liska <mliska@suse.cz>
368
369 PR sanitize/81040
370 * sanopt.c (rewrite_usage_of_param): New function.
371 (sanitize_rewrite_addressable_params): Likewise.
372 (pass_sanopt::execute): Call rewrite_usage_of_param.
373
374 2017-07-03 Richard Biener <rguenther@suse.de>
375
376 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
377 back to using VIEW_CONVERT_EXPR.
378
379 2017-07-03 Martin Liska <mliska@suse.cz>
380
381 PR other/78366
382 * doc/extend.texi: Document when a resolver function is
383 generated for target_clones.
384
385 2017-07-03 Martin Liska <mliska@suse.cz>
386
387 * asan.c (asan_emit_stack_protection): Unpoison just red zones
388 and shadow memory of auto variables which are subject of
389 use-after-scope sanitization.
390 (asan_expand_mark_ifn): Add do set only when is_poison.
391
392 2016-07-03 Richard Biener <rguenther@suse.de>
393
394 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
395 reduction PHIs.
396 (vect_force_simple_reduction): Record reduction def -> phi mapping.
397 (vectorizable_reduction): Perform reduction PHI creation when
398 visiting a reduction PHI and adjust and simplify code generation
399 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
400 (vect_transform_loop): Visit reduction PHIs.
401 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
402 defs into the SLP tree.
403 (vect_build_slp_tree): Reduction defs terminate the recursion.
404 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
405 of reduction defs.
406 (vect_get_vec_defs_for_stmt_copy): Export.
407 (vect_get_vec_defs): Likewise.
408 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
409 purpose.
410 (vect_get_vec_defs_for_stmt_copy): Declare.
411 (vect_get_vec_defs): Likewise.
412
413 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
414
415 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
416 parameter with a "loop" parameter and use it instead of the
417 loop containing DR_STMT. Don't check simple_iv when doing
418 BB analysis. Describe the two analysis modes in the comment.
419
420 2017-07-03 Tom de Vries <tom@codesourcery.com>
421
422 PR tree-optimization/69468
423 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
424 (find_same_succ_bb): Handle ignore_edge_flags.
425
426 2017-07-03 Tom de Vries <tom@codesourcery.com>
427
428 PR tree-optimization/81192
429 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
430 hash.
431 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
432 differs.
433 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
434
435 2017-07-03 Tom de Vries <tom@codesourcery.com>
436
437 PR tree-optimization/81192
438 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
439 BB_SAME_SUCC (bb) == NULL.
440
441 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
442
443 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
444 consistency.
445
446 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
447
448 * dumpfile.c: Include profile-count.h
449 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
450 update profile.
451 (insert_cond_bb): Update profile.
452 * tree-cfg.h (insert_cond_bb): Update prototype.
453 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
454 * tree-dump.c: Do not include tree-cfg.
455
456 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
457
458 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
459
460 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
461
462 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
463 bb.
464
465 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
466
467 * tree-complex.c (expand_complex_div_wide): update profile.
468
469 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
470 Alan Hayward <alan.hayward@arm.com>
471 David Sherwood <david.sherwood@arm.com>
472
473 * Makefile.in (MACHMODE_H): Remove insn-modes.h
474 (CORETYPES_H): New define.
475 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
476 (insn-modes-inline.h, s-modes-inline-h): New rules.
477 (generated_files): Add insn-modes-inline.h.
478 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
479 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
480 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
481 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
482 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
483 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
484 (build/gencodes.o, build/genconditions.o): Likewise.
485 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
486 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
487 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
488 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
489 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
490 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
491 * coretypes.h: Include everything up to real.h for generators.
492 Include insn-modes.h first. Include wide-int-print.h after
493 wide-int.h. Include insn-modes-inline.h and then machmode.h.
494 * machmode.h: Don't include insn-modes.h here.
495 * function-tests.c: Remove includes of signop.h, machmode.h,
496 double-int.h and wide-int.h.
497 * rtl.h: Likewise.
498 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
499 and wide-int.h.
500 * optc-save-gen.awk: Likewise.
501 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
502 * godump.c: Remove include of wide-int-print.h.
503 * pretty-print.h: Likewise.
504 * wide-int-print.cc: Likewise.
505 * wide-int.cc: Likewise.
506 * hash-map-tests.c: Remove include of signop.h.
507 * hash-set-tests.c: Likewise.
508 * rtl-tests.c: Likewise.
509 * mkconfig.sh: Remove include of machmode.h.
510 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
511 into...
512 (emit_insn_modes_inline_h): ...this new function. Emit the code
513 into an insn-modes-inline.h header file, adding appropriate
514 include guards and end comments.
515 (emit_insn_modes_c_header): Remove include of machmode.h.
516 (emit_min_insn_modes_c_header): Include coretypes.h rather than
517 machmode.h.
518 (main): Handle -i flag and call emit_insn_modes_inline_h when
519 it is passed.
520
521 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
522
523 * tree-ssa-strlen.c (strinfo): Rename the length field to
524 nonzero_chars. Add a full_string_p field.
525 (compare_nonzero_chars, zero_length_string_p): New functions.
526 (get_addr_stridx): Add an offset_out parameter.
527 Use compare_nonzero_chars.
528 (get_stridx): Update accordingly. Use compare_nonzero_chars.
529 (new_strinfo): Update after above changes to strinfo.
530 (set_endptr_and_length): Set full_string_p.
531 (get_string_length): Update after above changes to strinfo.
532 (unshare_strinfo): Update call to new_strinfo.
533 (maybe_invalidate): Likewise.
534 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
535 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
536 as a uhwi instead of an shwi. Update after above changes to
537 strinfo and new_strinfo.
538 (zero_length_string): Assert that chainsi contains full strings.
539 Use zero_length_string_p. Update call to new_strinfo.
540 (adjust_related_strinfos): Update after above changes to strinfo.
541 Copy full_string_p from origsi.
542 (adjust_last_stmt): Use zero_length_string_p.
543 (handle_builtin_strlen): Update after above changes to strinfo and
544 new_strinfo. Install the lhs as the string length if the previous
545 entry didn't describe a full string.
546 (handle_builtin_strchr): Update after above changes to strinfo
547 and new_strinfo.
548 (handle_builtin_strcpy): Likewise.
549 (handle_builtin_strcat): Likewise.
550 (handle_builtin_malloc): Likewise.
551 (handle_pointer_plus): Likewise.
552 (handle_builtin_memcpy): Likewise. Track nonzero characters
553 that aren't necessarily followed by a nul terminator.
554 (handle_char_store): Likewise.
555
556 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
557
558 PR tree-optimization/80769
559 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
560 for malloc and calloc. Document the new invariant that all related
561 strinfos have delayed lengths or none do.
562 (verify_related_strinfos): Move earlier in file.
563 (set_endptr_and_length): New function, split out from...
564 (get_string_length): ...here. Also set the lengths of related
565 strinfos.
566 (zero_length_string): Assert that chainsi has known (rather than
567 delayed) lengths.
568 (adjust_related_strinfos): Likewise.
569
570 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
571
572 PR tree-optimization/81136
573 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
574 assert that two references with the same misalignment have the same
575 compile-time misalignment if those compile-time misalignments
576 are known.
577
578 2017-07-01 Andi Kleen <ak@linux.intel.com>
579
580 * print-tree.c (print_node): Print all attributes.
581
582 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
583
584 * cfg.c (scale_bbs_frequencies): New function.
585 * cfg.h (scale_bbs_frequencies): Declare it.
586 * cfgloopanal.c (single_likely_exit): Cleanup.
587 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
588 as parameter.
589 (scale_loop_profile): Likewise.
590 (loop_version): Likewise.
591 (create_empty_loop_on_edge): Update.
592 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
593 scale_loop_frequencies, scale_loop_profile, loopify,
594 loop_version): Update prototypes.
595 * modulo-sched.c (sms_schedule): Update.
596 * predict.c (unlikely_executed_edge_p): Also check probability.
597 (probably_never_executed_edge_p): Fix typo.
598 * tree-if-conv.c (version_loop_for_if_conversion): Update.
599 * tree-parloops.c (gen_parallel_loop): Update.
600 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
601 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
602 * tree-ssa-loop-split.c (split_loop): Update.
603 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
604 * tree-vect-loop-manip.c (vect_do_peeling): Update.
605 (vect_loop_versioning): Update.
606 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
607
608 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
609
610 * trans-mem.c (split_bb_make_tm_edge): Update profile.
611
612 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
613
614 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
615 to keep profile consistent.
616
617 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
618
619 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
620 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
621 * profile-count.h (max_safe_multiplier): Make unsigned.
622 (profile_count::guessed_zero): New.
623
624 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
625
626 * bb-reorder.c (fix_up_crossing_landing_pad,
627 fix_crossing_conditional_branches): Use make_single_succ_edge
628 to keep profile consistent.
629
630 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
631
632 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
633 to update profile.
634
635 2017-07-01 Jakub Jelinek <jakub@redhat.com>
636
637 PR sanitizer/81262
638 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
639 the right scopes, make sure cond_jump isn't preserved between multiple
640 iterations. Search for fallthru edge whenever there are 3+ edges and
641 use find_fallthru_edge for it.
642
643 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
644
645 Patch by Alexander Monakov <amonakov@ispras.ru>
646 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
647 probabilities consistently.
648
649 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
650
651 * pa.c (pa_expand_compare_and_swap_loop): Update call of
652 emit_cmp_and_jump_insns.
653
654 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
655
656 PR ipa/81261
657 * tree-inline.c (expand_call_inline): Combine profile statuses.
658
659 2017-06-30 Andrew Pinski <apinski@cavium.com>
660
661 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
662 fold_stmt returned true.
663
664 2017-06-30 Nathan Sidwell <nathan@acm.org>
665
666 * ggc.h (empty_string): Delete.
667 * cfgexpand.c (expand_asm_stmt): Use plain "".
668 * optabs.c (expand_asm_memory_barrier): Likewise.
669 * stringpool.c (empty_string): Delete.
670 (digit_vector, digit_string): Delete.
671 (ggc_alloc_string): Use plain "", don't optimize single digit
672 strings. Use ggc_alloc_atomic.
673
674 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
675
676 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
677 comparison set and one other set, use the cost of the non-comparison
678 set.
679
680 2017-06-30 Nathan Sidwell <nathan@acm.org>
681
682 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
683 some formatting.
684
685 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
686
687 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
688 loops. Remove now unneeded calls to gimple_switch_set_label() that
689 just set removed labels to NULL_TREE.
690
691 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
692
693 * tree-ssanames.c (set_range_info_raw): Abstract from ...
694 (set_range_info): ...here. Only call set_range_info_raw if domain
695 is useful.
696 (set_nonzero_bits): Call set_range_info_raw.
697 * tree-ssanames.h (set_range_info_raw): New.
698
699 2017-06-30 Jakub Jelinek <jakub@redhat.com>
700
701 PR target/81225
702 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
703 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
704 of nonimmediate_operand and <store_mask_constraint> instead of m
705 for the input operand. For V8FI iterator, always split if input
706 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
707 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
708 <store_mask_predicate> instead of register_operand and
709 <store_mask_constraint> instead of v for the input operand. Make
710 sure both operands aren't MEMs for if not <mask_applied>.
711
712 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
713
714 * lto-wrapper.c (copy_file) Close both file descriptors before
715 exiting normally.
716
717 2017-06-30 Martin Liska <mliska@suse.cz>
718
719 PR ipa/81214
720 * multiple_target.c (create_dispatcher_calls): Make ifunc
721 also for function that don't have calls or are not referenced.
722
723 2017-06-30 Richard Biener <rguenther@suse.de>
724
725 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
726 analyze the first scalar stmt. Move vector type computation
727 for the BB case here from ...
728 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
729 live operation processing in the SLP case properly.
730
731 2017-06-30 Richard Biener <rguenther@suse.de>
732
733 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
734
735 2017-06-30 Martin Liska <mliska@suse.cz>
736
737 PR sanitizer/81021
738 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
739 before BUILT_IN_UNWIND_RESUME when ASAN is used.
740
741 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
742
743 * doc/invoke.texi (AArch64): Add missing options and remove redundant
744 ones.
745
746 2017-06-30 Richard Biener <rguenther@suse.de>
747
748 PR tree-optimization/81249
749 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
750 condition reduction result to original scalar type.
751
752 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
753
754 * profile-count.h (enum profile_quality): Fix typos and whitespace
755 issues.
756
757 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
758
759 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
760 type for branch probabilities.
761
762 2017-06-29 Julian Brown <julian@codesourcery.com>
763 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
764
765 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
766 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
767 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
768 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
769
770 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
771
772 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
773 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
774 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
775 CC usage from generic code to here.
776 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
777 CC usage into the target macros.
778
779 2017-06-29 Maya Rashish <coypu@sdf.org>
780
781 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
782 objects.
783
784 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
785
786 * arm/arm-builtins.c: Include profile-count.h
787 * except.c (sjlj_emit_function_enter): Use
788 profile_probability::unlikely.
789
790 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
791
792 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
793 and tocrel_offset be pointer args rather than implicitly using
794 static versions.
795 (legitimate_constant_pool_address_p, rs6000_emit_move,
796 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
797 tocrel_offset and use in toc_relative_expr_p call.
798 (print_operand, print_operand_address): Use static tocrel_base_oac
799 and tocrel_offset_oac.
800 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
801 tocrel_offset_oac.
802
803 2017-06-29 Maya Rashish <coypu@sdf.org>
804
805 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
806
807 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
808
809 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
810 objects, take into account only the alignment of 'op0' and 'mode1' if
811 'op0' is a MEM.
812
813 2017-06-29 Steve Ellcey <sellcey@cavium.com>
814
815 * ccmp.c (ccmp_tree_comparison_p): New function.
816 (ccmp_candidate_p): Update to use above function.
817 (get_compare_parts): New function.
818 (expand_ccmp_next): Update to use new functions.
819 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
820 new functions.
821 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
822 take mode as argument.
823 * ccmp.h (expand_ccmp_expr): Add mode as argument.
824 * expr.c (expand_expr_real_1): Pass mode as argument.
825
826 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
827
828 * combine.c (combine_instructions): Print insns to dump_file, together
829 with their costs.
830
831 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
832
833 * asan.c (asan_emit_stack_protection): Update.
834 (create_cond_insert_point): Update.
835 * auto-profile.c (afdo_propagate_circuit): Update.
836 * basic-block.h (struct edge_def): Turn probability to
837 profile_probability.
838 (EDGE_FREQUENCY): Update.
839 * bb-reorder.c (find_traces_1_round): Update.
840 (better_edge_p): Update.
841 (sanitize_hot_paths): Update.
842 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
843 (make_single_succ_edge): Update.
844 (check_bb_profile): Update.
845 (dump_edge_info): Update.
846 (update_bb_profile_for_threading): Update.
847 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
848 probabilitycount to 0.
849 * cfgbuild.c (compute_outgoing_frequencies): Update.
850 * cfgcleanup.c (try_forward_edges): Update.
851 (outgoing_edges_match): Update.
852 (try_crossjump_to_edge): Update.
853 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
854 (expand_gimple_tailcall): Update.
855 (construct_init_block): Use make_single_succ_edge.
856 (construct_exit_block): Use make_single_succ_edge.
857 * cfghooks.c (verify_flow_info): Update.
858 (redirect_edge_succ_nodup): Update.
859 (split_edge): Update.
860 (account_profile_record): Update.
861 * cfgloopanal.c (single_likely_exit): Update.
862 * cfgloopmanip.c (scale_loop_profile): Update.
863 (set_zero_probability): Remove.
864 (duplicate_loop_to_header_edge): Update.
865 * cfgloopmanip.h (loop_version): Update prototype.
866 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
867 (force_nonfallthru_and_redirect): Update.
868 (update_br_prob_note): Update.
869 (rtl_verify_edges): Update.
870 (purge_dead_edges): Update.
871 (rtl_lv_add_condition_to_bb): Update.
872 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
873 * cgraphunit.c (init_lowered_empty_function): Update.
874 (cgraph_node::expand_thunk): Update.
875 * cilk-common.c: Include profile-count.h
876 * dojump.c (inv): Remove.
877 (jumpifnot): Update.
878 (jumpifnot_1): Update.
879 (do_jump_1): Update.
880 (do_jump): Update.
881 (do_jump_by_parts_greater_rtx): Update.
882 (do_compare_rtx_and_jump): Update.
883 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
884 do_jump_1. do_compare_rtx_and_jump): Update prototype.
885 * dwarf2cfi.c: Include profile-count.h
886 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
887 (sjlj_emit_dispatch_table): Likewise.
888 * explow.c: Include profile-count.h
889 * expmed.c (emit_store_flag_force): Update.
890 (do_cmp_and_jump): Update.
891 * expr.c (compare_by_pieces_d::generate): Update.
892 (compare_by_pieces_d::finish_mode): Update.
893 (emit_block_move_via_loop): Update.
894 (store_expr_with_bounds): Update.
895 (store_constructor): Update.
896 (expand_expr_real_2): Update.
897 (expand_expr_real_1): Update.
898 * expr.h (try_casesi, try_tablejump): Update prototypes.
899 * gimple-pretty-print.c (dump_probability): Update.
900 (dump_profile): New.
901 (dump_gimple_label): Update.
902 (dump_gimple_bb_header): Update.
903 * graph.c (draw_cfg_node_succ_edges): Update.
904 * hsa-gen.c (convert_switch_statements): Update.
905 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
906 (find_if_case_1): Update.
907 (find_if_case_2): Update.
908 * internal-fn.c (expand_arith_overflow_result_store): Update.
909 (expand_addsub_overflow): Update.
910 (expand_neg_overflow): Update.
911 (expand_mul_overflow): Update.
912 (expand_vector_ubsan_overflow): Update.
913 * ipa-cp.c (good_cloning_opportunity_p): Update.
914 * ipa-split.c (split_function): Use make_single_succ_edge.
915 * ipa-utils.c (ipa_merge_profiles): Update.
916 * loop-doloop.c (add_test): Update.
917 (doloop_modify): Update.
918 * loop-unroll.c (compare_and_jump_seq): Update.
919 (unroll_loop_runtime_iterations): Update.
920 * lra-constraints.c (lra_inheritance): Update.
921 * lto-streamer-in.c (input_cfg): Update.
922 * lto-streamer-out.c (output_cfg): Update.
923 * mcf.c (adjust_cfg_counts): Update.
924 * modulo-sched.c (sms_schedule): Update.
925 * omp-expand.c (expand_omp_for_init_counts): Update.
926 (extract_omp_for_update_vars): Update.
927 (expand_omp_ordered_sink): Update.
928 (expand_omp_for_ordered_loops): Update.
929 (expand_omp_for_generic): Update.
930 (expand_omp_for_static_nochunk): Update.
931 (expand_omp_for_static_chunk): Update.
932 (expand_cilk_for): Update.
933 (expand_omp_simd): Update.
934 (expand_omp_taskloop_for_outer): Update.
935 (expand_omp_taskloop_for_inner): Update.
936 * omp-simd-clone.c (simd_clone_adjust): Update.
937 * optabs.c (expand_doubleword_shift): Update.
938 (expand_abs): Update.
939 (emit_cmp_and_jump_insn_1): Update.
940 (expand_compare_and_swap_loop): Update.
941 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
942 * predict.c (predictable_edge_p): Update.
943 (edge_probability_reliable_p): Update.
944 (set_even_probabilities): Update.
945 (combine_predictions_for_insn): Update.
946 (combine_predictions_for_bb): Update.
947 (propagate_freq): Update.
948 (estimate_bb_frequencies): Update.
949 (force_edge_cold): Update.
950 * profile-count.c (profile_count::dump): Add missing space into dump.
951 (profile_count::debug): Add newline.
952 (profile_count::differs_from_p): Explicitly convert to unsigned.
953 (profile_count::stream_in): Update.
954 (profile_probability::dump): New member function.
955 (profile_probability::debug): New member function.
956 (profile_probability::differs_from_p): New member function.
957 (profile_probability::differs_lot_from_p): New member function.
958 (profile_probability::stream_in): New member function.
959 (profile_probability::stream_out): New member function.
960 * profile-count.h (profile_count_quality): Rename to ...
961 (profile_quality): ... this one.
962 (profile_probability): New.
963 (profile_count): Update.
964 * profile.c (compute_branch_probabilities): Update.
965 * recog.c (peep2_attempt): Update.
966 * sched-ebb.c (schedule_ebbs): Update.
967 * sched-rgn.c (find_single_block_region): Update.
968 (compute_dom_prob_ps): Update.
969 (schedule_region): Update.
970 * sel-sched-ir.c (compute_succs_info): Update.
971 * stmt.c (struct case_node): Update.
972 (do_jump_if_equal): Update.
973 (get_outgoing_edge_probs): Update.
974 (conditional_probability): Update.
975 (emit_case_dispatch_table): Update.
976 (expand_case): Update.
977 (expand_sjlj_dispatch_table): Update.
978 (emit_case_nodes): Update.
979 * targhooks.c: Update.
980 * tracer.c (better_p): Update.
981 (find_best_successor): Update.
982 * trans-mem.c (expand_transaction): Update.
983 * tree-call-cdce.c: Update.
984 * tree-cfg.c (gimple_split_edge): Upate.
985 (move_sese_region_to_fn): Upate.
986 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
987 * tree-eh.c (lower_resx): Upate.
988 (cleanup_empty_eh_move_lp): Upate.
989 * tree-if-conv.c (version_loop_for_if_conversion): Update.
990 * tree-inline.c (copy_edges_for_bb): Update.
991 (copy_cfg_body): Update.
992 * tree-parloops.c (gen_parallel_loop): Update.
993 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
994 (gimple_gen_time_profiler): Update.
995 * tree-ssa-dce.c (remove_dead_stmt): Update.
996 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
997 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
998 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
999 (unloop_loops): Update.
1000 (try_peel_loop): Update.
1001 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
1002 * tree-ssa-loop-split.c (connect_loops): Update.
1003 (split_loop): Update.
1004 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
1005 (hoist_guard): Update.
1006 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
1007 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
1008 (value_replacement): Update.
1009 * tree-ssa-reassoc.c (branch_fixup): Update.
1010 * tree-ssa-tail-merge.c (replace_block_by): Update.
1011 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
1012 (create_edge_and_update_destination_phis): Update.
1013 (compute_path_counts): Update.
1014 (recompute_probabilities): Update.
1015 (update_joiner_offpath_counts): Update.
1016 (freqs_to_counts_path): Update.
1017 (duplicate_thread_path): Update.
1018 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
1019 (struct switch_conv_info): Update.
1020 (gen_inbound_check): Update.
1021 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
1022 (vect_do_peeling): Update.
1023 (vect_loop_versioning): Update.
1024 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
1025 (optimize_mask_stores): Update.
1026 * ubsan.c (ubsan_expand_null_ifn): Update.
1027 * value-prof.c (gimple_divmod_fixed_value): Update.
1028 (gimple_divmod_fixed_value_transform): Update.
1029 (gimple_mod_pow2): Update.
1030 (gimple_mod_pow2_value_transform): Update.
1031 (gimple_mod_subtract): Update.
1032 (gimple_mod_subtract_transform): Update.
1033 (gimple_ic): Update.
1034 (gimple_stringop_fixed_value): Update.
1035 (gimple_stringops_transform): Update.
1036 * value-prof.h: Update.
1037
1038 2017-06-29 Carl Love <cel@us.ibm.com>
1039
1040 * config/rs6000/rs6000-c.c: Add support for built-in functions
1041 vector signed int vec_signed (vector float);
1042 vector signed long long vec_signed (vector double);
1043 vector signed int vec_signed2 (vector double, vector double);
1044 vector signed int vec_signede (vector double);
1045 vector signed int vec_signedo (vector double);
1046 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
1047 instruction generator.
1048 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
1049 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
1050 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
1051 Add define_insn.
1052 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
1053 vunsignede_v2df): Add define_expands.
1054 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
1055 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
1056 VEC_UNSIGNEDO): Add definitions.
1057 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
1058 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
1059 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
1060 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
1061 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
1062 * config/rs6000/altivec.h (vec_signed, vec_signed2,
1063 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
1064 vec_unsignede, vec_unsignedo): Add builtin defines.
1065 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
1066 declaration.
1067 * doc/extend.texi: Update the built-in documentation file for the
1068 new built-in functions.
1069
1070 2017-06-29 Richard Biener <rguenther@suse.de>
1071
1072 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
1073 reduction chains to LOOP_VINFO_REDUCTIONS.
1074 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
1075 SLP reductions after processing reduction chains.
1076
1077 2017-06-29 Nathan Sidwell <nathan@acm.org>
1078
1079 * builtins.c (fold_builtin_FUNCTION): Use
1080 lang_hooks.decl_printable_name.
1081
1082 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
1083
1084 PR middle-end/81194
1085 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
1086 with only one label.
1087 * stmt.c (expand_case): Assert NCASES is greater than one.
1088
1089 2017-06-29 Richard Biener <rguenther@suse.de>
1090
1091 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
1092 anything.
1093 (group_case_labels): Likewise.
1094 (find_taken_edge): Push sanity checking on val to workers...
1095 (find_taken_edge_cond_expr): ... here
1096 (find_taken_edge_switch_expr): ... and here, handle cases
1097 with just a default label.
1098 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
1099 (group_case_labels): Likewise.
1100 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
1101 group_case_labels does anything cleanup the CFG again.
1102
1103 2017-06-29 Bin Cheng <bin.cheng@arm.com>
1104
1105 PR tree-optimization/81196
1106 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
1107 exit condition comparing two IVs.
1108
1109 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
1110
1111 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
1112 profile to the dummy entry at the end of the list of architectures.
1113 * config/arm/arm-cpu-cdata.h: Regenerated.
1114
1115 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1116 Michael Collison <michael.collison@arm.com>
1117
1118 PR target/70119
1119 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
1120 New pattern.
1121 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
1122 (*aarch64_reg_<mode>3_minus_mask): New pattern.
1123 (*aarch64_<optab>_reg_di3_mask2): New pattern.
1124 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
1125 of shift when the shift amount is masked with constant equal to
1126 the size of the mode.
1127 * config/aarch64/predicates.md (subreg_lowpart_operator): New
1128 predicate.
1129
1130 2017-06-29 Martin Liska <mliska@suse.cz>
1131
1132 * config/i386/i386.opt: Change range from [1,5] to [0,5].
1133
1134 2017-06-29 Yury Gribov <tetra2005@gmail.com>
1135
1136 PR bootstrap/80565
1137 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
1138 code.
1139 * ipa-inline.h
1140 (edge_growth_cache_entry::edge_growth_cache_entry): New
1141 function.
1142 (reset_edge_growth_cache): Update to use constructor.
1143
1144 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1145
1146 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
1147 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
1148 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
1149
1150 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
1151
1152 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
1153 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
1154
1155 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
1156
1157 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
1158 (*-linux-uclibc*): Add t-uclibc tmake_file.
1159 * config/t-musl: New.
1160 * config/t-uclibc: New.
1161
1162 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
1163
1164 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
1165 context.
1166 (gen_comm_data): Emit architectural setting of arch_prof.
1167 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
1168 profile.
1169 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
1170 (armv8-m.base, armv8-m.main): Likewise.
1171 * arm-protos.h (arm_build_target): Add profile field.
1172 (arch_option): Likewise.
1173 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
1174 the active target.
1175 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
1176 arm_active_target.profile.
1177
1178 2017-06-28 Richard Biener <rguenther@suse.de>
1179
1180 PR middle-end/81227
1181 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
1182 TYPE_OVERFLOW_WRAPS.
1183 * match.pd (negate_expr_p): Likewise.
1184 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
1185 fold_build2, not fold_binary.
1186
1187 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
1188
1189 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
1190 Convert memory address to Pmode.
1191 (aarch64_print_operand): Assert MEM operands are always Pmode.
1192
1193 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
1194
1195 PR target/79665
1196 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
1197 Remove redundant if.
1198 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
1199 * config/arm/aarch-common-protos.h
1200 (aarch_forward_to_shift_is_not_shifted_re): Remove.
1201 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
1202
1203 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
1204
1205 PR ipa/81238
1206 * multiple_target.c (create_dispatcher_calls): Set the default
1207 clone to be static, not public.
1208
1209 2017-06-28 Richard Biener <rguenther@suse.de>
1210
1211 * tree-vect-loop.c (vectorizable_reduction): Move special
1212 cond reduction IV var creation ...
1213 (vect_create_epilog_for_reduction): ... here. Remove induction_index
1214 parameter. Use STMT_VINFO_VECTYPE.
1215 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
1216 constant_p.
1217
1218 2017-06-28 Martin Liska <mliska@suse.cz>
1219
1220 PR ipa/81128
1221 * ipa-visibility.c (non_local_p): Handle visibility.
1222
1223 2017-06-28 Martin Liska <mliska@suse.cz>
1224
1225 PR driver/79659
1226 * common.opt: Add IntegerRange to various options.
1227 * opt-functions.awk (integer_range_info): New function.
1228 * optc-gen.awk: Add integer_range_info to cl_options struct.
1229 * opts-common.c (decode_cmdline_option): Handle
1230 CL_ERR_INT_RANGE_ARG.
1231 (cmdline_handle_error): Likewise.
1232 * opts.c (print_filtered_help): Show valid interval in
1233 when --help is provided.
1234 * opts.h (struct cl_option): Add range_min and range_max fields.
1235 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
1236
1237 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
1238
1239 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
1240 (x * C EQ/NE y * C): New transformation.
1241
1242 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
1243
1244 * genmultilib (combination_space): Accept '+' in option names.
1245
1246 2017-06-28 Martin Liska <mliska@suse.cz>
1247
1248 PR sanitizer/81224
1249 * asan.c (instrument_derefs): Bail out inner references
1250 that are hard register variables.
1251
1252 2017-06-28 Jakub Jelinek <jakub@redhat.com>
1253
1254 PR target/81175
1255 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
1256 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
1257
1258 2017-06-28 Richard Biener <rguenther@suse.de>
1259
1260 * tree-vectorizer.h (vect_get_vec_defs): Remove.
1261 (vect_get_slp_defs): Adjust.
1262 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
1263 out from ...
1264 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
1265 simplify.
1266 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
1267 get_initial_defs_for_reduction instead of vect_get_vec_defs.
1268 (vectorizable_reduction): Adjust.
1269 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
1270 handling.
1271 (vect_get_slp_defs): Likewise.
1272 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
1273 (vectorizable_bswap): Adjust.
1274 (vectorizable_call): Likewise.
1275 (vectorizable_conversion): Likewise.
1276 (vectorizable_assignment): Likewise.
1277 (vectorizable_shift): Likewise.
1278 (vectorizable_operation): Likewise.
1279 (vectorizable_store): Likewise.
1280 (vectorizable_condition): Likewise.
1281 (vectorizable_comparison): Likewise.
1282
1283 2017-06-28 Michael Collison <michael.collison@arm.com>
1284
1285 PR target/68535
1286 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
1287 set of base_reg
1288 (arm_gen_movmemqi): Removed unused variable 'i'.
1289 Convert 'for' loop into 'while' loop.
1290 (arm_expand_prologue): Remove last unnecessary set of insn.
1291 (thumb_pop): Remove unused variable 'pushed_words'.
1292 (thumb_exit): Remove last unnecessary set of regs_to_pop.
1293
1294 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1295
1296 * config/s390/predicates.md: Use s390_rel_address_ok_p.
1297 * config/s390/s390-protos.h: Add prototype of
1298 s390_rel_address_ok_p.
1299 * config/s390/s390.c (s390_got_symbol): New function.
1300 (s390_rel_address_ok_p): New function.
1301 (legitimize_pic_address): Use s390_rel_address_ok_p.
1302 (s390_load_got): Use s390_got_symbol.
1303 (s390_option_override): Issue error if
1304 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
1305 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
1306 New macro.
1307 * config/s390/s390.opt: New option mpic-data-is-text-relative.
1308
1309 2017-06-27 Andrew Pinski <apinski@cavium.com>
1310
1311 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
1312 (X * copysign (1.0, X)): New pattern.
1313 (X * copysign (1.0, -X)): New pattern.
1314 (copysign (-1.0, CST)): New pattern.
1315
1316 2017-06-27 Joseph Myers <joseph@codesourcery.com>
1317
1318 * genmultilib (combination_space): Remove variable.
1319 Validate reuse rules against regular expression for any sequence
1320 of multilib options in any order.
1321
1322 2017-06-27 Michael Collison <michael.collison@arm.com>
1323
1324 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
1325 call aarch64_split_simd_combine.
1326 * (aarch64_combine_internal<mode>): Delete pattern.
1327 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
1328 Allow register and subreg operands.
1329
1330 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1331
1332 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
1333 specific need, just fallback on defaults.
1334 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
1335
1336 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1337 Olivier Hainque <hainque@adacore.com>
1338
1339 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
1340 map for 64bits.
1341 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
1342 targets. Pick a default if no particular attempt applied.
1343 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
1344 larger contexts.
1345
1346 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1347
1348 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
1349 (x86_64-wrs-vxworks7): Likewise.
1350
1351 2017-06-27 Marek Polacek <polacek@redhat.com>
1352
1353 PR sanitizer/81223
1354 * ubsan.c (instrument_null): Check get_base_address's result for null.
1355
1356 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
1357
1358 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
1359
1360 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
1361
1362 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
1363 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
1364 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
1365 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
1366 New function types.
1367 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
1368 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
1369 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
1370 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
1371 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
1372 BUILT_IN_FEUPDATEENV): New builtins.
1373 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
1374 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
1375 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
1376 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
1377 macros.
1378 (builtin_structptr_types): Adjust size.
1379 * tree.c (builtin_structptr_types): Add four entries.
1380
1381 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1382 Olivier Hainque <hainque@adacore.com>
1383
1384 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
1385 (TLS_SYM): New local macro, forcing reference to __tls__ on
1386 link command lines for VxWorks 7 RTPs, triggering initialization
1387 of tlsLib.
1388 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
1389 OS features TLS support, true for RTPs on VxWorks 7.
1390 * config/vxworks.c (vxworks_override_options): Setup emutls
1391 accordingly.
1392
1393 2017-06-27 Jakub Jelinek <jakub@redhat.com>
1394
1395 * predict.c (test_prediction_value_range): Use -1U instead of -1
1396 to avoid narrowing conversion warning.
1397 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
1398 to avoid narrowing conversion warning.
1399 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
1400 -1.
1401 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
1402
1403 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
1404
1405 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
1406 64bit configurations.
1407 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
1408 (SIZE_TYPE): Likewise.
1409 * config/vxworks.c (vxworks_emutls_var_fields): Use
1410 long_unsigned_type_node instead of unsigned_type_node as the offset
1411 field type, which is "pointer" mode in emutls.c.
1412
1413 2017-06-27 Jakub Jelinek <jakub@redhat.com>
1414
1415 PR sanitizer/81209
1416 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
1417
1418 PR middle-end/81207
1419 * gimple-fold.c (replace_call_with_call_and_fold): Handle
1420 gimple_vuse copying separately from gimple_vdef copying.
1421
1422 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1423
1424 * value-prof.c (free_hist): Remove call to memset and the enclosing if
1425 condition.
1426
1427 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
1428 Olivier Hainque <hainque@adacore.com>
1429
1430 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
1431 for all vxworks7 targets.
1432 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
1433 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
1434 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
1435 variations for VX6/VX7 and 32/64bits later on in ...
1436 (VXWORKS_LIB_SPEC): Leverage new macros.
1437 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
1438 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
1439
1440 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
1441
1442 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
1443 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
1444
1445 2017-06-26 Carl Love <cel@us.ibm.com>
1446
1447 * config/rs6000/rs6000-c.c: Add support for built-in functions
1448 vector bool char vec_reve (vector bool char);
1449 vector signed char vec_reve (vector signed char);
1450 vector unsigned char vec_reve (vector unsigned char);
1451 vector bool int vec_reve (vector bool int);
1452 vector signed int vec_reve (vector signed int);
1453 vector unsigned int vec_reve (vector unsigned int);
1454 vector bool long long vec_reve (vector bool long long);
1455 vector signed long long vec_reve (vector signed long long);
1456 vector unsigned long long vec_reve (vector unsigned long long);
1457 vector bool short vec_reve (vector bool short);
1458 vector signed short vec_reve (vector signed short);
1459 vector double vec_reve (vector double);
1460 vector float vec_reve (vector float);
1461 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
1462 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
1463 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
1464 (altivec_vreve): New pattern.
1465 * config/rs6000/altivec.h (vec_reve): New define.
1466 * doc/extend.texi (vec_rev): Update the built-in documentation file
1467 for the new built-in functions.
1468
1469 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1470
1471 PR tree-optimization/71815
1472 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
1473 function.
1474 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
1475 has_single_use.
1476 (slsr_process_phi): Likewise.
1477 (replace_uncond_cands_and_profitable_phis): Don't replace a
1478 multiply candidate with a stride of 1 (copy or cast).
1479 (phi_incr_cost): Call uses_consumed_by_stmt rather than
1480 has_single_use.
1481 (lowest_cost_path): Likewise.
1482 (total_savings): Likewise.
1483
1484 2017-06-26 Richard Biener <rguenther@suse.de>
1485
1486 PR target/81175
1487 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
1488 Use def_builtin_pure for all gather builtins.
1489
1490 2017-06-26 Richard Biener <rguenther@suse.de>
1491
1492 PR tree-optimization/81203
1493 * tree-tailcall.c (find_tail_calls): Do not move stmts into
1494 non-dominating BBs.
1495
1496 2017-06-26 Marek Polacek <polacek@redhat.com>
1497
1498 PR c/80116
1499 * doc/invoke.texi: Document -Wmultistatement-macros.
1500
1501 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
1502
1503 * doc/sourcebuild.texi (ARM-specific attributes): Document new
1504 arm_neon_ok_no_float_abi effective target.
1505
1506 2017-06-26 Richard Biener <rguenther@suse.de>
1507
1508 PR tree-optimization/80928
1509 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
1510 (copy_bbs): Set BB_DUPLICATED flag early.
1511 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
1512 marked blocks.
1513 (execute_on_shrinking_pred): Likewise.
1514 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
1515 BB_DUPLICATED blocks.
1516 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
1517 iterate over all PHIs considering removal of *gsi.
1518
1519 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
1520
1521 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
1522 qdf24xx.
1523
1524 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1525
1526 * config/rs6000/rs6000-string.c: (expand_block_clear,
1527 do_load_for_compare, select_block_compare_mode,
1528 compute_current_alignment, expand_block_compare,
1529 expand_strncmp_align_check, expand_strn_compare,
1530 expand_block_move, rs6000_output_load_multiple)
1531 Move functions related to string/block move/compare
1532 to a separate file.
1533 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
1534 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
1535 for this function which is now used in two files.
1536 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
1537 * config.gcc: Add rs6000-string.o to extra_objs for
1538 targets powerpc*-*-* and rs6000*-*-*.
1539
1540 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1541
1542 PR target/80510
1543 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
1544 32-bit, since indexed is not valid for DImode.
1545 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
1546 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
1547 (define_peephole2 for Altivec d-form load): Add 32-bit support.
1548 (define_peephole2 for Altivec d-form store): Likewise.
1549
1550 PR ipa/81185
1551 * multiple_target.c (create_dispatcher_calls): Only create the
1552 dispatcher call if the function is the default clone of a
1553 versioned function.
1554
1555 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
1556
1557 PR middle-end/80902
1558 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
1559 a call, force the call to not be a tail call.
1560
1561 2017-06-23 Jeff Law <law@redhat.com>
1562
1563 * doc/contrib.texi: Add entry for Steven Pemberton's work on
1564 enquire.
1565
1566 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
1567
1568 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
1569 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
1570 handling for early expansion of vector shifts (sl,sr,sra,rl).
1571 (builtin_function_type): Add vector shift right instructions
1572 to the unsigned argument list.
1573
1574 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
1575
1576 rtl-optimizatoin/79286
1577 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
1578 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
1579 trap. PIC register plus a const unspec without offset can never trap.
1580
1581 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
1582
1583 * tree.h (builtin_structptr_type): New type.
1584 (builtin_structptr_types): Declare new array.
1585 * tree.c (builtin_structptr_types): New array.
1586 (free_lang_data, build_common_tree_nodes): Use it.
1587
1588 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
1589
1590 PR c++/81187
1591 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
1592 -Wnoexcept.
1593
1594 2017-06-22 Matt Turner <mattst88@gmail.com>
1595
1596 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
1597 Lake models to skylake case. Assume skylake for unknown
1598 models with clflushopt.
1599
1600 2017-06-22 Jeff Law <law@redhat.com>
1601
1602 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
1603 frame sizes that do not satisfy aarch64_uimm12_shift.
1604
1605 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
1606
1607 * profile-count.h (apply_probability,
1608 apply_scale, probability_in): Fix checks for zero.
1609
1610 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1611
1612 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
1613 * doc/cppdiropts.texi (-I @var{dir}): Document it.
1614
1615 2016-06-22 Richard Biener <rguenther@suse.de>
1616
1617 * tree-vect-loop.c (vect_model_reduction_cost): Handle
1618 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
1619 REDUC_MAX_EXPR support.
1620 (vectorizable_reduction): Likewise.
1621 (vect_create_epilog_for_reduction): Likewise.
1622
1623 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
1624
1625 * match.pd (A / (1 << B) -> A >> B): New.
1626 * generic-match-head.c: Include optabs-tree.h.
1627 * gimple-match-head.c: Likewise.
1628 * optabs-tree.h (target_supports_op_p): New.
1629 * optabs-tree.c (target_supports_op_p): New.
1630
1631 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1632
1633 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
1634 $gcc_cv_ld --help output.
1635 (gcc_cv_ld_demangle): Likewise.
1636 (gcc_cv_ld_eh_frame_hdr): Likewise.
1637 (gcc_cv_ld_pie): Likewise.
1638 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
1639 (gcc_cv_ld_buildid): Likewise.
1640 (gcc_cv_ld_sysroot): Likewise.
1641 (ld_bndplt_support): Likewise.
1642 (ld_pushpopstate_support): Likewise.
1643 * configure: Regenerate.
1644 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
1645
1646 2017-06-21 Jakub Jelinek <jakub@redhat.com>
1647
1648 PR target/81151
1649 * config/i386/sse.md (round<mode>2): Renumber match_dup and
1650 operands indexes to avoid gap between operands and match_dups.
1651
1652 2017-06-21 Andrew Pinski <apinski@cavium.com>
1653
1654 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
1655 Increment Arith_shift and Arith_shift_reg by 1.
1656 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
1657 New tuning flag.
1658 * config/aarch64/aarch64.c (thunderx_tunings): Enable
1659 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
1660 (aarch64_strip_extend): Add new argument and test for it.
1661 (aarch64_cheap_mult_shift_p): New function.
1662 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
1663 add a cost if it is true.
1664 Update calls to aarch64_strip_extend.
1665 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
1666
1667 2017-06-21 Andrew Pinski <apinski@cavium.com>
1668
1669 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
1670 tunings.
1671 (thunderxt88): Likewise.
1672 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
1673 (thunderx_prefetch_tune): New variable.
1674 (thunderx2t99_prefetch_tune): Update for the correct values.
1675 (thunderxt88_tunings): New variable.
1676 (thunderx_tunings): Use thunderx_prefetch_tune instead of
1677 generic_prefetch_tune.
1678 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
1679
1680 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1681
1682 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
1683 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
1684 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
1685 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
1686 (aarch64_atomic_cas<mode>, GPI): Likewise.
1687
1688 2017-06-21 Martin Liska <mliska@suse.cz>
1689
1690 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
1691 statements on cold and hot labels.
1692 * predict.c (tree_estimate_probability_bb): Remove the
1693 prediction from this place.
1694
1695 2017-06-21 Martin Liska <mliska@suse.cz>
1696
1697 PR tree-optimization/79489
1698 * gimplify.c (maybe_add_early_return_predict_stmt): New
1699 function.
1700 (gimplify_return_expr): Call the function.
1701 * predict.c (tree_estimate_probability_bb): Remove handling
1702 of early return.
1703 * predict.def: Update comment about early return predictor.
1704 * gimple-predict.h (is_gimple_predict): New function.
1705 * predict.def: Change default value of early return to 66.
1706 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
1707 statements.
1708 * passes.def: Put pass_strip_predict_hints to the beginning of
1709 IPA passes.
1710
1711 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
1712
1713 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
1714 FUNCTION_DECL declarations.
1715 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
1716 declarations.
1717 (dwaf2out_decl): Likewise.
1718 * godump.c (go_early_global_decl): Skip call to the real debug hook
1719 for FUNCTION_DECL declarations.
1720 * passes.c (rest_of_decl_compilation): Skip call to the
1721 early_global_decl debug hook for FUNCTION_DECL declarations, unless
1722 -fdump-go-spec is passed.
1723
1724 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
1725
1726 * config/i386/i386.c (struct builtin_isa): New field pure_p.
1727 Reorder for compactness.
1728 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
1729 (def_builtin_pure, def_builtin_pure2): New functions.
1730 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
1731
1732 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
1733
1734 * match.pd (nop_convert): New predicate.
1735 ((A +- CST1) +- CST2): Allow some NOP conversions.
1736
1737 2017-06-21 Jakub Jelinek <jakub@redhat.com>
1738
1739 PR c++/81130
1740 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
1741 with ctors/dtors if GOVD_SHARED is set.
1742
1743 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
1744
1745 * config/aarch64/aarch64.md (movti_aarch64):
1746 Emit mov rather than orr.
1747 (movtf_aarch64): Likewise.
1748 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
1749 Emit mov rather than orr.
1750
1751 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
1752
1753 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
1754 Swap alternatives, make integer dup more expensive.
1755
1756 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
1757
1758 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
1759 Return true for non-tls symbols.
1760
1761 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
1762
1763 * config/aarch64/aarch64-cores.def (cortex-a55): New.
1764 (cortex-a75): Likewise.
1765 (cortex-a75.cortex-a55): Likewise.
1766 * config/aarch64/aarch64-tune.md: Regenerate.
1767 * doc/invoke.texi (-mtune): Document new values for -mtune.
1768
1769 2017-06-21 Tom de Vries <tom@codesourcery.com>
1770
1771 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
1772 stack_size feature.
1773 (Effective-Target Keywords, Other attributes): Suggest using
1774 dg-add-options stack_size feature to get stack limit in stack_size
1775 effective target documentation.
1776
1777 2017-06-21 Julian Brown <julian@codesourcery.com>
1778 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1779
1780 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
1781 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
1782 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
1783 reservation.
1784 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
1785 attribute type list for neon_multiply.
1786 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
1787 attribute type list for neon_multiply.
1788 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
1789 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
1790 attribute type list for neon_multiply.
1791 * config/arm/types.md (crypto_pmull): Add.
1792 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
1793 attribute type list.
1794
1795 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
1796
1797 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
1798 arm1176jzf-s.
1799
1800 2017-06-20 Jakub Jelinek <jakub@redhat.com>
1801
1802 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
1803 to make sure not to dereference a NULL cost_classes_ptr pointer.
1804
1805 2017-06-20 Carl Love <cel@us.ibm.com>
1806
1807 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1808 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
1809 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
1810 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
1811 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
1812 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
1813 VMULOSW): New enum "unspec" values.
1814 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
1815 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
1816 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
1817 altivec_vmulosw): New patterns.
1818 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
1819 VMULOSW): Add definitions.
1820
1821 2017-06-20 Julia Koval <julia.koval@intel.com>
1822
1823 * config/i386/i386.c: Fix rounding expand for new pattern.
1824 * config/i386/subst.md: Fix pattern (parallel -> unspec).
1825
1826 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
1827
1828 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
1829 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
1830
1831 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
1832
1833 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
1834 feature string.
1835
1836 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
1837
1838 * config/aarch64/aarch64-cores.def: Rearrange to sort by
1839 architecture, then by implementer ID.
1840 * config/aarch64/aarch64-tune.md: Regenerate.
1841
1842 2017-06-20 Richard Biener <rguenther@suse.de>
1843
1844 PR middle-end/81097
1845 * fold-const.c (split_tree): Fold to type before negating.
1846
1847 2017-06-20 David Malcolm <dmalcolm@redhat.com>
1848
1849 * diagnostic-show-locus.c
1850 (selftest::test_fixit_deletion_affecting_newline): New function.
1851 (selftest::diagnostic_show_locus_c_tests): Call it.
1852
1853 2017-06-20 Andreas Schwab <schwab@suse.de>
1854
1855 PR target/80970
1856 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
1857 instead of "+d".
1858
1859 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
1860
1861 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
1862 __ARM_FEATURE_COPROC according to support.
1863
1864 2017-06-20 Jakub Jelinek <jakub@redhat.com>
1865
1866 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
1867 Rewritten to avoid overflow for > 32-bit pointers.
1868
1869 PR sanitizer/81125
1870 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
1871 by removing enum keyword.
1872 (ubsan_type_descriptor): Likewise. Formatting fix.
1873
1874 PR target/81121
1875 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
1876 splitter): Require TARGET_SSE2 in the condition.
1877
1878 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
1879
1880 PR target/79799
1881 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
1882 for doing vector set of SFmode on ISA 3.0.
1883 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
1884 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
1885 element.
1886 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
1887 SFmode value into a V4SF variable that was extracted from another
1888 V4SF variable without converting the element to double precision
1889 and back to single precision vector format.
1890 (vsx_insert_extract_v4sf_p9_2): Likewise.
1891
1892 2017-06-19 Jakub Jelinek <jakub@redhat.com>
1893
1894 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
1895 in UWHI to avoid undefined overflow.
1896
1897 PR sanitizer/81125
1898 * ubsan.h (enum ubsan_encode_value_phase): New.
1899 (ubsan_encode_value): Change second argument to
1900 enum ubsan_encode_value_phase with default value of
1901 UBSAN_ENCODE_VALUE_GENERIC.
1902 * ubsan.c (ubsan_encode_value): Change second argument to
1903 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
1904 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
1905 create_tmp_var_raw instead of create_tmp_var and use a
1906 TARGET_EXPR.
1907 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
1908 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
1909 ubsan_encode_value callers.
1910
1911 PR sanitizer/81111
1912 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
1913 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
1914 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
1915
1916 2017-06-19 Richard Biener <rguenther@suse.de>
1917
1918 PR middle-end/81118
1919 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
1920 estimates if we changed anything.
1921
1922 2017-06-19 Richard Biener <rguenther@suse.de>
1923
1924 PR tree-optimization/80887
1925 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
1926 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
1927 simplified lookups, then reset mprts_hook.
1928 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
1929 simplifying.
1930 (try_to_simplify): Likewise.
1931
1932 2017-06-19 Martin Liska <mliska@suse.cz>
1933
1934 PR sanitizer/80879
1935 * gimplify.c (gimplify_switch_expr):
1936 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
1937
1938 2017-06-19 Martin Liska <mliska@suse.cz>
1939
1940 * doc/install.texi: Document that PGO runs in 4 stages.
1941
1942 2017-06-19 Martin Liska <mliska@suse.cz>
1943
1944 PR ipa/80732
1945 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
1946 to dispatcher function name.
1947 * multiple_target.c (replace_function_decl): New function.
1948 (create_dispatcher_calls): Redirect both edges and references.
1949
1950 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
1951
1952 * profile-count.c (profile_count::dump): Dump quality.
1953 (profile_count::differs_from_p): Update for unsigned val.
1954 * profile-count.h (profile_count_quality): New enum.
1955 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
1956
1957 2017-06-19 Richard Biener <rguenther@suse.de>
1958
1959 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
1960 struct function as arg.
1961 (estimate_numbers_of_iterations): Export overload with loop arg.
1962 (free_numbers_of_iterations_estimates_loop): Use an overload of
1963 free_numbers_of_iterations_estimates instead.
1964 * tree-cfg.c (remove_bb): Adjust.
1965 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
1966 * tree-parloops.c (gen_parallel_loop): Likewise.
1967 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
1968 Likewise.
1969 (tree_unroll_loops_completely): Likewise.
1970 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
1971 Use an overload instead and export.
1972 (estimated_loop_iterations): Adjust.
1973 (max_loop_iterations): Likewise.
1974 (likely_max_loop_iterations): Likewise.
1975 (estimate_numbers_of_iterations): Take struct function as arg
1976 and adjust.
1977 (loop_exits_before_overflow): Adjust.
1978 (free_numbers_of_iterations_estimates_loop): Use an overload.
1979 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
1980 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
1981
1982 2017-06-19 Richard Biener <rguenther@suse.de>
1983
1984 PR ipa/81112
1985 * ipa-prop.c (find_constructor_constant_at_offset): Handle
1986 RANGE_EXPR conservatively.
1987
1988 2017-06-16 Carl Love <cel@us.ibm.com>
1989
1990 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1991 definitions for vec_float, vec_float2, vec_floato,
1992 vec_floate built-ins.
1993 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
1994 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
1995 floate.
1996 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
1997 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
1998 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
1999 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
2000 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
2001 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
2002 vec_floato): Add builtin defines.
2003 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
2004 Update the built-in documentation file for the new built-in
2005 functions.
2006
2007 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2008
2009 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
2010 (mthumb): Mark as the negative of -marm.
2011
2012 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2013
2014 * doc/invoke.texi (ARM Options, -mcpu): Document supported
2015 extension options.
2016 (ARM Options, -mtune): Document that this accepts the same
2017 extension options as -mcpu.
2018 (ARM Options, -mfpu): Document addition of -mfpu=auto.
2019
2020 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2021
2022 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
2023 permitted extensions.
2024
2025 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2026
2027 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
2028 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
2029 (armv8-m.main): Add option +nodsp.
2030 * config/arm/arm-cpu-cdata.h: Regenerated.
2031
2032 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2033
2034 * config/arm/t-fuchsia: New file.
2035 * config.gcc (arm*-*-fuchsia*): Use it.
2036
2037 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2038
2039 * config/arm/t-symbian: Rewrite for new option infrastructure.
2040
2041 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2042
2043 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
2044 (MULTILIB_REQUIRED): Likewise.
2045
2046 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2047
2048 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
2049 (MULTILIB_RESUE): Likewise.
2050 (MULTILIB_MATCHES): Likewise.
2051 (MULTLIB_REQUIRED): Likewise.
2052
2053 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2054
2055 * config/arm/t-rtems: Rewrite for new option framework.
2056
2057 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2058
2059 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
2060 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
2061 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
2062 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
2063 * config/arm/t-multilib: ... here.
2064 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
2065 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
2066 armv7-a and armv8*-a when A-profile libraries have not been built.
2067 * config/arm/t-rmprofile: Rewrite.
2068
2069 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2070
2071 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
2072 with a backslash. Remove the backslash after substituting unescaped
2073 periods.
2074 * doc/fragments.texi (MULTILIB_REUSE): Document it.
2075
2076 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2077
2078 * config.gcc: (arm*-*-*): When building a-profile libraries, force
2079 the driver to pass through the default setting of -mfloat-abi.
2080 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
2081 rather than NULL.
2082 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
2083 (all_feat_combs): New rule.
2084 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
2085 default libraries.
2086 * config/arm/t-aprofile: Rewrite.
2087
2088 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2089
2090 * config/arm/arm.h (FPUTYPE_AUTO): Define.
2091 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
2092 fpu is not specified by the user/command-line.
2093 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
2094 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
2095 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
2096 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
2097 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
2098 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
2099
2100 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2101
2102 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
2103 * config/arm/t-arm-elf: Rewritten.
2104
2105 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2106
2107 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
2108 have some floating-point instructions.
2109 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
2110 (TARGET_MAYBE_HARD_FLOAT): New macro.
2111 * config/arm/arm-builtins.c (arm_init_builtins): Use
2112 TARGET_MAYBE_HARD_FLOAT.
2113 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
2114
2115 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2116
2117 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
2118 (configargs.h): Include it.
2119 (arm_print_hint_for_fpu_option): New function.
2120 (arm_parse_fpu_option): New function.
2121 (candidate_extension): New class.
2122 (arm_canon_for_multilib): New function.
2123 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
2124 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
2125 (ARCH_CANONICAL_SPECS): New macro.
2126 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
2127
2128 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2129
2130 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
2131 are set after handling multilib fragments. Set target_cpu_default2
2132 from with_cpu.
2133
2134 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2135
2136 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
2137 cpu name.
2138 (arm*-*-*): Set target_cpu_default2 to a quoted string.
2139 * config/arm/parsecpu.awk (check_cpu): Validate any extension
2140 options.
2141 (check_arch): Likewise.
2142 * config/arm/arm.c (arm_configure_build_target): Handle
2143 TARGET_CPU_DEFAULT being a string constant. Scan any feature
2144 options in the default.
2145
2146 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2147
2148 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
2149 when an option is an alias of another.
2150 * config/arm/parsecpu.awk (optalias): New parser token.
2151 (gen_comm_data): Mark non-alias options as such. Emit entries
2152 for extension aliases.
2153 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
2154 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
2155 (armv6kz, armv6zk, armv6t2): Likewise.
2156 (armv7): Make vfpv3-d16 an alias.
2157 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
2158 canonical order.
2159 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
2160 Sort in canonical order.
2161 (armv8-a): Sort in canonical order.
2162 (armv8.1-a, armv8.2-a): Likewise.
2163 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
2164 canonical order.
2165 (cortex-a9): Sort in canonical order.
2166 * config/arm/arm.c (selftests.h): Include it.
2167 (arm_test_cpu_arch_data): New function.
2168 (arm_run_self_tests): New function.
2169 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
2170 (targetm): Move declaration to the end of the file.
2171 * arm-cpu-cdata.h: Regenerated.
2172
2173 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2174
2175 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
2176 call to target_mode_check describing the type of option passed.
2177 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
2178 (arm_target_thumb_only): Use arm_parse_arch_option_name or
2179 arm_parse_cpu_option_name to match parameters against list of
2180 available targets.
2181 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
2182 arm_arch_core_flags data structure.
2183 * config/arm/arm-cpu_cdata.h: Regenerated.
2184
2185 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2186
2187 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
2188 config/arm/arm.c.
2189 (arm_print_hint_for_cpu_option): Likewise.
2190 (arm_print_hint_for_arch_option): Likewise.
2191 (arm_parse_cpu_option_name): Likewise.
2192 (arm_parse_arch_option_name): Likewise.
2193 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
2194 of entries in the all_fpus list.
2195 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
2196 (arm_parse_cpu_option_name): Declare.
2197 (arm_parse_arch_option_name): Declare.
2198 (arm_parse_option_features): Declare.
2199 (arm_intialize_isa): Declare.
2200 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
2201 data tables to ...
2202 (gen_comm_data): ... here. Make definitions non-static.
2203 * config/arm/arm-cpu-data.h: Regenerated.
2204 * config/arm/arm-cpu-cdata.h: Regenerated.
2205
2206 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2207
2208 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
2209 (cpu_arch_extension): New structure.
2210 (cpu_arch_option, arch_option, cpu_option): New structures.
2211 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
2212 architecture types.
2213 (gen_data): Generate new format data tables.
2214 * config/arm/arm.c (cpu_tune): New structure.
2215 (cpu_option, processors): Delete.
2216 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
2217 (arm_print_hint_for_cpu_option): ... this and ...
2218 (arm_print_hint_for_arch_option): ... this.
2219 (arm_parse_arch_cpu_name): Delete. Replace with ...
2220 (arm_parse_cpu_option_name): ... this and ...
2221 (arm_parse_arch_option_name): ... this.
2222 (arm_unrecognized_feature): Change type of target parameter to
2223 cpu_arch_option.
2224 (arm_parse_arch_cpu_features): Delete. Replace with ...
2225 (arm_parse_option_features): ... this.
2226 (arm_configure_build_target): Rework to use new configuration data
2227 tables.
2228 (arm_print_tune_info): Rework for new configuration data tables.
2229 * config/arm/arm-cpu-data.h: Regenerated.
2230 * config/arm/arm-cpu.h: Regenerated.
2231
2232 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2233
2234 * Makefile.in (OBJS): Move sbitmap.o from here ...
2235 (OBJS-libcommon): ... to here.
2236
2237 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2238
2239 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
2240 (ISA_ALL_CRYPTO): New macro.
2241 (ISA_ALL_SIMD): New macro
2242 (ISA_ALL_FP): New macro.
2243 * config/arm/arm.c (fpu_bitlist): Update initializer.
2244 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
2245 simd or fp.
2246 (arm9e): Add fpu. Add option for nofp
2247 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
2248 (arm926ej-s, arm1026ej-s): Likewise.
2249 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
2250 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
2251 neon-fp16, neon-vfpv4, nofp and nosimd.
2252 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
2253 (cortex-a8): Add fpu. Add option for nofp.
2254 (cortex-a9): Add fpu. Add options for nosimd and nofp.
2255 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
2256 (cortex-r4f): Add fpu.
2257 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
2258 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
2259 for nofp.
2260 (cortex-r8): Likewise.
2261 (cortex-m4): Add fpu. Add option for nofp.
2262 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
2263 (cortex-a17.cortex-a7): Likewise.
2264 (cortex-a32): Add fpu. Add options for crypto and nofp.
2265 (cortex-a35, cortex-a53): Likewise.
2266 (cortex-a57): Add fpu. Add option for crypto.
2267 (cortex-a72, cortex-a73): Likewise.
2268 (exynos-m1): Likewise.
2269 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
2270 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
2271 (cortex-m33): Add fpu. Add option for nofp.
2272 * config/arm/arm-cpu-cdata.h: Regenerated
2273 * config/arm/arm-cpu-data.h: Regenerated.
2274
2275 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2276
2277 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
2278 (armv5te, armv5tej): Likewise.
2279 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
2280 (armv7): Add options fp and vfpv3-d16.
2281 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
2282 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
2283 nofp and nosimd.
2284 (armv7ve): Likewise.
2285 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
2286 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
2287 (armv8-a): Add nocrypto option.
2288 (armv8.1-a, armv8.2-a): Likewise.
2289 (armv8-m.main): add options fp, fp.dp and nofp.
2290
2291 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2292
2293 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
2294 nofp.
2295 (armv8-a+crc): Delete.
2296 (armv8.1-a): Add options simd, crypto and nofp.
2297 (armv8.2-a): Add options fp16, simd, crypto and nofp.
2298 (armv8.2-a+fp16): Delete.
2299 (armv8-m.main): Add option dsp.
2300 (armv8-m.main+dsp): Delete.
2301 (cortex-a8): Add fpu. Add nofp option.
2302 (cortex-a9): Add fpu. Add nofp and nosimd options.
2303 * config/arm/parsecpu.awk (gen_data): Generate option tables and
2304 link to main cpu and architecture data structures.
2305 (gen_comm_data): Only put isa attributes from the main architecture
2306 in common tables.
2307 (option): New statement for architecture and CPU entries.
2308 * arm.c (struct cpu_option): New structure.
2309 (struct processors): Add entry for options.
2310 (arm_unrecognized_feature): New function.
2311 (arm_parse_arch_cpu_name): Ignore any characters after the first
2312 '+' character.
2313 (arm_parse_arch_cpu_feature): New function.
2314 (arm_configure_build_target): Separate out any CPU and architecture
2315 features and parse separately. Don't error out if -mfpu=auto is
2316 used with only an architecture string.
2317 (arm_print_asm_arch_directives): New function.
2318 (arm_file_start): Call it.
2319 * config/arm/arm-cpu-cdata.h: Regenerated.
2320 * config/arm/arm-cpu-data.h: Likewise.
2321 * config/arm/arm-tables.opt: Likewise.
2322
2323 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2324
2325 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
2326 assembler when it is not -mfpu=auto.
2327
2328 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2329
2330 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
2331 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
2332 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
2333 (ASM_CPU_SPEC): Rewrite.
2334 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
2335 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
2336 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
2337 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
2338 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
2339 copied string is NUL-terminated. Also strip any characters prefixed
2340 by '+'.
2341 (arm_rewrite_selected_arch): New function.
2342 (arm_rewrite_march): New function.
2343
2344 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
2345
2346 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
2347 (x_arm_cpu_string, x_arm_tune_string): Likewise.
2348 (march, mcpu, mtune): Convert to string-based options.
2349 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
2350 (arm_parse_arch_cpu_name): New function.
2351 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
2352 identify selected architecture or CPU.
2353 (arm_option_save): New function.
2354 (TARGET_OPTION_SAVE): Redefine.
2355 (arm_option_restore): Restore string options.
2356 (arm_option_print): Print string options.
2357
2358 2017-06-16 Martin Sebor <msebor@redhat.com>
2359
2360 PR tree-optimization/80933
2361 PR tree-optimization/80934
2362 * builtins.c (fold_builtin_3): Do not handle bcmp here.
2363 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
2364 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
2365 (gimple_fold_builtin): Call them.
2366
2367 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2368
2369 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
2370 as unlikely; update profile.
2371
2372 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2373
2374 * predict.c (force_edge_cold): Handle declaring edges impossible
2375 more aggresively.
2376
2377 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2378
2379 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
2380 profile.
2381 (try_unroll_loop_completely): Fix reporting.
2382
2383 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2384
2385 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
2386
2387 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
2388
2389 PR target/71778
2390 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
2391 if given a non-constant argument for an intrinsic which requires a
2392 constant.
2393
2394 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2395
2396 * profile.c (compare_freqs): New function.
2397 (branch_prob): Sort edge list.
2398 (find_spanning_tree): Assume that the list is priority sorted.
2399
2400 2017-06-16 Richard Biener <rguenther@suse.de>
2401
2402 PR tree-optimization/81090
2403 * passes.def (pass_record_bounds): Remove.
2404 * tree-pass.h (make_pass_record_bounds): Likewise.
2405 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
2406 make_pass_record_bounds): Likewise.
2407 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
2408 not free niter estimates at the beginning but at the end.
2409 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
2410
2411 2017-06-16 Richard Biener <rguenther@suse.de>
2412
2413 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
2414 initializer to workaround ICE in host GCC 4.8.
2415
2416 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
2417
2418 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
2419 counts.
2420 (clone_inlined_nodes): Update.
2421
2422 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2423
2424 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
2425 prefetch settings, and enable prefetching by default at -O3.
2426
2427 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2428
2429 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2430 Set flag_prefetch_loop_arrays according to tuning data.
2431
2432 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2433
2434 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
2435 New tune structure.
2436 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
2437 [Unrelated to main purpose of the patch] Place the pointer field last
2438 to enable type checking errors when tune structure are wrongly merged.
2439 * config/aarch64/aarch64.c (generic_prefetch_tune,)
2440 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
2441 (thunderx2t99_prefetch_tune): New tune constants.
2442 (tune_params *_tunings): Update all tunings (no functional change).
2443 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
2444 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
2445 from tunings structures.
2446
2447 2017-06-16 Jakub Jelinek <jakub@redhat.com>
2448
2449 PR sanitizer/81094
2450 * ubsan.c (instrument_null): Add T argument, use it instead
2451 of computing it based on IS_LHS.
2452 (instrument_object_size): Likewise.
2453 (pass_ubsan::execute): Adjust instrument_null and
2454 instrument_object_size callers to pass gimple_get_lhs or
2455 gimple_assign_rhs1 result to it. Use instrument_null instead of
2456 calling get_base_address and instrument_mem_ref. Handle
2457 aggregate call arguments for object-size sanitization.
2458
2459 2017-06-16 Yury Gribov <tetra2005@gmail.com>
2460
2461 PR tree-optimization/81089
2462 * tree-vrp.c (is_masked_range_test): Validate operands of
2463 subexpression.
2464
2465 2017-06-15 Martin Sebor <msebor@redhat.com>
2466
2467 PR c++/80560
2468 * dumpfile.c (dump_register): Avoid calling memset to initialize
2469 a class with a default ctor.
2470 * gcc.c (struct compiler): Remove const qualification.
2471 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
2472 * hash-table.h: Ditto.
2473 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
2474 assignment.
2475 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
2476 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
2477 default ctor.
2478 * params.h (struct param_info): Make struct members non-const.
2479 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
2480 with default initialization.
2481 * vec.h (vec_copy_construct, vec_default_construct): New helper
2482 functions.
2483 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
2484 with vec_copy_construct.
2485 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
2486 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
2487 * doc/invoke.texi (-Wclass-memaccess): Document.
2488
2489 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2490
2491 * emit-rtl.h (is_leaf): Update comment about local
2492 register allocator.
2493
2494 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
2495
2496 PR target/78818
2497 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
2498 for a variable to have a section before checking if the section has a
2499 name.
2500 Set section to.persistent if persistent attribute is set.
2501 Warn if .persistent attribute is used on an automatic variable.
2502
2503 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
2504
2505 PR rtl-optimization/80474
2506 * reorg.c (update_block): Do not ignore instructions in a delay slot.
2507
2508 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
2509
2510 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
2511 of REGNO.
2512
2513 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
2514
2515 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
2516 (casesi): Emit bounds checking as RTL.
2517 (casesi_internal_mips16_<mode>): Remove bounds checking.
2518
2519 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
2520
2521 * config/xtensa/xtensa.c (xtensa_option_override): Append
2522 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
2523 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
2524 xtensa_doloop_hooks): Define unconditionally.
2525 (xtensa_reorg_loops): Only call reorg_loops in the presence of
2526 TARGET_LOOPS.
2527 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
2528 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
2529 for it in xtensa_option_override.
2530 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
2531 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
2532
2533 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
2534
2535 * doc/cppopts.texi: Document '-' special value to -MF.
2536
2537 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
2538
2539 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
2540 (cortex_a53_fconst): Likewise.
2541 (cortex_a53_fpmul): Likewise.
2542 (cortex_a53_f_load_64): Likewise.
2543 (cortex_a53_f_load_many): Likewise.
2544 (cortex_a53_advsimd_alu): Likewise.
2545 (cortex_a53_advsimd_alu_q): Likewise.
2546 (cortex_a53_advsimd_mul): Likewise.
2547 (cortex_a53_advsimd_mul_q): Likewise.
2548 (fpmac bypass): Add new bypass for fpmac-fpmac case.
2549 Add missing fmul, r2f_cvt and fconst cases.
2550
2551 2017-06-14 Richard Biener <rguenther@suse.de>
2552
2553 PR middle-end/81088
2554 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
2555 literal constants.
2556 (fold_binary_loc): When associating do not treat pre-existing
2557 TREE_OVERFLOW on literal constants as a reason to allow
2558 TREE_OVERFLOW on associated literal constants.
2559
2560 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
2561
2562 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
2563 (MASK_FEATURES): New macro.
2564 * config/sparc/sparc.c (sparc_option_override): Remove the special
2565 handling of -mfpu and generalize it to all MASK_FEATURES switches.
2566
2567 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
2568
2569 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
2570 a division of 0 if non-call exceptions are enabled.
2571
2572 2017-06-14 Andrew Pinski <apinski@cavium.com>
2573 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
2574
2575 PR target/71663
2576 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
2577 Improve vector initialization code gen for only variable case.
2578
2579 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
2580
2581 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
2582
2583 2017-06-14 Richard Biener <rguenther@suse.de>
2584
2585 PR tree-optimization/81083
2586 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
2587 as values.
2588
2589 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2590
2591 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
2592 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
2593 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
2594 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
2595 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
2596 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
2597
2598 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2599
2600 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
2601 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
2602
2603 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2604
2605 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
2606
2607 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2608
2609 * config/rs6000/t-rtems: Don't handle SPE.
2610
2611 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2612
2613 * config/rs6000/t-linux: Don't handle SPE.
2614
2615 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2616
2617 * config/rs6000/eabispe.h: Delete file.
2618
2619 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2620
2621 * config/rs6000/t-spe: Delete file.
2622
2623 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2624
2625 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
2626 (rs6000_legitimate_offset_address_p): Return false for anything in
2627 V2SImode or V2SFmode.
2628
2629 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
2630
2631 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
2632 except V2SF and V2SI. Rearrange the vector modes, and add comments.
2633 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
2634 and V4HImode.
2635 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
2636 (rs6000_legitimate_offset_address_p): Ditto.
2637 (rs6000_emit_move): Ditto.
2638 (rs6000_init_builtins): Remove V4HI_type_node.
2639
2640 2017-06-13 Martin Liska <mliska@suse.cz>
2641
2642 PR sanitize/78204
2643 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
2644 (gate_asan): Likewise.
2645 * asan.h (asan_no_sanitize_address_p): Remove the function.
2646 (sanitize_flags_p): New function.
2647 * builtins.def: Fix coding style.
2648 * common.opt: Use renamed enum value.
2649 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
2650 * doc/extend.texi: Document no_sanitize attribute.
2651 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
2652 to SANITIZE_UNDEFINED_NONDEFAULT.
2653 * gcc.c (sanitize_spec_function): Use the renamed enum value.
2654 * gimple-fold.c (optimize_atomic_compare_exchange_p):
2655 Use sanitize_flags_p.
2656 * gimplify.c (gimplify_function_tree): Likewise.
2657 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
2658 * opts.c (parse_no_sanitize_attribute): New function.
2659 (common_handle_option): Use renamed enum value.
2660 * opts.h (parse_no_sanitize_attribute): Declare.
2661 * tree.c (sanitize_flags_p): New function.
2662 * tree.h: Declared here.
2663 * tsan.c: Use sanitize_flags_p.
2664 * ubsan.c (ubsan_expand_null_ifn): Likewise.
2665 (instrument_mem_ref): Likewise.
2666 (instrument_bool_enum_load): Likewise.
2667 (do_ubsan_in_current_function): Remove the function.
2668 (pass_ubsan::execute): Use sanitize_flags_p.
2669 * ubsan.h: Remove do_ubsan_in_current_function
2670 * tree-cfg.c (print_no_sanitize_attr_value): New function.
2671 (dump_function_to_file): Use it here.
2672
2673 2017-06-13 Martin Jambor <mjambor@suse.cz>
2674
2675 PR tree-optimization/80803
2676 PR tree-optimization/81063
2677 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
2678 (propagate_subaccesses_across_link): Enqueue subtree whenever
2679 necessary instead of relying on the caller.
2680
2681 2017-06-13 Martin Jambor <mjambor@suse.cz>
2682
2683 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
2684 that have a first_link.
2685 (sort_and_splice_var_accesses): Do not check first_link before
2686 enquing.
2687 (subtree_mark_written_and_enqueue): Likewise.
2688 (propagate_all_subaccesses): Likewise and do not stop at first
2689 parent with a first_link.
2690
2691 2017-06-13 Martin Jambor <mjambor@suse.cz>
2692
2693 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
2694 instead of f.
2695
2696 2017-06-13 Yury Gribov <tetra2005@gmail.com>
2697
2698 * match.pd: New pattern.
2699
2700 2017-06-13 Yury Gribov <tetra2005@gmail.com>
2701
2702 * tree-vrp.c (is_masked_range_test): New function.
2703 (register_edge_assert_for): Determine ranges for
2704 some bit tests.
2705
2706 2017-06-13 Yury Gribov <tetra2005@gmail.com>
2707
2708 PR tree-optimization/67328
2709 * fold-const.c (maskable_range_p): New function.
2710 (build_range_check): Generate bittests if possible.
2711
2712 2017-06-13 Martin Liska <mliska@suse.cz>
2713
2714 * gimple-pretty-print.c (dump_probability): Add new argument.
2715 (dump_edge_probability): Dump both probability and count.
2716 (dump_gimple_label): Likewise.
2717 (dump_gimple_bb_header): Likewise.
2718
2719 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
2720
2721 PR target/81072
2722 * config/avr/avr-devices.c: Fix indentation.
2723 * config/avr/gen-avr-mmcu-specs.c: Dito.
2724
2725 2017-06-13 Richard Biener <rguenther@suse.de>
2726
2727 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
2728 instead get vector type from stmt_info.
2729 (vectorizable_reduction): Adjust. Remove dead code.
2730
2731 2017-06-13 Richard Biener <rguenther@suse.de>
2732
2733 PR middle-end/81065
2734 * fold-const.c (extract_muldiv_1): Remove bogus distribution
2735 case of C * (x * C2 + C3).
2736 (fold_addr_of_array_ref_difference): Properly fold index difference.
2737
2738 2017-06-12 David S. Miller <davem@davemloft.net>
2739
2740 PR target/80968
2741 * config/sparc/sparc.md (return expander): Emit frame blockage if
2742 function uses alloca.
2743
2744 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
2745
2746 * combine.c (make_field_assignment): Check len rather than the mode
2747 precision when calling force_to_mode.
2748
2749 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
2750
2751 Support multilibs and devices that see flash in RAM address range.
2752
2753 PR target/81072
2754 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
2755 (avr_mcu_t) <flash_pm_offset>: New field.
2756 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
2757 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
2758 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
2759 (AVR_TINY_PM_OFFSET): Remove macro.
2760 * config/avr/avr.opt (-mshort-calls): New option.
2761 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
2762 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
2763 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
2764 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
2765 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
2766 instead of avr_arch->have_jmp_call.
2767 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
2768 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
2769 avr_arch->flash_pm_offset to define.
2770 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
2771 new field flash_pm_offset. Add entry for avrxmega3.
2772 (avr_texinfo): Add entry for avrxmega3.
2773 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
2774 attiny212, attiny214,
2775 attiny412, attiny414, attiny416, attiny417,
2776 attiny814, attiny816, attiny817,
2777 attiny1614, attiny1616, attiny1617,
2778 attiny3214, attiny3216, attiny3217.
2779 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
2780 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
2781 (avr_print_operand_address) [AVR_TINY]: Same.
2782 (avr_asm_init_sections) <readonly_data_section>: Only patch
2783 callback if avr_arch->flash_pm_offset = 0.
2784 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
2785 for rodata if avr_arch->flash_pm_offset != 0.
2786 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
2787 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
2788 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
2789 (m_options): Append opt_rcall.
2790 (m_dirnames): Append dir_rcall.
2791 * config/avr/t-multilib: Regenerate.
2792
2793 * configure.ac [target=avr]: Check whether avrxmega3 default
2794 linker description file works as needed.
2795 * configure: Regenerate.
2796 * doc/avr-mmcu.texi: Regenerate.
2797 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
2798 <__AVR_ARCH__>: Document avrxmega3 and 103.
2799 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
2800 <__AVR_SHORT_CALLS__>: Document it.
2801 <__AVR_PM_BASE_ADDRESS__>: Document it.
2802 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
2803 (AVR Variable Attributes) <progmem>: Document this is
2804 not needed for avrxmega3.
2805 (AVR Named Address Spaces) <__flash>: Dito.
2806
2807 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
2808
2809 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
2810
2811 2017-06-12 Doug Rupp <rupp@adacore.com>
2812
2813 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
2814 Append vxworks-stdint.h to the tm_file list.
2815 * config/vxworks-stdint.h: New file.
2816
2817 2017-06-12 Martin Liska <mliska@suse.cz>
2818
2819 PR tree-optimization/81041
2820 * tree-profile.c (gimple_gen_ic_func_profiler):
2821 Create an extra BB in profile-generate
2822 (gimple_gen_time_profiler): Likewise.
2823
2824 2017-06-12 Jakub Jelinek <jakub@redhat.com>
2825
2826 PR tree-optimization/81003
2827 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
2828 (update_range_test): Use it instead of force_gimple_operand_gsi.
2829
2830 2017-06-12 Richard Biener <rguenther@suse.de>
2831
2832 PR tree-optimization/81053
2833 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
2834 with backedge value not defined in loop. Simplify def stmt
2835 compute.
2836
2837 2017-06-11 Tom de Vries <tom@codesourcery.com>
2838
2839 PR target/79939
2840 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
2841 Return true.
2842 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
2843 nvptx_cannot_force_const_mem.
2844
2845 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2846
2847 * opts.c (finish_options): Move test for flag_split_stack after
2848 it has been initialized.
2849
2850 2017-06-11 Jason Merrill <jason@redhat.com>
2851
2852 * tree.h (id_equal): New.
2853 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
2854 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
2855 instead of strcmp of IDENTIFIER_POINTER.
2856
2857 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2858
2859 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
2860 (mark_all_inlined_calls_cdtor): Fix formating.
2861 (inline_transform): Rescale profile before inlining.
2862
2863 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2864
2865 * cgraph.h (cgraph_edge::clone): Update prototype.
2866 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
2867 (cgraph_node::create_clone): Update.
2868 (cgraph_node::create_version_clone): Update.
2869 * tree-inline.c (copy_bb): Update.
2870 (expand_call_inline): Update.
2871
2872 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
2873
2874 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
2875 factored out from ...
2876 (rs6000_emit_prologue): ... here.
2877
2878 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
2879
2880 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
2881 factored out from ...
2882 (rs6000_emit_prologue): ... here.
2883
2884 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2885
2886 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
2887 edge counts.
2888 (handle_missing_profiles): Fix computation of tp_first_run.
2889 (counts_to_freqs): Do not touch freqs when count is 0.
2890
2891 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
2892
2893 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
2894 profile.
2895
2896 2017-06-10 Tom de Vries <tom@codesourcery.com>
2897
2898 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
2899 attributes): Document signal effective target.
2900
2901 2017-06-10 Tom de Vries <tom@codesourcery.com>
2902
2903 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
2904 Document effective target stack_size.
2905
2906 2017-06-09 David Malcolm <dmalcolm@redhat.com>
2907
2908 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
2909 to the edit_context if they can be auto-applied.
2910
2911 2017-06-9 Ian Lance Taylor <iant@golang.org>
2912
2913 * opts.c (finish_options): If -fsplit-stack, disable implicit
2914 -forder-blocks-and-partition.
2915 * doc/invoke.texi (Optimize Options): Document that when using
2916 -fsplit-stack -forder-blocks-and-partition is not implicitly
2917 enabled.
2918
2919 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2920
2921 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
2922 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
2923 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
2924 * builtins.def (abort, trap, unreachable): Declare cold.
2925 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
2926 * tree-core.h (ECF_COLD): New.
2927 * tree.c (set_call_expr_flags): Handle ECF_COLD.
2928 (build_common_builtin_nodes): Mark unreachable and abort as cold.
2929
2930 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2931
2932 * predict.c (unlikely_executed_stmt_p): Cleanup.
2933
2934 2017-06-09 Richard Biener <rguenther@suse.de>
2935
2936 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
2937 model if the ref is always written to.
2938
2939 2017-06-09 Tamar Christina <tamar.christina@arm.com>
2940
2941 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
2942
2943 2017-06-09 Tamar Christina <tamar.christina@arm.com>
2944
2945 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
2946 than udiv.
2947
2948 2017-06-09 Tom de Vries <tom@codesourcery.com>
2949
2950 PR target/80855
2951 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
2952 "target cannot support label values" when encountering LABEL_REF.
2953
2954 2017-06-09 Martin Liska <mliska@suse.cz>
2955
2956 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
2957 (gimple_gen_ic_func_profiler): Emit direct comparison
2958 of __gcov_indirect_call_callee with NULL.
2959 (gimple_gen_time_profiler): Change probability from
2960 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
2961
2962 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2963
2964 * profile.c (edge_gcov_counts): Turn to pointer.
2965 (compute_branch_probabilities, compute_branch_probabilities): Update.
2966 (branch_prob): Do not clear edge_gcov_count.
2967 * profile.h (edge_gcov_counts): Turn to pointer.
2968 (edge_gcov_count): Update.
2969
2970 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
2971
2972 * gimple.h (gimple_check_failed): Mark cold.
2973
2974 2017-06-09 Richard Biener <rguenther@suse.de>
2975
2976 PR tree-optimization/66623
2977 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
2978 refactor check_reduction into two parts, properly computing
2979 whether we have to check reduction validity for outer loop
2980 vectorization.
2981
2982 2017-06-09 Richard Biener <rguenther@suse.de>
2983
2984 PR tree-optimization/79483
2985 * graphite-scop-detection.c (order): New global.
2986 (get_order): Compute bb to order mapping that satisfies code
2987 generation constraints.
2988 (cmp_pbbs): New helper.
2989 (build_scops): Start domwalk at entry block, sort generated
2990 pbbs.
2991
2992 2017-06-09 Richard Biener <rguenther@suse.de>
2993
2994 PR middle-end/81007
2995 * ipa-polymorphic-call.c
2996 (ipa_polymorphic_call_context::restrict_to_inner_class):
2997 Skip FIELD_DECLs with error_mark_node type.
2998 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
2999 last again.
3000
3001 2017-06-09 Martin Liska <mliska@suse.cz>
3002
3003 * predict.c (struct branch_predictor): New struct.
3004 (test_prediction_value_range): New test.
3005 (predict_c_tests): New function.
3006 * selftest-run-tests.c (selftest::run_tests): Run the function.
3007 * selftest.h: Declare new tests.
3008
3009 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
3010
3011 PR target/80966
3012 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
3013 gen_add3_insn did not fail.
3014 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
3015 r0, construct that number in a temporary reg and add that reg to r0.
3016 If asked to put the result in r0 as well, fail.
3017
3018 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
3019
3020 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3021 for early expansion of vec_eqv.
3022
3023 2017-06-08 Jakub Jelinek <jakub@redhat.com>
3024
3025 PR middle-end/81005
3026 * ubsan.c (instrument_null): Avoid pointless code temporary.
3027 (pass_ubsan::execute): Instrument aggregate arguments of calls.
3028
3029 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
3030
3031 PR target/81015
3032 Revert:
3033 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
3034
3035 PR target/59874
3036 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
3037 (*clzhi2): Ditto.
3038
3039 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3040
3041 * predict.c (unlikely_executed_edge_p): Move ahead.
3042 (probably_never_executed_edge_p): Use it.
3043
3044 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
3045
3046 PR middle-end/79988
3047 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
3048 gimple_call_builtin_p call.
3049
3050 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3051
3052 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
3053 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
3054 rtl_check_failed_type2, rtl_check_failed_code1,
3055 rtl_check_failed_code2, rtl_check_failed_code_mode,
3056 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
3057 rtvec_check_failed_bounds, rtl_check_failed_flag,
3058 _fatal_insn_not_found, _fatal_insn): Likewise.
3059 * tree.h (tree_contains_struct_check_failed,
3060 tree_check_failed, tree_not_check_failed,
3061 tree_class_check_failed, tree_range_check_failed,
3062 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
3063 tree_vec_elt_check_failed, phi_node_elt_check_failed,
3064 tree_operand_check_failed, omp_clause_check_failed,
3065 omp_clause_operand_check_failed, omp_clause_range_check_failed):
3066 Likewise.
3067
3068 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3069
3070 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
3071 flag_branch_probabilities.
3072 * ipa-inline.c (edge_badness): Likewise.
3073 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
3074 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
3075 * predict.c (maybe_hot_frequency_p): Likewise.
3076 (probably_never_executed): Likewise.
3077 * sched-ebb.c (schedule_ebbs): Likewise.
3078 * sched-rgn.c (find_single_block_region): Likewise.
3079 * tracer.c (tail_duplicate): Likewise.
3080
3081 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3082
3083 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
3084 longer requires x_flag_profile_use.
3085
3086 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3087
3088 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
3089 instead of flag_reorder_blocks_and_partition.
3090 * dbxout.c (dbxout_function_end): Likewise.
3091 * dwarf2out.c (gen_subprogram_die): Likewise.
3092 * haifa-sched.c (sched_create_recovery_edges): Likewise.
3093 * hw-doloop.c (reorg_loops): Likewise.
3094 * varasm.c (assemble_start_function,
3095 assemble_end_function): Likewise.
3096 (decide_function_section): Do not check for
3097 flag_reorder_blocks_and_partition.
3098
3099 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
3100
3101 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
3102 New function.
3103 (chkp_get_hard_register_fake_addr_expr): Ditto.
3104 (chkp_build_addr_expr): Add check for hard reg case.
3105 (chkp_parse_array_and_component_ref): Ditto.
3106 (chkp_find_bounds_1): Ditto.
3107 (chkp_process_stmt): Don't generate bounds store for
3108 hard reg case.
3109
3110 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3111
3112 * predict.c (maybe_hot_bb_p): Do not check profile status.
3113 (maybe_hot_edge_p): Likewise.
3114 (probably_never_executed): Check for zero counts even if profile
3115 is not read.
3116 (unlikely_executed_edge_p): New function.
3117 (unlikely_executed_stmt_p): New function.
3118 (unlikely_executed_bb_p): New function.
3119 (set_even_probabilities): Use unlikely predicates.
3120 (combine_predictions_for_bb): Likewise.
3121 (predict_paths_for_bb): Likewise.
3122 (predict_paths_leading_to_edge): Likewise.
3123 (determine_unlikely_bbs): New function.
3124 (estimate_bb_frequencies): Use it.
3125 (compute_function_frequency): Use zero counts even if profile is
3126 not read.
3127 * profile-count.h: Fix typo.
3128
3129 2017-08-08 Julia Koval <julia.koval@intel.com>
3130
3131 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
3132 _mm512_mask_cvtsepi16_storeu_epi8,
3133 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
3134 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
3135 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
3136 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
3137 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
3138 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
3139 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
3140 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
3141 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
3142 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
3143 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
3144 __builtin_ia32_pmovuswb256mem_mask,
3145 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
3146 __builtin_ia32_pmovwb512mem_mask): New builtins.
3147
3148 2017-08-08 Julia Koval <julia.koval@intel.com>
3149
3150 PR target/73350,80862
3151 * config/i386/subst.md (round): Fix round pattern.
3152 * config/i386/i386.c (ix86_erase_embedded_rounding):
3153 Fix erasing rounding for the fixed pattern.
3154
3155 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
3156
3157 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
3158
3159 2017-06-08 Martin Liska <mliska@suse.cz>
3160
3161 PR gcov-profile/80911
3162 * gcov.c (block_info::block_info): New constructor.
3163
3164 2017-06-07 Carl Love <cel@us.ibm.com>
3165
3166 * config/rs6000/rs6000-c: The return type of the following
3167 built-in functions was implemented as int not long long. Fix sign
3168 of return value for the unsigned version of vec_mulo and vec_mule.
3169 vector unsigned long long vec_bperm (vector unsigned long long,
3170 vector unsigned char)
3171 vector signed long long vec_mule (vector signed int,
3172 vector signed int)
3173 vector unsigned long long vec_mule (vector unsigned int,
3174 vector unsigned int)
3175 vector signed long long vec_mulo (vector signed int,
3176 vector signed int)
3177 vector unsigned long long vec_mulo (vector unsigned int,
3178 vector unsigned int)
3179 * doc/extend.texi: Fix the documentation for the built-in
3180 functions.
3181
3182 2017-06-07 Carl Love <cel@us.ibm.com>
3183
3184 PR target/80982
3185 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
3186 for BE.
3187
3188 2017-06-07 Carl Love <cel@us.ibm.com>
3189
3190 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
3191 support, Generate doublehv for signed int/float for BE case only.
3192
3193 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
3194
3195 * doc/invoke.texi (mcx16): Rewrite.
3196
3197 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3198
3199 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
3200 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
3201 *mov<mode>_softfloat, and an anonymous splitter): Use
3202 nonimmediate_operand instead of rs6000_nonimmediate_operand.
3203
3204 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3205
3206 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
3207 SPEFSCR registers.
3208 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
3209 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
3210 (rs6000_debug_reg_global): Adjust.
3211 (rs6000_init_hard_regno_mode_ok): Adjust.
3212 (rs6000_dbx_register_number): Adjust.
3213 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
3214 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3215 Remove SPE_ACC and SPEFSCR.
3216 (REG_ALLOC_ORDER): Ditto.
3217 (FRAME_POINTER_REGNUM): Change to 111.
3218 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
3219 (REG_CLASS_NAMES): Ditto.
3220 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
3221 (REGISTER_NAMES): Ditto.
3222 (ADDITIONAL_REG_NAMES): Ditto.
3223 (rs6000_reg_names): Ditto.
3224 * config/rs6000/rs6000.md: Renumber some register number
3225 define_constants.
3226
3227 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3228
3229 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
3230 registers.
3231 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
3232 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
3233 to 117.
3234 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
3235 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
3236 Delete the SPE high registers.
3237 (REG_ALLOC_ORDER): Ditto.
3238 (enum reg_class): Remove SPE_HIGH_REGS.
3239 (REG_CLASS_NAMES): Ditto.
3240 (REG_CLASS_CONTENTS): Delete the SPE high registers.
3241 (REGISTER_NAMES): Ditto.
3242 (rs6000_reg_names): Ditto.
3243 * doc/tm.texi.in: Remove SPE as example.
3244 * doc/tm.texi: Regenerate.
3245
3246 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3247
3248 * config/rs6000/8540.md (ppc8540_brinc): Delete.
3249 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
3250 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
3251 * config/rs6000/rs6000.md (type): Remove "brinc".
3252
3253 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3254
3255 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
3256 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
3257 * config/rs6000/linuxspe.h: Delete file.
3258 * config/rs6000/rs6000.md: Don't include spe.md.
3259 * config/rs6000/spe.h: Delete file.
3260 * config/rs6000/spe.md: Delete file.
3261 * config/rs6000/t-rs6000: Remove spe.md.
3262
3263 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3264
3265 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
3266 (reg_or_none500mem_operand): Delete.
3267 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
3268 instead of reg_or_none500mem_operand.
3269
3270 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3271
3272 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
3273 handling of SPE flags.
3274 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
3275
3276 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3277
3278 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
3279 SPE ABI handling.
3280 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
3281 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
3282 paired_divv2sf3): Similar.
3283 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
3284 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
3285 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
3286 RS6000_BUILTIN_S.
3287 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
3288 Rename the paired_* instruction patterns.
3289 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
3290 define __SPE__.
3291 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
3292 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
3293 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
3294 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
3295 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
3296 PAIRED_VECTOR_MODE.
3297 (struct machine_function): Delete field spe_insn_chain_scanned_p.
3298 (spe_func_has_64bit_regs_p): Delete.
3299 (spe_expand_predicate_builtin): Delete.
3300 (spe_expand_evsel_builtin): Delete.
3301 (TARGET_DWARF_REGISTER_SPAN): Do not define.
3302 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
3303 (invalid_e500_subreg): Delete.
3304 (rs6000_legitimize_address): Always force_reg op2 as well, for
3305 paired single memory accesses.
3306 (rs6000_member_type_forces_blk): Delete.
3307 (rs6000_spe_function_arg): Delete.
3308 (rs6000_expand_unop_builtin): Delete SPE handling.
3309 (rs6000_expand_binop_builtin): Ditto.
3310 (spe_expand_stv_builtin): Delete.
3311 (bdesc_2arg_spe): Delete.
3312 (spe_expand_builtin): Delete.
3313 (spe_expand_predicate_builtin): Delete.
3314 (spe_expand_evsel_builtin): Delete.
3315 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
3316 (spe_init_builtins): Delete.
3317 (spe_func_has_64bit_regs_p): Delete.
3318 (savres_routine_name): Delete "info" parameter. Adjust callers.
3319 (rs6000_emit_stack_reset): Ditto.
3320 (rs6000_dwarf_register_span): Delete.
3321 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
3322 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
3323 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
3324 Delete.
3325 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
3326 Delete.
3327 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
3328 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
3329 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
3330 mulv2sf3, divv2sf3): Delete expanders.
3331
3332 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3333
3334 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
3335
3336 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3337
3338 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
3339 * config/rs6000/rs6000.c: Ditto.
3340
3341 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3342
3343 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
3344 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
3345 comparison_operator.
3346
3347 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3348
3349 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
3350 * config/rs6000/rs6000.opt: Ditto.
3351 * config/rs6000/t-rtems: Ditto.
3352
3353 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3354
3355 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
3356 TARGET_E500_SINGLE by 0, simplify.
3357 * config/rs6000/rs6000.c: Ditto.
3358 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
3359 (spe_build_register_parallel): Delete.
3360 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
3361 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
3362 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
3363 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
3364 (E500_CONVERT): Delete.
3365 * config/rs6000/spe.md: Remove many patterns and all define_constants.
3366
3367 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
3368
3369 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
3370 * config/rs6000/dfp.md: Ditto.
3371 (negdd2, *negdd2_fpr): Merge.
3372 (absdd2, *absdd2_fpr): Merge.
3373 (negtd2, *negtd2_fpr): Merge.
3374 (abstd2, *abstd2_fpr): Merge.
3375 * config/rs6000/e500.h: Delete file.
3376 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
3377 TARGET_FPRS by 1 and simplify.
3378 * config/rs6000/rs6000-c.c: Ditto.
3379 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
3380 TARGET_DF_SPE by 0.
3381 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
3382 TARGET_DF_SPE.
3383 * config/rs6000/rs6000.md: Ditto.
3384 (floatdidf2, *floatdidf2_fpr): Merge.
3385 (move_from_CR_gt_bit): Delete.
3386 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
3387 (E500_CR_IOR_COMPARE): Delete.
3388 (All patterns that require !TARGET_FPRS): Delete.
3389 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
3390
3391 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3392
3393 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
3394
3395 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3396
3397 * graphds.c (add_edge): Intitialize edge's attached data.
3398 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
3399 pointer parameter. Call pointed function on each edge during
3400 graph traversing. Skip traversing the edge when the function
3401 returns true.
3402 (graphds_dfs, graphds_scc): Ditto.
3403 (for_each_edge): New parameter. Pass the new parameter to callback
3404 function.
3405 * graphds.h (skip_edge_callback): New function pointer type.
3406 (graphds_dfs, graphds_scc): New function pointer parameter.
3407 (graphds_edge_callback, for_each_edge): New parameter.
3408
3409 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3410
3411 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
3412 out code checking if runtime alias check is possible to below ...
3413 Call the new function.
3414 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
3415 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
3416
3417 2017-06-07 Marek Polacek <polacek@redhat.com>
3418
3419 PR sanitizer/80932
3420 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
3421 TYPE_OVERFLOW_WRAPS check.
3422
3423 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3424
3425 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
3426 if versioning is required.
3427 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
3428 peeling with the check for versioning.
3429
3430 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3431
3432 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
3433 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
3434 Set true to new parameter if new ssa variable is defined.
3435 (vect_gen_vector_loop_niters): Refactor. Set range information
3436 for the new vector loop bound variable.
3437 (vect_do_peeling): Ditto.
3438
3439 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3440
3441 * tree-affine.c (ssa.h): Include header file.
3442 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
3443 has wrapping overflow behavior.
3444
3445 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3446
3447 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
3448
3449 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3450
3451 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
3452 (tree_to_aff_combination): ... here.
3453
3454 2017-06-07 Bin Cheng <bin.cheng@arm.com>
3455
3456 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
3457 reg_pressure model function.
3458 (ivopts_global_cost_for_size): Delete.
3459 (determine_set_costs, iv_ca_recount_cost): Call new model function
3460 ivopts_estimate_reg_pressure.
3461
3462 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3463
3464 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
3465 expensive than udiv. Remove floating point cases from mod.
3466
3467 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3468
3469 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
3470 Increase idiv cost.
3471
3472 2017-06-07 Tamar Christina <tamar.christina@arm.com>
3473
3474 * config/aarch64/aarch64.md
3475 (copysignsf3): Fix mask generation.
3476
3477 2017-06-07 Jakub Jelinek <jakub@redhat.com>
3478
3479 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
3480 TDI_gimple.
3481 (class dump_manager): Add register_dumps method.
3482 * dumpfile.c: Include langhooks.h.
3483 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
3484 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
3485 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
3486 (dump_manager::dump_register): Start with 512 entries instead of 32.
3487 (dump_manager::register_dumps): New method.
3488 * toplev.c (general_init): Instead of invoking register_dumps
3489 langhook, invoke register_dumps method on the dump manager.
3490 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
3491 TDI_generic.
3492
3493 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
3494
3495 * doc/md.texi: Clarify the restrictions on a define_insn condition.
3496 Say that # requires an associated define_split to exist, and that
3497 the define_split must be suitable for use after register allocation.
3498
3499 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3500
3501 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
3502 (compute_outgoing_frequencies): Also initialize zero counts.
3503 (find_many_sub_basic_blocks): Do not produce uninitialized profile
3504 around loops; preserve more of profile when nothing changes.
3505
3506 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
3507
3508 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
3509 here.
3510 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
3511 * config/arm/arm-cpu-cdata.h: Regenerate.
3512 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
3513 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
3514 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
3515 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
3516 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
3517 support.
3518 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
3519 support.
3520 * config/arm/t-rmprofile: Likewise.
3521 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
3522
3523 2017-06-06 David S. Miller <davem@davemloft.net>
3524
3525 PR target/80968
3526 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
3527 blockage if function uses alloca.
3528
3529 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3530
3531 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
3532 New "uid" fields to hold pretty-print IDs of group and ref.
3533 Memory references are now identified as <group_id>:<ref_id>
3534 instead of using [random] addresses.
3535 (dump_mem_details): Simplify, no functional change.
3536 (dump_mem_ref): Simplify and make output more concise.
3537 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
3538 (find_or_create_group): Initialize group uid.
3539 (record_ref): Initialize ref uid. Improve debug output.
3540 (prune_group_by_reuse, should_issue_prefetch_p,)
3541 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
3542 (mark_nontemporal_store, determine_loop_nest_reuse):
3543 Improve debug output.
3544
3545 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
3546
3547 * dbgcnt.def (prefetch): New debug counter.
3548 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
3549 (schedule_prefetches): Stop issueing prefetches if debug counter
3550 tripped.
3551
3552 2017-06-06 Tom de Vries <tom@codesourcery.com>
3553
3554 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
3555 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
3556
3557 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3558
3559 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
3560 Use aarch64_reg_or_zero predicate for operand 4.
3561 (aarch64_compare_and_swap<mode> define_insn_and_split):
3562 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
3563 (aarch64_store_exclusive<mode>): Likewise for operand 2.
3564
3565 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
3566
3567 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
3568 (arm_compute_save_core_reg_mask): This.
3569 (thumb1_compute_save_reg_mask): Rename into ...
3570 (thumb1_compute_save_core_reg_mask): This.
3571 (arm_compute_save_reg0_reg12_mask): Adapt comment.
3572 (arm_compute_frame_layout): Likewise.
3573
3574 2017-06-06 Richard Biener <rguenther@suse.de>
3575
3576 PR tree-optimization/80974
3577 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
3578 keep or clear leaders SSA info.
3579
3580 2017-06-06 Tom de Vries <tom@codesourcery.com>
3581
3582 * config/nvptx/nvptx.c (split_mode_p): New function.
3583 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
3584
3585 2017-06-06 Tom de Vries <tom@codesourcery.com>
3586
3587 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
3588
3589 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3590
3591 PR bootstrap/80978
3592 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
3593 profile.
3594
3595 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3596
3597 * shrink-wrap.c (handle_simple_exit): Update profile.
3598 (try_shrink_wrapping): Upate profile.
3599
3600 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3601
3602 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
3603 (tree_guess_outgoing_edge_probabilities): New.
3604 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
3605 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
3606
3607 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3608
3609 * ipa-split.c (split_function): Initialize return bb profile.
3610
3611 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
3612
3613 * profile.c (compute_branch_probabilities): Also initialize
3614 EXIT_BLOCK profile.
3615
3616 2017-06-06 Richard Biener <rguenther@suse.de>
3617
3618 PR tree-optimization/80928
3619 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
3620 (vect_analyze_loop_operations): Properly guard analysis for
3621 pure SLP case.
3622 (vect_transform_loop): Likewise.
3623 (vect_analyze_loop_2): Also reset SLP type on PHIs.
3624 (vect_model_induction_cost): Do not cost for pure SLP.
3625 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
3626 of induction in inner loop vectorization.
3627 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
3628 (vect_get_and_check_slp_defs): Handle vect_induction_def.
3629 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
3630 recursion.
3631 (vect_analyze_slp_cost_1): Cost induction.
3632 (vect_detect_hybrid_slp_stmts): Handle PHIs.
3633 (vect_get_slp_vect_defs): Likewise.
3634 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
3635 (vect_transform_stmt): Handle SLP reductions.
3636 * tree-vectorizer.h (vectorizable_induction): Adjust.
3637
3638 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3639
3640 * config/rs6000/rs6000.c (make_resolver_func): Update
3641 init_lowered_empty_function call.
3642
3643 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
3644
3645 * doc/invoke.texi: Document the -fprofile-abs-path option.
3646 * common.opt (fprofile-abs-path): New option.
3647 * gcov-io.h (gcov_write_filename): Declare.
3648 * gcov-io.c (gcov_write_filename): New function.
3649 * coverage.c (coverage_begin_function): Use gcov_write_filename.
3650 * profile.c (output_location): Likewise.
3651
3652 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3653
3654 * shring-wrap.c: Revert accidental commit.
3655
3656 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
3657
3658 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
3659
3660 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3661
3662 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
3663 new edge.
3664 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
3665 profile in callgraph edge.
3666 * profile-count.h (apply_probability): If THIS is 0, then result is 0
3667 (apply_scale): Likewise.
3668 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
3669 Also scale profile when inlining function with zero profile.
3670 (initialize_cfun): Update exit block profile even when it is zero.
3671 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
3672 when profile is read.
3673
3674 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3675
3676 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
3677 (CLONE_*): New constants to define the processors we can generate
3678 code for with the target_clone attribute.
3679 (rs6000_clone_map): New array to identify which clone processors
3680 the current program is running on.
3681 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
3682 target_clone attribute.
3683 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
3684 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
3685 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
3686 (cpu_expand_builtin): Add support for target_clone attribute.
3687 (rs6000_valid_attribute_p): Allow "default" attribute.
3688 (get_decl_name): New debug function to simplify printing the
3689 current function name in debugging statements.
3690 (rs6000_clone_priority): New functions to support the target_clone
3691 attribute, and be able to generate code to switch between ISA 2.05
3692 through ISA 3.0 (power6 through power9).
3693 (rs6000_compare_version_priority): Likewise.
3694 (rs6000_get_function_versions_dispatcher): Likewise.
3695 (make_resolver_func): Likewise.
3696 (add_condition_to_bb): Likewise.
3697 (dispatch_function_versions): Likewise.
3698 (rs6000_generate_version_dispatcher_body): Likewise.
3699 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
3700 (fusion_gpr_load_p): Fix a spacing issue.
3701 * doc/extend.texi (Common Function Attributes): Document that the
3702 PowerPC supports the target_clone attribute.
3703
3704 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
3705
3706 * config/arm/arm.h: explain F symbol found in description of ARM
3707 register allocation in its legend.
3708
3709 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3710
3711 * config/mips/frame-header-opt.c: Include profile-count.h.
3712 * config/riscv/riscv.c: Include profile-count.h
3713
3714 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
3715
3716 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
3717 update profile.
3718 (sm_set_flag_if_changed): Add bbs field.
3719 (execute_sm_if_changed_flag_set): Pass BBS.
3720 (execute_sm): Update.
3721
3722 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3723
3724 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
3725 New pattern.
3726
3727 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3728
3729 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
3730 (peephole2): New peephole2 to emit the above.
3731 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
3732
3733 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3734
3735 * config/aarch64/aarch64.c (define_peephole2 above
3736 *sub_<shift>_<mode>): New peephole.
3737
3738 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
3739
3740 * config/i386/i386.c (make_resolver_func): Update.
3741 * Makefile.in: Add profile-count.h and profile-count.o
3742 * auto-profile.c (afdo_indirect_call): Update to new API.
3743 (afdo_set_bb_count): Update.
3744 (afdo_propagate_edge): Update.
3745 (afdo_propagate_circuit): Update.
3746 (afdo_calculate_branch_prob): Update.
3747 (afdo_annotate_cfg): Update.
3748 * basic-block.h: Include profile-count.h
3749 (struct edge_def): Turn count to profile_count.
3750 (struct basic_block_def): Likewie.
3751 (REG_BR_PROB_BASE): Move to profile-count.h
3752 (RDIV): Move to profile-count.h
3753 * bb-reorder.c (max_entry_count): Turn to profile_count.
3754 (find_traces): Update.
3755 (rotate_loop):Update.
3756 (connect_traces):Update.
3757 (sanitize_hot_paths):Update.
3758 * bt-load.c (migrate_btr_defs): Update.
3759 * cfg.c (RDIV): Remove.
3760 (init_flow): Use alloc_block.
3761 (alloc_block): Uninitialize count.
3762 (unchecked_make_edge): Uninitialize count.
3763 (check_bb_profile): Update.
3764 (dump_edge_info): Update.
3765 (dump_bb_info): Update.
3766 (update_bb_profile_for_threading): Update.
3767 (scale_bbs_frequencies_int): Update.
3768 (scale_bbs_frequencies_gcov_type): Update.
3769 (scale_bbs_frequencies_profile_count): New.
3770 * cfg.h (update_bb_profile_for_threading): Update.
3771 (scale_bbs_frequencies_profile_count): Declare.
3772 * cfgbuild.c (compute_outgoing_frequencies): Update.
3773 (find_many_sub_basic_blocks): Update.
3774 * cfgcleanup.c (try_forward_edges): Update.
3775 (try_crossjump_to_edge): Update.
3776 * cfgexpand.c (expand_gimple_tailcall): Update.
3777 (construct_exit_block): Update.
3778 * cfghooks.c (verify_flow_info): Update.
3779 (dump_bb_for_graph): Update.
3780 (split_edge): Update.
3781 (make_forwarder_block): Update.
3782 (duplicate_block): Update.
3783 (account_profile_record): Update.
3784 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
3785 (get_estimated_loop_iterations): Update.
3786 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
3787 (single_likely_exit): Update.
3788 * cfgloopmanip.c (scale_loop_profile): Update.
3789 (loopify): Update.
3790 (set_zero_probability): Update.
3791 (lv_adjust_loop_entry_edge): Update.
3792 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
3793 (purge_dead_edges): Update.
3794 (rtl_account_profile_record): Update.
3795 * cgraph.c (cgraph_node::create): Uninitialize count.
3796 (symbol_table::create_edge): Uninitialize count.
3797 (cgraph_update_edges_for_call_stmt_node): Update.
3798 (cgraph_edge::dump_edge_flags): Update.
3799 (cgraph_node::dump): Update.
3800 (cgraph_edge::maybe_hot_p): Update.
3801 * cgraph.h: Include profile-count.h
3802 (create_clone), create_edge, create_indirect_edge): Update.
3803 (cgraph_node): Turn count to profile_count.
3804 (cgraph_edge0: Likewise.
3805 (make_speculative, clone): Update.
3806 (create_edge): Update.
3807 (init_lowered_empty_function): Update.
3808 * cgraphclones.c (cgraph_edge::clone): Update.
3809 (duplicate_thunk_for_node): Update.
3810 (cgraph_node::create_clone): Update.
3811 * cgraphunit.c (cgraph_node::analyze): Update.
3812 (cgraph_node::expand_thunk): Update.
3813 * final.c (dump_basic_block_info): Update.
3814 * gimple-streamer-in.c (input_bb): Update.
3815 * gimple-streamer-out.c (output_bb): Update.
3816 * graphite.c (print_global_statistics): Update.
3817 (print_graphite_scop_statistics): Update.
3818 * hsa-brig.c: Include basic-block.h.
3819 * hsa-dump.c: Include basic-block.h.
3820 * hsa-gen.c (T sum_slice): Update.
3821 (convert_switch_statements):Update.
3822 * hsa-regalloc.c: Include basic-block.h.
3823 * ipa-chkp.c (chkp_produce_thunks): Update.
3824 * ipa-cp.c (struct caller_statistics): Update.
3825 (init_caller_stats): Update.
3826 (gather_caller_stats): Update.
3827 (ipcp_cloning_candidate_p): Update.
3828 (good_cloning_opportunity_p): Update.
3829 (get_info_about_necessary_edges): Update.
3830 (dump_profile_updates): Update.
3831 (update_profiling_info): Update.
3832 (update_specialized_profile): Update.
3833 (perhaps_add_new_callers): Update.
3834 (decide_about_value): Update.
3835 (ipa_cp_c_finalize): Update.
3836 * ipa-devirt.c (struct odr_type_warn_count): Update.
3837 (struct decl_warn_count): Update.
3838 (struct final_warning_record): Update.
3839 (possible_polymorphic_call_targets): Update.
3840 (ipa_devirt): Update.
3841 * ipa-fnsummary.c (redirect_to_unreachable): Update.
3842 * ipa-icf.c (sem_function::merge): Update.
3843 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
3844 * ipa-inline.c (compute_uninlined_call_time): Update.
3845 (compute_inlined_call_time): Update.
3846 (want_inline_small_function_p): Update.
3847 (want_inline_self_recursive_call_p): Update.
3848 (edge_badness): Update.
3849 (lookup_recursive_calls): Update.
3850 (recursive_inlining): Update.
3851 (inline_small_functions): Update.
3852 (dump_overall_stats): Update.
3853 (dump_inline_stats): Update.
3854 * ipa-profile.c (ipa_profile_generate_summary): Update.
3855 (ipa_propagate_frequency): Update.
3856 (ipa_profile): Update.
3857 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
3858 * ipa-utils.c (ipa_merge_profiles): Update.
3859 * loop-doloop.c (doloop_modify): Update.
3860 * loop-unroll.c (report_unroll): Update.
3861 (unroll_loop_runtime_iterations): Update.
3862 * lto-cgraph.c (lto_output_edge): Update.
3863 (lto_output_node): Update.
3864 (input_node): Update.
3865 (input_edge): Update.
3866 (merge_profile_summaries): Update.
3867 * lto-streamer-in.c (input_cfg): Update.
3868 * lto-streamer-out.c (output_cfg): Update.
3869 * mcf.c (create_fixup_graph): Update.
3870 (adjust_cfg_counts): Update.
3871 (sum_edge_counts): Update.
3872 * modulo-sched.c (sms_schedule): Update.
3873 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
3874 * predict.c (maybe_hot_count_p): Update.
3875 (probably_never_executed): Update.
3876 (dump_prediction): Update.
3877 (combine_predictions_for_bb): Update.
3878 (propagate_freq): Update.
3879 (handle_missing_profiles): Update.
3880 (counts_to_freqs): Update.
3881 (rebuild_frequencies): Update.
3882 (force_edge_cold): Update.
3883 * predict.h: Include profile-count.h
3884 (maybe_hot_count_p, counts_to_freqs): UPdate.
3885 * print-rtl-function.c: Do not include cfg.h
3886 * print-rtl.c: Include basic-block.h
3887 * profile-count.c: New file.
3888 * profile-count.h: New file.
3889 * profile.c (is_edge_inconsistent): Update.
3890 (correct_negative_edge_counts): Update.
3891 (is_inconsistent): Update.
3892 (set_bb_counts): Update.
3893 (read_profile_edge_counts): Update.
3894 (compute_frequency_overlap): Update.
3895 (compute_branch_probabilities): Update; Initialize and deinitialize
3896 gcov_count tables.
3897 (branch_prob): Update.
3898 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
3899 (edge_gcov_count): New.
3900 (bb_gcov_count): New.
3901 * shrink-wrap.c (try_shrink_wrapping): Update.
3902 * tracer.c (better_p): Update.
3903 * trans-mem.c (expand_transaction): Update.
3904 (ipa_tm_insert_irr_call): Update.
3905 (ipa_tm_insert_gettmclone_call): Update.
3906 * tree-call-cdce.c: Update.
3907 * tree-cfg.c (gimple_duplicate_sese_region): Update.
3908 (gimple_duplicate_sese_tail): Update.
3909 (gimple_account_profile_record): Update.
3910 (execute_fixup_cfg): Update.
3911 * tree-inline.c (copy_bb): Update.
3912 (copy_edges_for_bb): Update.
3913 (initialize_cfun): Update.
3914 (freqs_to_counts): Update.
3915 (copy_cfg_body): Update.
3916 (expand_call_inline): Update.
3917 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
3918 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
3919 (try_unroll_loop_completely): Update.
3920 (try_peel_loop): Update.
3921 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
3922 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
3923 * tree-ssa-loop-split.c (connect_loops): Update.
3924 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
3925 * tree-ssa-reassoc.c (branch_fixup): Update.
3926 * tree-ssa-tail-merge.c (replace_block_by): Update.
3927 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
3928 (compute_path_counts): Update.
3929 (update_profile): Update.
3930 (recompute_probabilities): Update.
3931 (update_joiner_offpath_counts): Update.
3932 (estimated_freqs_path): Update.
3933 (freqs_to_counts_path): Update.
3934 (clear_counts_path): Update.
3935 (ssa_fix_duplicate_block_edges): Update.
3936 (duplicate_thread_path): Update.
3937 * tree-switch-conversion.c (case_bit_test_cmp): Update.
3938 (struct switch_conv_info): Update.
3939 * tree-tailcall.c (decrease_profile): Update.
3940 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
3941 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
3942 * value-prof.c (check_counter): Update.
3943 (gimple_divmod_fixed_value): Update.
3944 (gimple_mod_pow2): Update.
3945 (gimple_mod_subtract): Update.
3946 (gimple_ic_transform): Update.
3947 (gimple_stringop_fixed_value): Update.
3948 * value-prof.h (gimple_ic): Update.
3949
3950 2017-06-02 Carl Love <cel@us.ibm.com>
3951
3952 * config/rs6000/rs6000-c: Add support for built-in functions
3953 vector double vec_doublee (vector signed int);
3954 vector double vec_doublee (vector unsigned int);
3955 vector double vec_doublee (vector float);
3956 vector double vec_doubleh (vector signed int);
3957 vector double vec_doubleh (vector unsigned int);
3958 vector double vec_doubleh (vector float);
3959 vector double vec_doublel (vector signed int);
3960 vector double vec_doublel (vector unsigned int);
3961 vector double vec_doublel (vector float);
3962 vector double vec_doubleo (vector signed int);
3963 vector double vec_doubleo (vector unsigned int);
3964 vector double vec_doubleo (vector float);.
3965 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
3966 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
3967 UNS_DOUBLEL.
3968 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
3969 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
3970 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
3971 VS_sxwsp.
3972 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
3973 vec_doublel, vec_doubleh.
3974 * doc/extend.texi: Update the built-in documentation file for the
3975 new built-in functions.
3976
3977 2017-06-02 David Malcolm <dmalcolm@redhat.com>
3978
3979 PR jit/80954
3980 * ipa-inline-analysis.c (free_growth_caches): Set
3981 edge_removal_hook_holder to NULL after removing it.
3982
3983 2017-06-02 Sudakshina Das <sudi.das@arm.com>
3984
3985 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
3986 comparision with zero.
3987
3988 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
3989 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
3990 for early expansion of vec_min and vec_max builtins.
3991 (builtin_function_type): Add min/max unsigned variants to those
3992 identified as having unsigned arguments.
3993
3994 2017-06-02 Olivier Hainque <hainque@adacore.com>
3995
3996 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
3997
3998 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3999
4000 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
4001 Use VALL_F16 iterator rather than VALL.
4002
4003 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4004
4005 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
4006 Emit CBNZ inside loop when doing a strong exchange and comparing
4007 against zero. Generate the CC flags after the loop.
4008
4009 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
4010
4011 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
4012 (dl_section_ref): New.
4013 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
4014 On AIX, append an expression to subtract the size of the
4015 section length to dl_section_ref.
4016
4017 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
4018
4019 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
4020 for early expansion of vector absolute builtins.
4021
4022 2017-06-02 Richard Biener <rguenther@suse.de>
4023
4024 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
4025 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
4026
4027 2017-06-02 Richard Biener <rguenther@suse.de>
4028
4029 PR tree-optimization/80948
4030 * tree-tailcall.c (find_tail_calls): Track stmts to move in
4031 stmt order as well.
4032
4033 2017-06-02 Richard Biener <rguenther@suse.de>
4034
4035 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
4036 PHIs are ok.
4037 * tree-vect-stmts.c (process_use): Do not mark backedge defs
4038 for inductions as relevant.
4039
4040 2017-06-02 Richard Biener <rguenther@suse.de>
4041
4042 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
4043 (vectorizable_induction): ... this. Remove dead code.
4044
4045 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
4046
4047 * builtins. (expand_builtin_alloca): Remove second parameter and
4048 infer its value from the first parameter instead.
4049 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
4050
4051 2017-06-02 Jakub Jelinek <jakub@redhat.com>
4052
4053 PR rtl-optimization/80903
4054 * loop-doloop.c (add_test): Unshare sequence.
4055
4056 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
4057
4058 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
4059
4060 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
4061
4062 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
4063 static.
4064 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
4065 xlogue_layout::get_instance, logue_layout::xlogue_layout,
4066 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
4067 (xlogue_layout::get_stub_rtx): Make static.
4068 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
4069 (xlogue_layout::compute_stub_managed_regs): Rename to...
4070 (xlogue_layout::count_stub_managed_regs): ...this.
4071 (xlogue_layout::is_stub_managed_reg): New function.
4072 (xlogue_layout::m_stub_names): Rename to...
4073 (xlogue_layout::s_stub_names): ...this, make static.
4074 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
4075 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
4076 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
4077 xlogue_layout::s_stub_names): Instantiate statics.
4078 (stub_managed_regs): Remove.
4079 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
4080 (disable_call_ms2sysv_xlogues): Rename to...
4081 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
4082 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
4083 warning logic.
4084 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
4085 change after reload_completed.
4086 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
4087 directly.
4088 (ix86_expand_prologue): Likewise.
4089 (ix86_expand_epilogue): Likewise.
4090 (ix86_expand_split_stack_prologue): Likewise.
4091 (ix86_compute_frame_layout): Remove frame parameter ...
4092 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
4093 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
4094 only if necessary.
4095 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
4096 (ix86_frame): Move from here ...
4097 * config/i386/i386.h (ix86_frame): ... to here.
4098 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
4099 complete ix86_frame data structure instead. Remove some_ld_name.
4100
4101 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
4102
4103 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
4104 symbols that hold a DECL_VALUE_EXPR.
4105
4106 2017-06-01 Martin Jambor <mjambor@suse.cz>
4107
4108 PR tree-optimization/80898
4109 * tree-sra.c (process_subtree_disqualification): Removed.
4110 (disqualify_candidate): Do not acll
4111 process_subtree_disqualification.
4112 (subtree_mark_written_and_enqueue): New function.
4113 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
4114 RHS has been disqualified and re-queue LHS if necessary. Apart
4115 from that, ignore disqualified RHS.
4116
4117 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4118
4119 * config/s390/s390.c (s390_emit_epilogue): Disable early return
4120 address fetch for z10 or later.
4121
4122 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4123
4124 * config/arc/arc.md (tst_movb): Add guard when splitting.
4125
4126 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4127
4128 * config/arc/arc.c (arc_can_eliminate): Test against
4129 arc_frame_pointer_needed.
4130
4131 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4132
4133 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
4134 to prevent store reordering.
4135 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
4136 (type): Add block type.
4137 (stack_tie): Define special instruction to be used in
4138 expand_prologue.
4139
4140 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4141
4142 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
4143 constraint. It is not valid for the pattern.
4144 (noncommutative_binary_comparison): Likewise.
4145
4146 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4147
4148 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
4149 scaled addresses.
4150
4151 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4152
4153 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
4154 be used by the reg-alloc.
4155
4156 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4157
4158 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
4159 reg-alloc when having mul64 or mul32x16 instructions.
4160 (mulsidi3): Likewise.
4161 (umulsidi3): Likewise.
4162 (mulsi32x16): New pattern.
4163 (mulsi64): Likewise.
4164 (mulsidi64): Likewise.
4165 (umulsidi64): Likewise.
4166 (MUL32x16_REG): Define.
4167 (mul64_600): Use MUL32x16_REG.
4168 (mac64_600): Likewise.
4169 (umul64_600): Likewise.
4170 (umac64_600): Likewise.
4171
4172 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
4173
4174 * config/arc/arc.md (mulsi3_700): Make it commutative.
4175
4176 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
4177
4178 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
4179 type for movstouw.
4180 (*sign_extendsidi2_insn): Likewise for movstosw.
4181
4182 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
4183
4184 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
4185 the type of the input discriminant value. Convert the
4186 discriminant value of signedness vary.
4187
4188 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
4189
4190 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
4191 Add to -Wall section.
4192
4193 2017-06-01 Richard Biener <rguenther@suse.de>
4194
4195 PR middle-end/66313
4196 * fold-const.c (fold_plusminus_mult_expr): If the factored
4197 factor may be zero use a wrapping type for the inner operation.
4198 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
4199 and handle moved defs.
4200 (process_assignment): Properly guard the unary op case. Return a
4201 tri-state indicating that moving the stmt before the call may allow
4202 to continue. Pass through to_move.
4203 (find_tail_calls): Handle moving unrelated defs before
4204 the call.
4205
4206 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
4207
4208 PR target/80618
4209 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
4210 splitter result in the canonical way.
4211
4212 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
4213
4214 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
4215 also for 32bit target. Update insn attributes.
4216 (zero-extendsidi2 splitter): Allow all registers for operand 1.
4217
4218 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
4219
4220 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
4221 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
4222 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
4223 (_mm_maskz_min_ss): New intrinsics.
4224
4225 2017-05-31 Martin Liska <mliska@suse.cz>
4226
4227 * tree-vect-loop.c (vect_create_epilog_for_reduction):
4228 Change comment style to one we normally use.
4229 (vectorizable_reduction): Likewise.
4230 (vectorizable_induction): Likewise.
4231 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
4232 (vectorizable_call): Likewise.
4233 (vectorizable_simd_clone_call): Likewise.
4234 (vectorizable_conversion): Likewise.
4235 (vectorizable_assignment): Likewise.
4236 (vectorizable_shift): Likewise.
4237 (vectorizable_operation): Likewise.
4238 (vectorizable_store): Likewise.
4239 (vectorizable_load): Likewise.
4240 * tree-vectorizer.h: Likewise.
4241
4242 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
4243
4244 * passes.c (emergency_dump_function): New.
4245 * tree-pass.h (emergency_dump_function): Declare.
4246 * plugin.c (plugins_internal_error_function): Remove.
4247 * plugin.h (plugins_internal_error_function): Remove declaration.
4248 * toplev.c (internal_error_function): New static function. Use it...
4249 (general_init): ...here.
4250
4251 2017-05-31 Graham Markall <graham.markall@embecosm.com>
4252
4253 * config/arc/arc.c (arc_print_operand): Handle constant operands.
4254 (arc_rtx_costs): Add costs for new patterns.
4255 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
4256 * config/arc/predicates.md: Add _1_2_3_operand predicate.
4257
4258 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
4259
4260 * tree-ssa-strlen.c (get_next_strinfo): New function.
4261 (get_stridx_plus_constant): Use it.
4262 (zero_length_string): Likewise.
4263 (adjust_related_strinfos): Likewise.
4264 (adjust_last_stmt): Likewise.
4265
4266 2017-05-31 Richard Biener <rguenther@suse.de>
4267
4268 PR target/80880
4269 * config/i386/i386.c (ix86_expand_builtin): Remove assert
4270 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
4271
4272 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
4273
4274 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
4275 loop_vinfo argument and use of dependence distance vectors.
4276 Check instead whether the two references differ only in their
4277 initial value and assume that they have the same alignment if the
4278 difference is a multiple of the vector alignment.
4279 (vect_analyze_data_refs_alignment): Update call accordingly.
4280
4281 2017-05-31 Martin Liska <mliska@suse.cz>
4282
4283 PR target/79155
4284 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
4285
4286 2017-05-31 Bin Cheng <bin.cheng@arm.com>
4287
4288 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
4289 (create_intersect_range_checks): Move from ...
4290 * tree-data-ref.c (create_intersect_range_checks_index)
4291 (create_intersect_range_checks): ... to here.
4292 (create_runtime_alias_checks): New function factored from ...
4293 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
4294 here. Call above function.
4295 * tree-data-ref.h (create_runtime_alias_checks): New function.
4296
4297 2017-05-31 Bin Cheng <bin.cheng@arm.com>
4298
4299 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
4300 segment length for dr_b and compute it in wide_int.
4301
4302 2017-05-31 Richard Biener <rguenther@suse.de>
4303
4304 PR tree-optimization/80906
4305 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
4306 and pass through iv_map.
4307 (copy_bb_and_scalar_dependences): Adjust.
4308 (translate_pending_phi_nodes): Likewise.
4309 (copy_loop_close_phi_args): Handle code-generating IVs instead
4310 of ICEing.
4311
4312 2017-05-30 David Malcolm <dmalcolm@redhat.com>
4313
4314 * diagnostic-color.c (color_dict): Add "type-diff".
4315 (parse_gcc_colors): Update comment.
4316 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
4317 -fdiagnostics-show-template-tree and -fno-elide-type.
4318 (GCC_COLORS): Add type-diff to example.
4319 (type-diff=): New.
4320 (-fdiagnostics-show-template-tree): New.
4321 (-fno-elide-type): New.
4322 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
4323 the pp_format_decoder callback. Call any m_format_postprocessor's
4324 "handle" method.
4325 (pretty_printer::pretty_printer): Initialize
4326 m_format_postprocessor.
4327 (pretty_printer::~pretty_printer): Delete any
4328 m_format_postprocessor.
4329 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
4330 (class format_postprocessor): New class.
4331 (struct pretty_printer::format_decoder): Document the new parameters.
4332 (struct pretty_printer::m_format_postprocessor): New field.
4333 * tree-diagnostic.c (default_tree_printer): Update for new
4334 bool and const char ** params.
4335 * tree-diagnostic.h (default_tree_printer): Likewise.
4336
4337 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
4338
4339 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
4340 (lwa_operand): Delete rs6000_gen_cell_microcode test.
4341 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
4342 rs6000_gen_cell_microcode code.
4343 (rs6000_final_prescan_insn): Delete.
4344 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
4345 "warn-cell-microcode" entries.
4346 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
4347 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
4348 throughout. Change cc_reg_not_micro_cr0_operand to
4349 cc_reg_not_cr0_operand throughout.
4350 (*extendhi<mode>2_noload): Delete.
4351 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
4352 (mwarn-cell-microcode): Delete.
4353 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
4354 -mgen-cell-microcode and -mwarn-cell-microcode.
4355
4356 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
4357
4358 PR target/80833
4359 * config/i386/constraints.md (Yd): New constraint.
4360 (Ye): Ditto.
4361 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
4362 and (?Yd, r) alternatives. Update insn attributes.
4363 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
4364 and (?*Yd, r) alternatives. Update insn attributes.
4365 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
4366
4367 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
4368
4369 * gimplify.c (gimplify_modify_expr): Don't create a
4370 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
4371 function.
4372
4373 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
4374
4375 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
4376
4377 2017-05-30 Richard Biener <rguenther@suse.de>
4378
4379 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
4380 and reduc_def fields.
4381 (STMT_VINFO_REDUC_TYPE): New define.
4382 (STMT_VINFO_REDUC_DEF): Likewise.
4383 (vect_force_simple_reduction): Adjust prototype.
4384 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
4385 (vect_is_simple_reduction): Remove check_reduction argument.
4386 (vect_force_simple_reduction): Adjust and set
4387 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
4388 (vectorizable_reduction): Do not re-do reduction analysis
4389 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
4390 * tree-parloops.c (gather_scalar_reductions): Adjust.
4391
4392 2017-05-30 Richard Biener <rguenther@suse.de>
4393
4394 PR middle-end/80901
4395 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
4396 split_edge code.
4397
4398 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
4399
4400 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
4401 Introduce unknown_misalignment parameter and remove vf.
4402 (vect_peeling_hash_get_lowest_cost):
4403 Pass unknown_misalignment parameter.
4404 (vect_enhance_data_refs_alignment):
4405 Fix unsupportable data ref treatment.
4406
4407 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4408
4409 * tree-vect-data-refs.c (vect_get_data_access_cost):
4410 Workaround for SLP handling.
4411 (vect_enhance_data_refs_alignment):
4412 Compute costs for doing no peeling at all, compare to the best
4413 peeling costs so far and avoid peeling if cheaper.
4414
4415 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4416
4417 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
4418 Return peeling info and set costs to zero for unlimited cost
4419 model.
4420 (vect_enhance_data_refs_alignment): Also inspect all datarefs
4421 with unknown misalignment. Compute and costs for unknown
4422 misalignment, compare them to the costs for known misalignment
4423 and choose the cheapest for peeling.
4424
4425 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4426
4427 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
4428 (vect_get_peeling_costs_all_drs): Create function.
4429 (vect_peeling_hash_get_lowest_cost):
4430 Use vect_get_peeling_costs_all_drs.
4431 (vect_peeling_supportable): Create function.
4432 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
4433
4434 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
4435
4436 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
4437 DR_HAS_NEGATIVE_STEP.
4438 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
4439 (vect_enhance_data_refs_alignment): Use.
4440 (vect_duplicate_ssa_name_ptr_info): Use.
4441 * tree-vectorizer.h (dr_misalignment): Use.
4442 (known_alignment_for_access_p): Use.
4443
4444 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
4445
4446 PR target/78838
4447 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
4448 .lowtext.
4449 (has_section_name): New function.
4450
4451 2017-05-30 Martin Liska <mliska@suse.cz>
4452
4453 PR other/80909
4454 * auto-profile.c (get_function_decl_from_block): Fix
4455 parenthesis.
4456
4457 2017-05-30 Richard Biener <rguenther@suse.de>
4458
4459 PR middle-end/80876
4460 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
4461
4462 2017-05-30 Martin Liska <mliska@suse.cz>
4463
4464 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
4465 * dumpfile.h (struct dump_file_info): Remove ctors.
4466
4467 2017-05-30 Martin Liska <mliska@suse.cz>
4468
4469 * predict.def: Fix GNU coding style.
4470
4471 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
4472
4473 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
4474 Mark 'to' argument with ATTRIBUTE_UNUSED.
4475
4476 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
4477
4478 * config/xtensa/xtensa.c (xtensa_emit_call): Use
4479 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
4480 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
4481 format string.
4482
4483 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
4484
4485 * doc/install.texi (Options specification): Restore entry of
4486 --enable-sjlj-exceptions.
4487
4488 2017-05-27 Michael Eager <eager@eagercon.com>
4489
4490 Revert:
4491 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
4492
4493 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
4494
4495 * config/microblaze/microblaze.h
4496 (FIXED_REGISTERS): Update in macro.
4497 (CALL_USED_REGISTERS): Update in macro.
4498
4499 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
4500
4501 * doc/install.texi: Add links to macOS binary distributions.
4502
4503 2017-05-27 Jakub Jelinek <jakub@redhat.com>
4504
4505 PR bootstrap/80887
4506 Revert:
4507 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4508
4509 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
4510
4511 2017-05-26 Martin Liska <mliska@suse.cz>
4512
4513 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
4514
4515 2017-05-26 Martin Liska <mliska@suse.cz>
4516
4517 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
4518 always leading ';; '.
4519 (dump_bb_info): Likewise.
4520 (brief_dump_cfg): Likewise.
4521 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
4522 * dumpfile.c: Remove usage of TDF_VERBOSE.
4523 * dumpfile.h (enum dump_kind): Likewise.
4524 (dump_gimple_bb_header): Do not use TDF_COMMENT.
4525 * print-tree.c (debug_verbose): Remove.
4526 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
4527 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
4528 * tree-diagnostic.c (default_tree_printer): Replace
4529 TDF_DIAGNOSTIC with TDF_SLIM.
4530
4531 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4532
4533 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
4534 in parameter loop, rather than loop_vinfo.
4535 (create_intersect_range_checks): Ditto.
4536 (vect_create_cond_for_alias_checks): Update call to above functions.
4537
4538 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4539
4540 PR tree-optimization/80815
4541 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
4542 for merging runtime alias checks. Handle negative DR_STEPs.
4543
4544 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4545
4546 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
4547 Move from ...
4548 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
4549 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
4550 out code pruning runtime alias checks.
4551 * tree-data-ref.c (prune_runtime_alias_test_list): New function
4552 factored out from above.
4553 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
4554 Move from ...
4555 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
4556 ... to here.
4557 (prune_runtime_alias_test_list): New decalaration.
4558
4559 2017-05-26 Bin Cheng <bin.cheng@arm.com>
4560
4561 * tree-vect-data-refs.c (compare_tree): Rename and move ...
4562 * tree-data-ref.c (data_ref_compare_tree): ... to here.
4563 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
4564 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
4565 (operator==, comp_dr_with_seg_len_pair): Ditto.
4566 (vect_prune_runtime_alias_test_list): Ditto.
4567
4568 2017-05-26 Martin Liska <mliska@suse.cz>
4569
4570 PR ipa/80663
4571 * params.def: Bound partial-inlining-entry-probability param.
4572
4573 2017-05-26 Marek Polacek <polacek@redhat.com>
4574
4575 PR sanitizer/80875
4576 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
4577 can be negated.
4578
4579 2017-05-26 Richard Biener <rguenther@suse.de>
4580
4581 PR tree-optimization/80842
4582 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
4583 value.
4584
4585 2017-05-26 Richard Biener <rguenther@suse.de>
4586
4587 PR tree-optimization/80844
4588 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
4589
4590 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
4591
4592 * doc/md.texi (Machine Constraints): Update x86 family
4593 machine constraints section to match 'config/i386/constraints.md'.
4594
4595 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
4596
4597 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
4598
4599 2017-05-25 Nathan Sidwell <nathan@acm.org>
4600
4601 * doc/invoke.texi (--enable-languages): Update documentation.
4602
4603 2017-05-25 Martin Liska <mliska@suse.cz>
4604
4605 * dumpfile.c: Add TDF_FOLDING.
4606 * dumpfile.h (enum dump_kind): Likewise.
4607 * genmatch.c (dt_simplify::gen_1): Use it.
4608
4609 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4610
4611 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
4612
4613 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4614
4615 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
4616 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
4617
4618 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
4619
4620 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
4621 * match.pd (X == C): Rewrite it here.
4622 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
4623 with_certain_nonzero_bits2): New predicates.
4624 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
4625
4626 2017-05-24 Nathan Sidwell <nathan@acm.org>
4627
4628 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
4629 avoid warning.
4630
4631 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
4632 warning.
4633
4634 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
4635
4636 * config/powerpcspe: New port. Files are copied from the rs6000
4637 port, with "rs6000" in filenames replaced by "powerpcspe".
4638
4639 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
4640
4641 PR rtl-optimization/80754
4642 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
4643
4644 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
4645
4646 * config/sparc/sparc.md (length): Return the correct value for -mflat
4647 sibcalls to match output_sibcall.
4648
4649 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
4650
4651 PR bootstrap/80860
4652 PR bootstrap/80843
4653 * config/rs6000/rs6000.c (struct machine_function): Add new field
4654 n_components.
4655 (rs6000_get_separate_components): Init that field, use it.
4656 (rs6000_components_for_bb): Use the field.
4657
4658 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4659
4660 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
4661
4662 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
4663
4664 PR middle-end/80823
4665 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
4666
4667 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4668
4669 PR target/80725
4670 * config/s390/s390.c (s390_check_qrst_address): Check incoming
4671 address against address_operand predicate.
4672 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
4673
4674 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
4675
4676 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
4677 parameters passed indirectly.
4678
4679 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
4680
4681 * config/i386/i386.md (*movdi_internal): Remove SSE4
4682 alternative 18 (?r, *v). Update insn attributes.
4683 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
4684 Update insn attributes.
4685 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
4686 Update insn attributes.
4687 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
4688 alternative 1 (r, v). Remove isa attribute.
4689 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
4690 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
4691 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
4692
4693 2017-05-23 Tom de Vries <tom@codesourcery.com>
4694
4695 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
4696 dg-line directive.
4697
4698 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
4699
4700 * cgraphunit.c (symbol_table::process_new_functions): Update.
4701 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
4702 (inline_generate_summary): Rename to ...
4703 (ipa_fn_summary_generate): ... this one.
4704 (inline_read_summary): Rename to ...
4705 (ipa_fn_summary_read): ... this one.
4706 (inline_write_summary): Rename to ...
4707 (ipa_fn_summary_write): ... this one.
4708 (inline_free_summary): Rename to ...
4709 (ipa_free_fn_summary): ... this one.
4710 (pass_data_local_fn_summary, pass_local_fn_summary,
4711 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
4712 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
4713 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
4714 make_pass_ipa_fn_summary): New.
4715 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
4716 inline_write_summary, inline_free_summary): Remove.
4717 (ipa_free_fn_summary) : New.
4718 * ipa-inline.c (ipa_inline): Update.
4719 (pass_ipa_inline): Do not generate summaries.
4720 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
4721 Remove.
4722 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
4723 and add pass_ipa_fn_summary.
4724 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
4725 New.
4726 (make_pass_inline_parameters): Remove.
4727
4728 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
4729
4730 * omp-low.c (struct omp_context): Remove "default_kind" member.
4731 Adjust all users.
4732
4733 * omp-offload.c (execute_oacc_device_lower): Remove the
4734 parallelism dimensions function attributes for unparallelized
4735 OpenACC kernels constructs.
4736
4737 2017-05-23 Martin Liska <mliska@suse.cz>
4738
4739 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
4740 functions.
4741 (cgraph_edge::make_speculative): Likewise.
4742 (cgraph_edge::resolve_speculation): Likewise.
4743 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
4744 (cgraph_node::dump): Likewise.
4745 * cgraph.h: Likewise.
4746 * cgraphunit.c (analyze_functions): Likewise.
4747 (symbol_table::compile): Likewise.
4748 * ipa-cp.c (print_all_lattices): Likewise.
4749 (determine_versionability): Likewise.
4750 (initialize_node_lattices): Likewise.
4751 (ipcp_verify_propagated_values): Likewise.
4752 (estimate_local_effects): Likewise.
4753 (update_profiling_info): Likewise.
4754 (create_specialized_node): Likewise.
4755 (perhaps_add_new_callers): Likewise.
4756 (decide_about_value): Likewise.
4757 (decide_whether_version_node): Likewise.
4758 (identify_dead_nodes): Likewise.
4759 (ipcp_store_bits_results): Likewise.
4760 * ipa-devirt.c (dump_targets): Likewise.
4761 (ipa_devirt): Likewise.
4762 * ipa-icf.c (sem_item::dump): Likewise.
4763 (sem_function::equals): Likewise.
4764 (sem_variable::equals): Likewise.
4765 (sem_item_optimizer::read_section): Likewise.
4766 (sem_item_optimizer::execute): Likewise.
4767 (congruence_class::dump): Likewise.
4768 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
4769 (dump_inline_summary): Likewise.
4770 (estimate_node_size_and_time): Likewise.
4771 (inline_analyze_function): Likewise.
4772 * ipa-inline-transform.c (inline_call): Likewise.
4773 * ipa-inline.c (report_inline_failed_reason): Likewise.
4774 (want_early_inline_function_p): Likewise.
4775 (edge_badness): Likewise.
4776 (update_edge_key): Likewise.
4777 (inline_small_functions): Likewise.
4778 * ipa-profile.c (ipa_profile): Likewise.
4779 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
4780 (ipa_make_edge_direct_to_target): Likewise.
4781 (remove_described_reference): Likewise.
4782 (ipa_impossible_devirt_target): Likewise.
4783 (propagate_controlled_uses): Likewise.
4784 (ipa_print_node_params): Likewise.
4785 (ipcp_transform_function): Likewise.
4786 * ipa-pure-const.c (pure_const_read_summary): Likewise.
4787 (propagate_pure_const): Likewise.
4788 * ipa-reference.c (generate_summary): Likewise.
4789 (read_write_all_from_decl): Likewise.
4790 (propagate): Likewise.
4791 (ipa_reference_read_optimization_summary): Likewise.
4792 * ipa-utils.c (ipa_merge_profiles): Likewise.
4793 * ipa.c (walk_polymorphic_call_targets): Likewise.
4794 (symbol_table::remove_unreachable_nodes): Likewise.
4795 (ipa_single_use): Likewise.
4796 * passes.c (execute_todo): Likewise.
4797 * predict.c (drop_profile): Likewise.
4798 * symtab.c (symtab_node::get_dump_name): New function.
4799 (symtab_node::dump_name): Likewise.
4800 (symtab_node::dump_asm_name): Likewise.
4801 (symtab_node::dump_references): Likewise.
4802 (symtab_node::dump_referring): Likewise.
4803 (symtab_node::dump_base): Likewise.
4804 (symtab_node::debug_symtab): Likewise.
4805 * tree-sra.c (convert_callers_for_node): Likewise.
4806 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
4807 * value-prof.c (init_node_map): Likewise.
4808
4809 2017-05-23 Martin Liska <mliska@suse.cz>
4810
4811 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
4812 and symtab_node::debug_symtab to symbol_table::debug.
4813 * cgraphunit.c (analyze_functions): Use the renamed function.
4814 (symbol_table::compile): Likewise.
4815 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
4816 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
4817 * passes.c (execute_todo): Likewise.
4818 * symtab.c (symbol_table::dump): New function.
4819 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
4820
4821 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
4822
4823 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
4824 that nonconst implies exec.
4825
4826 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
4827
4828 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
4829 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
4830 (inline_edge_summary_vec): Turn into ...
4831 (ipa_call_summaries): ... this one.
4832 (redirect_to_unreachable, edge_set_predicate,
4833 evaluate_properties_for_edge, inline_summary_alloc,
4834 reset_ipa_call_summary, reset_inline_summary,
4835 inline_summary_t::duplicate): Update.
4836 (inline_edge_duplication_hook): Turn to ...
4837 (ipa_call_summary_t::duplicate): ... this one.
4838 (inline_edge_removal_hook): Turn to ...
4839 (ipa_call_summary_t::remove): ... this one.
4840 (dump_inline_edge_summary): Turn to ...
4841 (dump_ipa_call_summary): ... this one.
4842 (estimate_function_body_sizes): Update.
4843 (inline_update_callee_summaries): Update.
4844 (remap_edge_change_prob): Update.
4845 (remap_edge_summaries): Update.
4846 (inline_merge_summary): Update.
4847 (do_estimate_edge_time): Update.
4848 (inline_generate_summary): Update.
4849 (inline_read_section): Update.
4850 (inline_read_summary): Update.
4851 (inline_free_summary): Update.
4852 * ipa-inline.c (can_inline_edge_p): Update.
4853 (compute_inlined_call_time): Update.
4854 (want_inline_small_function_p): Update.
4855 (edge_badness): Update.
4856 (early_inliner): Update.
4857 * ipa-inline.h (inline_edge_summary): Turn to ...
4858 (ipa_call_summary): ... this one.
4859 (ipa_call_summary_t): New class.
4860 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
4861 (ipa_call_summaries): New.
4862 (inline_edge_summary): Remove.
4863 (estimate_edge_growth): Update.
4864 * ipa-profile.c (ipa_propagate_frequency_1): Update.
4865 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
4866 * ipa-split.c (execute_split_functions): Update.
4867 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
4868
4869 2017-05-23 Tom de Vries <tom@codesourcery.com>
4870
4871 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
4872 attributes): Document rdrand effective target.
4873
4874 2017-05-23 Tom de Vries <tom@codesourcery.com>
4875
4876 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
4877 attributes): Sort alphabetically.
4878
4879 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
4880
4881 * config/avr/genmultilib.awk: Use gsub instead of gensub.
4882
4883 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4884
4885 PR target/80718
4886 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
4887 V2DF/V2DI splat into two separate patterns, one that handles
4888 registers, and the other that only handles memory. Drop support
4889 for splatting from a GPR on ISA 2.07 and then splitting the
4890 splat into direct move and splat.
4891 (vsx_splat_<mode>_reg): Likewise.
4892 (vsx_splat_<mode>_mem): Likewise.
4893
4894 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
4895
4896 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
4897
4898 2017-05-22 Jakub Jelinek <jakub@redhat.com>
4899
4900 PR middle-end/80809
4901 * omp-low.c (finish_taskreg_remap): New function.
4902 (finish_taskreg_scan): If unit size of ctx->record_type
4903 is non-constant, unshare the size expression and replace
4904 decls in it with possible outer var refs.
4905
4906 PR middle-end/80809
4907 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
4908 GOVD_SHARED rather than GOVD_PRIVATE with it.
4909 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
4910 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
4911
4912 PR middle-end/80853
4913 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
4914 as last argument to build_outer_var_ref for pointer bases of array
4915 section reductions.
4916
4917 2017-05-19 Martin Sebor <msebor@redhat.com>
4918
4919 * print-tree.c (print_node): Print DECL_READ_P flag.
4920
4921 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4922
4923 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
4924 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
4925 * cgraph.c: Likewise.
4926 * cgraphunit.c: Likewise.
4927 * gengtype.c: Likewise.
4928 * ipa-cp.c: Likewise.
4929 * ipa-devirt.c: Likewise.
4930 * ipa-icf.c: Likewise.
4931 * ipa-predicate.c: Likewise.
4932 * ipa-profile.c: Likewise.
4933 * ipa-prop.c: Likewise.
4934 * ipa-split.c: Likewise.
4935 * ipa.c: Likewise.
4936 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
4937 edge_predicate_pool, dump_inline_hints,
4938 inline_summary::account_size_time, redirect_to_unreachable,
4939 edge_set_predicate, set_hint_predicate,
4940 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
4941 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
4942 inline_summary_t::remove, remap_hint_predicate_after_duplication,
4943 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
4944 ipa_call_summary_t::remove, initialize_growth_caches,
4945 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
4946 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
4947 mark_modified, unmodified_parm_1, unmodified_parm,
4948 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
4949 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
4950 compute_bb_predicates, will_be_nonconstant_expr_predicate,
4951 will_be_nonconstant_predicate, record_modified_bb_info,
4952 get_minimal_bb, record_modified, param_change_prob,
4953 phi_result_unknown_predicate, predicate_for_phi_result,
4954 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
4955 estimate_function_body_sizes, compute_inline_parameters,
4956 compute_inline_parameters_for_curren, pass_data_inline_parameters,
4957 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
4958 inline_update_callee_summaries, remap_edge_change_prob,
4959 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
4960 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
4961 inline_analyze_function, inline_summary_t::insert,
4962 inline_generate_summary, read_ipa_call_summary, inline_read_section,
4963 inline_read_summary, write_ipa_call_summary, inline_write_summary,
4964 inline_free_summary): Move to ipa-fnsummary.h
4965 (predicate_t): Remove.
4966 * ipa-fnsummary.c: New file.
4967 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
4968 (enum inline_hints_vals, inline_hints, agg_position_info,
4969 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
4970 inline_summaries, ipa_call_summary, ipa_call_summary_t,
4971 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
4972 dump_inline_summary, dump_inline_hints, inline_generate_summary,
4973 inline_read_summary, inline_write_summary, inline_free_summary,
4974 inline_analyze_function, initialize_inline_failed,
4975 inline_merge_summary, inline_update_overall_summary,
4976 compute_inline_parameters): Move to ipa-fnsummary.h
4977 * ipa-fnsummary.h: New file.
4978 * ipa-inline-transform.h: Include ipa-inline.h.
4979 * ipa-inline.c: LIkewise.
4980
4981 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4982
4983 * ipa-inline.c (edge_badness): Use inlined_time instead of
4984 inline_summaries->get.
4985
4986 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
4987
4988 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
4989
4990 2017-05-22 Nathan Sidwell <nathan@acm.org>
4991
4992 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
4993 (fdump-lang): Document 'raw' option.
4994 * dumpfile.h (TDI_tu): Delete.
4995 * dumpfile.c (dump_files): Remove translation-unit.
4996 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
4997
4998 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
4999
5000 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
5001 command option from $(AWK) call.
5002 * config/avr/genmultilib.awk: Simplify and rewrite so that it
5003 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
5004 [FORMAT]: Remove handling of variable.
5005 * config/avr/t-multilib: Regenerate.
5006
5007 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
5008
5009 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
5010 self_time.
5011 (dump_inline_summary): Do not print self_time.
5012 (estimate_function_body_sizes): Do not set self_time.
5013 (compute_inline_parameters): Likewise.
5014 (inline_read_section, inline_write_summary): Do not stream self_time.
5015 * ipa-inline.h (inline_summary): Drop self_time.
5016
5017 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
5018
5019 * ipa-inline-analysis.c (account_size_time): Rename to ...
5020 (inline_summary::account_size_time): ... this one.
5021 (reset_ipa_call_summary): Turn to ...
5022 (ipa_call_summary::reset): ... this one.
5023 (reset_inline_summary): Turn to ...
5024 (inline_summary::reset): ... this one.
5025 (inline_summary_t::remove): Update.
5026 (inline_summary_t::duplicate): Update.
5027 (ipa_call_summary_t::remove): Update.
5028 (dump_inline_summary): Update.
5029 (estimate_function_body_sizes): Update.
5030 (compute_inline_parameters): Update.
5031 (estimate_node_size_and_time): Update.
5032 (inline_merge_summary): Update.
5033 (inline_update_overall_summary): Update.
5034 (inline_read_section): Update.
5035 (inline_write_summary): Update.
5036 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
5037 add account_size_time and reset member functions.
5038 (ipa_call_summary): Add reset function.
5039 * ipa-predicate.h (predicate::operator &): Constify.
5040
5041 2017-05-22 Richard Biener <rguenther@suse.de>
5042
5043 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
5044
5045 2017-05-19 Jason Merrill <jason@redhat.com>
5046
5047 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
5048
5049 2017-05-19 Marek Polacek <polacek@redhat.com>
5050
5051 PR sanitizer/80800
5052 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
5053 TYPE_OVERFLOW_WRAPS checks.
5054
5055 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
5056
5057 * tree-core.h (enum omp_clause_default_kind): Add
5058 "OMP_CLAUSE_DEFAULT_PRESENT".
5059 * tree-pretty-print.c (dump_omp_clause): Handle it.
5060 * gimplify.c (enum gimplify_omp_var_data): Add
5061 "GOVD_MAP_FORCE_PRESENT".
5062 (gimplify_adjust_omp_clauses_1): Map it to
5063 "GOMP_MAP_FORCE_PRESENT".
5064 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
5065
5066 * gimplify.c (oacc_default_clause): Clarify.
5067
5068 2017-05-19 Nathan Sidwell <nathan@acm.org>
5069
5070 LANG_HOOK_REGISTER_DUMPS
5071 * toplev.c (general_init): Call register dump lang hook.
5072 * doc/invoke.texi: Document -fdump-lang option family.
5073 * dumpfile.c (dump_files): Remove class dump here.
5074 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
5075 * dumpfile.h (tree_dump_index): Remove TDI_class.
5076 * langhooks-def.h (lhd_register_dumps): Declare.
5077 (LANG_HOOKS_REGISTER_DUMPS): Define.
5078 (LANG_HOOKS_INITIALIZER): Add it.
5079 * langhooks.c (lhd_register_dumps): Define.
5080 * langhooks.h (struct lang_hooks): Add register_dumps.
5081
5082 2017-05-19 Nathan Sidwell <nathan@acm.org>
5083
5084 * context.h (context::set_passes): New.
5085 * context.c (context::context): Do not create pass manager.
5086 * toplev.c (general_init): Create pass manager here.
5087
5088 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
5089
5090 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
5091 use this splitter if two add or or instructions would also work for
5092 the constant we want to generate.
5093
5094 2017-05-19 Richard Biener <rguenther@suse.de>
5095
5096 PR build/80821
5097 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
5098 predicate evaluation.
5099
5100 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
5101
5102 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
5103 add ctor.
5104 * ipa-inline.c (want_inline_small_function_p): Do not cast to
5105 unsigned.
5106
5107 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
5108
5109 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
5110 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
5111 (inline_edge_summary_vec): Turn into ...
5112 (ipa_call_summaries): ... this one.
5113 (redirect_to_unreachable, edge_set_predicate,
5114 evaluate_properties_for_edge, inline_summary_alloc,
5115 reset_ipa_call_summary, reset_inline_summary,
5116 inline_summary_t::duplicate): Update.
5117 (inline_edge_duplication_hook): Turn to ...
5118 (ipa_call_summary_t::duplicate): ... this one.
5119 (inline_edge_removal_hook): Turn to ...
5120 (ipa_call_summary_t::remove): ... this one.
5121 (dump_inline_edge_summary): Turn to ...
5122 (dump_ipa_call_summary): ... this one.
5123 (estimate_function_body_sizes): Update.
5124 (inline_update_callee_summaries): Update.
5125 (remap_edge_change_prob): Update.
5126 (remap_edge_summaries): Update.
5127 (inline_merge_summary): Update.
5128 (do_estimate_edge_time): Update.
5129 (inline_generate_summary): Update.
5130 (inline_read_section): Update.
5131 (inline_read_summary): Update.
5132 (inline_free_summary): Update.
5133 * ipa-inline.c (can_inline_edge_p): Update.
5134 (compute_inlined_call_time): Update.
5135 (want_inline_small_function_p): Update.
5136 (edge_badness): Update.
5137 (early_inliner): Update.
5138 * ipa-inline.h (inline_edge_summary): Turn to ...
5139 (ipa_call_summary): ... this one.
5140 (ipa_call_summary_t): New class.
5141 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
5142 (ipa_call_summaries): New.
5143 (inline_edge_summary): Remove.
5144 (estimate_edge_growth): Update.
5145 * ipa-profile.c (ipa_propagate_frequency_1): Update.
5146 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
5147 * ipa-split.c (execute_split_functions): Update.
5148 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
5149
5150 2017-05-19 Richard Biener <rguenther@suse.de>
5151
5152 PR middle-end/80764
5153 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
5154
5155 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
5156
5157 * config/rs6000/rs6000.c (struct machine_function): Add field
5158 fpr_is_wrapped_separately.
5159 (rs6000_get_separate_components): Use 64 components. Handle the
5160 new FPR components.
5161 (rs6000_components_for_bb): Handle the FPR components.
5162 (rs6000_emit_prologue_components): Handle the FPR components.
5163 (rs6000_emit_epilogue_components): Handle the FPR components.
5164 (rs6000_set_handled_components): Handle the FPR components.
5165 (rs6000_emit_prologue): Don't output prologue code for those FPRs
5166 that are already separately shrink-wrapped.
5167 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
5168 that are already separately shrink-wrapped.
5169
5170 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
5171
5172 PR target/80510
5173 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
5174 New predicate.
5175
5176 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
5177 (define_peephole2 for Altivec d-form load): Add peepholes to catch
5178 cases where the register allocator uses a move and an offsettable
5179 memory operation to/from a FPR register on ISA 2.06/2.07.
5180 (define_peephole2 for Altivec d-form store): Likewise.
5181
5182 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
5183
5184 PR target/80799
5185 * config/i386/mmx.md (*mov<mode>_internal): Enable
5186 alternatives 11, 12, 13 and 14 also for 32bit targets.
5187 Remove alternatives 15, 16, 17 and 18.
5188 * config/i386/sse.md (vec_concatv2di): Change
5189 alternative (!x, *y) to (x, ?!*Yn).
5190
5191 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
5192
5193 * dumpfile.h (enum dump_kind): Remove stray comma.
5194
5195 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
5196
5197 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
5198 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
5199 predicate::num_conditions
5200 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
5201 (CHANGED): turn into predicate::changed.
5202 (agg_position_info): Move to ipa-predicate.h
5203 (add_condition, predicate::add_clause, predicate::operator &=,
5204 predicate::or_with, predicate::evaluate, predicate::probability,
5205 dump_condition, dump_clause, predicate::dump,
5206 predicate::remap_after_duplication, predicate::remap_after_inlining,
5207 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
5208 (evaluate_conditions_for_known_args): Update.
5209 (set_cond_stmt_execution_predicate): Update.
5210 * ipa-inline.h: Include ipa-predicate.h
5211 (condition, inline_param_summary, conditions, agg_position_info,
5212 predicate): Move to ipa-predicate.h
5213 * ipa-predicate.c: New file.
5214 * ipa-predicate.h: New file.
5215
5216 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
5217
5218 * final.c (leaf_function_p): Check we are not in a sequence.
5219
5220 2017-05-18 Martin Liska <mliska@suse.cz>
5221
5222 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
5223 * dumpfile.c (dump_register): Use new enum dump_kind.
5224 (get_dump_file_name): Likewise.
5225 (dump_enable_all): Likewise.
5226 (dump_switch_p_1): Likewise.
5227 (enable_rtl_dump_file): Remove usage of TDF_RTL.
5228 * dumpfile.h (enum dump_kind): New enum type.
5229 (struct dump_file_info): Create constructor and
5230 format fields and comments.
5231 * passes.c (pass_manager::register_one_dump_file):
5232 Use num dump_kind.
5233 * statistics.c (statistics_early_init): Likewise.
5234 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
5235 TDF_TREE with TDF_SLIM.
5236 (gather_memory_references_ref): Likewise.
5237
5238 2017-05-18 Martin Liska <mliska@suse.cz>
5239
5240 * vec.h (struct vnull): Use it.
5241
5242 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
5243
5244 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
5245 (true_predicate, false_predicate, true_predicate_p,
5246 false_predicate_p): Remove.
5247 (single_cond_predicate, not_inlined_predicate): Turn to member function
5248 in ipa-inline.h
5249 (add_condition): Update.
5250 (add_clause): Turn to...
5251 (predicate::add_clause): ... this one; update; allow passing NULL
5252 as parameter.
5253 (and_predicates): Turn to ...
5254 (predicate::operator &=): ... this one.
5255 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
5256 (or_predicates): Turn to ...
5257 (predicate::or_with): ... this one.
5258 (evaluate_predicate): Turn to ...
5259 (predicate::evaluate): ... this one.
5260 (predicate_probability): Turn to ...
5261 (predicate::probability): ... this one.
5262 (dump_condition): Update.
5263 (dump_predicate): Turn to ...
5264 (predicate::dump): ... this one.
5265 (account_size_time): Update.
5266 (edge_set_predicate): Update.
5267 (set_hint_predicate): UPdate.
5268 (evaluate_conditions_for_known_args): Update.
5269 (evaluate_properties_for_edge): Update.
5270 (remap_predicate_after_duplication): Turn to...
5271 (predicate::remap_after_duplication): ... this one.
5272 (remap_hint_predicate_after_duplication): Update.
5273 (inline_summary_t::duplicate): UPdate.
5274 (dump_inline_edge_summary): Update.
5275 (dump_inline_summary): Update.
5276 (set_cond_stmt_execution_predicate): Update.
5277 (set_switch_stmt_execution_predicate): Update.
5278 (compute_bb_predicates): Update.
5279 (will_be_nonconstant_expr_predicate): Update.
5280 (will_be_nonconstant_predicate): Update.
5281 (phi_result_unknown_predicate): Update.
5282 (predicate_for_phi_result): Update.
5283 (array_index_predicate): Update.
5284 (estimate_function_body_sizes): Update.
5285 (estimate_node_size_and_time): Update.
5286 (estimate_ipcp_clone_size_and_time): Update.
5287 (remap_predicate): Rename to ...
5288 (predicate::remap_after_inlining): ... this one.
5289 (remap_hint_predicate): Update.
5290 (inline_merge_summary): Update.
5291 (inline_update_overall_summary): Update.
5292 (estimate_size_after_inlining): Update.
5293 (read_predicate): Rename to ...
5294 (predicate::stream_in): ... this one.
5295 (read_inline_edge_summary): Update.
5296 (write_predicate): Rename to ...
5297 (predicate::stream_out): ... this one.
5298 (write_inline_edge_summary): Update.
5299 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
5300 (clause_t): Turn to uint32_t
5301 (predicate): Turn to class; implement constructor and operators
5302 ==, !=, &
5303 (size_time_entry): Update.
5304 (inline_summary): Update.
5305 (inline_edge_summary): Update.
5306
5307 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
5308
5309 * fold-const.c (fold_binary_loc): Move transformation...
5310 * match.pd (C - X CMP X): ... here.
5311
5312 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
5313
5314 * config/sparc/sparc.c (sparc_option_override): Set function
5315 alignment for -mcpu=niagara7 to 64 to match the I$ line.
5316 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
5317 latency to 1.
5318 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
5319 latency to 2.
5320 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
5321
5322 2017-05-18 Marek Polacek <polacek@redhat.com>
5323
5324 PR sanitizer/80797
5325 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
5326 (pass_ubsan::execute): Call gimple_assign_single_p instead of
5327 gimple_assign_load_p.
5328
5329 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
5330
5331 PR middle-end/80692
5332 * real.c (do_compare): Give decimal_do_compare preference over
5333 comparing just the signs.
5334
5335 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
5336
5337 * doc/md.texi (Canonicalization of Instructions): Describe the
5338 canonical form of instructions that inherently set a condition
5339 code register.
5340
5341 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
5342
5343 PR middle-end/80775
5344 * tree-cfg.c: Move deletion of unreachable case statements to after
5345 the merging of consecutive case labels.
5346
5347 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
5348
5349 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
5350 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
5351 restoring of callee-saved registers.
5352
5353 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
5354
5355 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
5356 * config/visium/visium.c (single_set_and_flags): Likewise.
5357 * config/visium/visium.md (Substitutions): Likewise.
5358
5359 2017-05-17 Martin Liska <mliska@suse.cz>
5360
5361 * cfg.c: Introduce dump_flags_t type and
5362 use it instead of int type.
5363 * cfg.h: Likewise.
5364 * cfghooks.c: Likewise.
5365 * cfghooks.h (struct cfg_hooks): Likewise.
5366 * cfgrtl.c: Likewise.
5367 * cfgrtl.h: Likewise.
5368 * cgraph.c (cgraph_node::get_body): Likewise.
5369 * coretypes.h: Likewise.
5370 * domwalk.c: Likewise.
5371 * domwalk.h: Likewise.
5372 * dumpfile.c (struct dump_option_value_info): Likewise.
5373 (dump_enable_all): Likewise.
5374 (dump_switch_p_1): Likewise.
5375 (opt_info_switch_p): Likewise.
5376 * dumpfile.h (enum tree_dump_index): Likewise.
5377 (struct dump_file_info): Likewise.
5378 * genemit.c: Likewise.
5379 * generic-match-head.c: Likewise.
5380 * gengtype.c (open_base_files): Likewise.
5381 * gimple-pretty-print.c: Likewise.
5382 * gimple-pretty-print.h: Likewise.
5383 * graph.c (print_graph_cfg): Likewise.
5384 * graphite-scop-detection.c (dot_all_sese): Likewise.
5385 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
5386 * loop-unroll.c (report_unroll): Likewise.
5387 * passes.c (pass_manager::register_one_dump_file): Likewise.
5388 * print-tree.c: Likewise.
5389 * statistics.c: Likewise.
5390 * tree-cfg.c: Likewise.
5391 * tree-cfg.h: Likewise.
5392 * tree-dfa.c: Likewise.
5393 * tree-dfa.h: Likewise.
5394 * tree-dump.c (dump_function): Likewise.
5395 * tree-dump.h (struct dump_info): Likewise.
5396 * tree-pretty-print.c: Likewise.
5397 * tree-pretty-print.h: Likewise.
5398 * tree-ssa-live.c: Likewise.
5399 * tree-ssa-live.h: Likewise.
5400 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
5401 * tree-vect-loop.c: Likewise.
5402 * tree-vect-slp.c: Likewise.
5403
5404 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
5405 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5406
5407 PR tree-optimization/80457
5408 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
5409 of all arguments to a statement as scalar_to_vec operations.
5410 (vectorizable_call): Adjust call to vect_model_simple_cost for
5411 new parameter.
5412 (vectorizable_conversion): Likewise.
5413 (vectorizable_assignment): Likewise.
5414 (vectorizable_shift): Likewise.
5415 (vectorizable_operation): Likewise.
5416 (vectorizable_comparison): Likewise.
5417 (vect_is_simple_cond): Record the def types for operands.
5418 (vectorizable_condition): Likewise, call vect_model_simple_cost.
5419 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
5420 for statement argument count.
5421
5422 2017-05-16 Carl Love <cel@us.ibm.com>
5423
5424 * config/rs6000/rs6000-c: Add support for built-in functions
5425 vector unsigned long long vec_bperm (vector unsigned long long,
5426 vector unsigned char)
5427 vector signed long long vec_mule (vector signed int,
5428 vector signed int)
5429 vector unsigned long long vec_mule (vector unsigned int,
5430 vector unsigned int)
5431 vector signed long long vec_mulo (vector signed int,
5432 vector signed int)
5433 vector unsigned long long vec_mulo (vector unsigned int,
5434 vector unsigned int)
5435 vector signed char vec_sldw (vector signed char,
5436 vector signed char,
5437 const int)
5438 vector unsigned char vec_sldw (vector unsigned char,
5439 vector unsigned char,
5440 const int)
5441 vector signed short vec_sldw (vector signed short,
5442 vector signed short,
5443 const int)
5444 vector unsigned short vec_sldw (vector unsigned short,
5445 vector unsigned short,
5446 const int)
5447 vector signed int vec_sldw (vector signed int,
5448 vector signed int,
5449 const int)
5450 vector unsigned int vec_sldw (vector unsigned int,
5451 vector unsigned int,
5452 const int)
5453 vector signed long long vec_sldw (vector signed long long,
5454 vector signed long long,
5455 const int)
5456 vector unsigned long long vec_sldw (vector unsigned long long,
5457 vector unsigned long long,
5458 const int)
5459 * config/rs6000/rs6000-c: Add support for built-in functions
5460 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
5461 * config/rs6000/altivec.h: Add defintion for vec_sldw.
5462 * doc/extend.texi: Update the built-in documentation for the
5463 new built-in functions.
5464
5465 2017-05-16 Marek Polacek <polacek@redhat.com>
5466
5467 PR sanitizer/80536
5468 PR sanitizer/80386
5469 * tree.c (save_expr): Don't fold the expression.
5470
5471 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
5472
5473 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
5474 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
5475 and (?*y,m). Update insn attributes.
5476
5477 2017-05-16 Martin Liska <mliska@suse.cz>
5478
5479 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
5480 flags argument of print_gimple_stmt, print_gimple_expr,
5481 print_generic_stmt and print_generic_expr.
5482 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
5483 * coretypes.h: Likewise.
5484 * except.c (dump_eh_tree): Likewise.
5485 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
5486 * gimple-pretty-print.h: Likewise.
5487 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
5488 (backprop::push_to_worklist): Likewise.
5489 (backprop::pop_from_worklist): Likewise.
5490 (backprop::process_use): Likewise.
5491 (backprop::intersect_uses): Likewise.
5492 (note_replacement): Likewise.
5493 * gimple-ssa-store-merging.c
5494 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
5495 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
5496 (pass_store_merging::execute): Likewise.
5497 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
5498 (ssa_base_cand_dump_callback): Likewise.
5499 (dump_incr_vec): Likewise.
5500 (replace_refs): Likewise.
5501 (replace_mult_candidate): Likewise.
5502 (create_add_on_incoming_edge): Likewise.
5503 (create_phi_basis): Likewise.
5504 (insert_initializers): Likewise.
5505 (all_phi_incrs_profitable): Likewise.
5506 (introduce_cast_before_cand): Likewise.
5507 (replace_one_candidate): Likewise.
5508 * gimplify.c (gimplify_expr): Likewise.
5509 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
5510 (set_rename): Likewise.
5511 (rename_uses): Likewise.
5512 (copy_loop_phi_nodes): Likewise.
5513 (add_close_phis_to_merge_points): Likewise.
5514 (copy_loop_close_phi_args): Likewise.
5515 (copy_cond_phi_args): Likewise.
5516 (graphite_copy_stmts_from_block): Likewise.
5517 (translate_pending_phi_nodes): Likewise.
5518 * graphite-poly.c (print_pdr): Likewise.
5519 (dump_gbb_cases): Likewise.
5520 (dump_gbb_conditions): Likewise.
5521 (print_scop_params): Likewise.
5522 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
5523 (build_cross_bb_scalars_use): Likewise.
5524 (gather_bbs::before_dom_children): Likewise.
5525 * hsa-dump.c (dump_hsa_immed): Likewise.
5526 * ipa-cp.c (print_ipcp_constant_value): Likewise.
5527 (get_replacement_map): Likewise.
5528 * ipa-inline-analysis.c (dump_condition): Likewise.
5529 (estimate_function_body_sizes): Likewise.
5530 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
5531 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
5532 * ipa-prop.c (ipa_dump_param): Likewise.
5533 (ipa_print_node_jump_functions_for_edge): Likewise.
5534 (ipa_modify_call_arguments): Likewise.
5535 (ipa_modify_expr): Likewise.
5536 (ipa_dump_param_adjustments): Likewise.
5537 (ipa_dump_agg_replacement_values): Likewise.
5538 (ipcp_modif_dom_walker::before_dom_children): Likewise.
5539 * ipa-pure-const.c (check_stmt): Likewise.
5540 (pass_nothrow::execute): Likewise.
5541 * ipa-split.c (execute_split_functions): Likewise.
5542 * omp-offload.c (dump_oacc_loop_part): Likewise.
5543 (dump_oacc_loop): Likewise.
5544 * trans-mem.c (tm_log_emit): Likewise.
5545 (tm_memopt_accumulate_memops): Likewise.
5546 (dump_tm_memopt_set): Likewise.
5547 (dump_tm_memopt_transform): Likewise.
5548 * tree-cfg.c (gimple_verify_flow_info): Likewise.
5549 (print_loop): Likewise.
5550 * tree-chkp-opt.c (chkp_print_addr): Likewise.
5551 (chkp_gather_checks_info): Likewise.
5552 (chkp_get_check_result): Likewise.
5553 (chkp_remove_check_if_pass): Likewise.
5554 (chkp_use_outer_bounds_if_possible): Likewise.
5555 (chkp_reduce_bounds_lifetime): Likewise.
5556 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
5557 (chkp_mark_completed_bounds): Likewise.
5558 (chkp_register_incomplete_bounds): Likewise.
5559 (chkp_mark_invalid_bounds): Likewise.
5560 (chkp_maybe_copy_and_register_bounds): Likewise.
5561 (chkp_build_returned_bound): Likewise.
5562 (chkp_get_bound_for_parm): Likewise.
5563 (chkp_build_bndldx): Likewise.
5564 (chkp_get_bounds_by_definition): Likewise.
5565 (chkp_generate_extern_var_bounds): Likewise.
5566 (chkp_get_bounds_for_decl_addr): Likewise.
5567 * tree-chrec.c (chrec_apply): Likewise.
5568 * tree-data-ref.c (dump_data_reference): Likewise.
5569 (dump_subscript): Likewise.
5570 (dump_data_dependence_relation): Likewise.
5571 (analyze_overlapping_iterations): Likewise.
5572 * tree-inline.c (expand_call_inline): Likewise.
5573 (tree_function_versioning): Likewise.
5574 * tree-into-ssa.c (dump_defs_stack): Likewise.
5575 (dump_currdefs): Likewise.
5576 (dump_names_replaced_by): Likewise.
5577 (dump_update_ssa): Likewise.
5578 (update_ssa): Likewise.
5579 * tree-object-size.c (pass_object_sizes::execute): Likewise.
5580 * tree-parloops.c (build_new_reduction): Likewise.
5581 (try_create_reduction_list): Likewise.
5582 (ref_conflicts_with_region): Likewise.
5583 (oacc_entry_exit_ok_1): Likewise.
5584 (oacc_entry_exit_single_gang): Likewise.
5585 * tree-pretty-print.h: Likewise.
5586 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
5587 (get_scalar_evolution): Likewise.
5588 (add_to_evolution): Likewise.
5589 (get_loop_exit_condition): Likewise.
5590 (analyze_evolution_in_loop): Likewise.
5591 (analyze_initial_condition): Likewise.
5592 (analyze_scalar_evolution): Likewise.
5593 (instantiate_scev): Likewise.
5594 (number_of_latch_executions): Likewise.
5595 (gather_chrec_stats): Likewise.
5596 (final_value_replacement_loop): Likewise.
5597 (scev_const_prop): Likewise.
5598 * tree-sra.c (dump_access): Likewise.
5599 (disqualify_candidate): Likewise.
5600 (create_access): Likewise.
5601 (reject): Likewise.
5602 (maybe_add_sra_candidate): Likewise.
5603 (create_access_replacement): Likewise.
5604 (analyze_access_subtree): Likewise.
5605 (analyze_all_variable_accesses): Likewise.
5606 (sra_modify_assign): Likewise.
5607 (initialize_constant_pool_replacements): Likewise.
5608 (find_param_candidates): Likewise.
5609 (decide_one_param_reduction): Likewise.
5610 (replace_removed_params_ssa_names): Likewise.
5611 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
5612 * tree-ssa-copy.c (dump_copy_of): Likewise.
5613 (copy_prop_visit_cond_stmt): Likewise.
5614 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
5615 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
5616 (record_equivalences_from_stmt): Likewise.
5617 * tree-ssa-dse.c (compute_trims): Likewise.
5618 (delete_dead_call): Likewise.
5619 (delete_dead_assignment): Likewise.
5620 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
5621 (forward_propagate_into_cond): Likewise.
5622 (pass_forwprop::execute): Likewise.
5623 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
5624 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
5625 Likewise.
5626 (move_computations_worker): Likewise.
5627 (execute_sm): Likewise.
5628 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
5629 (remove_exits_and_undefined_stmts): Likewise.
5630 (remove_redundant_iv_tests): Likewise.
5631 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
5632 (adjust_iv_update_pos): Likewise.
5633 * tree-ssa-math-opts.c (bswap_replace): Likewise.
5634 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
5635 (value_replacement): Likewise.
5636 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
5637 * tree-ssa-pre.c (print_pre_expr): Likewise.
5638 (get_representative_for): Likewise.
5639 (create_expression_by_pieces): Likewise.
5640 (insert_into_preds_of_block): Likewise.
5641 (eliminate_insert): Likewise.
5642 (eliminate_dom_walker::before_dom_children): Likewise.
5643 (eliminate): Likewise.
5644 (remove_dead_inserted_code): Likewise.
5645 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
5646 * tree-ssa-reassoc.c (get_rank): Likewise.
5647 (eliminate_duplicate_pair): Likewise.
5648 (eliminate_plus_minus_pair): Likewise.
5649 (eliminate_not_pairs): Likewise.
5650 (undistribute_ops_list): Likewise.
5651 (eliminate_redundant_comparison): Likewise.
5652 (update_range_test): Likewise.
5653 (optimize_range_tests_var_bound): Likewise.
5654 (optimize_vec_cond_expr): Likewise.
5655 (rewrite_expr_tree): Likewise.
5656 (rewrite_expr_tree_parallel): Likewise.
5657 (linearize_expr): Likewise.
5658 (break_up_subtract): Likewise.
5659 (linearize_expr_tree): Likewise.
5660 (attempt_builtin_powi): Likewise.
5661 (attempt_builtin_copysign): Likewise.
5662 (transform_stmt_to_copy): Likewise.
5663 (transform_stmt_to_multiply): Likewise.
5664 (dump_ops_vector): Likewise.
5665 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
5666 (print_scc): Likewise.
5667 (set_ssa_val_to): Likewise.
5668 (visit_reference_op_store): Likewise.
5669 (visit_use): Likewise.
5670 (sccvn_dom_walker::before_dom_children): Likewise.
5671 (run_scc_vn): Likewise.
5672 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
5673 Likewise.
5674 (expr_hash_elt::print): Likewise.
5675 (const_and_copies::pop_to_marker): Likewise.
5676 (const_and_copies::record_const_or_copy_raw): Likewise.
5677 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
5678 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
5679 (dump_predicates): Likewise.
5680 (find_uninit_use): Likewise.
5681 (warn_uninitialized_phi): Likewise.
5682 (pass_late_warn_uninitialized::execute): Likewise.
5683 * tree-ssa.c (verify_vssa): Likewise.
5684 (verify_ssa): Likewise.
5685 (maybe_optimize_var): Likewise.
5686 * tree-vrp.c (dump_value_range): Likewise.
5687 (dump_all_value_ranges): Likewise.
5688 (dump_asserts_for): Likewise.
5689 (register_edge_assert_for_2): Likewise.
5690 (vrp_visit_cond_stmt): Likewise.
5691 (vrp_visit_switch_stmt): Likewise.
5692 (vrp_visit_stmt): Likewise.
5693 (vrp_visit_phi_node): Likewise.
5694 (simplify_cond_using_ranges_1): Likewise.
5695 (fold_predicate_in): Likewise.
5696 (evrp_dom_walker::before_dom_children): Likewise.
5697 (evrp_dom_walker::push_value_range): Likewise.
5698 (evrp_dom_walker::pop_value_range): Likewise.
5699 (execute_early_vrp): Likewise.
5700
5701 2017-05-16 Richard Biener <rguenther@suse.de>
5702
5703 * dwarf2out.c (loc_list_from_tree_1): Do not create
5704 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
5705
5706 2017-05-16 Richard Biener <rguenther@suse.de>
5707
5708 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
5709 just generated.
5710 (note_variable_value_in_expr): If we resolved the decl ref
5711 do not push to the stack.
5712
5713 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
5714
5715 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
5716 operations in fast-math mode.
5717 (vaddq_f16): Likewise.
5718 (vmul_f16): Likewise.
5719 (vmulq_f16): Likewise.
5720 (vsub_f16): Likewise.
5721 (vsubq_f16): Likewise.
5722 * config/arm/neon.md (add<mode>3): New.
5723 (sub<mode>3): New.
5724 (fma:<VH:mode>3): New. Also remove outdated comment.
5725 (mul<mode>3): New.
5726
5727 2017-05-16 Martin Liska <mliska@suse.cz>
5728
5729 PR ipa/79849.
5730 PR ipa/79850.
5731 * ipa-devirt.c (warn_types_mismatch): Fix typo.
5732 (odr_types_equivalent_p): Likewise.
5733
5734 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
5735
5736 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
5737
5738 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
5739
5740 PR target/80425
5741 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
5742 non-interunit SSE move alternatives with '?'.
5743 (zero-extendsidi peephole2): New peephole to skip intermediate
5744 general register in SSE zero-extend sequence.
5745
5746 2017-05-15 Jeff Law <law@redhat.com>
5747
5748 * reorg.c (relax_delay_slots): Create a new variable to hold
5749 the temporary target rather than clobbering TARGET_LABEL.
5750
5751 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
5752 missing argument to extract_bit_field call.
5753 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
5754
5755 2017-05-15 Martin Liska <mliska@suse.cz>
5756
5757 PR driver/31468
5758 * gcc.c (process_command): Do not allow empty argument of -o option.
5759
5760 2017-05-15 Renlin Li <renlin.li@arm.com>
5761
5762 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
5763 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
5764 * config/aarch64/constraints.md (Usf): Add long call check.
5765 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
5766 (call_value): Likewise.
5767 (sibcall): Likewise.
5768 (sibcall_value): Likewise.
5769 (call_insn): New.
5770 (call_value_insn): New.
5771 (sibcall_insn): Update rtx pattern.
5772 (sibcall_value_insn): Likewise.
5773 (call_internal): Remove.
5774 (call_value_internal): Likewise.
5775 (sibcall_internal): Likewise.
5776 (sibcall_value_internal): Likewise.
5777 (call_reg): Likewise.
5778 (call_symbol): Likewise.
5779 (call_value_reg): Likewise.
5780 (call_value_symbol): Likewise.
5781
5782 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
5783
5784 PR target/80600
5785 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
5786
5787 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
5788
5789 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
5790 compatible with CCGOCmode and with CCZmode.
5791
5792 2017-05-14 Martin Sebor <msebor@redhat.com>
5793
5794 PR middle-end/77671
5795 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
5796 (gimple_fold_builtin_snprintf): Same.
5797 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
5798 (gimple_fold_builtin_snprintf): Same.
5799 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
5800 of character types.
5801 (is_call_safe): New function.
5802 (try_substitute_return_value): Call it.
5803 (try_simplify_call): New function.
5804 (pass_sprintf_length::handle_gimple_call): Call it.
5805
5806 2017-05-14 Martin Sebor <msebor@redhat.com>
5807
5808 PR middle-end/80669
5809 * builtins.c (expand_builtin_stpncpy): Simplify.
5810
5811 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
5812
5813 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
5814 * config/i386/i386.h
5815 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
5816 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
5817 (struct machine_function): Add new members call_ms2sysv,
5818 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
5819 (struct machine_frame_state): New fields sp_realigned and
5820 sp_realigned_offset.
5821 * config/i386/i386.c
5822 (enum xlogue_stub): New enum.
5823 (enum xlogue_stub_sets): New enum.
5824 (class xlogue_layout): New class.
5825 (struct ix86_frame): New fields stack_realign_allocate_offset,
5826 stack_realign_offset and outlined_save_offset. Modify comments to
5827 detail stack layout when using out-of-line stubs.
5828 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
5829 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
5830 -mcall-ms2sysv-xlogues.
5831 (stub_managed_regs): New static variable.
5832 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
5833 registers managed by out-of-line stub.
5834 (disable_call_ms2sysv_xlogues): New function.
5835 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
5836 m->call_ms2sysv when appropriate and compute frame layout for
5837 out-of-line stubs.
5838 (sp_valid_at, fp_valid_at): New inline functions.
5839 (choose_basereg): New function.
5840 (choose_baseaddr): Add align parameter, use choose_basereg and modify
5841 all callers.
5842 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
5843 Use align parameter of choose_baseaddr to generated aligned SSE movs
5844 when possible.
5845 (pro_epilogue_adjust_stack): Modify to track
5846 machine_frame_state::sp_realigned.
5847 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
5848 (ix86_nsaved_sseregs): Likewise.
5849 (ix86_emit_save_regs): Likewise.
5850 (ix86_emit_save_regs_using_mov): Likewise.
5851 (ix86_emit_save_sse_regs_using_mov): Likewise.
5852 (get_scratch_register_on_entry): Likewise.
5853 (gen_frame_set): New function.
5854 (gen_frame_load): Likewise.
5855 (gen_frame_store): Likewise.
5856 (emit_outlined_ms2sysv_save): Likewise.
5857 (emit_outlined_ms2sysv_restore): Likewise.
5858 (ix86_expand_prologue): Modify stack re-alignment code and call
5859 emit_outlined_ms2sysv_save when appropriate.
5860 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
5861 parameter rtx_insn *insn, which allows the function to be used to only
5862 generate the notes.
5863 (ix86_expand_epilogue): Modify validity checks of frame and stack
5864 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
5865 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
5866 * config/i386/predicates.md
5867 (save_multiple): New predicate.
5868 (restore_multiple): Likewise.
5869 * config/i386/sse.md
5870 (save_multiple<mode>): New pattern.
5871 (save_multiple_realign<mode>): Likewise.
5872 (restore_multiple<mode>): Likewise.
5873 (restore_multiple_and_return<mode>): Likewise.
5874 (restore_multiple_leave_return<mode>): Likewise.
5875 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
5876
5877 2017-05-14 Julia Koval <julia.koval@intel.com>
5878
5879 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
5880 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
5881 (__builtin_ia32_xsetbv): New builtins.
5882 * config/i386/i386.c (ix86_expand_special_args_builtin):
5883 Process new types.
5884 (ix86_expand_builtin): Special expand for new intrinsics.
5885 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
5886 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
5887 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
5888
5889 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5890
5891 * cfganal.c (inverted_post_order_compute): Change argument type
5892 to vec *.
5893 * cfganal.h (inverted_post_order_compute): Adjust prototype.
5894 * df-core.c (rest_of_handle_df_initialize): Adjust.
5895 (rest_of_handle_df_finish): Likewise.
5896 (df_analyze_1): Likewise.
5897 (df_analyze): Likewise.
5898 (loop_inverted_post_order_compute): Change argument to be a vec *.
5899 (df_analyze_loop): Adjust.
5900 (df_get_n_blocks): Likewise.
5901 (df_get_postorder): Likewise.
5902 * df.h (struct df_d): Change field to be a vec.
5903 * lcm.c (compute_laterin): Adjust.
5904 (compute_available): Likewise.
5905 * lra-lives.c (lra_create_live_ranges_1): Likewise.
5906 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
5907 * tree-ssa-pre.c (compute_antic): Likewise.
5908
5909 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5910
5911 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
5912 (depth_first_search::depth_first_search): Change structure init
5913 function to this constructor.
5914 (depth_first_search::add_bb): Rename function to this member.
5915 (depth_first_search::execute): Likewise.
5916 (flow_dfs_compute_reverse_finish): Adjust.
5917
5918 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5919
5920 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
5921 (longest_simple_path): Likewise.
5922 * shrink-wrap.c (spread_components): Likewise.
5923 (disqualify_problematic_components): Likewise.
5924 (emit_common_heads_for_components): Likewise.
5925 (emit_common_tails_for_components): Likewise.
5926 (insert_prologue_epilogue_for_components): Likewise.
5927
5928 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5929
5930 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
5931 auto_sbitmap.
5932
5933 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5934
5935 * df-core.c (df_set_blocks): Start using auto_bitmap.
5936 (df_compact_blocks): Likewise.
5937 * df-problems.c (df_rd_confluence_n): Likewise.
5938 * df-scan.c (df_insn_rescan_all): Likewise.
5939 (df_process_deferred_rescans): Likewise.
5940 (df_update_entry_block_defs): Likewise.
5941 (df_update_exit_block_uses): Likewise.
5942 (df_entry_block_bitmap_verify): Likewise.
5943 (df_exit_block_bitmap_verify): Likewise.
5944 (df_scan_verify): Likewise.
5945 * lra-constraints.c (lra_constraints): Likewise.
5946 (undo_optional_reloads): Likewise.
5947 (lra_undo_inheritance): Likewise.
5948 * lra-remat.c (calculate_gen_cands): Likewise.
5949 (do_remat): Likewise.
5950 * lra-spills.c (assign_spill_hard_regs): Likewise.
5951 (spill_pseudos): Likewise.
5952 * tree-ssa-pre.c (bitmap_set_and): Likewise.
5953 (bitmap_set_subtract_values): Likewise.
5954
5955 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5956
5957 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
5958 management with auto_bitmap.
5959 (fix_inter_tick): Likewise.
5960 (fix_recovery_deps): Likewise.
5961 * ira.c (add_store_equivs): Likewise.
5962 (find_moveable_pseudos): Likewise.
5963 (split_live_ranges_for_shrink_wrap): Likewise.
5964 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
5965 (rtx_reuse_manager::seen_def_p): Likewise.
5966 (rtx_reuse_manager::set_seen_def): Likewise.
5967 * print-rtl.h (class rtx_reuse_manager): Likewise.
5968
5969 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5970
5971 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
5972 lifetime.
5973 (migrate_btr_def): Likewise.
5974 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
5975 * df-core.c (loop_post_order_compute): Likewise.
5976 (loop_inverted_post_order_compute): Likewise.
5977 * hsa-common.h: Likewise.
5978 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
5979 * init-regs.c (initialize_uninitialized_regs): Likewise.
5980 * ipa-inline.c (resolve_noninline_speculation): Likewise.
5981 (inline_small_functions): Likewise.
5982 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
5983 * ira.c (combine_and_move_insns): Likewise.
5984 (build_insn_chain): Likewise.
5985 * loop-invariant.c (find_invariants): Likewise.
5986 * lower-subreg.c (propagate_pseudo_copies): Likewise.
5987 * predict.c (tree_predict_by_opcode): Likewise.
5988 (predict_paths_leading_to): Likewise.
5989 (predict_paths_leading_to_edge): Likewise.
5990 (estimate_loops_at_level): Likewise.
5991 (estimate_loops): Likewise.
5992 * shrink-wrap.c (try_shrink_wrapping): Likewise.
5993 (spread_components): Likewise.
5994 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
5995 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
5996 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
5997 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
5998 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
5999 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
6000 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
6001 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
6002 (mark_threaded_blocks): Likewise.
6003 (thread_through_all_blocks): Likewise.
6004 * tree-ssa.c (verify_ssa): Likewise.
6005 (execute_update_addresses_taken): Likewise.
6006 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
6007
6008 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6009
6010 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
6011 auto_vec.
6012 (post_order_compute): Likewise.
6013 (inverted_post_order_compute): Likewise.
6014 (pre_and_rev_post_order_compute_fn): Likewise.
6015
6016 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6017
6018 * genrecog.c (int_set::int_set): Explicitly construct our
6019 auto_vec base class.
6020 * vec.h (auto_vec::auto_vec): New constructor.
6021
6022 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6023
6024 * bitmap.h (class auto_bitmap): New constructor taking
6025 bitmap_obstack * argument.
6026
6027 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6028
6029 * bitmap.h (class auto_bitmap): Change type of m_bits to
6030 bitmap_head, and adjust ctor / dtor and member operators.
6031
6032 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
6033
6034 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
6035 when returned register mode doesn't match original mode.
6036
6037 2017-05-12 Jeff Law <law@redhat.com>
6038 Jakub Jelinek <jakub@redhat.com>
6039
6040 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
6041 we look for cc setter after the compare-elim changes.
6042 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
6043 within the vector to match what compare-elim now expects.
6044 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
6045 (xorsi3_flags, one_cmplsi2_flags): Likewise.
6046
6047 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
6048 after the compare-elim changes.
6049 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
6050 the vector to match what compare-elim now expects.
6051 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
6052 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
6053 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
6054 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
6055 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
6056
6057 * config/visium/visium.c (single_set_and_flags): Fix where
6058 we look for cc setter after the compare-elim changes.
6059 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
6060 with the vector to match what compare-elim now expects.
6061 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
6062 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
6063 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
6064 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
6065 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
6066 (neg<mode>2_insn_set_overflow): Likewise.
6067
6068 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
6069
6070 PR middle-end/79794
6071 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
6072 maybe_expand_insn call, set ops[0].target. If still set after call,
6073 set alt_rtl. Add extra arg to recursive calls.
6074 (extract_bit_field): Add alt_rtl argument. Pass to
6075 extract_bit_field.
6076 * expmed.h (extract_bit_field): Fix prototype.
6077 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
6078 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
6079 to extract_bit_field_calls.
6080 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
6081 Pass alt_rtl to extract_bit_field calls.
6082 * calls.c (store_unaligned_arguments_into_psuedos)
6083 load_register_parameters): Pass extra NULL to extract_bit_field calls.
6084 * optabs.c (maybe_legitimize_operand): Clear op->target when call
6085 gen_reg_rtx.
6086 * optabs.h (struct expand_operand): Add target bitfield.
6087
6088 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
6089
6090 * compare-elim.c (try_eliminate_compare): Canonicalize
6091 operation with embedded compare to
6092 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
6093 (set (reg) (operation)].
6094
6095 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
6096
6097 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
6098
6099 PR target/80723
6100 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
6101 cost of adding a carry flag for ADC instruction.
6102 [case MINUS]: Ignore the cost of subtracting a carry flag
6103 for SBB instruction.
6104
6105 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
6106
6107 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
6108 and x86intrin.h
6109 * config/rs6000/bmiintrin.h: New file.
6110 * config/rs6000/bmi2intrin.h: New file.
6111 * config/rs6000/x86intrin.h: New file.
6112
6113 2017-05-12 Jeff Law <law@redhat.com>
6114
6115 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
6116 markers.
6117
6118 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
6119
6120 PR middle-end/80707
6121 * tree-cfg.c: Remove cfg edges of unreachable case statements.
6122
6123 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6124
6125 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
6126 early expansion of vector divide builtins.
6127 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
6128 builtins identified as having unsigned arguments.
6129
6130 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6131
6132 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
6133 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
6134 expansion of vector logical operations (and, andc, or, xor,
6135 nor, orc, nand).
6136
6137 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6138
6139 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
6140 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
6141
6142 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
6143
6144 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
6145 early GIMPLE expansion of vector multiplies.
6146
6147 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
6148
6149 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
6150 TARGET_HAVE_MOVT conditional.
6151 (movt splitter): Likewise.
6152
6153 2017-05-12 Richard Biener <rguenther@suse.de>
6154
6155 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
6156 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6157 Fold all stmts not inplace.
6158
6159 2017-05-12 Richard Biener <rguenther@suse.de>
6160
6161 PR tree-optimization/80713
6162 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
6163 inserted_exprs bit for not removed stmts.
6164
6165 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
6166
6167 PR middle-end/69921
6168 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
6169 parallelized" attribute for parallelized OpenACC kernels.
6170 * omp-offload.c (execute_oacc_device_lower): Use it.
6171
6172 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
6173 Set "oacc kernels" attribute.
6174 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
6175 parameter. Adjust all users.
6176 (oacc_fn_attrib_kernels_p): Remove function.
6177 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
6178 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
6179 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
6180 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
6181 assert "oacc kernels" attribute is set.
6182
6183 2017-05-11 Carl Love <cel@us.ibm.com>
6184
6185 * config/rs6000/rs6000-c: Add support for built-in functions
6186 vector unsigned char vec_popcnt (vector signed char)
6187 vector unsigned char vec_popcnt (vector unsigned char)
6188 vector unsigned short vec_popcnt (vector signed short)
6189 vector unsigned short vec_popcnt (vector unsigned short)
6190 vector unsigned int vec_popcnt (vector signed int)
6191 vector unsigned int vec_popcnt (vector unsigned int)
6192 vector unsigned long long vec_popcnt (vector signed long long)
6193 vector unsigned long long vec_popcnt (vector unsigned long long)
6194 vector signed long long vec_slo (vector signed long long,
6195 vector signed char)
6196 vector signed long long vec_slo (vector signed long long,
6197 vector unsigned char)
6198 vector unsigned long long vec_slo (vector unsigned long long,
6199 vector signed char)
6200 vector unsigned long long vec_slo (vector unsigned long long,
6201 vector unsigned char)
6202 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
6203 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
6204 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
6205 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
6206 * doc/extend.texi: Update the built-in documentation file for the
6207 new built-in functions.
6208
6209 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
6210
6211 * attribs.h (sorted_attr_string): Move machine independent
6212 functions for target clone support from the i386 port to common
6213 code. Rename ix86_function_versions to common_function_versions.
6214 Rename make_name to make_unique_name.
6215 (common_function_versions): Likewise.
6216 (make_unique_name): Likewise.
6217 (make_dispatcher_decl): Likewise.
6218 (is_function_default_version): Likewise.
6219 * attribs.c (attr_strcmp): Likewise.
6220 (sorted_attr_string): Likewise.
6221 (common_function_versions): Likewise.
6222 (make_unique_name): Likewise.
6223 (make_dispatcher_decl): Likewise.
6224 (is_function_default_version): Likewise.
6225 * config/i386/i386.c (attr_strcmp): Likewise.
6226 (sorted_attr_string): Likewise.
6227 (ix86_function_versions): Likewise.
6228 (make_name): Likewise.
6229 (make_dispatcher_decl): Likewise.
6230 (is_function_default_version): Likewise.
6231 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
6232
6233 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6234
6235 PR target/80695
6236 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6237 Account for direct move costs for vec_construct of integer
6238 vectors.
6239
6240 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
6241
6242 PR target/80706
6243 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
6244 (UNSPEC_STX_ATOMIC): Ditto.
6245 (loaddi_via_sse): New insn.
6246 (storedi_via_sse): Ditto.
6247 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
6248 Update corresponding peephole2 patterns.
6249 (atomic_storedi_fpu): Ditto.
6250
6251 2017-05-11 Julia Koval <julia.koval@intel.com>
6252
6253 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
6254 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
6255 New intrinsics.
6256 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
6257 (__builtin_ia32_rsqrt14ss_mask): New builtins.
6258 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
6259
6260 2017-05-11 Nathan Sidwell <nathan@acm.org>
6261
6262 * graphite-poly.c: Include dumpfile.h.
6263
6264 * dumpfle.h (dump_function): Declare here ...
6265 * tree-dump.h (dump_function): ... not here.
6266 * dumpfile.c: #include tree-cfg.h.
6267 (dump_function): Move here from ...
6268 * tree-dump.c (dump_function): ... here.
6269 * gimplify.c: #include splay-tree.h, not tree-dump.h.
6270 * graphite-poly.c: Don't include tree-dump.h.
6271 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
6272 * print-tree.c: Likewise.
6273 * stor-layout.c: Likewise.
6274 * tree-nested.c: Likewise.
6275
6276 * dumpfile.c (dump_start): Use TDF_FLAGS.
6277 (dump_enable_all): Fix TDF_KIND check thinko.
6278
6279 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
6280
6281 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6282 array entries to represent two legal parameterizations of the
6283 overloaded __builtin_cmpb function, as represented by the
6284 P6_OV_BUILTIN_CMPB constant.
6285 (altivec_resolve_overloaded_builtin): Add special case handling
6286 for the __builtin_cmpb function, as represented by the
6287 P6_OV_BUILTIN_CMPB constant.
6288 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
6289 (BU_P6_64BIT_2): New macro.
6290 (BU_P6_OVERLOAD_2): New macro
6291 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
6292 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
6293 (CMPB): Add overload support to represent both 32-bit and 64-bit
6294 compare-bytes function.
6295 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
6296 support for TARGET_CMPB.
6297 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
6298 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
6299 documentation of the __builtin_cmpb overloaded built-in function.
6300
6301 2017-05-11 Richard Biener <rguenther@suse.de>
6302
6303 PR tree-optimization/80705
6304 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
6305 bases are not vectorizable.
6306
6307 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6308
6309 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
6310 when counting register pressure.
6311
6312 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6313
6314 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
6315 (iv_ca_more_deps): Renamed to ...
6316 (iv_ca_compare_deps): ... this.
6317 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
6318
6319 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6320
6321 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
6322 to ...
6323 (determine_group_iv_costs): ... here.
6324 (find_inv_vars_cb): Record inv var if it's not recorded before.
6325
6326 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6327
6328 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
6329 (get_shiftadd_cost): Ditto.
6330
6331 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6332
6333 * tree-ssa-address.c: Include header file.
6334 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
6335 address.
6336 (add_to_parts): Refactor.
6337 (addr_to_parts): New parameter. Update use of move_hint_to_base.
6338 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
6339 in new order.
6340
6341 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6342
6343 PR tree-optimization/53090
6344 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
6345 COMP_IV_EXPR_2.
6346 (extract_cond_operands): Detect condition with IV on both sides
6347 and return COMP_IV_EXPR_2.
6348 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
6349 (rewrite_use_compare): Simplify by removing call to function
6350 extract_cond_operands.
6351
6352 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6353
6354 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
6355 (extract_cond_operands): Detect condition comparing against non-
6356 invariant bound and return appropriate enum value.
6357 (find_interesting_uses_cond): Update use of extract_cond_operands.
6358 Handle its return value accordingly.
6359 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
6360
6361 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6362
6363 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
6364 nonlinear iv_use computation in loop invariant sensitive way.
6365
6366 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6367
6368 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
6369 (find_iv_candidates): Call relate_compare_use_with_all_cands.
6370
6371 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6372
6373 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
6374 (dump_cand): Support iv_cand.inv_exprs.
6375 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
6376 for candidates.
6377 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
6378 iv_cand.inv_exprs.
6379
6380 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6381
6382 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
6383 from ...
6384 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
6385 as local function. Include necessary header files.
6386 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
6387
6388 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6389
6390 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
6391
6392 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6393
6394 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
6395 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
6396 RSHIFT_EXPR and BIT_NOT_EXPR.
6397
6398 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6399
6400 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
6401 (adjust_setup_cost): New parameter supporting round up adjustment.
6402 (struct address_cost_data): Delete.
6403 (force_expr_to_var_cost): Don't bound cost with spill_cost.
6404 (split_address_cost, ptr_difference_cost): Delete.
6405 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
6406 (struct ainc_cost_data): New struct.
6407 (get_address_cost_ainc): New function.
6408 (get_address_cost, get_computation_cost): Reimplement.
6409 (determine_group_iv_cost_address): Record inv_expr for all uses of
6410 a group.
6411 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
6412 (iv_ca_has_deps): Reimplemented to ...
6413 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
6414 than OLD_CP.
6415 (iv_ca_extend): Call iv_ca_more_deps.
6416
6417 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6418
6419 * tree-ssa-address.c (struct mem_address): Move to header file.
6420 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
6421 * tree-ssa-address.h (struct mem_address): Move from C file.
6422 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
6423
6424 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6425
6426 * tree-affine.h (aff_combination_type): New interface.
6427 (aff_combination_zero_p): Remove static.
6428 (aff_combination_const_p): New interface.
6429 (aff_combination_singleton_var_p): New interfaces.
6430
6431 2017-05-11 Richard Biener <rguenther@suse.de>
6432
6433 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
6434 Skip unreachable blocks and destinations.
6435 (eliminate): Move stmt removal and fixup ...
6436 (fini_eliminate): ... here. Skip inserted exprs.
6437 (pass_pre::execute): Move fini_pre after fini_eliminate.
6438 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
6439 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
6440 PRE to get rid of dead code that has invalid SSA form and
6441 split critical edges again.
6442
6443 2017-05-11 Bin Cheng <bin.cheng@arm.com>
6444
6445 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
6446
6447 2017-05-11 Richard Biener <rguenther@suse.de>
6448
6449 * passes.c (execute_function_todo): Verify loops if they are
6450 said to be up-to-date.
6451 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
6452 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
6453
6454 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
6455
6456 PR target/80090
6457 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
6458 handle calling assemble_external ourself.
6459
6460 PR target/79027
6461 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
6462 modes with zero size. Enhance comment.
6463
6464 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6465
6466 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
6467 built-ins for vec_xl and vec_xst with short and char pointer
6468 arguments.
6469
6470 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
6471
6472 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
6473 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
6474 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
6475 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
6476 (_mm_maskz_min_round_ss): New intrinsics.
6477 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
6478 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
6479 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
6480 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
6481 (__builtin_ia32_minss_mask_round): New builtins.
6482 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
6483 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
6484 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
6485 Rename to ...
6486 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
6487 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
6488 Change to ...
6489 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
6490 ... this.
6491
6492 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
6493
6494 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
6495 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
6496 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
6497 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
6498 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
6499 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
6500 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
6501 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
6502 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
6503 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
6504 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
6505 (__builtin_ia32_mulss_mask_round): New builtins.
6506 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
6507 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
6508 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
6509 Rename to ...
6510 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
6511 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
6512 Change to ...
6513 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
6514 ... this.
6515
6516 2017-05-10 Julia Koval <julia.koval@intel.com>
6517
6518 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
6519 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
6520 (_mm256_setr_m128i): New intrinsics.
6521
6522 2017-05-10 Julia Koval <julia.koval@intel.com>
6523
6524 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
6525 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
6526 (_mm_maskz_rcp14_ss): New intrinsics.
6527 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
6528 (__builtin_ia32_rcp14ss_mask): New builtins.
6529 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
6530
6531 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
6532
6533 PR tree-optimization/51513
6534 * tree-cfg.c (gimple_seq_unreachable_p): New function.
6535 (assert_unreachable_fallthru_edge_p): Use it.
6536 (group_case_labels_stmt): Likewise.
6537 * tree-cfg.h: Prototype it.
6538 * stmt.c: Include cfghooks.h and tree-cfg.h.
6539 (emit_case_dispatch_table) <gap_label>: New local variable.
6540 Use it to fill dispatch table gaps.
6541 Test for default_label before updating probabilities.
6542 (expand_case) <default_label>: Remove unneeded initialization.
6543 Test for unreachable default case statement and remove its edge.
6544 Set default_label accordingly.
6545 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
6546
6547 2017-05-10 Carl Love <cel@us.ibm.com>
6548
6549 * config/rs6000/rs6000-c: Add support for built-in functions
6550 vector signed char vec_neg (vector signed char)
6551 vector signed short int vec_neg (vector short int)
6552 vector signed int vec_neg (vector signed int)
6553 vector signed long long vec_neg (vector signed long long)
6554 vector float vec_neg (vector float)
6555 vector double vec_neg (vector double)
6556 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
6557 overload.
6558 * config/rs6000/altivec.h: Add define for vec_neg
6559 * doc/extend.texi: Update the built-in documentation for the
6560 new built-in functions.
6561
6562 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6563
6564 PR tree-optimization/77644
6565 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
6566
6567 2017-05-10 Nathan Sidwell <nathan@acm.org>
6568
6569 * dumpfile.h (TDI_lang_all): New.
6570 (TDF_KIND): New. Renumber others
6571 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
6572 than bits.
6573 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
6574 lang-all.
6575 (get_dump_file_name): Adjust suffix generation.
6576 (dump_enable_all): Use TDF_KIND.
6577 * doc/invoke.texi (-fdump-lang-all): Document.
6578
6579 * dumpfile.h: Tabify.
6580
6581 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
6582
6583 PR target/80671
6584 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
6585 Move member access before delete.
6586
6587 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
6588
6589 * tree-inline.c (expand_call_inline): Split block at stmt
6590 before the call.
6591
6592 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
6593
6594 PR target/68163
6595 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
6596 are now unused after splitting mov{sf,sd}_hardfloat.
6597 (f32_lr2): Likewise.
6598 (f32_lm): Likewise.
6599 (f32_lm2): Likewise.
6600 (f32_li): Likewise.
6601 (f32_li2): Likewise.
6602 (f32_lv): Likewise.
6603 (f32_sr): Likewise.
6604 (f32_sr2): Likewise.
6605 (f32_sm): Likewise.
6606 (f32_sm2): Likewise.
6607 (f32_si): Likewise.
6608 (f32_si2): Likewise.
6609 (f32_sv): Likewise.
6610 (f32_dm): Likewise.
6611 (f32_vsx): Likewise.
6612 (f32_av): Likewise.
6613 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
6614 For movsf, order stores so the VSX stores occur before the GPR
6615 store which encourages the register allocator to use a traditional
6616 FPR instead of a GPR. For movsd, order the stores so that the GPR
6617 store comes before the VSX stores to allow the power6 to work.
6618 This is due to the power6 not having a 32-bit integer store
6619 instruction from a FPR.
6620 (movsf_hardfloat): Likewise.
6621 (movsd_hardfloat): Likewise.
6622
6623 2017-05-09 Martin Sebor <msebor@redhat.com>
6624
6625 PR translation/80280
6626 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
6627 added in r247778.
6628
6629 PR translation/80280
6630 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
6631 data member added in r247778.
6632 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
6633
6634 2017-05-09 Nathan Sidwell <nathan@acm.org>
6635
6636 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
6637
6638 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
6639 typedefs.
6640
6641 2017-05-09 Marek Polacek <polacek@redhat.com>
6642
6643 * doc/invoke.texi: Fix typo.
6644
6645 2017-05-09 Richard Biener <rguenther@suse.de>
6646
6647 * tree-vrp.c (vrp_val_is_max): Adjust comment.
6648 (vrp_val_is_min): Likewise.
6649 (set_value_range_to_value): Likewise.
6650 (set_value_range_to_nonnegative): Likewise.
6651 (gimple_assign_nonzero_p): Likewise.
6652 (gimple_stmt_nonzero_p): Likewise.
6653 (vrp_int_const_binop): Likewise. Remove unreachable case.
6654 (adjust_range_with_scev): Adjust comments.
6655 (compare_range_with_value): Likewise.
6656 (extract_range_from_phi_node): Likewise.
6657 (test_for_singularity): Likewise.
6658
6659 2017-05-09 Richard Biener <rguenther@suse.de>
6660
6661 * tree-vrp.c (get_single_symbol): Add assert that we don't
6662 get overflowed constants as invariant part.
6663 (compare_values_warnv): Add comment before the TREE_NO_WARNING
6664 checks. Use wi::cmp instead of recursing for integer constants.
6665 (compare_values): Just ignore whether we assumed undefined
6666 overflow instead of failing the compare.
6667 (extract_range_for_var_from_comparison_expr): Add comment before the
6668 TREE_NO_WARNING sets.
6669 (test_for_singularity): Likewise.
6670 (extract_range_from_comparison): Do not disable optimization
6671 when we assumed undefined overflow.
6672 (extract_range_basic): Remove init of unused var.
6673
6674 2017-05-09 Richard Biener <rguenther@suse.de>
6675
6676 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
6677 (extract_range_from_multiplicative_op_1): Adjust.
6678 (extract_range_from_binary_expr_1): Use int_const_binop.
6679
6680 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
6681
6682 PR target/80101
6683 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
6684 rs6000_store_data_bypass_p in seven define_bypass directives and
6685 in several comments.
6686 * config/rs6000/rs6000-protos.h: Add prototype for
6687 rs6000_store_data_bypass_p function.
6688 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
6689 function implements slightly different (rs6000-specific) semantics
6690 than store_data_bypass_p, returning false rather than aborting
6691 with assertion error when arguments do not satisfy the
6692 requirements of store data bypass.
6693 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
6694 rs6000_store_data_bypass_p.
6695
6696 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
6697
6698 * config/xtensa/xtensa-protos.h
6699 (xtensa_initial_elimination_offset): New declaration.
6700 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
6701 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
6702 macro definition, add case for FRAME_POINTER_REGNUM when
6703 FRAME_GROWS_DOWNWARD.
6704 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
6705 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
6706 xtensa_initial_elimination_offset.
6707
6708 2017-05-08 Nathan Sidwell <nathan@acm.org>
6709
6710 * doc/invoke.texi: Alphabetize -fdump options.
6711
6712 2017-05-08 Martin Sebor <msebor@redhat.com>
6713
6714 PR translation/80280
6715 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
6716
6717 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
6718
6719 * target.def (compute_frame_layout): New optional target hook.
6720 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
6721 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
6722 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
6723 target hook.
6724 * reload1.c (verify_initial_elim_offsets): Likewise.
6725 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
6726 (use_simple_return_p): Call arm_compute_frame_layout if needed.
6727 (arm_get_frame_offsets): Split up into this ...
6728 (arm_compute_frame_layout): ... and this function.
6729
6730 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
6731
6732 * config/aarch64/constraints.md (Usa): New constraint.
6733 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
6734
6735 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
6736
6737 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
6738 with_multilib_list after it has been checked.
6739
6740 2017-05-08 Richard Biener <rguenther@suse.de>
6741
6742 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
6743 (bitmap_set_subtract_values): Likewise.
6744
6745 2017-05-08 Richard Biener <rguenther@suse.de>
6746
6747 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
6748 (gimple_assign_nonzero): ... this and remove strict_overflow_p
6749 argument.
6750 (gimple_stmt_nonzero_warnv_p): Rename to ...
6751 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
6752 argument.
6753 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
6754 (extract_range_basic): Adjust, do not disable propagation on
6755 strict overflow sensitive simplification.
6756 (vrp_visit_cond_stmt): Likewise.
6757
6758 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
6759
6760 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
6761 body size unconditionally.
6762
6763 2017-05-07 Jeff Law <law@redhat.com>
6764
6765 Revert:
6766 2017-05-06 Jeff Law <law@redhat.com>
6767 PR tree-optimization/78496
6768 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
6769 code.
6770
6771 PR tree-optimization/78496
6772 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
6773 (simplify_stmt_using_ranges): Call it.
6774 (vrp_dom_walker::before_dom_children): Extract equivalences
6775 from an ASSERT_EXPR with an equality comparison against a
6776 constant.
6777
6778 2017-05-06 Jeff Law <law@redhat.com>
6779
6780 PR tree-optimization/78496
6781 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
6782 code.
6783
6784 PR tree-optimization/78496
6785 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
6786 (simplify_stmt_using_ranges): Call it.
6787 (vrp_dom_walker::before_dom_children): Extract equivalences
6788 from an ASSERT_EXPR with an equality comparison against a
6789 constant.
6790
6791 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
6792
6793 * lra-constraints.c (lra_copy_reg_equiv): New function.
6794 (split_reg): Use it to copy equivalence information from the
6795 original register to the spill register.
6796
6797 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
6798
6799 PR rtl-optimization/75964
6800 * simplify-rtx.c (simplify_const_relational_operation): Remove
6801 invalid handling of comparisons of integer ABS.
6802
6803 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
6804
6805 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
6806 initialize to zero.
6807 (init_regs): Remove declaration.
6808 (function_arg_advance_32): Initialize error_p as boolean variable.
6809
6810 2017-05-05 Nathan Sidwell <nathan@acm.org>
6811
6812 * store-motion.c (remove_reachable_equiv_notes): Reformat long
6813 lines. Use for (;;).
6814
6815 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6816
6817 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
6818 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
6819 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
6820 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
6821 VF=2 that require versioning.
6822
6823 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6824
6825 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
6826 int.
6827
6828 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6829
6830 * diagnostic.h (diagnostic_override_option_index): Convert from
6831 macro to inline function.
6832
6833 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6834
6835 * diagnostic.c (last_module_changed_p): New function.
6836 (set_last_module): New function.
6837 (diagnostic_report_current_module): Convert macro usage to
6838 the above functions.
6839 * diagnostic.h (diagnostic_context::last_module): Strengthen
6840 from const line_map * to const line_map_ordinary *.
6841 (diagnostic_last_module_changed): Delete macro.
6842 (diagnostic_set_last_module): Delete macro.
6843
6844 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6845
6846 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
6847 with diagnostic_report_diagnostic.
6848 (diagnostic_n_impl_richloc): Likewise.
6849 * diagnostic.h (report_diagnostic): Delete macro.
6850 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
6851 with diagnostic_report_diagnostic.
6852 * substring-locations.c (format_warning_va): Likewise.
6853
6854 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6855
6856 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
6857 save/restor of format_spec. Move option-printing code to...
6858 (print_option_information): ...this new function, and
6859 reimplement by simply printing to the pretty_printer,
6860 rather than appending to the format string.
6861
6862 2017-05-05 David Malcolm <dmalcolm@redhat.com>
6863
6864 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
6865 handling logic into...
6866 (update_effective_level_from_pragmas): ...this new function.
6867
6868 2017-05-04 Andrew Waterman <andrew@sifive.com>
6869
6870 * config/riscv/riscv.opt (mstrict-align): New option.
6871 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
6872 (SLOW_UNALIGNED_ACCESS): Define.
6873 (riscv_slow_unaligned_access): Declare.
6874 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
6875 field.
6876 (riscv_slow_unaligned_access): New variable.
6877 (rocket_tune_info): Set slow_unaligned_access to true.
6878 (optimize_size_tune_info): Set slow_unaligned_access to false.
6879 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
6880 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
6881 (riscv_option_override): Set riscv_slow_unaligned_access.
6882 * doc/invoke.texi: Add -mstrict-align to RISC-V.
6883
6884 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
6885
6886 * config/riscv/riscv.md: Unify indentation.
6887
6888 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
6889
6890 PR target/79038
6891 PR target/79202
6892 PR target/79203
6893 * config/rs6000/rs6000.md (u code attribute): Add FIX and
6894 UNSIGNED_FIX.
6895 (extendsi<mode>2): Add support for doing sign extension via
6896 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
6897 don't have ISA 3.0 instructions.
6898 (extendsi<mode>2 splitter): Likewise.
6899 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
6900 generate the normal insns since SImode can now go in vector
6901 registers. Disallow the special UNSPECs needed for previous
6902 machines to hide SImode being used. Add new insns
6903 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
6904 (fix_trunc<mode>si2_stfiwx): Likewise.
6905 (fix_trunc<mode>si2_internal): Likewise.
6906 (fixuns_trunc<mode>si2): Likewise.
6907 (fixuns_trunc<mode>si2_stfiwx): Likewise.
6908 (fctiw<u>z_<mode>_smallint): Likewise.
6909 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
6910 of floating point to 32-bit integer from doing a direct move to
6911 the GPR registers to do a store.
6912 (fctiwz_<mode>): Break long line.
6913
6914 2017-05-05 Bin Cheng <bin.cheng@arm.com>
6915
6916 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
6917 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
6918 (addr_list, addr_offset_valid_p): New.
6919 (split_address_groups): Check offset validity with above function.
6920 (gt-tree-ssa-loop-ivopts.h): Include header file.
6921
6922 2017-05-05 Nathan Sidwell <nathan@acm.org>
6923
6924 * config.gcc (arm*-*-*): Add missing 'fi'.
6925
6926 2017-05-05 Steve Ellcey <sellcey@cavium.com>
6927
6928 * doc/invoke.texi (-fopt-info): Explicitly say order of options
6929 included in -fopt-info does not matter.
6930 * doc/optinfo.texi (-fopt-info): Fix description of default
6931 behavour. Explicitly say order of options included in -fopt-info
6932 does not matter.
6933
6934 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
6935
6936 * config.gcc: Allow combinations of aprofile and rmprofile values for
6937 --with-multilib-list.
6938 * config/arm/t-multilib: New file.
6939 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
6940 variables. Remove setting of ISA and floating-point ABI in
6941 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
6942 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
6943 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
6944 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
6945 CPU options.
6946 * config/arm/t-rmprofile: Likewise except for the matches changes.
6947 * doc/install.texi (--with-multilib-list): Document the combination of
6948 aprofile and rmprofile values and warn about pitfalls in doing that.
6949
6950 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
6951
6952 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
6953 (movdi_aarch64): Likewise.
6954
6955 2017-05-05 Jakub Jelinek <jakub@redhat.com>
6956
6957 PR tree-optimization/80632
6958 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
6959 field.
6960 (build_arrays): Initialize it for virtual phis.
6961 (fix_phi_nodes): Use it for virtual phis.
6962
6963 PR tree-optimization/80558
6964 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
6965 [x, y] op z into [x op, y op z] for op & or | if conditions
6966 are met.
6967
6968 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
6969 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
6970
6971 PR target/71607
6972 * config/arm/arm.md (use_literal_pool): Remove.
6973 (64-bit immediate split): No longer takes cost into consideration
6974 if arm_disable_literal_pool is enabled.
6975 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
6976 used when arm_disable_literal_pool is enabled.
6977 (arm_max_const_double_inline_cost): Remove use of
6978 arm_disable_literal_pool.
6979 (push_minipool_fix): Add assert.
6980 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
6981 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
6982 (no_literal_pool_sf_immediate): New.
6983
6984 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6985
6986 PR tree-optimization/80613
6987 * tree-ssa-dce.c (propagate_necessity): Remove cases for
6988 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
6989
6990 2017-05-05 Richard Biener <rguenther@suse.de>
6991
6992 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
6993
6994 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
6995
6996 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
6997 of this flag from insn conditions due to removal from r247495.
6998
6999 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
7000
7001 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
7002 New function.
7003 (arm_early_store_addr_dep_ptr): Likewise.
7004 * config/arm/aarch-common-protos.h
7005 (arm_early_load_addr_dep_ptr): Add prototype.
7006 (arm_early_store_addr_dep_ptr): Likewise.
7007 * config/arm/cortex-a53.md: Add new bypasses.
7008
7009 2017-05-05 Jakub Jelinek <jakub@redhat.com>
7010
7011 * tree.c (next_type_uid): Change type to unsigned.
7012 (type_hash_canon): Decrement back next_type_uid if
7013 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
7014 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
7015 if possible.
7016
7017 2017-05-04 Martin Sebor <msebor@redhat.com>
7018
7019 * builtins.c: Fix a trivial typo in a comment.
7020
7021 PR middle-end/79234
7022 * builtins.c (check_sizes): Adjust to handle reading past the end.
7023 Avoid printing excessive upper bound of ranges. Use %E to print
7024 tree nodes instead of converting them to %wu.
7025 (expand_builtin_memchr): New function.
7026 (compute_dest_size): Rename...
7027 (compute_objsize): ...to this.
7028 (expand_builtin_memcpy): Adjust.
7029 (expand_builtin_mempcpy): Adjust.
7030 (expand_builtin_strcat): Adjust.
7031 (expand_builtin_strcpy): Adjust.
7032 (check_strncat_sizes): Adjust.
7033 (expand_builtin_strncat): Adjust.
7034 (expand_builtin_strncpy): Adjust and simplify.
7035 (expand_builtin_memset): Adjust.
7036 (expand_builtin_bzero): Adjust.
7037 (expand_builtin_memcmp): Adjust.
7038 (expand_builtin): Handle memcmp.
7039 (maybe_emit_chk_warning): Check strncat just once.
7040
7041 2017-05-04 Martin Sebor <msebor@redhat.com>
7042
7043 PR preprocessor/79214
7044 PR middle-end/79222
7045 PR middle-end/79223
7046 * builtins.c (check_sizes): Add inlining context and issue
7047 warnings even when -Wno-system-headers is set.
7048 (check_strncat_sizes): Same.
7049 (expand_builtin_strncat): Same.
7050 (expand_builtin_memmove): New function.
7051 (expand_builtin_stpncpy): Same.
7052 (expand_builtin): Handle memmove and stpncpy.
7053
7054 2017-05-04 Bin Cheng <bin.cheng@arm.com>
7055
7056 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
7057 which is not used any more.
7058
7059 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7060
7061 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
7062
7063 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7064
7065 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
7066 (cortexa53_tunings): Likewise.
7067 (cortexa57_tunings): Likewise.
7068 (cortexa72_tunings): Likewise.
7069 (cortexa73_tunings): Likewise.
7070
7071 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7072
7073 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
7074 Set loop alignment to 8.
7075
7076 2017-05-04 Martin Sebor <msebor@redhat.com>
7077
7078 PR translation/80280
7079 * builtins.c (expand_builtin_object_size): Add missing quoting to
7080 %D and like directives.
7081 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
7082 (hsa_type_for_tree_type): Same.
7083 (verify_function_arguments): Same.
7084 * symtab.c (symbol_table::change_decl_assembler_name): Same.
7085 * varasm.c (get_section): Same.
7086 (mark_weak): Same.
7087
7088 2017-05-04 Martin Sebor <msebor@redhat.com>
7089
7090 PR translation/80280
7091 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
7092
7093 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
7094
7095 * config/aarch64/aarch64.c (generic_addrcost_table):
7096 Change HI/TI mode setting.
7097
7098 2017-05-04 Martin Jambor <mjambor@suse.cz>
7099
7100 PR tree-optimization/80622
7101 * tree-sra.c (comes_initialized_p): New function.
7102 (build_accesses_from_assign): Only set write lazily when
7103 comes_initialized_p is false.
7104 (analyze_access_subtree): Use comes_initialized_p.
7105 (propagate_subaccesses_across_link): Assert !comes_initialized_p
7106 instead of testing for PARM_DECL.
7107
7108 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7109
7110 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
7111 constraint on operand 0 to allow more general addressing modes.
7112 Adjust output template.
7113 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
7114 New function.
7115 * config/aarch64/aarch64-protos.h
7116 (aarch64_address_valid_for_prefetch_p): Declare prototype.
7117 * config/aarch64/constraints.md (Dp): New address constraint.
7118 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
7119 predicate.
7120
7121 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
7122
7123 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
7124 update use of estimate_ipcp_clone_size_and_time.
7125 (estimate_local_effects): Update use of
7126 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
7127 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
7128 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
7129 Return nonspecialized time.
7130
7131 2017-05-04 Richard Biener <rguenther@suse.de>
7132
7133 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
7134 for the last VUSE which def dominates the PHI. Directly call
7135 maybe_skip_until.
7136 (get_continuation_for_phi_1): Remove.
7137
7138 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
7139
7140 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
7141 to explain the use of truncating division. Cap the number of
7142 iterations to the maximum given by nb_iterations_upper_bound,
7143 if defined.
7144
7145 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
7146
7147 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
7148 * configure: Regenerate.
7149 * config.in: Regenerate.
7150 * config/i386/driver-mingw32.c: new file.
7151 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
7152 * config.host: Link driver-mingw32.o on MinGW host.
7153 * doc/install.texi: Document new --enable-mingw-wildcard configure
7154 option.
7155
7156 2017-05-04 Marek Polacek <polacek@redhat.com>
7157
7158 PR tree-optimization/80612
7159 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
7160
7161 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7162 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
7163
7164 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
7165 (movt splitter): Likewise.
7166 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
7167 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
7168 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
7169 block for Thumb-1 with MOVT.
7170 (thumb2_legitimate_address_p): Move code block ...
7171 (can_avoid_literal_pool_for_label_p): ... into this new function.
7172 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
7173 literal pool.
7174 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
7175 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
7176 "M-profile targets with the MOVT instruction".
7177
7178 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7179
7180 * config/arm/arm-builtins.c (arm_init_builtins): Rename
7181 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
7182 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
7183
7184 2017-05-04 Martin Liska <mliska@suse.cz>
7185
7186 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
7187 variable cond_code.
7188
7189 2017-05-04 Richard Biener <rguenther@suse.de>
7190
7191 * tree.c (array_at_struct_end_p): Handle arrays at struct
7192 end with flexarrays more conservatively. Refactor and treat
7193 arrays of arrays or aggregates more strict. Fix
7194 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
7195 * tree.c (array_at_struct_end_p): Adjust prototype.
7196 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
7197 * gimple-fold.c (get_range_strlen): Likewise.
7198 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
7199
7200 2017-05-04 Richard Biener <rguenther@suse.de>
7201
7202 PR tree-optimization/31130
7203 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
7204 false.
7205 (supports_overflow_infinity): Likewise.
7206 (is_negative_overflow_infinity): Likewise.
7207 (is_positive_overflow_infinity): Likewise.
7208 (is_overflow_infinity): Likewise.
7209 (stmt_overflow_infinity): Likewise.
7210 (overflow_infinity_range_p): Likewise.
7211 (usable_range_p): Remove as always returning true.
7212 (make_overflow_infinity): Remove.
7213 (negative_overflow_infinity): Likewise.
7214 (positive_overflow_infinity): Likewise.
7215 (avoid_overflow_infinity): Likewise.
7216 (set_value_range): Adjust accordingly.
7217 (set_value_range_to_nonnegative): Likewise, remove now unused
7218 overflow_infinity arg.
7219 (vrp_operand_equal_p): Adjust.
7220 (update_value_range): Likewise.
7221 (range_int_cst_singleton_p): Likewise.
7222 (operand_less_p): Likewise.
7223 (compare_values_warnv): Likewise.
7224 (extract_range_for_var_from_comparison_expr): Likewise.
7225 (vrp_int_const_binop): Likewise.
7226 (zero_nonzero_bits_from_vr): Likewise.
7227 (extract_range_from_multiplicative_op_1): Likewise.
7228 (extract_range_from_binary_expr_1): Likewise.
7229 (extract_range_from_unary_expr): Likewise.
7230 (extract_range_from_comparison): Likewise.
7231 (extract_range_basic): Likewise.
7232 (adjust_range_with_scev): Likewise.
7233 (compare_ranges): Likewise.
7234 (compare_range_with_value): Likewise.
7235 (dump_value_range): Likewise.
7236 (test_for_singularity): Likewise, remove strict_overflow_p parameter
7237 never used.
7238 (simplify_cond_using_ranges): Adjust.
7239
7240 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
7241
7242 * brig-builtins.def: Added a builtin for class_f64.
7243 * builtin-types.def: Added a builtin type needed by class_f64.
7244
7245 2017-05-03 Jason Merrill <jason@redhat.com>
7246
7247 * timevar.def: Add TV_CONSTEXPR.
7248
7249 2017-05-03 David Malcolm <dmalcolm@redhat.com>
7250
7251 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
7252
7253 2017-05-03 Martin Jambor <mjambor@suse.cz>
7254
7255 * ipa-prop.c (ipa_update_after_lto_read): Removed.
7256 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
7257 * ipa-cp.c (ipcp_propagate_stage): Do not call
7258 ipa_update_after_lto_read.
7259 * ipa-inline.c (ipa_inline): Likewise.
7260
7261 2017-05-03 Martin Jambor <mjambor@suse.cz>
7262
7263 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
7264 tag. Added a default constructor and a destructor.
7265 (ipa_edge_args_sum_t): New class;
7266 (ipa_edge_args_sum): Declare.
7267 (ipa_edge_args_vector): Remove declaration.
7268 (IPA_EDGE_REF): Use ipa_edge_args_sum.
7269 (ipa_free_edge_args_substructures): Remove declaration.
7270 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
7271 (ipa_edge_args_info_available_for_edge_p): Likewise.
7272 * ipa-prop.c (ipa_edge_args_vector): Removed.
7273 (edge_removal_hook_holder): Likewise.
7274 (edge_duplication_hook_holder): Likewise.
7275 (ipa_edge_args_sum): New variable.
7276 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
7277 ipa_edge_args_vector.
7278 (ipa_free_edge_args_substructures): Likewise.
7279 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
7280 ipa_edge_args_vector.
7281 (ipa_edge_removal_hook): Turned into method
7282 ipa_edge_args_sum_t::remove.
7283 (ipa_edge_duplication_hook): Turned into method
7284 ipa_edge_args_sum_t::duplicate.
7285 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
7286 registering edge hooks.
7287 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
7288 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
7289 ipa_edge_args_sum instead of ipa_edge_args_vector.
7290 * ipa-profile.c (ipa_profile): Likewise.
7291
7292 2017-05-03 Martin Jambor <mjambor@suse.cz>
7293
7294 * symbol-summary.h (function_summary): New method exists.
7295 (function_summary::symtab_removal): Deallocate through release.
7296 (call_summary): New class.
7297 (gt_ggc_mx): New overload.
7298 (gt_pch_nx): Likewise.
7299 (gt_pch_nx): Likewise.
7300
7301 2017-05-03 Jeff Law <law@redhat.com>
7302
7303 PR tree-optimization/78496
7304 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
7305 from simplify_cond_using_ranges. Split off code to walk
7306 backwards through casts into ...
7307 (simplify_cond_using_ranges_2): New function.
7308 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
7309 (execute_vrp): After identifying jump threads, call
7310 simplify_cond_using_ranges_2.
7311
7312 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
7313
7314 PR bootstrap/80609
7315 * ipa-inline.h (inline_summary): Add ctor.
7316 (create_ggc): Do not use ggc_cleared_alloc.
7317
7318 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
7319 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7320
7321 * gcc.c (handle_braces): Support escaping in switch matching
7322 text.
7323 * doc/invoke.texi (Spec Files): Document it.
7324 Remove superfluous @code markup in items.
7325
7326 2017-05-03 David Malcolm <dmalcolm@redhat.com>
7327
7328 * diagnostic-show-locus.c (struct column_range): New struct.
7329 (get_affected_columns): New function.
7330 (get_printed_columns): New function.
7331 (struct correction): New struct.
7332 (correction::ensure_capacity): New function.
7333 (correction::ensure_terminated): New function.
7334 (struct line_corrections): New struct.
7335 (line_corrections::~line_corrections): New dtor.
7336 (line_corrections::add_hint): New function.
7337 (layout::print_trailing_fixits): Reimplement in terms of the new
7338 classes.
7339 (selftest::test_overlapped_fixit_printing): New function.
7340 (selftest::diagnostic_show_locus_c_tests): Call it.
7341
7342 2017-05-03 Nathan Sidwell <nathan@acm.org>
7343
7344 Canonicalize canonical type hashing
7345 * tree.h (type_hash_canon_hash): Declare.
7346 * tree.c (type_hash_list, attribute_hash_list): Move into
7347 type_hash_canon_hash.
7348 (build_type_attribute_qual_variant): Break out hash code calc into
7349 type_hash_canon_hash.
7350 (type_hash_canon_hash): New. Generic type hash computation.
7351 (build_range_type_1, build_array_type_1, build_function_type,
7352 build_method_type_directly, build_offset_type, build_complex_type,
7353 make_vector_type): Call it.
7354
7355 2017-05-03 Richard Biener <rguenther@suse.de>
7356
7357 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
7358 When all DRs have unknown misaligned do not always peel
7359 when there is a store but apply the same costing model as if
7360 there were only loads.
7361
7362 2017-05-03 Richard Biener <rguenther@suse.de>
7363
7364 Revert
7365 PR tree-optimization/80492
7366 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
7367 compare_base_decls returning dont-know properly.
7368
7369 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
7370
7371 * config/arm/iterators.md (CCSI): New mode iterator.
7372 (arch): New mode attribute.
7373 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
7374 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
7375 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
7376 code iterator for success result mode.
7377 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
7378 the corresponding new insn generators.
7379
7380 2017-05-03 Bin Cheng <bin.cheng@arm.com>
7381
7382 Revert r247509
7383 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7384 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
7385
7386 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
7387
7388 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
7389 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
7390 (DDR_A): Wrap DDR argument in brackets.
7391 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
7392 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
7393 (DDR_REVERSED_P): Likewise.
7394
7395 2017-05-03 Jakub Jelinek <jakub@redhat.com>
7396
7397 PR tree-optimization/79472
7398 * tree-switch-conversion.c (struct switch_conv_info): Add
7399 contiguous_range and default_case_nonstandard fields.
7400 (collect_switch_conv_info): Compute contiguous_range and
7401 default_case_nonstandard fields, don't clear final_bb if
7402 contiguous_range and only the default case doesn't have the required
7403 structure.
7404 (check_all_empty_except_final): Set default_case_nonstandard instead
7405 of failing if contiguous_range and the default case doesn't have empty
7406 block.
7407 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
7408 and only the default case doesn't have the required constants. Skip
7409 virtual phis.
7410 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
7411 if default_case_nonstandard.
7412 (build_constructors): Build constant 1 just once. Assert that default
7413 values aren't inserted in between cases if contiguous_range. Skip
7414 virtual phis.
7415 (build_arrays): Skip virtual phis.
7416 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
7417 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
7418 Handle virtual phis.
7419 (gen_inbound_check): Handle default_case_nonstandard case.
7420 (process_switch): Adjust check_final_bb caller. Call
7421 gather_default_values with the first non-default case instead of
7422 default case if default_case_nonstandard.
7423
7424 2017-05-02 Nathan Sidwell <nathan@acm.org>
7425
7426 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
7427 check. Fix formatting.
7428
7429 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
7430
7431 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
7432 errors when comparing specialized and unspecialized times.
7433
7434 2017-05-02 David Malcolm <dmalcolm@redhat.com>
7435
7436 * diagnostic-show-locus.c
7437 (layout::should_print_annotation_line_p): Make private.
7438 (layout::print_annotation_line): Make private.
7439 (layout::annotation_line_showed_range_p): Make private.
7440 (layout::show_ruler): Make private.
7441 (layout::print_source_line): Make private. Pass in line and
7442 line_width, rather than calling location_get_source_line. Drop
7443 returned value.
7444 (layout::print_leading_fixits): New method.
7445 (layout::print_any_fixits): Rename to...
7446 (layout::print_trailing_fixits): ...this, and make private.
7447 Don't print newline fixits.
7448 (diagnostic_show_locus): Move logic for printing one row into...
7449 (layout::print_line): ...this new function. Move the
7450 location_get_source_line call and error-handling from
7451 print_source_line to here. Call print_leading_fixits, and rename
7452 print_any_fixits to print_trailing_fixits.
7453 (selftest::test_fixit_insert_containing_newline): Update now that
7454 newlines are partially supported.
7455 (selftest::test_fixit_insert_containing_newline_2): New test.
7456 (selftest::test_fixit_replace_containing_newline): Update comments.
7457 (selftest::diagnostic_show_locus_c_tests): Call the new test.
7458 * edit-context.c (class added_line): New class.
7459 (class edited_line): Describe newline handling in comment.
7460 (edited_line::actually_edited_p): New method.
7461 (edited_line::print_content): Delete redundant decl.
7462 (edited_line::m_predecessors): New field.
7463 (edited_file::print_content): Call edited_line::print_content.
7464 (edited_file::print_diff): Update to support newlines.
7465 (edited_file::print_diff_hunk): Likewise.
7466 (edited_file::print_run_of_changed_lines): New function.
7467 (edited_file::print_diff_line): Convert to...
7468 (print_diff_line): ...this.
7469 (edited_file::get_effective_line_count): New function.
7470 (edited_line::edited_line): Initialize new field m_predecessors.
7471 (edited_line::~edited_line): Clean up m_predecessors.
7472 (edited_line::apply_fixit): Handle newlines.
7473 (edited_line::get_effective_line_count): New function.
7474 (edited_line::print_content): New function.
7475 (edited_line::print_diff_lines): New function.
7476 (selftest::test_applying_fixits_insert_containing_newline): New
7477 test.
7478 (selftest::test_applying_fixits_replace_containing_newline): New
7479 test.
7480 (selftest::insert_line): New function.
7481 (selftest::test_applying_fixits_multiple_lines): Add example of
7482 inserting a line.
7483 (selftest::edit_context_c_tests): Call the new tests.
7484
7485 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7486
7487 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
7488 parameter cand. Update dump information.
7489 (get_computation_cost): Update uses.
7490
7491 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7492
7493 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
7494 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
7495 (get_computation_at, rewrite_use_address): Update use of
7496 get_computation_aff.
7497
7498 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7499
7500 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
7501 (get_computation): Delete.
7502 (get_computation_cost): Implement like get_computation_cost_at.
7503 Use get_computation_at.
7504 (get_computation_cost_at): Delete.
7505 (rewrite_use_nonlinear_expr): Use get_computation_at.
7506 (rewrite_use_compare, remove_unused_ivs): Ditto.
7507
7508 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7509
7510 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
7511
7512 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7513
7514 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
7515 (ivopts_global_cost_for_size): Rename parameter and update uses.
7516 (iv_ca_recount_cost): Update uses.
7517 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
7518 candidates seperately in n_invs and n_cands.
7519 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
7520
7521 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7522
7523 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
7524 (find_inv_vars_cb): New.
7525 (find_depends): Renamed to ...
7526 (find_inv_vars): ... this.
7527 (add_candidate_1, force_var_cost): Call find_inv_vars.
7528 (split_address_cost, determine_group_iv_cost_cond): Ditto.
7529
7530 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7531
7532 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
7533 inv_vars. Add inv_exprs.
7534 (struct iv_cand): Rename depends_on to inv_vars.
7535 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
7536 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
7537 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
7538 (dump_cand): Dump inv_vars.
7539 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
7540 (record_invariant, find_depends, add_candidate_1): Ditto.
7541 (set_group_iv_cost, force_var_cost): Ditto.
7542 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
7543 (get_computation_cost_at, get_computation_cost): Ditto.
7544 (determine_group_iv_cost_generic): Ditto.
7545 (determine_group_iv_cost_address): Ditto.
7546 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
7547 (determine_group_iv_costs): Ditto.
7548 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
7549 (iv_ca_set_remove_invariants): Renamed to ...
7550 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
7551 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
7552 (iv_ca_set_add_invariants): Renamed to ...
7553 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
7554 (iv_ca_set_cp): Use iv_ca_set_add_invs.
7555 (iv_ca_has_deps): Support inv_vars and inv_exprs.
7556 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
7557 (create_new_ivs): Remove useless dump.
7558
7559 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7560
7561 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
7562 iv_cand code.
7563 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
7564 (iv_ca_set_no_cp, create_new_iv): Ditto.
7565
7566 2017-05-02 Bin Cheng <bin.cheng@arm.com>
7567
7568 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
7569
7570 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
7571
7572 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
7573 function tree_check2.
7574
7575 2017-05-02 Martin Liska <mliska@suse.cz>
7576
7577 * doc/gcov.texi: Add missing preposition.
7578 * gcov.c (function_info::function_info): Properly fill up
7579 all member variables.
7580
7581 2017-05-02 Tamar Christina <tamar.christina@arm.com>
7582
7583 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
7584
7585 2017-05-02 Tamar Christina <tamar.christina@arm.com>
7586
7587 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
7588
7589 2017-05-02 Martin Liska <mliska@suse.cz>
7590
7591 PR lto/77954.
7592 * lto-streamer-in.c (lto_read_tree_1): Remove
7593 LTO_STREAMER_DEBUG.
7594 * lto-streamer.c (struct tree_hash_entry): Likewise.
7595 (struct tree_entry_hasher): Likewise.
7596 (tree_entry_hasher::hash): Likewise.
7597 (tree_entry_hasher::equal): Likewise.
7598 (lto_streamer_init): Likewise.
7599 (lto_orig_address_map): Likewise.
7600 (lto_orig_address_get): Likewise.
7601 (lto_orig_address_remove): Likewise.
7602 * lto-streamer.h: Likewise.
7603 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
7604 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
7605
7606 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
7607
7608 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
7609 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
7610 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
7611 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
7612 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
7613 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
7614 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
7615 (mm_maskz_sub_ss): New intrinsics.
7616 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
7617 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
7618 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
7619 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
7620 (__builtin_ia32_subss_mask_round): New builtins.
7621 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
7622 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
7623 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
7624 Renamed to ...
7625 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
7626 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
7627 Changed to ...
7628 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
7629 ... this.
7630
7631 2017-05-02 Martin Jambor <mjambor@suse.cz>
7632
7633 PR tree-optimization/78687
7634 * tree-sra.c (access): New field parent.
7635 (process_subtree_disqualification): New function.
7636 (disqualify_candidate): Call it.
7637 (build_accesses_from_assign): Reset write flag if creating an
7638 assighnment link.
7639 (build_access_subtree): Fill in parent field and also prpagate
7640 down grp_write flag.
7641 (create_artificial_child_access): New parameter set_grp_write, set
7642 grp_write to its value.
7643 (propagate_subaccesses_across_link): Also propagate grp_write flag
7644 values.
7645 (propagate_all_subaccesses): Push the closest parent back to work
7646 queue if add_access_to_work_queue returned true.
7647
7648 2017-05-02 Richard Biener <rguenther@suse.de>
7649
7650 * common.opt (fstrict-overflow): Alias negative to fwrapv.
7651 * doc/invoke.texi (fstrict-overflow): Remove all traces of
7652 -fstrict-overflow documentation.
7653 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
7654 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
7655 flag_strict_overflow.
7656 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
7657 * lto-opts.c (lto_write_options): Do not stream it.
7658 * lto-wrapper.c (merge_and_complain): Do not handle it.
7659 * opts.c (default_options_table): Do not set -fstrict-overflow.
7660 (finish_options): Likewise do not clear it when sanitizing.
7661 * simplify-rtx.c (simplify_const_relational_operation): Do not
7662 test flag_strict_overflow.
7663
7664 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
7665
7666 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
7667 using enabled attribute.
7668 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
7669 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
7670 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
7671 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
7672 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
7673 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
7674 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
7675 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
7676 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
7677 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
7678
7679 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
7680
7681 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
7682
7683 2017-05-02 Richard Biener <rguenther@suse.de>
7684
7685 PR tree-optimization/80591
7686 Revert
7687 2017-04-10 Richard Biener <rguenther@suse.de>
7688
7689 * tree-ssa-structalias.c (find_func_aliases): Properly handle
7690 asm inputs.
7691
7692 2017-05-02 Richard Biener <rguenther@suse.de>
7693
7694 PR tree-optimization/80549
7695 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
7696 (cleanup_tree_cfg_noloop): Create forwarders to known loop
7697 headers if they do not have a preheader.
7698
7699 2017-05-02 Martin Liska <mliska@suse.cz>
7700
7701 PR other/80589
7702 * common.opt: Fix typo.
7703 * doc/invoke.texi: Likewise.
7704
7705 2017-05-01 Jan Beulich <jbeulich@suse.com>
7706
7707 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
7708 swapping, add (x,x,m,x,n) alternative.
7709
7710 2017-05-01 Nathan Sidwell <nathan@acm.org>
7711
7712 * calls.c (combine_pending_stack_adjustment_and_call): Remove
7713 unnecessary unadjusted_alignment check.
7714
7715 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
7716
7717 PR c++/80038
7718 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
7719 operations here.
7720 * gimplify.c (gimplify_cilk_detach): New function.
7721 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
7722 * tree-core.h: Document EXPR_CILK_SPAWN.
7723 * tree.h (EXPR_CILK_SPAWN): Define.
7724
7725 2017-05-01 David Malcolm <dmalcolm@redhat.com>
7726
7727 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
7728 to use new fixit_hint representation, using the "replace" logic.
7729 (get_line_span_for_fixit_hint): Likewise.
7730 (layout::print_any_fixits): Likewise.
7731 (selftest::test_one_liner_many_fixits): Rename to...
7732 (selftest::test_one_liner_many_fixits_1): ...this, and update
7733 comment and expected output to reflect that the multiple fix-it
7734 hints are now consolidated into one insertion.
7735 (selftest::test_one_liner_many_fixits_2): New test.
7736 (selftest::test_diagnostic_show_locus_one_liner): Update for
7737 above.
7738 (selftest::test_fixit_consolidation): Update for fix-it API
7739 change.
7740 * diagnostic.c (print_parseable_fixits): Likewise.
7741 * edit-context.c (edited_line::m_line_events): Convert from
7742 auto_vec <line_event *> to auto_vec <line_event>.
7743 (class line_event): Convert from abstract base class to a concrete
7744 class, taking over the role of replace_event.
7745 (class insert_event): Delete.
7746 (class replace_event): Rename to class line_event. Convert to
7747 half-open range.
7748 (edit_context::add_fixits): Reimplement.
7749 (edit_context::apply_insert): Delete.
7750 (edit_context::apply_replace): Rename to...
7751 (edit_context::apply_fixit): ...this. Convert to half-open range.
7752 (edited_file::apply_insert): Delete.
7753 (edited_file::apply_replace): Rename to...
7754 (edited_file::apply_fixit): ...this.
7755 (edited_line::~edited_line): Drop deletion of events.
7756 (edited_line::apply_insert): Delete.
7757 (edited_line::apply_replace): Rename to...
7758 (edited_line::apply_fixit): ...this. Convert to half-open range.
7759 Update for change to type of m_line_events.
7760 * edit-context.h (edit_context::apply_insert): Delete.
7761 (edit_context::apply_replace): Rename to...
7762 (edit_context::apply_fixit): ...this.
7763
7764 2017-05-01 Martin Sebor <msebor@redhat.com>
7765
7766 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
7767 known.
7768
7769 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
7770
7771 PR target/68491
7772 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
7773 __get_cpuid_max returns 0.
7774 (__get_cpuid_count): Ditto.
7775
7776 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
7777
7778 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
7779 replacement expression is another instance of one of its arguments.
7780
7781 2017-05-01 Jakub Jelinek <jakub@redhat.com>
7782
7783 PR target/79430
7784 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
7785 check for stack push/pop autoinc.
7786 * config/i386/i386.c (ix86_agi_dependent): Return false
7787 if the only reason why modified_in_p returned true is that
7788 addr is SP based and set_insn is a push or pop.
7789
7790 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
7791
7792 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
7793 overflow check.
7794
7795 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
7796
7797 PR ipa/79224
7798 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
7799 (account_size_time): Use two predicates - exec_pred and
7800 nonconst_pred_ptr.
7801 (evaluate_conditions_for_known_args): Compute both clause and
7802 nonspec_clause.
7803 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
7804 (inline_summary_t::duplicate): Update.
7805 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
7806 separately.
7807 (compute_inline_parameters): Likewise.
7808 (estimate_edge_size_and_time): Update caluclation of time.
7809 (estimate_node_size_and_time): Compute both time and nonspecialized
7810 time.
7811 (estimate_ipcp_clone_size_and_time): Update.
7812 (inline_merge_summary): Update.
7813 (do_estimate_edge_time): Update.
7814 (do_estimate_edge_size): Update.
7815 (do_estimate_edge_hints): Update.
7816 (inline_read_section, inline_write_summary): Stream both new predicates.
7817 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
7818 as argument.
7819 (compute_inlined_call_time): Cleanup.
7820 (big_speedup_p): Update.
7821 (edge_badness): Update.
7822 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
7823 (size_time_entry): Replace predicate by exec_predicate and
7824 nonconst_predicate.
7825 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
7826 (estimate_edge_time): Return also nonspec_time.
7827 (reset_edge_growth_cache): Update.
7828
7829 2017-04-29 Jakub Jelinek <jakub@redhat.com>
7830
7831 PR rtl-optimization/80491
7832 * ifcvt.c (noce_process_if_block): When looking for x setter
7833 with missing else_bb, don't check only the insn right before
7834 cond_earliest, but look for the last insn that x is modified in
7835 within the same bb.
7836
7837 PR rtl-optimization/80491
7838 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
7839
7840 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
7841
7842 PR tree-optimization/80487
7843 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
7844
7845 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7846
7847 PR tree-optimization/79697
7848 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
7849 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
7850 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
7851 BUILT_IN_STRNDUP.
7852 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
7853 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
7854
7855 2017-04-28 Martin Sebor <msebor@redhat.com>
7856
7857 PR tree-optimization/80523
7858 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
7859 (init_target_to_host_charmap, target_to_host, target_strtol10): New
7860 functions.
7861 (maybe_warn, format_directive, parse_directive): Use new functions.
7862 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
7863
7864 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
7865
7866 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
7867
7868 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
7869
7870 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
7871 target_header_dir): Set correctly.
7872 * configure: Regenerated.
7873 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
7874 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
7875 instead of SYSTEM_HEADER_DIR.
7876
7877 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
7878
7879 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
7880 (estimate_local_effects): Likewise.
7881 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
7882 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
7883 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
7884 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
7885 do_estimate_edge_time, estimate_edge_time): Likewise.
7886 * ipa-inline-analysis.c (estimate_node_size_and_time,
7887 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
7888 (estimate_time_after_inlining): Remove.
7889
7890 2017-04-28 Martin Liska <mliska@suse.cz>
7891
7892 * doc/gcov.texi: Enhance documentation of gcov.
7893
7894 2017-04-28 Martin Liska <mliska@suse.cz>
7895
7896 * doc/gcov.texi: Sort options in alphabetic order.
7897 * doc/gcov-dump.texi: Likewise.
7898 * doc/gcov-tool.texi: Likewise.
7899 * gcov.c (print_usage): Likewise.
7900 * gcov-dump.c (print_usage): Likewise.
7901 * gcov-tool.c (print_merge_usage_message): Likewise.
7902 (print_rewrite_usage_message): Likewise.
7903 (print_overlap_usage_message): Likewise.
7904
7905 2017-04-28 Martin Liska <mliska@suse.cz>
7906
7907 PR gcov-profile/53915
7908 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
7909
7910 2017-04-28 Martin Liska <mliska@suse.cz>
7911
7912 PR gcov-profile/79891
7913 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
7914 is marked by compiler as living on a line.
7915 (get_cycles_count): Remove usage of the union.
7916 (output_intermediate_file): Likewise.
7917 (find_source): Fix GNU coding style.
7918 (accumulate_line_counts): Remove old non-all block mode.
7919 (output_lines): Remove usage of the union.
7920 * profile.c (output_location): Include all BBs, even if
7921 belonging to a same line (and file) as a previous BB.
7922
7923 2017-04-28 Martin Liska <mliska@suse.cz>
7924
7925 * gcov.c (process_args): Handle new argument 'w'.
7926 (read_graph_file): Assign ID to BBs.
7927 (output_branch_count): Display BB # if verbose flag is set.
7928 (output_lines): Likewise for arcs.
7929 (print_usage): Add '--verbose' option help.
7930 * doc/gcov.texi: Document --verbose (-w) option.
7931
7932 2017-04-28 Martin Liska <mliska@suse.cz>
7933
7934 * gcov.c (struct block_location_info): New struct.
7935 (process_file): Fill up the new structure.
7936 (read_graph_file): Replace usage of encoding by the newly added
7937 struct.
7938 (add_line_counts): Likewise.
7939 (accumulate_line_counts): Remove usage of the union.
7940 (function_info::function_info): New function.
7941 (function_info::~function_info): Likewise.
7942 (process_file): Call delete instead of release_function.
7943 (release_function): Release the function.
7944 (release_structures): Call delete instead of release_function.
7945 (solve_flow_graph): Replace usage of num_blocks.
7946 (find_exception_blocks): Likewise.
7947 (output_lines): Fix GNU coding style.
7948
7949 2017-04-28 Martin Liska <mliska@suse.cz>
7950
7951 PR driver/56469
7952 * coverage.c (coverage_remove_note_file): New function.
7953 * coverage.h: Declare the function.
7954 * toplev.c (finalize): Clean if an error has been seen.
7955
7956 2017-04-28 Martin Liska <mliska@suse.cz>
7957
7958 PR gcov-profile/80031
7959 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
7960 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
7961 * gcov.c (read_graph_file): Read just number of blocks.
7962 * profile.c (branch_prob): Do not stream 0 flags per a basic
7963 block.
7964
7965 2017-04-28 Martin Liska <mliska@suse.cz>
7966
7967 * gcov-dump.c (tag_*): Add new argument to declarations.
7968 (dump_gcov_file): Likewise.
7969 (tag_blocks): Add and use new argument depth.
7970 (tag_arcs): Likewise.
7971 (tag_lines): Likewise.
7972 (tag_counters): Likewise.
7973 (tag_summary): Likewise.
7974 (dump_working_sets): Use depth to do a proper indentation.
7975
7976 2017-04-28 Jakub Jelinek <jakub@redhat.com>
7977
7978 PR bootstrap/80531
7979 * cgraph.h (symtab_node::debug_symtab): No longer inline.
7980 * symtab.c (symtab_node::debug_symtab): Move definition here.
7981
7982 2017-04-28 Richard Biener <rguenther@suse.de>
7983
7984 * lto-streamer.h (LTO_major_version): Bump to 7.
7985
7986 2017-04-28 Richard Biener <rguenther@suse.de>
7987
7988 * tree-vrp.c (assert_info): New struct.
7989 (add_assert_info): New helper.
7990 (register_edge_assert_for_2): Refactor to add asserts to a vector
7991 of assert_info.
7992 (register_edge_assert_for_1): Likewise.
7993 (register_edge_assert_for): Likewise.
7994 (finish_register_edge_assert_for): New helper actually registering
7995 asserts where live on edge.
7996 (find_conditional_asserts): Adjust.
7997 (find_switch_asserts): Likewise.
7998 (evrp_dom_walker::try_find_new_range): Generalize.
7999 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
8000
8001 2017-04-27 Marek Polacek <polacek@redhat.com>
8002
8003 PR sanitizer/80349
8004 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
8005 arg10 and arg11 to itype.
8006
8007 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
8008
8009 * doc/extend.texi (Object Size Checking): Improve grammar.
8010
8011 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
8012
8013 PR target/80530
8014 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
8015 that the logic for permitting reciprocal estimates matches that
8016 in use_rsqrt_p.
8017
8018 2017-04-27 Jakub Jelinek <jakub@redhat.com>
8019
8020 PR c++/80534
8021 * tree.c (type_cache_hasher::equal): Only compare
8022 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
8023 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
8024 non-aggregate element types.
8025 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
8026 about the flag on ARRAY_TYPEs in the comment, formatting fix.
8027
8028 2017-04-27 Richard Biener <rguenther@suse.de>
8029
8030 PR middle-end/80533
8031 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
8032 stripping ARRAY_REFs from MEM_EXPR make sure we're not
8033 keeping a reference to a trailing array.
8034
8035 2017-04-27 Richard Biener <rguenther@suse.de>
8036
8037 PR middle-end/80539
8038 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
8039 being in loop-closed SSA form conservatively.
8040 (chrec_fold_multiply_poly_poly): Likewise.
8041
8042 2017-04-27 Tamar Christina <tamar.christina@arm.com>
8043
8044 PR middle-end/79665
8045 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
8046 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
8047
8048 2017-04-27 Jakub Jelinek <jakub@redhat.com>
8049
8050 PR target/77728
8051 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
8052 (aarch64_function_arg_alignment): Return unsigned int again, but still
8053 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
8054 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
8055 Don't emit -Wpsabi note.
8056 (aarch64_function_arg_boundary): Likewise.
8057 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
8058 caller.
8059
8060 2017-04-26 Nathan Sidwell <nathan@acm.org>
8061
8062 * tree.h (crc32_unsigned_n): Declare.
8063 (crc32_unsigned, crc32_unsigned): Make inline.
8064 * tree.c (crc32_unsigned_bits): Replace with ...
8065 (crc32_unsigned_n): ... this.
8066 (crc32_unsigned, crc32_byte): Remove.
8067 (crc32_string): Remove unnecessary braces.
8068
8069 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
8070
8071 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
8072 * ipa-inline-analysis.c (MAX_TIME): Remove.
8073 (account_size_time): Use sreal for time.
8074 (dump_inline_summary): Update.
8075 (estimate_function_body_sizes): Update.
8076 (estimate_edge_size_and_time): Update.
8077 (estimate_calls_size_and_time): Update.
8078 (estimate_node_size_and_time): Update.
8079 (inline_merge_summary): Update.
8080 (inline_update_overall_summary): Update.
8081 (estimate_time_after_inlining): Update.
8082 (inline_read_section): Update.
8083 (inline_write_summary): Update.
8084 * ipa-inline.c (compute_uninlined_call_time): Update.
8085 (compute_inlined_call_time): Update.
8086 (recursive_inlining): Update.
8087 (inline_small_functions): Update.
8088 (dump_overall_stats): Update.
8089 * ipa-inline.h: Include sreal.h.
8090 (size_time_entry): Turn time to sreal.
8091 (inline_summary): Turn self_time nad time to sreal.
8092
8093 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
8094
8095 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
8096 data-streamer.h
8097 (sreal::stream_out, sreal::stream_in): New.
8098 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
8099
8100 2017-04-25 Jakub Jelinek <jakub@redhat.com>
8101
8102 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
8103 environment.
8104
8105 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
8106
8107 PR target/70799
8108 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
8109 Handle ASHIFTRT.
8110 (dimode_scalar_chain::compute_convert_gain): Ditto.
8111 (dimode_scalar_chain::make_vector_copies): Ditto.
8112 (dimode_scalar_chain::convert_reg): Ditto.
8113 (dimode_scalar_chain::convert_insn): Ditto.
8114 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
8115 (VI248_AVX512BW_1): New mode iterator.
8116 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
8117 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
8118 mode iterator.
8119
8120 2017-04-25 Martin Sebor <msebor@redhat.com>
8121
8122 PR tree-optimization/80497
8123 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
8124 constants are representable in HOST_WIDE_INT.
8125 (parse_directive): Ditto.
8126
8127 2017-04-25 Martin Sebor <msebor@redhat.com>
8128
8129 PR bootstrap/80486
8130 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
8131 (new_zero_array): Adjust signature.
8132 (dom_info::dom_init): Used unsigned rather that size_t.
8133 (dom_info::dom_info): Same.
8134
8135 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8136 Jakub Jelinek <jakub@redhat.com>
8137
8138 PR target/77728
8139 * config/arm/arm.c: Include gimple.h.
8140 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
8141 returns negative, increment ncrn only if it returned positive.
8142 (arm_needs_doubleword_align): Return int instead of bool,
8143 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
8144 members, but if there is any such non-FIELD_DECL
8145 > PARM_BOUNDARY aligned decl, return -1 instead of false.
8146 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
8147 returns negative, increment nregs only if it returned positive.
8148 (arm_setup_incoming_varargs): Likewise.
8149 (arm_function_arg_boundary): Emit -Wpsabi note if
8150 arm_needs_doubleword_align returns negative, return
8151 DOUBLEWORD_ALIGNMENT only if it returned positive.
8152
8153 2017-04-25 Marek Polacek <polacek@redhat.com>
8154
8155 PR sanitizer/80349
8156 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
8157 first argument to type.
8158
8159 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
8160
8161 PR target/80482
8162 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
8163 type checks to test for compatibility instead of equality.
8164
8165 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8166 Jakub Jelinek <jakub@redhat.com>
8167
8168 PR target/77728
8169 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
8170 type.
8171 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
8172 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
8173 the alignment computation, but return their maximum in warn_alignment.
8174 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
8175 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
8176 is smaller.
8177 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
8178 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
8179 caller.
8180
8181 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8182
8183 * config/arc/simdext.md (dmpyh): Fix typo.
8184
8185 2017-04-25 Richard Biener <rguenther@suse.de>
8186
8187 PR tree-optimization/80492
8188 * alias.c (compare_base_decls): Handle registers with asm
8189 specification conservatively.
8190 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
8191 compare_base_decls returning dont-know properly.
8192
8193 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8194
8195 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
8196 (legitimate_offset_address_p): New function.
8197 (arc_legitimate_address_p): Use above function.
8198
8199 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8200
8201 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
8202
8203 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8204
8205 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
8206 ACCH registers whenever they are available.
8207
8208 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8209
8210 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
8211 double regs fix when not used.
8212
8213 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8214
8215 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
8216 core registers.
8217 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
8218 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
8219
8220 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8221
8222 * config/arc/arc.c (arc_output_addsi): Check for h-register class
8223 when emitting short ADD instructions.
8224
8225 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
8226
8227 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
8228 constraint.
8229 (cmpsi_cc_c_insn): Likewise.
8230 (cbranchsi4_scratch): Compute proper instruction length using
8231 compact_hreg_operand.
8232 * config/arc/predicates.md (compact_hreg_operand): New predicate.
8233
8234 2017-04-25 Richard Biener <rguenther@suse.de>
8235
8236 PR middle-end/80509
8237 * passes.c (pass_manager::pass_manager): Initialize
8238 m_name_to_pass_map.
8239
8240 2017-04-25 Richard Biener <rguenther@suse.de>
8241
8242 PR tree-optimization/79201
8243 * tree-ssa-sink.c (statement_sink_location): Handle calls.
8244
8245 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8246
8247 PR target/80464
8248 * config/s390/vector.md: Split MEM->GPR vector moves for
8249 non-s_operand addresses.
8250
8251 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8252
8253 PR target/79895
8254 * config/s390/predicates.md (reload_const_wide_int_operand): New
8255 predicate.
8256 * config/s390/s390.md ("movti"): Remove d/P alternative.
8257 ("movti_bigconst"): New pattern definition.
8258
8259 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8260
8261 PR target/80080
8262 * s390-protos.h (s390_expand_cs_hqi): Removed.
8263 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
8264 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
8265 modes as well as CCZ1mode and CCZmode.
8266 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
8267 signature of s390_emit_compare_and_swap.
8268 (s390_expand_cs_hqi): Likewise, make static.
8269 (s390_expand_cs_tdsi): Generate an explicit compare before trying
8270 compare-and-swap, in some cases.
8271 (s390_expand_cs): Wrapper function.
8272 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
8273 atomic_exchange.
8274 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
8275 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
8276 patterns for small and large integers. Forbid symref memory operands.
8277 Move expander to s390.c. Require cc register.
8278 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
8279 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
8280 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
8281 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
8282 symref memory operands. Remove CC mode and call s390_match_ccmode
8283 instead.
8284 ("atomic_exchange<mode>"): Allow and implement all integer modes.
8285
8286 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8287
8288 * config/s390/s390.md (define_peephole2): New peephole to help
8289 combining the load-and-test pattern with volatile memory.
8290
8291 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8292
8293 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
8294 with CCZmode for TARGET_Z196.
8295
8296 2017-04-25 Jakub Jelinek <jakub@redhat.com>
8297
8298 PR rtl-optimization/80501
8299 * combine.c (make_compound_operation_int): Set subreg_code to SET
8300 even for AND with mask of the sign bit of mode.
8301
8302 PR rtl-optimization/80500
8303 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
8304 sum's initial value.
8305
8306 2017-04-25 Julian Brown <julian@codesourcery.com>
8307 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8308
8309 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
8310
8311 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
8312
8313 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
8314
8315 2017-04-25 Julian Brown <julian@codesourcery.com>
8316 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8317
8318 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
8319 (thunderx2t99_sha): New Reservation.
8320
8321 2017-04-25 Julian Brown <julian@codesourcery.com>
8322 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8323
8324 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
8325 type for 1-element load.
8326
8327 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
8328
8329 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
8330
8331 2017-04-24 Martin Jambor <mjambor@suse.cz>
8332
8333 PR tree-optimization/80293
8334 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
8335 char arrays not totally scalarizable if it is false.
8336 (analyze_all_variable_accesses): Pass correct value in the new
8337 parameter. Add a statistics counter.
8338
8339 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
8340
8341 PR middle-end/79931
8342 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
8343
8344 2017-04-24 Richard Biener <rguenther@suse.de>
8345
8346 PR tree-optimization/80494
8347 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
8348 out for complex types.
8349
8350 2017-04-24 Richard Biener <rguenther@suse.de>
8351
8352 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
8353 * tree-ssa-sccvn.c (print_scc): Print SCC size.
8354 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
8355 (DFS): Adjust and never fail.
8356 (sccvn_dom_walker::fail): Remove.
8357 (sccvn_dom_walker::before_dom_children): Adjust.
8358 (run_scc_vn): Likewise and never fail.
8359 * tree-ssa-pre.c (pass_pre::execute): Adjust.
8360 (pass_fre::execute): Likewise.
8361
8362 2017-04-24 Richard Biener <rguenther@suse.de>
8363
8364 PR tree-optimization/79725
8365 * tree-ssa-sink.c (statement_sink_location): Return whether
8366 failure reason was zero uses. Move that check later.
8367 (sink_code_in_bb): Deal with zero uses by removing the stmt
8368 if possible.
8369
8370 2017-04-24 Richard Biener <rguenther@suse.de>
8371
8372 PR c++/2972
8373 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
8374 pointer-based references.
8375
8376 2017-04-24 Richard Biener <rguenther@suse.de>
8377
8378 PR bootstrap/79814
8379 * pass_manager.h (pass_manager::operator new): Remove.
8380 (pass_manager::operator delete): Likewise.
8381 * passes.c (pass_manager::operator new): Remove.
8382 (pass_manager::operator delete): Likewise.
8383 (pass_manager::pass_manager): Zero individual pass members.
8384
8385 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
8386
8387 PR target/70799
8388 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
8389 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
8390 Check "XEXP (src, 1)" operand here.
8391 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
8392 Check "XEXP (src, 1)" operand here.
8393 (dimode_scalar_chain::make_vector_copies): Detect count register
8394 of a shift instruction. Zero extend count register from QImode
8395 to DImode to satisfy vector shift pattern count operand predicate.
8396 Substitute vector shift count operand with a DImode copy.
8397 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
8398 vector register.
8399
8400 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
8401
8402 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
8403 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
8404 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
8405 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
8406 (UNSPEC_NOREX_MEM): Remove definition.
8407
8408 2017-04-21 Richard Biener <rguenther@suse.de>
8409
8410 PR tree-optimization/79547
8411 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
8412 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
8413 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
8414 without any constraints.
8415
8416 2017-04-21 Richard Biener <rguenther@suse.de>
8417
8418 PR tree-optimization/78847
8419 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
8420
8421 2017-04-21 Richard Biener <rguenther@suse.de>
8422
8423 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
8424 (build_distinct_type_copy): Likewise.
8425 (build_variant_type_copy): Likewise.
8426 * tree.c (build_qualified_type): Pass down mem-stat info.
8427 (build_distinct_type_copy): Likewise.
8428 (build_variant_type_copy): Likewise.
8429
8430 2017-04-21 Richard Biener <rguenther@suse.de>
8431
8432 PR tree-optimization/80237
8433 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
8434 defaulted to NULL.
8435 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
8436 for a simplified result.
8437
8438 2016-04-21 Richard Biener <rguenther@suse.de>
8439
8440 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
8441 sth as strict as a simple_iv but a chrec without symbols and an
8442 operand defined in the loop we are peeling (and not some subloop).
8443 (propagate_constants_for_unrolling): Propagate all constants.
8444
8445 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
8446
8447 PR target/79804
8448 * config/i386/i386.c (print_reg): Remove assert for disalowed
8449 regno values, call output_operand_lossage instead.
8450
8451 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
8452
8453 PR target/78090
8454 * config/i386/constraints.md (Yc): New register constraint.
8455 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
8456 Use Yc constraint for alternative 2 of operand 0. Remove
8457 preferred_for_speed attribute.
8458
8459 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
8460
8461 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
8462 lastprivate clauses in SIMT case.
8463
8464 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
8465
8466 * doc/invoke.texi (-Wextra-semi): Document new warning option.
8467
8468 2017-04-20 Richard Biener <rguenther@suse.de>
8469
8470 PR tree-optimization/57796
8471 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
8472 as N scalar stores.
8473 (vect_model_load_cost): Cost gathers as N scalar loads.
8474
8475 2017-04-20 Richard Biener <rguenther@suse.de>
8476
8477 * ggc-page.c (ggc_allocated_p): Rename to ...
8478 (safe_lookup_page_table_entry): ... this and return the lookup
8479 result.
8480 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
8481
8482 2017-04-20 Richard Biener <rguenther@suse.de>
8483
8484 PR tree-optimization/80453
8485 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
8486 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
8487 from the conditions.
8488 (vn_phi_eq): Pass them down.
8489 (vn_phi_lookup): Record them.
8490 (vn_phi_insert): Likewise.
8491
8492 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
8493
8494 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
8495 uninitialized variable warning to avoid buffer overrun.
8496
8497 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
8498
8499 PR other/71250
8500 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
8501 is suppressed for '{ 0 }' in C.
8502
8503 2017-04-20 Jakub Jelinek <jakub@redhat.com>
8504
8505 * BASE-VER: Set to 8.0.0.
8506
8507 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
8508
8509 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
8510 priority .init_array and .fini_array section with SECTION_NOTYPE
8511 flag.
8512
8513 2017-04-20 Jakub Jelinek <jakub@redhat.com>
8514
8515 PR middle-end/80423
8516 * tree.h (build_array_type): Add typeless_storage default argument.
8517 * tree.c (type_cache_hasher::equal): Also compare
8518 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
8519 (build_array_type): Add typeless_storage argument, set
8520 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
8521 recursive call.
8522 (build_nonshared_array_type): Adjust build_array_type_1 caller.
8523 (build_array_type): Likewise. Add typeless_storage argument.
8524
8525 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
8526 Jakub Jelinek <jakub@redhat.com>
8527
8528 PR tree-optimization/80426
8529 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
8530 operation on symbolic operands, also compute the overflow for the
8531 invariant part when the operation degenerates into a negation.
8532
8533 2017-04-19 Jakub Jelinek <jakub@redhat.com>
8534
8535 PR debug/80461
8536 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
8537 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
8538
8539 PR debug/80436
8540 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
8541
8542 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
8543
8544 PR target/80462
8545 * config/avr/avr.c (tree.h): Include it.
8546 (cgraph.h): Include it.
8547 (avr_encode_section_info): Don't warn for uninitialized progmem
8548 variable if it's just an alias.
8549
8550 2017-04-19 Richard Biener <rguenther@suse.de>
8551
8552 PR ipa/65972
8553 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
8554 when needed by AutoPGO.
8555
8556 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
8557
8558 PR lto/50345
8559 * doc/lto.texi: Remove an extra 'that'.
8560
8561 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
8562
8563 PR rtl-optimization/80429
8564 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
8565 are only used in debug insns.
8566
8567 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
8568 Vladimir Makarov <vmakarov@redhat.com>
8569
8570 * config/sparc/predicates.md (input_operand): Add comment. Return
8571 true for any memory operand when LRA is in progress.
8572 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
8573
8574 2017-04-18 Jeff Law <law@redhat.com>
8575
8576 PR target/74563
8577 * mips.md ({return,simple_return}_internal): Do not overwrite
8578 operands[0].
8579
8580 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8581
8582 PR tree-optimization/80443
8583 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
8584 instead of adding 1, subtract -1 and similarly instead of subtracting
8585 1 add -1.
8586
8587 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
8588
8589 PR rtl-optimization/80357
8590 * haifa-sched.c (tmp_bitmap): New variable.
8591 (model_recompute): Handle duplicate use records.
8592 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
8593 (free_global_sched_pressure_data): Free it.
8594
8595 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
8596
8597 Revert:
8598 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
8599 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
8600 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8601 instead of SYSTEM_HEADER_DIR.
8602
8603 2017-04-18 Jeff Law <law@redhat.com>
8604
8605 PR middle-end/80422
8606 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
8607 predecessors after walking up the insn chain.
8608
8609 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8610
8611 PR debug/80263
8612 * dwarf2out.c (modified_type_die): Try harder not to emit internal
8613 sizetype type into debug info.
8614
8615 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8616
8617 PR target/80099
8618 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
8619 unneeded test for TARGET_UPPER_REGS_SF.
8620 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
8621
8622 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8623
8624 PR sanitizer/80444
8625 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
8626 instead of gsi_after_labels.
8627
8628 2017-04-18 Jeff Law <law@redhat.com>
8629
8630 * regcprop.c (maybe_mode_change): Avoid creating copies of the
8631 stack pointer.
8632
8633 Revert:
8634 2017-04-13 Jeff Law <law@redhat.com>
8635 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
8636 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
8637
8638 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
8639
8640 PR target/79453
8641 * config/avr/avr.c (intl.h): Include it.
8642 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
8643
8644 2017-04-18 Martin Liska <mliska@suse.cz>
8645
8646 PR gcov-profile/78783
8647 * gcov-tool.c (gcov_output_files): Validate that destination
8648 file is either removed by the tool or by a user.
8649
8650 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
8651 Guy Benyei <guybe@mellanox.com>
8652
8653 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
8654 block, and do not negate it, the stored id is already negative.
8655
8656 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
8657
8658 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
8659
8660 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8661
8662 PR target/80098
8663 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
8664 masks of options that should be turned off if the VSX vector
8665 options are turned off.
8666 (OTHER_P8_VECTOR_MASKS): Likewise.
8667 (OTHER_VSX_VECTOR_MASKS): Likewise.
8668 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
8669 rs6000_disable_incompatible_switches to validate no type switches
8670 like -mvsx.
8671 (rs6000_incompatible_switch): New function to disallow turning on
8672 other vector options if -mno-vsx, -mno-power8-vector, or
8673 -mno-power9-vector are specified.
8674
8675 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8676
8677 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
8678
8679 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8680
8681 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
8682 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
8683 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
8684 (ARG_POINTER_CFA_OFFSET): Likewise.
8685
8686 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8687
8688 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
8689 conditions to take advantage of various optimizations.
8690
8691 2017-04-13 Jeff Law <law@redhat.com>
8692
8693 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
8694 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
8695 (zero_extendsidi2_dext): Likewise.
8696
8697 2017-04-13 Jakub Jelinek <jakub@redhat.com>
8698
8699 PR sanitizer/80403
8700 * fold-const.c (fold_ternary_loc): Revert
8701 use op0 instead of fold_convert_loc (loc, type, arg0) part of
8702 2017-04-12 change.
8703
8704 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
8705
8706 PR rtl-optimization/80343
8707 * lra-remat.c (update_scratch_ops): Assign original hard reg to
8708 new scratch pseudo.
8709
8710 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
8711
8712 PR sanitizer/80414
8713 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
8714 to ubsan_encode_value.
8715
8716 2017-04-13 Jeff Law <law@redhat.com>
8717
8718 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
8719 appearing in DEBUG_INSNs.
8720
8721 2017-04-13 Martin Liska <mliska@suse.cz>
8722
8723 PR gcov-profile/80413
8724 * gcov-io.c (gcov_write_string): Copy to buffer just when
8725 allocated size is greater than zero.
8726
8727 2017-04-13 Jakub Jelinek <jakub@redhat.com>
8728
8729 PR debug/80321
8730 * dwarf2out.c (decls_for_scope): Ignore declarations of
8731 current_function_decl in BLOCK_NONLOCALIZED_VARS.
8732
8733 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
8734
8735 PR lto/69953
8736 * ipa-visibility.c (non_local_p): Fix typos.
8737 (localize_node): When localizing symbol in same comdat group,
8738 dissolve the group only when we know external symbols are going
8739 to be privatized.
8740 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
8741
8742 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8743
8744 PR tree-optimization/79390
8745 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
8746 order does not result in usable sequence, retry with reversed operand
8747 order.
8748
8749 PR sanitizer/80403
8750 PR sanitizer/80404
8751 PR sanitizer/80405
8752 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
8753 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
8754 op0 instead of fold_convert_loc (loc, type, arg0).
8755
8756 2017-04-12 Jeff Law <law@redhat.com>
8757
8758 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
8759 has a delay slot in the generated code.
8760
8761 * config/cris/cris.md (cris_preferred_reload_class): Return
8762 GENNONACR_REGS rather than GENERAL_REGS.
8763
8764 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8765
8766 PR c/80163
8767 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
8768 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
8769 signedness of the result type.
8770
8771 2017-04-12 Richard Biener <rguenther@suse.de>
8772 Jeff Law <law@redhat.com>
8773
8774 PR tree-optimization/80359
8775 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
8776 trim stores to TARGET_MEM_REFs.
8777
8778 2017-04-12 Richard Biener <rguenther@suse.de>
8779
8780 PR tree-optimization/79390
8781 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
8782 threading case even more.
8783
8784 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
8785
8786 PR target/80382
8787 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
8788 for quad_address_p for TImode, instead of just not indexed_address.
8789
8790 2017-04-12 Richard Biener <rguenther@suse.de>
8791 Bernd Edlinger <bernd.edlinger@hotmail.de>
8792
8793 PR middle-end/79671
8794 * alias.c (component_uses_parent_alias_set_from): Handle
8795 TYPE_TYPELESS_STORAGE.
8796 (get_alias_set): Likewise.
8797 * tree-core.h (tree_type_common): Add typeless_storage flag.
8798 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
8799 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
8800 for types containing members with TYPE_TYPELESS_STORAGE.
8801 (place_field): Likewise.
8802 (layout_type): Likewise for ARRAY_TYPE.
8803 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
8804 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
8805 TYPE_TYPELESS_STORAGE.
8806 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
8807
8808 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8809
8810 PR sanitizer/80349
8811 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
8812 first argument to type.
8813
8814 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8815
8816 PR target/80376
8817 PR target/80315
8818 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
8819 CONST0_RTX (mode) rather than const0_rtx where appropriate.
8820 (rs6000_expand_binop_builtin): Likewise.
8821 (rs6000_expand_ternop_builtin): Likewise; also add missing
8822 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
8823 vshasigma built-ins.
8824 * doc/extend.texi: Document that vec_xxpermdi's third argument
8825 must be a constant.
8826
8827 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
8828
8829 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
8830 Use shift_const cost parameter when calculating gain of STV shifts.
8831
8832 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
8833
8834 PR rtl-optimization/70478
8835 * lra-constraints.c (process_alt_operands): Check memory for
8836 disfavoring memory insn operand.
8837
8838 2017-04-11 Jakub Jelinek <jakub@redhat.com>
8839
8840 PR middle-end/80100
8841 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
8842 left shift in unsigned HOST_WIDE_INT type.
8843
8844 PR rtl-optimization/80385
8845 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
8846 (not (neg X)) into (plus X -1) for complex or non-integral modes.
8847
8848 PR libgomp/80394
8849 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
8850 if they have any depend clauses.
8851
8852 2017-04-11 Martin Liska <mliska@suse.cz>
8853
8854 PR ipa/80212
8855 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
8856 * ipa-split.c (split_function): Create a local comdat symbol
8857 if caller is in a comdat group.
8858
8859 2017-04-11 Martin Liska <mliska@suse.cz>
8860
8861 PR ipa/80212
8862 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
8863 flags.
8864
8865 2017-04-11 Martin Sebor <msebor@redhat.com>
8866
8867 PR middle-end/80364
8868 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
8869 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
8870 for INTEGER_TYPE.
8871 (directive::set_width, directive::set_precision, format_character):
8872 Adjust.
8873 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
8874 INTEGER_TYPE.
8875
8876 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
8877
8878 PR target/80389
8879 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
8880 conflict, set target->arch_name instead of target->cpu_name.
8881
8882 2017-04-11 Richard Biener <rguenther@suse.de>
8883
8884 PR tree-optimization/80374
8885 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
8886 build_zero_cst, remove fold_convertible_p check again.
8887
8888 2017-04-11 Martin Liska <mliska@suse.cz>
8889
8890 PR sanitizer/70878
8891 * ubsan.c (instrument_object_size): Do not instrument register
8892 variables.
8893
8894 2017-04-11 Jakub Jelinek <jakub@redhat.com>
8895
8896 PR target/80381
8897 * config/i386/i386-builtin-types.def
8898 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
8899 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
8900 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
8901 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
8902 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
8903 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
8904 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
8905 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
8906 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
8907 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
8908 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
8909 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
8910 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
8911 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
8912 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
8913 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
8914 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
8915 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
8916 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
8917 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
8918 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
8919 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
8920 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
8921 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
8922 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
8923 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
8924 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
8925 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
8926 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
8927 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
8928 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
8929 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
8930 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
8931 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
8932 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
8933 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
8934 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
8935 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
8936 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
8937 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
8938 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
8939 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
8940 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
8941 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
8942 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
8943 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
8944 aliases.
8945 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
8946 flag to second_arg_count, handle 4 argument function type _COUNT
8947 aliases, handle second_arg_count on second argument rather than last.
8948
8949 2017-04-10 Jeff Law <law@redhat.com>
8950
8951 PR tree-optimization/80374
8952 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
8953 record anything if we can not convert integer_zero_node to the
8954 desired type.
8955
8956 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
8957
8958 PR target/80108
8959 * config/rs6000/rs6000.c (rs6000_option_override_internal):
8960 Enhance special handling given to the TARGET_P9_MINMAX option in
8961 relation to certain other options.
8962
8963 2017-04-10 Bin Cheng <bin.cheng@arm.com>
8964
8965 PR tree-optimization/80153
8966 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
8967 remove POINTER_PLUS_EXPR's base part directly, rather than through
8968 aff_tree.
8969
8970 2017-04-10 Richard Biener <rguenther@suse.de>
8971 Bin Cheng <bin.cheng@arm.com>
8972
8973 PR tree-optimization/80153
8974 * tree-affine.c (aff_combination_to_tree): Get base pointer from
8975 the first element of pointer type aff_tree. Build result expr in
8976 aff_tree's type.
8977 (add_elt_to_tree): Convert to type unconditionally. Remove other
8978 fold_convert calls.
8979 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
8980 (rewrite_use_nonlinear_expr): Check invariant using iv information.
8981
8982 2017-04-10 Richard Biener <rguenther@suse.de>
8983
8984 * tree-ssa-structalias.c (find_func_aliases): Properly handle
8985 asm inputs.
8986
8987 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
8988
8989 PR rtl-optimization/70478
8990 * lra-constraints.c (curr_small_class_check): New.
8991 (update_and_check_small_class_inputs): New.
8992 (process_alt_operands): Update curr_small_class_check. Disfavor
8993 alternative insn memory operands. Check available regs for small
8994 class operands.
8995
8996 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
8997
8998 PR target/80057
8999 * config/mips/mips.opt (-mvirt): Update description.
9000 * doc/invoke.texi (-mvirt): Likewise.
9001
9002 2017-04-10 Richard Biener <rguenther@suse.de>
9003
9004 PR middle-end/80362
9005 * fold-const.c (fold_binary_loc): Look at unstripped ops when
9006 looking for NEGATE_EXPR in -A / -B to A / B folding.
9007
9008 2017-04-10 Martin Liska <mliska@suse.cz>
9009
9010 PR gcov-profile/80224
9011 * gcov.c (print_usage): Fix usage string.
9012 (get_gcov_intermediate_filename): Remove.
9013 (output_gcov_file): Use both for normal and intermediate format.
9014 (generate_results): Do not initialize special file for
9015 intermediate format.
9016
9017 2017-04-10 Richard Biener <rguenther@suse.de>
9018
9019 PR tree-optimization/80304
9020 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
9021 for safelen.
9022
9023 2017-04-10 Nathan Sidwell <nathan@acm.org>
9024
9025 PR target/79905
9026 * config/rs6000/rs6000.c (rs6000_vector_type): New.
9027 (rs6000_init_builtins): Use it.
9028
9029 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9030
9031 * config/arm/arm.md (<mrc>): Add mode to SET source.
9032 (<mrrc>): Likewise.
9033
9034 2017-04-10 Richard Biener <rguenther@suse.de>
9035
9036 PR middle-end/80344
9037 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
9038
9039 2017-04-10 Jakub Jelinek <jakub@redhat.com>
9040
9041 PR target/80324
9042 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
9043 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
9044 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
9045 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
9046 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
9047 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
9048 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
9049 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
9050 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
9051 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
9052 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
9053 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
9054 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
9055 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
9056 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
9057 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
9058 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
9059 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
9060 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
9061 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
9062 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
9063 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
9064 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
9065
9066 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
9067
9068 PR rtl-optimization/70478
9069 * lra-constraints.c: Reverse the last patch.
9070
9071 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
9072
9073 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
9074 Add comment for WCHAR_T.
9075
9076 2017-04-08 Martin Liska <mliska@suse.cz>
9077
9078 Revert:
9079 2017-04-07 Martin Liska <mliska@suse.cz>
9080
9081 PR ipa/80212
9082 * ipa-split.c (split_function): Add function part to a same comdat
9083 group.
9084
9085 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
9086
9087 PR target/80358
9088 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
9089
9090 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
9091
9092 * rs6000/rs6000.c (vec_load_pendulum): Rename...
9093 (vec_pairing): ...to this.
9094 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
9095 (rs6000_sched_init): Adjust for name change.
9096 (struct rs6000_sched_context): Likewise.
9097 (rs6000_init_sched_context): Likewise.
9098 (rs6000_set_sched_context): Likewise.
9099
9100 2017-04-07 Jakub Jelinek <jakub@redhat.com>
9101
9102 PR target/80322
9103 PR target/80323
9104 PR target/80325
9105 PR target/80326
9106 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
9107 intrinsics.
9108 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
9109 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
9110 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
9111
9112 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
9113
9114 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
9115
9116 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
9117
9118 PR rtl-optimization/70703
9119 * ira-color.c (update_conflict_hard_regno_costs): Use
9120 int64_t instead of HOST_WIDE_INT.
9121
9122 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
9123
9124 PR rtl-optimization/70478
9125 * lra-constraints.c (process_alt_operands): Disfavor alternative
9126 insn memory operands.
9127
9128 2017-04-07 Jeff Law <law@redhat.com>
9129
9130 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
9131 CALL and NOTE_INSN_CALL_ARG_LOCATION.
9132
9133 2017-04-07 Martin Liska <mliska@suse.cz>
9134
9135 PR target/79889
9136 * config/aarch64/aarch64.c (aarch64_process_target_attr):
9137 Show error message instead of an ICE.
9138
9139 2017-04-07 Martin Liska <mliska@suse.cz>
9140
9141 PR ipa/80212
9142 * ipa-split.c (split_function): Add function part to a same comdat
9143 group.
9144
9145 2017-04-07 Richard Biener <rguenther@suse.de>
9146
9147 PR middle-end/80341
9148 * tree.c (get_unwidened): Also handle ! for_type case for
9149 INTEGER_CSTs.
9150 * convert.c (do_narrow): Split out from ...
9151 (convert_to_integer_1): ... here. Do not pass final truncation
9152 type to get_unwidened for TRUNC_DIV_EXPR.
9153
9154 2017-04-07 Richard Biener <rguenther@suse.de>
9155
9156 * tree-affine.c (wide_int_ext_for_comb): Take type rather
9157 than aff_tree.
9158 (aff_combination_const): Adjust.
9159 (aff_combination_scale): Likewise.
9160 (aff_combination_add_elt): Likewise.
9161 (aff_combination_add_cst): Likewise.
9162 (aff_combination_convert): Likewise.
9163 (add_elt_to_tree): Likewise. Remove unused argument.
9164 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
9165
9166 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
9167
9168 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
9169 definition.
9170 * config/arm/arm.c (arm_default_short_enums): Use
9171 ARM_DEFAULT_SHORT_ENUMS.
9172 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
9173
9174 2017-04-06 Jakub Jelinek <jakub@redhat.com>
9175
9176 PR debug/80234
9177 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
9178 members with redundant out-of-class redeclaration.
9179
9180 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9181
9182 PR target/80286
9183 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
9184 * config/i386/i386.md (*zero_extendsidi2):
9185 Add (?*x,*x) and (?*v,*v) alternatives.
9186
9187 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9188
9189 PR target/79733
9190 * config/i386/i386.c (ix86_expand_builtin)
9191 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
9192 mode from insn data. Convert operands to insn operand mode.
9193 Copy operands that don't satisfy insn predicate to a register.
9194
9195 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
9196
9197 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
9198 Update comments.
9199
9200 2017-04-06 Richard Biener <rguenther@suse.de>
9201
9202 PR tree-optimization/80334
9203 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
9204 preserve alignment of accesses.
9205
9206 2017-04-06 Richard Biener <rguenther@suse.de>
9207
9208 PR tree-optimization/80262
9209 * tree-sra.c (build_ref_for_offset): Preserve address-space
9210 information.
9211 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
9212 Drop useless address-space information on MEM_REF offsets.
9213
9214 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
9215
9216 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
9217
9218 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9219
9220 PR rtl-optimization/70703
9221 * ira-color.c (update_conflict_hard_regno_costs): Use
9222 HOST_WIDE_INT instead of long.
9223
9224 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
9225
9226 PR target/80298
9227 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
9228 not defined for x86_64 target. Add -mmmx target option when __SSE2__
9229 is not defined.
9230 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
9231 for x86_64 target. Handle -m3dnowa option.
9232
9233 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9234
9235 PR rtl-optimization/70703
9236 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
9237 (update_conflict_hard_regno_costs): Use long instead of unsigned
9238 arithmetic for cost calculation.
9239
9240 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9241 Bernd Edlinger <bernd.edlinger@hotmail.de>
9242
9243 PR sanitizer/80308
9244 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
9245 for big endian.
9246
9247 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
9248
9249 PR target/78002
9250 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
9251 ptr_mode with Pmode throughout.
9252 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
9253 into probe_stack_range and use DImode.
9254
9255 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9256
9257 PR target/79890
9258 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
9259 call_eh_return is true.
9260
9261 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9262
9263 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
9264 Initialize last_match_fntype_index.
9265
9266 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9267
9268 PR target/80310
9269 * tree-nvr.c: Include internal-fn.h.
9270 (pass_return_slot::execute): Ignore internal calls without
9271 direct optab.
9272
9273 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9274 Richard Biener <rguenther@suse.de>
9275
9276 PR c++/80297
9277 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
9278 captures used multiple times, except for the last use.
9279 * generic-match-head.c: Include gimplify.h.
9280
9281 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9282
9283 PR tree-optimization/79390
9284 * target.h (struct noce_if_info): Declare.
9285 * targhooks.h (default_noce_conversion_profitable_p): Declare.
9286 * target.def (noce_conversion_profitable_p): New target hook.
9287 * ifcvt.h (struct noce_if_info): New type, moved from ...
9288 * ifcvt.c (struct noce_if_info): ... here.
9289 (noce_conversion_profitable_p): Renamed to ...
9290 (default_noce_conversion_profitable_p): ... this. No longer
9291 static nor inline.
9292 (noce_try_store_flag_constants, noce_try_addcc,
9293 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
9294 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
9295 instead of noce_conversion_profitable_p.
9296 * config/i386/i386.c: Include ifcvt.h.
9297 (ix86_option_override_internal): Don't override
9298 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
9299 (ix86_noce_conversion_profitable_p): New function.
9300 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
9301 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
9302 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
9303 * doc/tm.texi: Regenerated.
9304
9305 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9306
9307 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
9308 correction.
9309
9310 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
9311
9312 PR target/80307
9313 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
9314 instructions for small multiply cores.
9315
9316 2017-04-04 Jeff Law <law@redhat.com>
9317
9318 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
9319 added member.
9320 (mips_expand_vec_perm_const): Initialize elements in orig_perm
9321 that are not set by the loop over the elements.
9322
9323 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9324
9325 PR target/80286
9326 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
9327 int mode, convert_modes it to mode as unsigned, otherwise use
9328 lowpart_subreg to mode rather than SImode.
9329 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
9330 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
9331 Use DImode instead of SImode for the shift count operand.
9332 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
9333 Likewise.
9334
9335 2017-04-04 Richard Biener <rguenther@suse.de>
9336
9337 PR middle-end/80281
9338 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
9339 arithmetic done for the negate or the plus. Simplify.
9340 (A - (-B) -> A + B): Likewise.
9341 * fold-const.c (split_tree): Make sure to not negate pointers.
9342
9343 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
9344
9345 PR rtl-optimization/60818
9346 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
9347 a compare of comparisons with the thing compared if this results
9348 in a different machine mode.
9349
9350 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
9351
9352 * alias.c (base_alias_check): Fix typo in comment.
9353 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
9354 * cgraphunit.c (symbol_table::compile): Likewise.
9355 * collect2.c (maybe_run_lto_and_relink): Likewise.
9356 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
9357 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
9358 * config/avr/avr.c (avr_map_op_t): Likewise.
9359 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
9360 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
9361 * config/epiphany/epiphany.md (movcc): Likewise.
9362 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
9363 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
9364 Likewise.
9365 * config/mips/mips.c (mips_save_restore_reg): Likewise.
9366 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
9367 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
9368 * config/sh/sh.c (sh_rtx_costs): Likewise.
9369 * fold-const.c (fold_truth_andor): Likewise.
9370 * genautomata.c (collapse_flag): Likewise.
9371 * gengtype.h (struct type::u::s): Likewise.
9372 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
9373 * input.c (FORMAT_AMOUNT): Likewise.
9374 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
9375 (known_aggs_to_agg_replacement_list): Likewise.
9376 * ipa-inline-analysis.c: Likewise.
9377 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
9378 * ipa-polymorphic-call.c
9379 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
9380 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
9381 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
9382 Likewise.
9383 * modulo-sched.c (apply_reg_moves): Likewise.
9384 * omp-expand.c (build_omp_regions_1): Likewise.
9385 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
9386 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
9387 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
9388 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9389 * value-prof.c: Likewise.
9390 * var-tracking.c (val_reset): Likewise.
9391
9392 2017-04-03 Richard Biener <rguenther@suse.de>
9393
9394 PR tree-optimization/80275
9395 * fold-const.c (split_address_to_core_and_offset): Handle
9396 POINTER_PLUS_EXPR.
9397
9398 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
9399
9400 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
9401 descriptors is at least equal to that of functions.
9402
9403 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9404
9405 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
9406
9407 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9408
9409 PR target/80250
9410 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
9411 (mov<IMOD4:mode>): New expander.
9412 (*mov<IMOD4:mode>_internal): New insn and split pattern.
9413
9414 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
9415
9416 PR rtl-optimization/79405
9417 * fwprop.c (propagations_left): New variable.
9418 (forward_propagate_into): Decrement it.
9419 (fwprop_init): Initialize it.
9420 (fw_prop): If the variable has reached zero, stop propagating.
9421 (fwprop_addr): Ditto.
9422
9423 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9424
9425 PR debug/79255
9426 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
9427 a FUNCTION_DECL, pass it as decl instead of origin to
9428 process_scope_var.
9429
9430 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
9431
9432 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
9433 string.
9434
9435 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
9436
9437 PR target/80107
9438 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
9439 TARGET_VSX_SMALL_INTEGER.
9440
9441 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9442
9443 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
9444 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
9445
9446 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
9447
9448 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
9449 extraction from odd-numbered MSA register.
9450
9451 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9452
9453 PR middle-end/80173
9454 * expmed.c (store_bit_field_1): Don't attempt to create
9455 a word subreg out of hard registers wider than word if they
9456 have HARD_REGNO_NREGS of 1 for their mode.
9457
9458 PR middle-end/80163
9459 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
9460 conversions to integer types wider than word and pointer.
9461
9462 PR debug/80025
9463 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
9464 (rtx_equal_for_cselib_p): Pass 0 to it.
9465 * cselib.c (cselib_hasher::equal): Likewise.
9466 (rtx_equal_for_cselib_1): Add depth argument. If depth
9467 is 128, don't look up VALUE locs and punt. Increment
9468 depth in recursive calls when walking VALUE locs.
9469
9470 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
9471
9472 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
9473 (make_gcov_file_name): Use the canonical path name for generating
9474 the MD5 value.
9475 (read_line): Fix handling of files with ascii null bytes.
9476
9477 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
9478
9479 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
9480 to initialise a vector register instead
9481 of using a const_int.
9482
9483 2017-03-30 Jakub Jelinek <jakub@redhat.com>
9484
9485 PR translation/80189
9486 * gimplify.c (omp_default_clause): Use %qs instead of %s in
9487 diagnostic messages.
9488
9489 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
9490
9491 PR target/80246
9492 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
9493 (dfp_diex_<mode>): Update mode of operand 1.
9494 * doc/extend.texi (dxex, dxexq): Document change to return type.
9495 (diex, diexq): Document change to argument type.
9496
9497 2017-03-30 Martin Jambor <mjambor@suse.cz>
9498
9499 PR ipa/77333
9500 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
9501 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
9502 it reflects the signature changes performed at the callee side.
9503 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
9504 to cgraph_build_function_type_skip_args.
9505 (build_function_decl_skip_args): Adjust call to the above function.
9506
9507 2017-03-30 Jakub Jelinek <jakub@redhat.com>
9508
9509 PR target/80206
9510 * config/i386/sse.md
9511 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
9512 register as dest whenever it is a MEM not rtx_equal_p to the
9513 corresponding dup operand, and when forcing into reg move the
9514 reg into the memory afterwards.
9515 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
9516 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
9517 for the force_reg mode.
9518 (avx512vl_vextractf128<mode>): Use register as dest either
9519 always when a MEM, or when it is a MEM not rtx_equal_p to the
9520 corresponding dup operand, or even not when it is a CONST_VECTOR
9521 depending on the mode and lo vs. hi.
9522 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
9523 parens.
9524 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
9525 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
9526 Likewise. Require that operands[2] is even.
9527 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
9528 Remove extraneous parens. Require that operands[2] is a multiple
9529 of 4.
9530 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
9531 operands[0] is a MEM if <mask_applied>, the predicates/constraints
9532 disallow memory then.
9533
9534 2017-03-30 Richard Biener <rguenther@suse.de>
9535
9536 PR tree-optimization/77498
9537 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
9538 to non-constants over backedges.
9539
9540 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
9541
9542 PR rtl-optimization/80233
9543 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
9544 as last_combined_insn. Do not test for BARRIER_P separately.
9545
9546 2017-03-29 Andreas Schwab <schwab@suse.de>
9547
9548 PR ada/80146
9549 * calls.c (prepare_call_address): Convert funexp to Pmode before
9550 copying to temp reg.
9551
9552 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9553
9554 PR tree-optimization/80158
9555 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
9556 Handle possible future case of more than one alternate
9557 interpretation.
9558 (replace_rhs_if_not_dup): Likewise.
9559 (replace_one_candidate): Likewise.
9560
9561 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
9562
9563 PR rtl-optimization/80193
9564 * ira.c (ira): Do not check allocation for LRA.
9565
9566 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
9567
9568 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
9569 (nvptx_output_simt_exit): Declare.
9570 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
9571 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
9572 (init_softstack_frame): Move initialization of crtl->is_leaf to...
9573 (nvptx_declare_function_name): ...here. Emit declaration of local
9574 memory space buffer for omp_simt_enter insn.
9575 (nvptx_output_unisimt_switch): New.
9576 (nvptx_output_softstack_switch): New.
9577 (nvptx_output_simt_enter): New.
9578 (nvptx_output_simt_exit): New.
9579 * config/nvptx/nvptx.h (struct machine_function): New fields
9580 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
9581 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
9582 (UNSPECV_SIMT_EXIT): Ditto.
9583 (omp_simt_enter_insn): New insn.
9584 (omp_simt_enter): New expansion.
9585 (omp_simt_exit): New insn.
9586 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
9587
9588 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
9589 (expand_GOMP_SIMT_ENTER_ALLOC): New.
9590 (expand_GOMP_SIMT_EXIT): New.
9591 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
9592 (GOMP_SIMT_ENTER_ALLOC): Ditto.
9593 (GOMP_SIMT_EXIT): Ditto.
9594 * target-insns.def (omp_simt_enter): New insn.
9595 (omp_simt_exit): Ditto.
9596 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
9597 simt_dlist.
9598 (lower_rec_simd_input_clauses): Implement SIMT privatization.
9599 (lower_rec_input_clauses): Likewise.
9600 (lower_lastprivate_clauses): Handle SIMT privatization.
9601
9602 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
9603 (ompdevlow_adjust_simt_enter): New.
9604 (find_simtpriv_var_op): New.
9605 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
9606 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
9607
9608 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
9609 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
9610 (copy_decl_for_dup_finish): Ditto.
9611
9612 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
9613
9614 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
9615
9616 PR target/53383
9617 * config/i386/i386.c (ix86_option_override_internal): Always
9618 allow -mpreferred-stack-boundary=3 for 64-bit targets.
9619
9620 2017-03-28 Bin Cheng <bin.cheng@arm.com>
9621
9622 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
9623
9624 2017-03-28 Bin Cheng <bin.cheng@arm.com>
9625
9626 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
9627 mark new edge's irreducible flag accordign to it.
9628 (vect_do_peeling): Check loop preheader edge's irreducible flag
9629 and pass it to function slpeel_add_loop_guard.
9630
9631 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
9632
9633 PR tree-optimization/80218
9634 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
9635 Update block frequencies and counts.
9636
9637 2017-03-28 Richard Biener <rguenther@suse.de>
9638
9639 PR tree-optimization/78644
9640 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
9641 of a simplification result we may not use it at all.
9642
9643 2017-03-28 Richard Biener <rguenther@suse.de>
9644
9645 PR ipa/80205
9646 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
9647 without arguments, generate default definition of a SSA name.
9648
9649 2017-03-28 Richard Biener <rguenther@suse.de>
9650
9651 PR middle-end/80222
9652 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
9653 TYPE_REF_CAN_ALIAS_ALL references.
9654 * fold-const.c (fold_indirect_ref_1): Likewise.
9655
9656 2017-03-28 Martin Liska <mliska@suse.cz>
9657
9658 PR ipa/80104
9659 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
9660 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
9661
9662 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
9663 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9664
9665 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
9666 (EXTRA_SPECS): Define.
9667 (SUBTARGET_EXTRA_SPECS): Likewise.
9668 (SUBTARGET_CPP_SPEC): Likewise.
9669 * config/arc/elf.h (EXTRA_SPECS): Renamed to
9670 SUBTARGET_EXTRA_SPECS.
9671 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
9672
9673 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
9674
9675 * config/arc/simdext.md (vst64_insn): Update pattern.
9676 (vld32wh_insn): Likewise.
9677 (vld32wl_insn): Likewise.
9678 (vld64_insn): Likewise.
9679 (vld32_insn): Likewise.
9680
9681 2017-03-28 Marek Polacek <polacek@redhat.com>
9682
9683 PR sanitizer/80067
9684 * fold-const.c (fold_comparison): Use protected_set_expr_location
9685 instead of SET_EXPR_LOCATION.
9686
9687 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
9688
9689 * tree.c (add_expr): Avoid name lookup warning.
9690
9691 2017-03-27 Jeff Law <law@redhat.com>
9692
9693 PR tree-optimization/80216
9694 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
9695 function name. Limit recursion depth.
9696 (record_temporary_equivalences): Corresponding changes.
9697
9698 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
9699
9700 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
9701 covered first.
9702
9703 2017-03-27 Jakub Jelinek <jakub@redhat.com>
9704
9705 PR target/80102
9706 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
9707 notes.
9708 * cfgcleanup.c (reg_note_cfa_p): New array.
9709 (insns_have_identical_cfa_notes): New function.
9710 (old_insns_match_p): Don't cross-jump in between /f
9711 and non-/f instructions. If both i1 and i2 are frame related,
9712 verify all CFA notes, their order and content.
9713
9714 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
9715
9716 PR target/78543
9717 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
9718 HImode and SImode with zero extend to DImode to one insn.
9719 (bswap<mode>2_extenddi): Likewise.
9720 (bswapsi2_extenddi): Likewise.
9721 (bswaphi2_extendsi): Likewise.
9722 (bswaphi2): Combine bswap HImode and SImode into one insn.
9723 Separate memory insns from swapping register.
9724 (bswapsi2): Likewise.
9725 (bswap<mode>2): Likewise.
9726 (bswaphi2_internal): Delete, no longer used.
9727 (bswapsi2_internal): Likewise.
9728 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
9729 store, and gpr<-gpr swap insns.
9730 (bswap<mode>2_store): Likewise.
9731 (bswaphi2_reg): Register only splitter, combine with the splitter.
9732 (bswaphi2 splitter): Likewise.
9733 (bswapsi2_reg): Likewise.
9734 (bswapsi2 splitter): Likewise.
9735 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
9736 the insns into load, store, and register/register insns.
9737 (bswapdi2_ldbrx): Likewise.
9738 (bswapdi2_load): Likewise.
9739 (bswapdi2_store): Likewise.
9740 (bswapdi2_reg): Likewise.
9741
9742 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
9743
9744 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
9745 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
9746
9747 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
9748
9749 PR target/80103
9750 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
9751 add comments.
9752 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
9753 special handling for target option conflicts between dform
9754 options (-mpower9-dform, -mpower9-dform-vector,
9755 -mpower9-dform-scalar) and -mno-direct-move.
9756
9757 2017-03-27 Richard Biener <rguenther@suse.de>
9758
9759 PR tree-optimization/80181
9760 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
9761
9762 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9763
9764 * config/arc/predicates.md (move_double_src_operand): Replace the
9765 call to move_double_src_operand with a call to address_operand.
9766
9767 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9768
9769 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
9770 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
9771 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
9772
9773 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9774
9775 * config/arc/predicates.md (long_immediate_loadstore_operand):
9776 Consider scaled addresses cases.
9777
9778 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9779
9780 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
9781 restored when in interrupt.
9782 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
9783 doesn't have delay slot.
9784
9785 2017-03-27 Richard Biener <rguenther@suse.de>
9786
9787 PR ipa/79776
9788 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
9789 inlined thunk clones.
9790
9791 2017-03-27 Jakub Jelinek <jakub@redhat.com>
9792
9793 PR sanitizer/80168
9794 * asan.c (instrument_derefs): Copy over last operand from
9795 original COMPONENT_REF to the new COMPONENT_REF with
9796 DECL_BIT_FIELD_REPRESENTATIVE.
9797 * ubsan.c (instrument_object_size): Likewise.
9798
9799 2017-03-27 Richard Biener <rguenther@suse.de>
9800
9801 PR tree-optimization/80170
9802 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
9803 sure DR/SCEV didnt fold in constants we do not see when looking
9804 at the reference base alignment.
9805
9806 2017-03-27 Richard Biener <rguenther@suse.de>
9807
9808 PR middle-end/80171
9809 * gimple-fold.c (fold_ctor_reference): Properly guard against
9810 NULL return value from canonicalize_constructor_val.
9811
9812 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
9813
9814 PR target/80180
9815 * config/i386/i386.c (ix86_expand_builtin)
9816 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
9817 flags reg setting and flags reg using instructions.
9818 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
9819 clobbering instructions to zero extend op2.
9820
9821 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
9822
9823 * doc/install.texi (Configuration) <--with-aix-soname>:
9824 Update link to AIX ld.
9825
9826 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
9827
9828 PR rtl-optimization/80160
9829 PR rtl-optimization/80159
9830 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
9831 reg_alternate_class into account.
9832
9833 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
9834
9835 PR target/80148
9836 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
9837 to consider in curr_insn_transform.
9838
9839 2017-03-24 Jakub Jelinek <jakub@redhat.com>
9840
9841 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
9842 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
9843 and emit_mode_inner.
9844
9845 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9846
9847 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
9848 argument to the overloaded builtin variants. Use the new flag to
9849 deprecate certain builtin variants.
9850 * config/s390/s390-builtin-types.def: Add new builtin types.
9851 * config/s390/s390-builtins.h: Support new flags field for
9852 overloaded builtins.
9853 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
9854 (s390_macro_to_expand): Enable vector float data type.
9855 (s390_cpu_cpp_builtins_internal): Indicate support of the new
9856 builtins by incrementing the __VEC__ version number.
9857 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
9858 vec_xst.
9859 (s390_resolve_overloaded_builtin): Emit error messages depending
9860 on the builtin flags.
9861 * config/s390/s390.c (s390_expand_builtin): Support additional
9862 flags argument. Change error message to match the messages
9863 emitted in s390-c.c.
9864 * config/s390/s390.md: New UNSPEC_* constants.
9865 (op_type): Add new instruction types.
9866 * config/s390/vecintrin.h: Add new builtins and test data class
9867 constants.
9868 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
9869 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
9870 (VEC_INEXACT, VEC_NOINEXACT): New constants.
9871 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
9872 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
9873 ("vec_mergel<mode>"): V_HW -> VEC_HW.
9874
9875 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
9876 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
9877 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
9878 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
9879
9880 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
9881 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
9882 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
9883 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
9884
9885 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
9886 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
9887 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
9888 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
9889 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
9890 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
9891 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
9892
9893 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
9894 ("vec_scatter_element<V_HW_4:mode>_DI")
9895 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
9896 ("vec_fpint<mode>", "vflls")
9897 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
9898 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
9899 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
9900 ("*vec_cmphe<mode>_cc"): ... these.
9901
9902 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
9903 mode constant instead of magic value.
9904
9905 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9906
9907 * config/s390/s390.c (s390_expand_vec_compare): Support other
9908 vector floating point modes than just V2DF.
9909 (s390_expand_vcond): Likewise.
9910 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
9911 (s390_cannot_change_mode_class): Prevent mode changes between TF
9912 and V1TF in vector registers.
9913 * config/s390/s390.md (DF, SF): New mode attributes.
9914 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
9915 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
9916 SFmode support for VRs.
9917 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
9918 vector fp modes.
9919 (VFT, VF_HW): New mode iterators.
9920 (vw, sdx): New mode attributes.
9921 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
9922 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
9923 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
9924 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
9925 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
9926 also the new vector floating point modes. Renaming to ...
9927
9928 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
9929 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
9930 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
9931 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
9932 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
9933 ("vec_unordered<mode>"): ... these.
9934
9935 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
9936 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
9937 ("*vec_extendv2df"): New insn definitions.
9938
9939 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9940
9941 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
9942 ("mulditi3_2", "*muldi3_sign"): New patterns.
9943 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
9944 rename the pattern definition.
9945
9946 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9947
9948 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
9949 expander.
9950 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
9951
9952 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9953
9954 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
9955 instruction if possible.
9956 * config/s390/vector.md (vec_halfnumelts): New mode
9957 attribute.
9958 ("*vec_vllezlf<mode>"): New pattern.
9959
9960 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9961
9962 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
9963 ("popcountv4si2", "popcountv2di2"): Rename to ...
9964 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
9965 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
9966 condition.
9967 ("popcount<mode>2_vxe"): New pattern.
9968
9969 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9970
9971 * common/config/s390/s390-common.c (processor_flags_table): Add
9972 arch12.
9973 * config.gcc: Add arch12.
9974 * config/s390/driver-native.c (s390_host_detect_local_cpu):
9975 Default to arch12 for unknown CPU model numbers.
9976 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
9977 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
9978 PROCESSOR_max sanity check.
9979 * config/s390/s390-opts.h (enum processor_type): Add
9980 PROCESSOR_ARCH12.
9981 * config/s390/s390.c (processor_table): Add arch12.
9982 (s390_expand_builtin): Add check for B_VXE flag.
9983 (s390_issue_rate): Add PROCESSOR_ARCH12.
9984 (s390_get_sched_attrmask): Likewise.
9985 (s390_get_unit_mask): Likewise.
9986 (s390_sched_score): Enable z13 scheduling for arch12.
9987 (s390_sched_reorder): Likewise.
9988 (s390_sched_variable_issue): Likewise.
9989 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
9990 PF_VXE.
9991 (s390_tune_attr): Use z13 scheduling also for arch12.
9992 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
9993 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
9994 (TARGET_VXE_P): New macros.
9995 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
9996 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
9997 * config/s390/s390.opt: Add arch12 as processor_type.
9998
9999 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10000
10001 * config/s390/s390.md
10002 ("fixuns_truncdddi2", "fixuns_trunctddi2")
10003 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
10004 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
10005
10006 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
10007 Rename expanders to ...
10008
10009 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
10010 ("fixuns_truncdddi2_emu"): ... these.
10011
10012 ("fixuns_trunc<mode>si2_emu"): New expander.
10013
10014 ("*fixuns_truncdfdi2_z13"): Rename to ...
10015 ("*fixuns_truncdfdi2_vx"): ... this.
10016
10017 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10018
10019 * config/s390/2964.md: Remove the single element vector compare
10020 instructions which are no longer used.
10021 * config/s390/s390.c (s390_select_ccmode): Remove handling of
10022 vector CCmodes.
10023 (s390_canonicalize_comparison): Remove handling of DFmode
10024 compares.
10025 (s390_expand_vec_compare_scalar): Remove function.
10026 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
10027 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
10028 pattern.
10029 ("*cmp<mode>_ccs"): Add wfcdb instruction.
10030
10031 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10032
10033 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
10034 FP zero.
10035 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
10036 will anyway by matched by mov<mode>_64dfp.
10037
10038 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10039
10040 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
10041 vlef/vstef. Add missing operand to vleif.
10042
10043 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10044
10045 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
10046 pair for all vector types with 64 bit elements.
10047 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
10048 * config/s390/vector.md (V_HW_64): ... here.
10049 (V_128_NOSINGLE): New mode iterator.
10050 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
10051 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
10052 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
10053 ("*vec_load_pairv2di"): Change to ...
10054 ("*vec_load_pair<mode>"): ... this one.
10055
10056 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10057
10058 * config/s390/constraints.md: Add comments.
10059 (jKK): Reject element sizes > 8 bytes.
10060 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
10061 s_operands.
10062 * config/s390/s390.md: Add the s_operand checks formerly in
10063 s390_split_ok_p to various splitters where they are still
10064 required.
10065 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
10066 for 128 bit vectors. Plus two splitters.
10067
10068 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10069
10070 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
10071 the file.
10072
10073 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10074
10075 PR target/79893
10076 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
10077 error if the boundary argument is not constant.
10078
10079 2017-03-24 Jakub Jelinek <jakub@redhat.com>
10080
10081 PR rtl-optimization/80112
10082 * loop-doloop.c (doloop_condition_get): Don't check condition
10083 if cmp isn't SET with IF_THEN_ELSE src.
10084
10085 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10086
10087 PR tree-optimization/80158
10088 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
10089 replacing a candidate statement, also replace it for the
10090 candidate's alternate interpretation.
10091 (replace_rhs_if_not_dup): Likewise.
10092 (replace_one_candidate): Likewise.
10093
10094 2017-03-24 Richard Biener <rguenther@suse.de>
10095
10096 PR tree-optimization/80167
10097 * graphite-isl-ast-to-gimple.c
10098 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
10099 properly.
10100 (translate_isl_ast_to_gimple::get_rename): Likewise.
10101
10102 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
10103
10104 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
10105 handling of certain combinations of target options, including the
10106 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
10107 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
10108
10109 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10110
10111 PR target/71436
10112 * config/arm/arm.md (*load_multiple): Add reload_completed to
10113 matching condition.
10114
10115 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10116 Richard Biener <rguenth@suse.de>
10117
10118 PR tree-optimization/79908
10119 PR tree-optimization/80136
10120 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
10121 been cast away, gimplify_and_add suffices.
10122
10123 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
10124
10125 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
10126
10127 2017-03-23 Richard Biener <rguenther@suse.de>
10128
10129 PR tree-optimization/80032
10130 * gimplify.c (gimple_push_cleanup): Forced unconditional
10131 cleanups still have to go to the conditional_cleanups
10132 sequence.
10133
10134 2017-03-22 Jakub Jelinek <jakub@redhat.com>
10135
10136 PR tree-optimization/80072
10137 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
10138 to unsigned int.
10139 (next_operand_entry_id): Change type to unsigned int.
10140 (sort_by_operand_rank): Make sure to return the right return value
10141 even if unsigned fields are bigger than INT_MAX.
10142 (struct oecount): Change cnt and id type to unsigned int.
10143 (oecount_hasher::equal): Formatting fix.
10144 (oecount_cmp): Make sure to return the right return value
10145 even if unsigned fields are bigger than INT_MAX.
10146 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
10147
10148 PR c++/80129
10149 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
10150 TREE_READONLY on result if writing it more than once.
10151
10152 PR sanitizer/80110
10153 * doc/invoke.texi (-fsanitize=thread): Document that with
10154 -fnon-call-exceptions atomics are not able to throw
10155 exceptions.
10156
10157 PR sanitizer/80110
10158 * tsan.c: Include tree-eh.h.
10159 (instrument_builtin_call): Call maybe_clean_eh_stmt or
10160 maybe_clean_or_replace_eh_stmt where needed.
10161 (instrument_memory_accesses): Add cfg_changed argument.
10162 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
10163 if it returned true.
10164 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
10165
10166 PR rtl-optimization/63191
10167 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
10168 wrapper function, moved the whole old content into ...
10169 (ix86_delegitimize_address_1): ... this. New inline function.
10170 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
10171 true as last argument instead of ix86_delegitimize_address.
10172
10173 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10174
10175 * config/aarch64/aarch64.c (generic_branch_cost): Copy
10176 cortexa57_branch_cost.
10177
10178 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10179
10180 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
10181
10182 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10183
10184 PR target/80123
10185 * doc/md.texi (Constraints): Document wA constraint.
10186 * config/rs6000/constraints.md (wA): New.
10187 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
10188 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
10189 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
10190 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
10191
10192 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
10193
10194 PR c++/80029
10195 * gimplify.c (is_oacc_declared): New function.
10196 (oacc_default_clause): Use it to set default flags for acc declared
10197 variables inside parallel regions.
10198 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
10199 declared variables.
10200 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
10201 declare attribute to any decl as necessary.
10202
10203 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
10204
10205 PR target/80082
10206 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
10207 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
10208 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
10209 (arm_arch_lpae): This.
10210 * config/arm/arm.c (arm_arch7ve): Rename into ...
10211 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
10212 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
10213 arm_arch_lpae.
10214
10215 2017-03-22 Martin Liska <mliska@suse.cz>
10216
10217 PR target/79906
10218 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
10219 error message instead of an ICE.
10220
10221 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10222
10223 * doc/extend.texi (6.11 Additional Floating Types): Revise.
10224
10225 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
10226
10227 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
10228 comments.
10229 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10230 comments.
10231
10232 2017-03-21 Martin Sebor <msebor@redhat.com>
10233
10234 * doc/extend.texi: Use "cannot" instead of "can't."
10235 * doc/hostconfig.texi: Same.
10236 * doc/install.texi: Same.
10237 * doc/invoke.texi: Same.
10238 * doc/loop.texi: Same.
10239 * doc/md.texi: Same.
10240 * doc/objc.texi: Same.
10241 * doc/rtl.texi: Same.
10242 * doc/tm.texi: Same.
10243 * doc/tm.texi.in: Same.
10244 * doc/trouble.texi: Same.
10245
10246 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
10247
10248 PR debug/63238
10249 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
10250 (collect_checksum_attributes): Set it.
10251 (die_checksum_ordered): Use it.
10252
10253 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10254
10255 PR tree-optimization/79908
10256 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
10257 change: For a VA_ARG whose LHS has been cast away, use
10258 force_gimple_operand to construct the side effects.
10259
10260 2017-03-21 David Malcolm <dmalcolm@redhat.com>
10261
10262 PR translation/80001
10263 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
10264 more amenable to translation.
10265 (oacc_loop_auto_partitions): Likewise.
10266
10267 2017-03-21 Marek Polacek <polacek@redhat.com>
10268 Martin Sebor <msebor@redhat.com>
10269
10270 PR tree-optimization/80109
10271 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
10272 on INTEGRAL_TYPE_P.
10273
10274 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10275 Segher Boessenkool <segher@kernel.crashing.org>
10276
10277 PR target/80125
10278 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
10279 check reg_used_between_p between insn and one of succ or succ2
10280 depending on if succ is artificial insn not inserted into insn
10281 stream.
10282
10283 2017-03-21 Martin Liska <mliska@suse.cz>
10284
10285 PR gcov-profile/80081
10286 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
10287 * doc/gcc.texi: Include gcov-dump stuff.
10288 * doc/gcov-dump.texi: New file.
10289
10290 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
10291
10292 PR rtl-optimization/79150
10293 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
10294 conditional jump, if the jump is the last insn of the loop.
10295
10296 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10297 Richard Biener <rguenth@suse.de>
10298
10299 PR tree-optimization/79908
10300 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
10301 been cast away, use force_gimple_operand to construct the side
10302 effects.
10303
10304 2017-03-21 Martin Liska <mliska@suse.cz>
10305
10306 PR libfortran/79956
10307 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
10308 to NULL.
10309
10310 2017-03-21 Brad Spengler <spender@grsecurity.net>
10311
10312 PR plugins/80094
10313 * plugin.c (htab_hash_plugin): New function.
10314 (add_new_plugin): Use it and adjust.
10315 (parse_plugin_arg_opt): Adjust.
10316 (init_one_plugin): Likewise.
10317
10318 2017-03-21 Richard Biener <rguenther@suse.de>
10319
10320 PR tree-optimization/80032
10321 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
10322 if set force the cleanup to happen unconditionally.
10323 (gimplify_target_expr): Push inserted clobbers with force_uncond
10324 to avoid them being removed by control-dependent DCE.
10325
10326 2017-03-21 Richard Biener <rguenther@suse.de>
10327
10328 PR tree-optimization/80122
10329 * tree-inline.c (copy_bb): Do not expans va-arg packs or
10330 va_arg_pack_len when the inlined call stmt requires pack
10331 expansion itself.
10332 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
10333
10334 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10335
10336 PR sanitizer/78158
10337 * tsan.c (instrument_builtin_call): If the memory model argument
10338 is not a constant, assume it is valid.
10339
10340 PR c/67338
10341 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
10342 avoid UB.
10343
10344 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10345
10346 PR rtl-optimization/79910
10347 * combine.c (can_combine_p): Do not allow combining an I0 or I1
10348 if its dest is used by an insn before I2 (other than the combined
10349 insns themselves, which are properly handled already).
10350
10351 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10352
10353 Revert:
10354 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
10355
10356 * combine.c (record_used_regs): New static function.
10357 (try_combine): Handle situations where there is an additional
10358 instruction between I2 and I3 which needs to have a LOG_LINK
10359 updated.
10360
10361 Revert:
10362 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10363
10364 * combine.c (try_combine): Delete redundant i1 test. Call
10365 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10366
10367 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10368
10369 PR target/80083
10370 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
10371 alternatives 13/14.
10372
10373 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10374
10375 PR tree-optimization/80054
10376 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
10377 the optimization if a PHI or any of its arguments is not dominated
10378 by the candidate's basis. Use gphi* rather than gimple* as
10379 appropriate.
10380 (replace_profitable_candidates): Clean up a gimple* variable that
10381 should be a gphi* variable.
10382
10383 2017-03-20 Martin Sebor <msebor@redhat.com>
10384
10385 PR c++/52477
10386 * doc/extend.texi (attribute constructor): Document present limitation.
10387
10388 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
10389
10390 PR target/79963
10391 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
10392 __POWER9_VECTOR__ #ifdef control, change template definition to
10393 use Power9-specific built-in function.
10394 (vec_any_eq): Likewise.
10395 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
10396 to control outcomes from this test.
10397 (vector_ae_<mode>p): For VEC_F modes, likewise.
10398
10399 2017-03-20 Ian Lance Taylor <iant@google.com>
10400
10401 * config/i386/i386.c (ix86_function_regparm): Save an extra
10402 register for -fsplit-stack with DECL_STATIC_CHAIN.
10403
10404 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10405
10406 PR target/79912
10407 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
10408 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
10409
10410 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10411
10412 * config/riscv/riscv.c (riscv_print_operand): Use "fence
10413 iorw,ow".
10414 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
10415 iorw,iorw".
10416
10417 2017-03-20 Marek Polacek <polacek@redhat.com>
10418
10419 PR sanitizer/80063
10420 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
10421
10422 2017-03-20 Richard Biener <rguenther@suse.de>
10423
10424 PR tree-optimization/80113
10425 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
10426 allocate extra SSA name for PHI def.
10427 (add_close_phis_to_outer_loops): Likewise.
10428 (add_close_phis_to_merge_points): Likewise.
10429 (copy_loop_close_phi_args): Likewise.
10430 (copy_cond_phi_nodes): Likewise.
10431
10432 2017-03-20 Martin Liska <mliska@suse.cz>
10433
10434 PR middle-end/79753
10435 * tree-chkp.c (chkp_build_returned_bound): Do not build
10436 returned bounds for a LHS that's not a BOUNDED_P type.
10437
10438 2017-03-20 Martin Liska <mliska@suse.cz>
10439
10440 PR target/79769
10441 PR target/79770
10442 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
10443 COMPLEX_CST and VECTOR_CST.
10444
10445 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10446
10447 PR target/78857
10448 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
10449 target operand. A new splitter adds the clobber statement in case
10450 the target operand is dead anyway.
10451
10452 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
10453
10454 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
10455 to age-old versions of binutils and glibc.
10456
10457 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
10458
10459 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
10460
10461 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10462
10463 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
10464
10465 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10466
10467 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
10468 requirement for binutils 2.13.
10469
10470 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10471
10472 * combine.c (try_combine): Delete redundant i1 test. Call
10473 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10474
10475 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
10476
10477 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
10478 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
10479 contents.
10480 <riscv64-*-elf>: Re-arrange section
10481 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
10482 <riscv32-*-linux>: Likewise.
10483 <riscv64-*-elf>: Likewise
10484 <riscv64-*-linux>: Likewise.
10485
10486 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
10487
10488 PR target/80052
10489 * aarch64.opt(verbose-cost-dump): Fix typo.
10490
10491 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
10492
10493 PR target/79951
10494 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
10495 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
10496
10497 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
10498
10499 * reload.c (find_reloads): When reloading a nonoffsettable address,
10500 use RELOAD_OTHER for it and its address reloads.
10501
10502 PR rtl-optimization/79910
10503 * combine.c (record_used_regs): New static function.
10504 (try_combine): Handle situations where there is an additional
10505 instruction between I2 and I3 which needs to have a LOG_LINK
10506 updated.
10507
10508 2017-03-17 Jeff Law <law@redhat.com>
10509
10510 PR tree-optimization/71437
10511 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
10512 conditional in the hash table first.
10513 (vrp_dom_walker::before_dom_children): Extract condition from
10514 ASSERT_EXPR. Record condition, its inverion and any implied
10515 conditions as well.
10516
10517 2017-03-17 Marek Polacek <polacek@redhat.com>
10518 Markus Trippelsdorf <markus@trippelsdorf.de>
10519
10520 PR tree-optimization/80079
10521 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
10522 m_stores_head.
10523
10524 2017-03-17 Richard Biener <rguenther@suse.de>
10525
10526 PR middle-end/80075
10527 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
10528 Properly verify the LHS before the RHS possibly claims to be
10529 handled.
10530 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
10531 do not throw.
10532
10533 2017-03-17 Martin Jambor <mjambor@suse.cz>
10534
10535 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
10536 (List of -O2 options): Likewise.
10537 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
10538 (-fipa-vrp) New.
10539
10540 2017-03-17 Tom de Vries <tom@codesourcery.com>
10541
10542 * gcov-dump.c (print_usage): Print bug_report_url.
10543
10544 2017-03-17 Richard Biener <rguenther@suse.de>
10545
10546 PR middle-end/80050
10547 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
10548 (parser::peek): Likewise.
10549
10550 2017-03-17 Richard Biener <rguenther@suse.de>
10551
10552 PR tree-optimization/80048
10553 * sese.c (free_sese_info): Properly release rename_map and
10554 copied_bb_map elements.
10555
10556 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
10557
10558 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
10559 Add linked-list forward and backlinks. Insert on
10560 construction, remove on destruction.
10561 (class pass_store_merging): Add m_stores_head field.
10562 (pass_store_merging::terminate_and_process_all_chains):
10563 Iterate over m_stores_head list.
10564 (pass_store_merging::terminate_all_aliasing_chains):
10565 Likewise.
10566 (pass_store_merging::execute): Check for debug stmts first.
10567 Push new chains onto the m_stores_head stack.
10568
10569 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
10570
10571 PR target/71294
10572 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
10573 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
10574 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
10575
10576 2017-03-16 Jeff Law <law@redhat.com>
10577
10578 PR tree-optimization/71437
10579 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
10580 member function. Implementation moved into after_dom_children
10581 member function and into the threader's thread_outgoing_edges
10582 function.
10583 (dom_opt_dom_walker::after_dom_children): Simplify by moving
10584 some code into new thread_outgoing_edges.
10585 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
10586 definition. Simplify marker handling (do it here). Assume we always
10587 have the available expression and the const/copies tables.
10588 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
10589 and tree-vrp.c
10590 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
10591 * tree-vrp.c (equiv_stack): No longer file scoped.
10592 (vrp_dom_walker): New class.
10593 (vrp_dom_walker::before_dom_children): New member function.
10594 (vrp_dom_walker::after_dom_children): Likewise.
10595 (identify_jump_threads): Setup domwalker. Use it rather than
10596 walking edges in a random order by hand. Simplify setup/finalization.
10597 (finalize_jump_threads): Remove.
10598 (vrp_finalize): Do not call identify_jump_threads here.
10599 (execute_vrp): Do it here instead and call thread_through_all_blocks
10600 here too.
10601
10602 PR tree-optimization/71437
10603 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
10604 callers changed.
10605 (simplify_stmt_for_jump_threading): Add basic_block argument. All
10606 callers changed.
10607 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
10608 (dom_opt_dom_walker::thread_across_edge): Remove
10609 handle_dominating_asserts argument. All callers changed.
10610 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
10611 changes. Remove calls to lhs_of_dominating_assert. Other
10612 uses of handle_dominating_asserts turn into unconditional code
10613 (simplify_control_stmt_condition_1): Likewise.
10614 (simplify_control_stmt_condition): Likewise.
10615 (thread_through_normal_block, thread_across_edge): Likewise.
10616 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
10617 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
10618 object if it is not an SSA_NAME.
10619 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
10620 before calling into the VRP specific simplifiers.
10621 (identify_jump_threads): Remove handle_dominating_asserts
10622 argument.
10623
10624 2017-03-16 Jakub Jelinek <jakub@redhat.com>
10625
10626 PR fortran/79886
10627 * tree-diagnostic.c (default_tree_printer): No longer static.
10628 * tree-diagnostic.h (default_tree_printer): New prototype.
10629
10630 2017-03-16 Tamar Christina <tamar.christina@arm.com>
10631
10632 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
10633 Change ins into fmov.
10634
10635 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10636
10637 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
10638 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
10639 Use h_con constraint for operand 1.
10640 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
10641 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
10642
10643 2017-03-15 Jeff Law <law@redhat.com>
10644
10645 PR tree-optimization/71437
10646 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
10647 (record_temporary_equivalences): Use it.
10648
10649 PR tree-optimization/71437
10650 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
10651 tree-ssa-scopedtables.
10652 (lookup_avail_expr, build_and_record_new_cond): Likewise.
10653 (record_conditions, record_cond, vuse_eq): Likewise.
10654 (record_edge_info): Adjust to API tweak of record_conditions.
10655 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
10656 (record_temporary_equivalences, optimize_stmt): Likewise.
10657 (eliminate_redundant_computations): Likewise.
10658 (record_equivalences_from_stmt): Likewise.
10659 * tree-ssa-scopedtables.c: Include options.h and params.h.
10660 (vuse_eq): New function, moved from tree-ssa-dom.c
10661 (build_and_record_new_cond): Likewise.
10662 (record_conditions): Likewise. Accept vector of conditions rather
10663 than edge_equivalence structure for first argument.
10664 for the first argument.
10665 (avail_exprs_stack::lookup_avail_expr): New member function, moved
10666 from tree-ssa-dom.c.
10667 (avail_exprs_stack::record_cond): Likewise.
10668 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
10669 from tree-ssa-dom.c.
10670 (avail_exprs_stack): Add new member functions lookup_avail_expr
10671 and record_cond.
10672 (record_conditions): Declare.
10673
10674 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
10675
10676 PR target/80017
10677 * lra-constraints.c (process_alt_operands): Increase reject for
10678 reloading an input/output operand.
10679
10680 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10681
10682 PR target/79038
10683 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
10684 insns to convert from signed/unsigned char/short to IEEE 128-bit
10685 floating point.
10686 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
10687
10688 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
10689
10690 PR target/80019
10691 * config/i386/i386.c (ix86_vector_duplicate_value): Create
10692 subreg of inner mode for values already in registers.
10693
10694 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
10695
10696 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
10697 iteration reg is used after the loop.
10698
10699 2017-03-14 Martin Sebor <msebor@redhat.com>
10700
10701 PR tree-optimization/79800
10702 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
10703 precision in negative-positive range.
10704 (format_floating): Call non-const overload with adjusted precision.
10705
10706 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10707
10708 PR target/79947
10709 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
10710 -mpowerpc-gfxopt.
10711
10712 2017-03-14 Martin Sebor <msebor@redhat.com>
10713
10714 PR middle-end/80020
10715 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
10716 * builtins.def (aligned_alloc): Use it.
10717
10718 PR c/79936
10719 * Makefile.in (GTFILES): Add calls.c.
10720 * calls.c: Include "gt-calls.h".
10721
10722 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
10723
10724 PR rtl-optimization/79728
10725 * regs.h (struct target_regs): New field
10726 x_contains_allocatable_regs_of_mode.
10727 (contains_allocatable_regs_of_mode): New macro.
10728 * reginfo.c (init_reg_sets_1): Initialize it, and change
10729 contains_reg_of_mode so it includes global regs as well.
10730 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
10731 rather than contains_regs_of_mode.
10732
10733 2017-03-14 Martin Liska <mliska@suse.cz>
10734
10735 * doc/invoke.texi: Document options that can't be combined with
10736 -fcheck-pointer-bounds.
10737
10738 2017-03-14 Martin Liska <mliska@suse.cz>
10739
10740 PR middle-end/79831
10741 * doc/invoke.texi (-Wchkp): Document the option.
10742
10743 2017-03-14 Martin Liska <mliska@suse.cz>
10744
10745 * Makefile.in: Install gcov-dump.
10746
10747 2017-03-14 Martin Liska <mliska@suse.cz>
10748
10749 * multiple_target.c (expand_target_clones): Bail out for
10750 an invalid attribute.
10751
10752 2017-03-14 Richard Biener <rguenther@suse.de>
10753
10754 * alias.c (struct alias_set_entry): Pack properly.
10755 * cfgloop.h (struct loop): Likewise.
10756 * cse.c (struct set): Likewise.
10757 * ipa-utils.c (struct searchc_env): Likewise.
10758 * loop-invariant.c (struct invariant): Likewise.
10759 * lra-remat.c (struct cand): Likewise.
10760 * recog.c (struct change_t): Likewise.
10761 * rtl.h (struct address_info): Likewise.
10762 * symbol-summary.h (function_summary): Likewise.
10763 * tree-loop-distribution.c (struct partition): Likewise.
10764 * tree-object-size.c (struct object_size_info): Likewise.
10765 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
10766 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
10767 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
10768 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
10769 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
10770 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
10771 (struct _stmt_vec_info): Likewise.
10772
10773 2017-03-14 Martin Liska <mliska@suse.cz>
10774
10775 PR target/79892
10776 * multiple_target.c (create_dispatcher_calls): Check that
10777 a target can create a function dispatcher.
10778
10779 2017-03-14 Martin Liska <mliska@suse.cz>
10780
10781 PR lto/66295
10782 * multiple_target.c (expand_target_clones): Drop local.local
10783 flag for default implementation.
10784
10785 2017-03-14 Richard Biener <rguenther@suse.de>
10786
10787 PR tree-optimization/80030
10788 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
10789
10790 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
10791
10792 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
10793 gcc_fallthrough() instead of __attribute__((fallthrough));
10794
10795 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
10796
10797 * doc/gcc.texi: Remove "up" link to (DIR).
10798 * doc/gccint.texi: Ditto.
10799
10800 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
10801
10802 * doc/install.texi (Specific) <avr>: Remove reference to
10803 binutils 2.13.
10804
10805 2017-03-13 Jeff Law <law@redhat.com>
10806
10807 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
10808 attribute rather than comments.
10809
10810 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
10811 match_scratch operand is highest.
10812
10813 2017-03-13 Martin Liska <mliska@suse.cz>
10814
10815 PR middle-end/78339
10816 * ipa-pure-const.c (warn_function_noreturn): If the declarations
10817 is a CHKP clone, use original declaration.
10818
10819 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10820
10821 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
10822 (arc_conditional_register_usage): Use a different allocation order
10823 when optimizing for size.
10824 * common/config/arc/arc-common.c (arc_option_optimization_table):
10825 Section anchors default on when optimizing for size.
10826
10827 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10828
10829 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
10830
10831 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10832
10833 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
10834 * config/arc/arc.md (cpu_facility): Add cd variant.
10835 (*movqi_insn): Add code density variant.
10836 (*movhi_insn): Likewise.
10837 (*movqi_insn): Likewise.
10838 (*addsi3_mixed): Likewise.
10839 (subsi3_insn): Likewise.
10840
10841 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10842
10843 * config/arc/arc.md (movsi_cond_exec): Update constraint.
10844
10845 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10846
10847 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
10848 expressions with MINUS and UNARY ops.
10849
10850 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10851
10852 PR target/79911
10853 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
10854 Rename to...
10855 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
10856 between vec_select and vector argument.
10857 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
10858 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
10859 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
10860 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
10861 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
10862 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
10863
10864 2017-03-13 Richard Biener <rguenther@suse.de>
10865
10866 PR other/79991
10867 * params.def (vect-max-peeling-for-alignment): Fix typo.
10868
10869 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10870
10871 * doc/install.texi (Specific) <mips-*-*>: Remove description of
10872 issue that only occurred with binutils below 2.18.
10873
10874 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10875
10876 * doc/install.texi (Specific) <cris-axis-elf>: No longer
10877 refer to binutils 2.11/2.12 minimum.
10878
10879 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10880
10881 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
10882 ftp.kernel.org and simplify binutils requirement.
10883
10884 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
10885
10886 * doc/invoke.texi (Warning Options): Fix spelling of link-time
10887 optimization.
10888 (Optimize Options): Ditto. Also remove redundancy.
10889
10890 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10891
10892 PR translation/79848
10893 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
10894 "%qs".
10895 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
10896 to G_ to avoid double translation.
10897
10898 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10899
10900 PR translation/79923
10901 * auto-profile.c (get_combined_location): Convert leading
10902 character of diagnostics to lower case and remove trailing period.
10903 (read_profile): Likewise for various diagnostics.
10904 * config/arm/arm.c (arm_option_override): Remove trailing period
10905 from various diagnostics.
10906 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
10907 (msp430_expand_delay_cycles): Likewise.
10908
10909 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10910
10911 PR target/79925
10912 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
10913 full command-line argument, rather than just "str".
10914 (aarch64_validate_march): Likewise.
10915 (aarch64_validate_mtune): Likewise.
10916
10917 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
10918
10919 PR rtl-optimization/78911
10920 * lra-assigns.c (must_not_spill_p): New function.
10921 (spill_for): Use it.
10922
10923 2017-03-10 Jakub Jelinek <jakub@redhat.com>
10924
10925 PR tree-optimization/79981
10926 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
10927 ATOMIC_COMPARE_EXCHANGE ifn result.
10928 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
10929 IFN_ATOMIC_COMPARE_EXCHANGE.
10930
10931 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10932
10933 PR driver/79875
10934 * opts.c (parse_sanitizer_options): Add missing question mark to
10935 "did you mean" message.
10936
10937 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10938
10939 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
10940 built-in.
10941 (VMULEUH_UNS): Likewise.
10942 (VMULOUB_UNS): Likewise.
10943 (VMULOUH_UNS): Likewise.
10944 * config/rs6000/rs6000.c (builtin_function_type): Remove
10945 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
10946
10947 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10948
10949 PR bootstrap/79952
10950 * read-rtl-function.c (function_reader::read_rtx_operand): Update
10951 x with result of extra_parsing_for_operand_code_0.
10952 (function_reader::extra_parsing_for_operand_code_0): Convert
10953 return type from void to rtx, returning x. When reading
10954 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
10955 larger size containing struct block_symbol.
10956
10957 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
10958
10959 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
10960 -mfloat128-hardware without -m64.
10961
10962 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
10963
10964 PR target/79941
10965 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
10966 entries to the case statement that marks unsigned arguments to
10967 overloaded functions.
10968
10969 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
10970
10971 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
10972 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
10973
10974 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
10975
10976 PR target/79907
10977 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
10978 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
10979
10980 2017-03-10 Martin Liska <mliska@suse.cz>
10981
10982 PR target/65705
10983 PR target/69804
10984 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
10985 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
10986 FIELD != NULL.
10987
10988 2017-03-10 Olivier Hainque <hainque@adacore.com>
10989
10990 * tree-switch-conversion (array_value_type): Start by resetting
10991 candidate type to it's main variant.
10992
10993 2017-03-10 Jakub Jelinek <jakub@redhat.com>
10994
10995 PR rtl-optimization/79909
10996 * combine.c (try_combine): Use simplify_replace_rtx on individual
10997 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
10998 of the whole CALL_INSN_FUNCTION_USAGE.
10999
11000 PR tree-optimization/79972
11001 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
11002 get_range_info on SSA_NAMEs. Formatting fixes.
11003
11004 2017-03-10 Richard Biener <rguenther@suse.de>
11005 Jakub Jelinek <jakub@redhat.com>
11006
11007 PR tree-optimization/77975
11008 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
11009 edge to be constant.
11010 (get_val_for): For constant x return it. Formatting fix.
11011 (loop_niter_by_eval): Avoid pointless looping if the next iteration
11012 would use the same bases as the current one.
11013
11014 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11015
11016 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
11017 instead of vec_select for V1TImode.
11018 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
11019 longer needed.
11020 (VSX_LE_128): Add V1TI to this mode iterator.
11021 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
11022 (*vsx_le_perm_store_<mode>): Likewise.
11023 (pre-reload splitter for VSX stores): Likewise.
11024 (post-reload splitter for VSX stores): Likewise.
11025 (*vsx_xxpermdi2_le_<mode>): Likewise.
11026 (*vsx_lxvd2x2_le_<mode>): Likewise.
11027 (*vsx_stxvd2x2_le_<mode>): Likewise.
11028
11029 2017-03-09 Michael Eager <eager@eagercon.com>
11030
11031 Correct failures with --enable-checking=yes,rtl.
11032
11033 * config/microblaze/microblaze.c (microblaze_expand_shift):
11034 Replace GET_CODE test with CONST_INT_P and INTVAL test with
11035 test for const0_rtx.
11036 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
11037 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
11038
11039 2017-03-09 Richard Biener <rguenther@suse.de>
11040
11041 PR tree-optimization/79977
11042 * graphite-scop-detection.c (scop_detection::merge_sese):
11043 Handle the case of extra exits to blocks dominating the entry.
11044
11045 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
11046
11047 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
11048 Document rdynamic.
11049
11050 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
11051
11052 PR rtl-optimization/79949
11053 * lra-constraints.c (process_alt_operands): Check memory when
11054 trying to predict a cycle. Print about the overall increase.
11055
11056 2017-03-09 Richard Biener <rguenther@suse.de>
11057
11058 PR middle-end/79971
11059 * gimple-expr.c (useless_type_conversion_p): Preserve
11060 TYPE_SATURATING for fixed-point types.
11061
11062 2017-03-09 Richard Biener <rguenther@suse.de>
11063
11064 PR ipa/79970
11065 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
11066 alignment of BLKmode params.
11067
11068 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11069
11070 PR target/79913
11071 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
11072 (VALL_NO_V2Q): Likewise.
11073 (VDQF_DF): Delete.
11074 * config/aarch64/aarch64-simd.md
11075 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
11076 iterator.
11077 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
11078 VALL_NO_V2Q mode iterator.
11079 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
11080
11081 2017-03-09 Martin Liska <mliska@suse.cz>
11082
11083 PR tree-optimization/79631
11084 * tree-chkp-opt.c (chkp_is_constant_addr): Call
11085 tree_int_cst_sign_bit just for INTEGER constants.
11086
11087 2017-03-09 Martin Liska <mliska@suse.cz>
11088
11089 PR target/65705
11090 PR target/69804
11091 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
11092 sanitizers.
11093
11094 2017-03-09 Marek Polacek <polacek@redhat.com>
11095
11096 PR c++/79672
11097 * tree.c (inchash::add_expr): Handle TREE_VEC.
11098
11099 2017-03-09 Martin Liska <mliska@suse.cz>
11100
11101 PR ipa/79764
11102 (chkp_narrow_size_and_offset): New function.
11103 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
11104 (void chkp_parse_bit_field_ref): New function.
11105 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
11106 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
11107
11108 2017-03-09 Martin Liska <mliska@suse.cz>
11109
11110 PR ipa/79761
11111 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
11112 (chkp_find_bounds_1): Remove gcc_unreachable.
11113
11114 2017-03-09 Jakub Jelinek <jakub@redhat.com>
11115
11116 PR sanitizer/79944
11117 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
11118 BUILT_IN_SYNC*, determine the access type from the size suffix and
11119 always build a MEM_REF with that type. Handle forgotten
11120 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
11121
11122 PR target/79932
11123 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
11124 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
11125 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
11126 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
11127 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
11128 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
11129 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
11130 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
11131 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
11132 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
11133 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
11134 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
11135 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
11136 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
11137 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
11138 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
11139 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
11140 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
11141 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
11142 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
11143 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
11144 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
11145 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
11146 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
11147 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
11148 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
11149 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
11150 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
11151 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
11152 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
11153 definitions outside of __OPTIMIZE__ guarded section.
11154
11155 PR target/79932
11156 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
11157 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
11158 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
11159 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
11160 guarded section.
11161
11162 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11163
11164 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
11165 ("vfenez<mode>"): Add missing constraints.
11166
11167 2017-03-08 Martin Sebor <msebor@redhat.com>
11168
11169 PR target/79928
11170 * config/nds32/nds32.c (nds32_option_override):
11171 Fix misspelled diagnostic.
11172
11173 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11174
11175 PR c/79940
11176 * gimplify.c (gimplify_omp_for): Replace index var in outer
11177 taskloop statement with an artificial variable and add
11178 OMP_CLAUSE_PRIVATE clause for it.
11179
11180 2017-03-08 Richard Biener <rguenther@suse.de>
11181
11182 PR tree-optimization/79955
11183 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
11184 for accesses that are completely outside of the variable.
11185
11186 2017-03-08 Andrew Haley <aph@redhat.com>
11187
11188 PR tree-optimization/79943
11189 * tree-ssa-loop-split.c (compute_new_first_bound): When
11190 calculating the new upper bound, (END-BEG) should be added, not
11191 subtracted.
11192
11193 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11194
11195 * config/avr/avr.md (setmemhi): Make sure match_dup
11196 operand number comes before match_scratch.
11197
11198 2017-03-08 Richard Biener <rguenther@suse.de>
11199
11200 PR tree-optimization/79920
11201 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
11202 with ncopies == 1 to ...
11203 (vect_transform_slp_perm_load): ... here. Properly compute
11204 all element loads by iterating VF times over the group. Do
11205 not handle ncopies (computed in a broken way) in
11206 vect_create_mask_and_perm.
11207
11208 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11209
11210 PR sanitizer/79904
11211 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
11212 is a uniform vector, use uniform_vector_p return value instead of
11213 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
11214
11215 2017-03-07 Marek Polacek <polacek@redhat.com>
11216
11217 PR middle-end/79809
11218 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
11219 (alloca_call_type): Likewise.
11220
11221 2017-03-07 Martin Liska <mliska@suse.cz>
11222
11223 * gcov.c (process_args): Put comment to correct location.
11224
11225 2017-03-07 Martin Liska <mliska@suse.cz>
11226
11227 PR middle-end/68270
11228 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
11229 Use array_at_struct_end_p instead of DECL_CHAIN (field).
11230 (chkp_narrow_bounds_for_field): Likewise.
11231 (chkp_parse_array_and_component_ref): Pass one more argument to
11232 call.
11233
11234 2017-03-07 Richard Biener <rguenther@suse.de>
11235
11236 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
11237 preheaders.
11238
11239 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
11240
11241 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
11242 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
11243
11244 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11245
11246 PR c/79855
11247 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
11248 to end of description.
11249 (PARAM_MAX_STORES_TO_MERGE): Likewise.
11250
11251 2017-03-07 Jakub Jelinek <jakub@redhat.com>
11252
11253 PR rtl-optimization/79901
11254 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
11255 ...
11256 (*avx512f_<code><mode>3<mask_name>): ... this.
11257 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
11258 iterator instead of VI8_AVX2_AVX512BW.
11259
11260 PR rtl-optimization/79901
11261 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
11262 min/max expander, expand it using expand_vec_cond_expr.
11263
11264 PR sanitizer/79897
11265 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
11266 temporary.
11267
11268 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11269
11270 PR c++/79821
11271 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
11272 to void * for PCH reasons.
11273 * dwarf2out.c (output_loc_operands, output_die): Cast
11274 v.val_vec.array to unsigned char *.
11275
11276 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
11277
11278 PR target/77850
11279 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
11280 vector types.
11281
11282 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
11283
11284 PR rtl-optimization/79571
11285 * lra-constraints.c (process_alt_operands): Calculate static
11286 reject and subtract it from overall when only addresses will be
11287 reloaded.
11288
11289 2017-03-06 Julia Koval <julia.koval@intel.com>
11290
11291 PR target/79793
11292 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
11293 incoming stack boundary to 128 for 64-bit targets.
11294
11295 2017-03-06 Richard Biener <rguenther@suse.de>
11296
11297 PR tree-optimization/79894
11298 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
11299 to NULL after folding it.
11300
11301 2017-03-06 Richard Biener <rguenther@suse.de>
11302
11303 PR tree-optimization/79824
11304 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
11305 check disabling peeling for gaps.
11306
11307 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
11308
11309 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
11310 attributes): Document gettimeofday.
11311
11312 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11313
11314 * config/s390/s390.c (s390_option_override_internal): Set
11315 PARAM_MIN_VECT_LOOP_BOUND
11316
11317 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11318
11319 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
11320 * config/s390/s390.md: Likewise.
11321
11322 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11323
11324 PR target/79812
11325 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
11326 (<avx2_avx512>_perm<mode>): Rename to ...
11327 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
11328 of VI8F_256_512.
11329 (<avx512>_perm<mode>_mask): Rename to ...
11330 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
11331 of VI8F_256_512.
11332 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
11333 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
11334 instead of VI8F_256_512.
11335 (avx512f_perm<mode>): New define_expand.
11336 (avx512f_perm<mode>_mask): Likewise.
11337 (avx512f_perm<mode>_1<mask_name>): New define_insn.
11338 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
11339
11340 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11341
11342 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
11343 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
11344 if_then_else.
11345 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
11346
11347 2017-03-06 Martin Liska <mliska@suse.cz>
11348
11349 PR sanitize/79783
11350 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
11351 when having a SSA NAME w/o VAR_DECL assigned to it.
11352
11353 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11354
11355 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
11356 msa_dpsub_<su>_d): Fix MODE for vec_select.
11357
11358 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11359
11360 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
11361 argument.
11362 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
11363
11364 2017-03-06 Richard Biener <rguenther@suse.de>
11365
11366 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
11367 * plugin.c (register_plugin_info): Likewise.
11368 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
11369
11370 2017-03-05 Jakub Jelinek <jakub@redhat.com>
11371
11372 * config/i386/sse.md (sse_storehps, sse_storelps,
11373 avx_<castmode><avxsizesuffix>_<castmode>,
11374 avx512f_<castmode><avxsizesuffix>_<castmode>,
11375 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
11376 in condition that at least one operand is not a MEM.
11377
11378 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11379
11380 PR middle-end/79805
11381 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
11382 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
11383 ECF_NOTHROW.
11384 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
11385 gimple_call_nothrow_p flag based on whether original builtin can throw.
11386 If it can, emit following stmts on the fallthrough edge.
11387 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
11388 don't create new bb if inserting just debug stmts on the edge, try to
11389 insert them on the fallthru bb or just reset debug stmts.
11390
11391 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
11392
11393 PR target/43763
11394 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
11395 restore recog_data (including the operand rtxes inside it) around
11396 the call to get_insn_template.
11397
11398 2017-03-03 Martin Sebor <msebor@redhat.com>
11399
11400 PR tree-optimization/79699
11401 * context.c (context::~context): Free MPFR caches to avoid
11402 a memory leak on program exit.
11403
11404 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11405
11406 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
11407 Use wide_int::ulow () instead of .elt (0).
11408
11409 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11410
11411 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
11412 (*pushxf): Limit oF constraint to 32bit targets and add oC
11413 constraint for 64bit targets.
11414 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
11415 (*pushdf): Change rmF constraint to rmC.
11416
11417 2017-03-03 Martin Liska <mliska@suse.cz>
11418
11419 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
11420 Remove unused variable.
11421
11422 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11423
11424 PR target/79807
11425 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
11426 is a memory operand, increase num_memory.
11427 (ix86_expand_args_builtin): Likewise.
11428
11429 2017-03-03 Jan Hubicka <jh@suse.cz>
11430
11431 PR lto/79760
11432 * ipa-devirt.c (maybe_record_node): Properly handle
11433 __cxa_pure_virtual visibility.
11434
11435 2017-03-03 Martin Liska <mliska@suse.cz>
11436
11437 PR tree-optimization/79803
11438 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
11439 assert.
11440 (pass_loop_prefetch::execute): Disabled optimization if an
11441 assumption about L1 cache size is not met.
11442
11443 2017-03-03 Martin Liska <mliska@suse.cz>
11444
11445 PR rtl-optimization/79574
11446 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
11447 (hash_scan_set): Likewise.
11448 (dump_hash_table): Likewise.
11449 (hoist_code): Likewise.
11450
11451 2017-03-03 Richard Biener <rguenther@suse.de>
11452
11453 * fixed-value.c (fixed_from_string): Restore use of elt (1)
11454 in place of uhigh ().
11455 (fixed_convert_from_real): Likewise.
11456
11457 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11458
11459 PR target/79514
11460 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
11461
11462 2017-03-03 Richard Biener <rguenther@suse.de>
11463
11464 PR middle-end/79818
11465 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
11466 TYPE_OVERFLOW_UNDEFINED check.
11467
11468 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11469
11470 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
11471 numbers.
11472 (vector_ae_<mode>_p): Likewise.
11473 (vector_nez_<mode>_p): Likewise.
11474 (vector_ne_v2di_p): Likewise.
11475 (vector_ae_v2di_p): Likewise.
11476 (vector_ne_<mode>_p): Likewise.
11477 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
11478 numbers.
11479 (vsx_tsqrt<mode>2_fe): Likewise.
11480
11481 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
11482
11483 PR target/79514
11484 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
11485
11486 2017-03-02 Jakub Jelinek <jakub@redhat.com>
11487
11488 PR rtl-optimization/79780
11489 * cprop.c (one_cprop_pass): When second and further conditional trap
11490 in a single basic block is turned into an unconditional trap, turn it
11491 into a deleted note to avoid RTL verification failures.
11492
11493 2017-03-02 Richard Biener <rguenther@suse.de>
11494
11495 * fold-const.c (const_binop): Use ulow () instead of elt (0).
11496
11497 2017-03-02 Richard Biener <rguenther@suse.de>
11498
11499 PR tree-optimization/79345
11500 PR c++/42000
11501 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
11502 param and abort the walk, returning -1 if it is hit.
11503 (walk_aliased_vdefs): Take a limit param and pass it on.
11504 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
11505 defaulting to 0 and return a signed int.
11506 * tree-ssa-uninit.c (struct check_defs_data): New struct.
11507 (check_defs): New helper.
11508 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
11509 about uninitialized memory.
11510 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
11511 bogus uninitialized warning.
11512 (fixed_convert_from_real): Likewise.
11513
11514 2017-03-02 Bin Cheng <bin.cheng@arm.com>
11515
11516 PR tree-optimization/66768
11517 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
11518 iv_use if base object can't be determined.
11519
11520 2017-03-02 Jakub Jelinek <jakub@redhat.com>
11521
11522 PR tree-optimization/79345
11523 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
11524 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
11525 (get_pattern_stats): Initialize it.
11526 * genemit.c (gen_expand): Verify match_scratch numbers come after
11527 match_operand/match_dup numbers.
11528 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
11529 match_scratch numbers.
11530 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
11531 Likewise.
11532 * config/s390/s390.md (trunctdsd2): Likewise.
11533
11534 2017-03-02 Richard Biener <rguenther@suse.de>
11535
11536 * wide-int.h (wide_int_storage::operator=): Implement in terms
11537 of wi::copy.
11538
11539 2017-03-02 Richard Biener <rguenther@suse.de>
11540
11541 PR tree-optimization/79777
11542 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
11543 the to insert expression to sth existing.
11544
11545 2017-03-01 Martin Sebor <msebor@redhat.com>
11546
11547 PR middle-end/79692
11548 * gimple-ssa-sprintf.c
11549 (directive::known_width_and_precision): New function.
11550 (format_integer): Use it.
11551 (get_mpfr_format_length): Consider the full range of precision
11552 when computing %g output with the # flag. Set the likely byte
11553 count to 3 rather than 1 when precision is indeterminate.
11554 (format_floating): Correct the lower bound of precision.
11555
11556 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11557
11558 * doc/invoke.texi: Document default code model for 64-bit Linux.
11559
11560 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11561
11562 PR target/79752
11563 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
11564 udiv rather than div since input pattern is unsigned.
11565
11566 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
11567
11568 * config/i386/i386.c (print_reg): Warn for values of
11569 unsupported size in integer register.
11570
11571 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
11572
11573 PR target/79439
11574 * config/rs6000/predicates.md (current_file_function_operand): Do
11575 not allow self calls to be local if the function is replaceable.
11576
11577 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11578
11579 PR target/79395
11580 * config/rs6000/altivec.h (vec_ctz and others): Change the
11581 preprocessor macro that controls conditional compilation from
11582 _ARCH_PWR9 to __POWER9_VECTOR__.
11583 (vec_all_ne): Change parameterization of __altivec_scalar_pred
11584 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
11585 control (instead of _ARCH_PWR9 control) so that template
11586 definition uses power9-specific function.
11587 (vec_any_eq): Likewise.
11588 (vec_all_ne): Change macro definition to use a power9-specific
11589 expansion under #ifdef __POWER9_VECTOR__ control (instead of
11590 _ARCH_PWR9 control).
11591 (vec_any_eq) Likewise.
11592 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
11593 expansion for CMPNEF to remove support for xvcmpnesp instruction.
11594 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
11595 support for xvcmpnedp instruction.
11596 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
11597 macro expansion so that Power9 implementation of vec_all_ne does
11598 not use the AltiVec predicate framework.
11599 (VCMPNEH_P): Likewise.
11600 (VCMPNEW_P): Likewise.
11601 (VCMPNED_P): Likewise.
11602 (VCMPNEFP_P): Likewise.
11603 (VCMPNEDP_P): Likewise.
11604 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
11605 implementation of vec_any_eq to not use AltiVec predicate
11606 framework.
11607 (VCMPAEH_P): Likewise.
11608 (VCMPAEW_P): Likewise.
11609 (VCMPAED_P): Likewise.
11610 (VCMPAEFP_P): Likewise.
11611 (VCMPAEDP_P): Likewise.
11612 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
11613 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
11614 not use the AltiVec predicate framework.
11615 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
11616 of vec_any_eq to not use AltiVec predicate framework.
11617 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
11618 support for predefined __POWER9_VECTOR__ macro to indicate that
11619 Power9 instruction selection is enabled.
11620 (altivec_overloaded_builtins): Remove extraneous
11621 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
11622 function argument types RS6000_BTI_bool_V16QI and
11623 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
11624 entry for overloaded function argument types RS6000_BTI_bool_V4SI
11625 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
11626 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
11627 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
11628 Power9 for implementations of vec_cmpne. Change the signature for
11629 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
11630 (representing vec_all_ne) to remove the previously described first
11631 argument of type RS6000_BTI_INTSI, as this was an artifact of
11632 reliance on the AltiVec predicate framework, which is no longer
11633 used in the implementation of these functions. Add
11634 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
11635 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
11636 since, unlike the AltiVec predicate framework implementation, we
11637 do not share function descriptors between vec_alle and vec_anyeq.
11638 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
11639 set of modes that receive special treatment even when
11640 TARGET_P9_VECTOR is true. The special treatment emits code that
11641 does not depend on Power9 instructions.
11642 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
11643 define_expand to not rely on AltiVec predicate framework.
11644 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
11645 function.
11646 (vector_ne_v2di_p): Change this define_expand to not rely on
11647 AltiVec predicate framework.
11648 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
11649 function.
11650 (vector_ne_<mode>_p): Change this define_expand to not rely on
11651 AltiVec predicate framework.
11652 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
11653 function.
11654 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
11655 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
11656 define_insn pattern.
11657 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
11658 define_insn pattern because the xvcmpne<VSs>. instruction is not
11659 supported.
11660 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
11661 instruction is not supported.
11662
11663 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11664
11665 * config/nvptx/nvptx.c: Include intl.h.
11666
11667 2017-03-01 Martin Jambor <mjambor@suse.cz>
11668
11669 PR lto/78140
11670 * ipa-prop.h (ipa_bits): Removed field known.
11671 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
11672 to pointers. Adjusted their comments to warn about their sharing.
11673 (ipcp_transformation_summary): Change bits to a vector of pointers.
11674 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
11675 (ipa_get_ipa_bits_for_value): Declare.
11676 * tree-vrp.h (value_range): Mark as GTY((for_user)).
11677 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
11678 (ipa_bits_hash_table): Likewise.
11679 (ipa_vr_ggc_hash_traits): Likewise.
11680 (ipa_vr_hash_table): Likewise.
11681 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
11682 being pointers and vr_known being removed.
11683 (ipa_set_jf_unknown): Likewise.
11684 (ipa_get_ipa_bits_for_value): New function.
11685 (ipa_set_jfunc_bits): Likewise.
11686 (ipa_get_value_range): New overloaded functions.
11687 (ipa_set_jfunc_vr): Likewise.
11688 (ipa_compute_jump_functions_for_edge): Use the above functions to
11689 construct bits and vr parts of jump functions.
11690 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
11691 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
11692 exist.
11693 (ipcp_grow_transformations_if_necessary): Also allocate
11694 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
11695 exist.
11696 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
11697 them. Fix too long lines.
11698 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
11699 vr_known being removed.
11700 (ipa_read_jump_function): Use new setter functions to construct bits
11701 and vr parts of jump functions or set them to NULL.
11702 (write_ipcp_transformation_info): Adjust for bits being pointers.
11703 (read_ipcp_transformation_info): Likewise.
11704 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
11705 space.
11706 Include gt-ipa-prop.h.
11707 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
11708 being pointers.
11709 (ipcp_store_bits_results): Likewise.
11710 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
11711 Do not write to existing jump functions but use a temporary instead.
11712
11713 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11714
11715 PR c++/79681
11716 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
11717 attempt to use its first operand as BIT_FIELD_REF base.
11718
11719 2017-03-01 Richard Biener <rguenther@suse.de>
11720
11721 PR middle-end/79721
11722 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
11723 interpolating formula in wrapping arithmetic.
11724 (chrec_apply): Convert chrec_evaluate return value to wanted type.
11725
11726 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11727
11728 PR tree-optimization/79734
11729 * tree-vect-generic.c (expand_vector_condition): Optimize
11730 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
11731 Handle VEC_COND_EXPR where comparison has different inner width from
11732 type's inner width.
11733
11734 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
11735
11736 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
11737 markup, and similar issues. Remove @opindex entries for things
11738 that aren't options. Add missing -mmpy-option entries.
11739
11740 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11741
11742 PR tree-optimization/79737
11743 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
11744 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
11745 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
11746 instead of byte_size. Formatting fix.
11747 (shift_bytes_in_array_right): Formatting fix.
11748
11749 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
11750
11751 PR target/79749
11752 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
11753 condition on optimize for the leaf function test.
11754
11755 2017-02-28 Martin Liska <mliska@suse.cz>
11756
11757 PR lto/79625
11758 * read-rtl-function.c (function_reader::handle_unknown_directive):
11759 Bail out when one uses -flto.
11760
11761 2017-02-28 Martin Liska <mliska@suse.cz>
11762
11763 * common.opt: Replace space with tabular for options of <number>
11764 type.
11765 * config/i386/i386.opt: Show <number> value for
11766 -mlarge-data-threshold.
11767 * opts.c (print_filtered_help): Do not display number in hexadecimal
11768 format.
11769
11770 2017-02-28 Martin Liska <mliska@suse.cz>
11771
11772 * common.opt: Fix --help=option -Q for options which are of
11773 an enum type.
11774
11775 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
11776
11777 * config/i386/i386.c (print_reg): Error out for values
11778 of 8-bit size in invalid integer register.
11779
11780 2017-02-28 Martin Sebor <msebor@redhat.com>
11781
11782 PR tree-optimization/79691
11783 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
11784
11785 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11786
11787 PR target/79729
11788 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
11789 gcc_unreachable with output_operand_lossage.
11790
11791 2017-02-28 Richard Biener <rguenther@suse.de>
11792
11793 PR tree-optimization/79740
11794 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
11795 inserts.
11796 (visit_nary_op): Insert the nary into the hashtable if we
11797 pattern-matched sth.
11798 * tree-ssa-pre.c (eliminate_insert): Robustify.
11799
11800 2017-02-28 Richard Biener <rguenther@suse.de>
11801
11802 PR middle-end/79731
11803 * fold-const.c (decode_field_reference): Reject out-of-bound
11804 accesses.
11805
11806 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11807
11808 * config/i386/i386.c: Include intl.h.
11809 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
11810 instead of just cond ? "..." : "...".
11811 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
11812 * coverage.c (read_counts_file): Likewise.
11813 * omp-offload.c: Include intl.h.
11814 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
11815 of just cond ? "..." : "...".
11816 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
11817 of just cond ? "..." : "...".
11818
11819 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
11820
11821 PR target/79742
11822 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
11823 entry, if present.
11824 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
11825 'tune for' CPU name.
11826 * config/arm/arm-cpu-data.h: Regenerated.
11827
11828 2017-02-28 Richard Biener <rguenther@suse.de>
11829
11830 PR tree-optimization/79732
11831 * tree-inline.c (expand_call_inline): Do not shadow var.
11832
11833 2017-02-28 Richard Biener <rguenther@suse.de>
11834
11835 PR tree-optimization/79723
11836 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
11837 address-space properly.
11838
11839 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
11840
11841 * doc/optinfo.texi (Optimization groups): Fix option used for
11842 OPTGROUP_ALL.
11843 * doc/invoke.texi (-fopt-info): Document "omp".
11844 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
11845 (OPTGROUP_ALL): Add OPTGROUP_OMP.
11846 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
11847 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
11848 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
11849
11850 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
11851 all users.
11852 * dumpfile.c (optgroup_options): Instead of "openmp", associate
11853 OPTGROUP_OMP with "omp".
11854
11855 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
11856
11857 PR target/79544
11858 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
11859 for arithmetic shift of unsigned V2DI.
11860
11861 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
11862
11863 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
11864 arc/linux.h headers.
11865 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
11866 (LINK_SPEC): Likewise.
11867 (ARC_TLS_EXTRA_START_SPEC): Likewise.
11868 (EXTRA_SPECS): Likewise.
11869 (STARTFILE_SPEC): Likewise.
11870 (ENDFILE_SPEC): Likewise.
11871 (LIB_SPEC): Likewise.
11872 (TARGET_SDATA_DEFAULT): Likewise.
11873 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
11874 (MULTILIB_DEFAULTS): Likewise.
11875 (DWARF2_UNWIND_INFO): Likewise.
11876 * config/arc/big.h: New file.
11877 * config/arc/elf.h: Likewise.
11878 * config/arc/linux.h: Likewise.
11879 * config/arc/t-uClibc: Remove.
11880
11881 2017-02-27 Bin Cheng <bin.cheng@arm.com>
11882
11883 PR tree-optimization/77536
11884 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
11885 (tree_transform_and_unroll_loop): Use above function to compute the
11886 estimated niter of unrolled loop and use it when scaling profile.
11887 Also use count info rather than frequency if it's non-zero.
11888 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
11889 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
11890 (vect_transform_loop): Call above function.
11891
11892 2017-02-27 Richard Biener <rguenther@suse.de>
11893
11894 PR tree-optimization/45397
11895 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
11896 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
11897 (visit_nary_op): Add pattern matching for CSEing sign-changed
11898 or truncated operations with wider ones.
11899
11900 2017-02-27 Richard Biener <rguenther@suse.de>
11901
11902 PR tree-optimization/79690
11903 * tree-vect-stmts.c (vectorizable_store): Use vector type
11904 built from the DR with address-space.
11905
11906 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
11907
11908 * doc/invoke.texi (Optimize Options): Refine the description
11909 of asan-use-after-return.
11910
11911 2017-02-25 Alan Modra <amodra@gmail.com>
11912
11913 PR rtl-optimization/79584
11914 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
11915 base, not ad->base_term, the reg within base. Remove assertion
11916 that ad->base == ad->base_term. Replace gen_int_mode using
11917 bogus mode with const0_rtx.
11918
11919 2017-02-25 Jakub Jelinek <jakub@redhat.com>
11920
11921 PR middle-end/79396
11922 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
11923 FMA_EXPR like tcc_binary or tcc_unary.
11924
11925 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
11926
11927 PR debug/77589
11928 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
11929 bitfield.
11930 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
11931 (output_loc_operands): Handle DW_OP_call_ref and
11932 DW_OP_GNU_variable_value.
11933 (struct variable_value_struct): New type.
11934 (struct variable_value_hasher): Likewise.
11935 (variable_value_hash): New variable.
11936 (string_types): Remove.
11937 (copy_loc_descr): New function.
11938 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
11939 (prepend_loc_descr_to_each): New function.
11940 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
11941 instead of add_loc_descr_to_each if the first argument is single
11942 location list and the second has multiple.
11943 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
11944 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
11945 when looking for variable value which doesn't have other location info.
11946 (loc_list_from_tree): Formatting fix.
11947 (gen_array_type_die): Simplify DW_AT_string_length handling.
11948 (adjust_string_types): Remove.
11949 (gen_subprogram_die): Don't call adjust_string_types nor test/set
11950 string_types. Call resolve_variable_values.
11951 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
11952 (resolve_addr_in_expr): Likewise. Add A argument.
11953 (copy_deref_exprloc): Remove deref argument. Adjust for the
11954 original expression being DW_OP_GNU_variable_value with optionally
11955 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
11956 optionally after it.
11957 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
11958 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
11959 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
11960 (variable_value_hasher::hash, variable_value_hasher::equal): New
11961 methods.
11962 (resolve_variable_value_in_expr, resolve_variable_value,
11963 resolve_variable_values, note_variable_value_in_expr,
11964 note_variable_value): New functions.
11965 (dwarf2out_early_finish): Call note_variable_value on all toplevel
11966 DIEs.
11967
11968 2017-02-24 Jakub Jelinek <jakub@redhat.com>
11969
11970 PR c/79677
11971 * opts.h (handle_generated_option): Add GENERATED_P argument.
11972 * opts-common.c (handle_option): Adjust function comment.
11973 (handle_generated_option): Add GENERATED_P argument, pass it to
11974 handle_option.
11975 (control_warning_option): Pass false to handle_generated_option
11976 GENERATED_P.
11977 * opts.c (maybe_default_option): Pass true to handle_generated_option
11978 GENERATED_P.
11979 * optc-gen.awk: Likewise.
11980
11981 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11982
11983 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
11984 a REG, look at the REG it is a SUBREG of.
11985 (splitter for cmpeqsi_t): Ditto.
11986
11987 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11988
11989 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
11990 the special USEs with the pattern of the insn, not the insn itself.
11991
11992 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
11993
11994 PR target/79473
11995 * doc/invoke.texi: Document -mload-store-pairs.
11996
11997 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11998 Sandra Loosemore <sandra@codesourcery.com>
11999
12000 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
12001 argument isn't a CONST_INT.
12002 (nios2_alternate_compare_const): Assert op is a CONST_INT.
12003 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
12004 (nios2_validate_compare): Bypass alternate compare logic if *op2
12005 is not a CONST_INT.
12006 (ldstwm_operation_p): Return false if first_base is not a REG or
12007 if first_offset is not a CONST_INT.
12008
12009 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12010
12011 * config/cris/cris.md: Use correct operand in a define_peephole2.
12012
12013 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12014
12015 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
12016
12017 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
12018
12019 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
12020 this_insn if it is an INSN or JUMP_INSN.
12021 (force_offsettable): Look at base, not at addr.
12022 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
12023 on things that aren't necessarily CONST_INTs.
12024
12025 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
12026
12027 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
12028 -mfpmath=sse is the default also for x86-32 targets with SSE2
12029 instruction set when @option{-ffast-math} is enabled
12030
12031 2017-02-24 Jeff Law <law@redhat.com>
12032
12033 PR rtl-optimizatoin/79286
12034 * ira.c (update_equiv_regs): Drop may_trap_p exception to
12035 dominance test.
12036
12037 2017-02-24 Richard Biener <rguenther@suse.de>
12038
12039 PR tree-optimization/79389
12040 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
12041 debug insns.
12042
12043 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
12044
12045 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
12046 function comment to reflect reality.
12047 (loop_exits_before_overflow): Fix typo in function description.
12048
12049 2017-02-24 Richard Biener <rguenther@suse.de>
12050
12051 PR tree-optimization/79389
12052 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
12053 properly that a threading opportunity exists. Detect conditional
12054 copy/constant propagation opportunities.
12055
12056 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
12057
12058 * config/visium/visium.md (type): Add trap.
12059 (b): New mode attribute.
12060 (*btst): Rename into...
12061 (*btst<mode>): ...this and adjust.
12062 (*cbranchsi4_btst_insn): Rename into...
12063 (*cbranch<mode>4_btst_insn): ...this and adjust.
12064 (trap): New define_insn.
12065
12066 2017-02-23 Jakub Jelinek <jakub@redhat.com>
12067
12068 PR tree-optimization/79389
12069 * ifcvt.c (struct noce_if_info): Add rev_cond field.
12070 (noce_reversed_cond_code): New function.
12071 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
12072 reversed_comparison_code. Formatting fix.
12073 (noce_try_store_flag): Test rev_cond != NULL in addition to
12074 reversed_comparison_code.
12075 (noce_try_store_flag_constants): Likewise.
12076 (noce_try_store_flag_mask): Likewise.
12077 (noce_try_addcc): Use rev_cond if non-NULL instead of
12078 reversed_comparison_code.
12079 (noce_try_cmove_arith): Likewise. Formatting fixes.
12080 (noce_try_minmax, noce_try_abs): Clear rev_cond.
12081 (noce_find_if_block): Initialize rev_cond.
12082 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
12083 instead of false as last argument never attempt to reverse it
12084 afterwards.
12085
12086 2017-02-23 Bin Cheng <bin.cheng@arm.com>
12087
12088 PR tree-optimization/79663
12089 * tree-predcom.c (combine_chains): Process refs in reverse order
12090 only for ZERO length chains, and add explaining comment.
12091
12092 2017-02-23 Jeff Law <law@redhat.com>
12093
12094 PR tree-optimization/79578
12095 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
12096 in call to operand_equal_p.
12097
12098 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
12099
12100 PR target/71017
12101 * config/i386/cpuid.h: Fix another undefined behavior.
12102
12103 2017-02-23 Richard Biener <rguenther@suse.de>
12104
12105 PR tree-optimization/79683
12106 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
12107 vector types for data-refs.
12108
12109 2017-02-23 Martin Liska <mliska@suse.cz>
12110
12111 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
12112
12113 2017-02-23 Jakub Jelinek <jakub@redhat.com>
12114
12115 PR middle-end/79665
12116 * internal-fn.c (get_range_pos_neg): Moved to ...
12117 * tree.c (get_range_pos_neg): ... here. No longer static.
12118 * tree.h (get_range_pos_neg): New prototype.
12119 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
12120 are known to be in between 0 and signed maximum inclusive, try to
12121 expand both unsigned and signed divmod and use the cheaper one from
12122 those.
12123
12124 2017-02-22 Jeff Law <law@redhat.com>
12125
12126 PR tree-optimization/79578
12127 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
12128 to compare base operands.
12129
12130 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
12131
12132 PR target/79211
12133 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
12134 gpc_reg_operand instead of fpr_reg_operand.
12135
12136 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
12137
12138 * config/mips/mips.c (mips_return_in_memory): Force FP
12139 vector types to be returned in memory for o32 ABI.
12140
12141 2017-02-22 Jakub Jelinek <jakub@redhat.com>
12142
12143 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
12144 instead of DW_TAG_member for static data member declarations and don't
12145 set no_linkage_name for static inline data members.
12146 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
12147 to DW_TAG_member.
12148
12149 2017-02-22 Martin Liska <mliska@suse.cz>
12150
12151 * doc/invoke.texi: Replace inequality signs with square brackets
12152 for -Wnormalized.
12153
12154 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12155
12156 PR tree-optimization/68644
12157 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
12158
12159 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
12160
12161 PR target/78660
12162 * lra-constraints.c (simplify_operand_subreg): Handle
12163 WORD_REGISTER_OPERATIONS targets.
12164
12165 2017-02-22 Jakub Jelinek <jakub@redhat.com>
12166
12167 PR target/70465
12168 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
12169 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
12170 elimination by swapping fld*.
12171
12172 2017-02-22 Richard Biener <rguenther@suse.de>
12173
12174 PR tree-optimization/79673
12175 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
12176 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
12177 irrelevant address-space qualifiers and avoiding a
12178 ADDR_SPACE_CONVERT_EXPR from fold_convert.
12179
12180 2017-02-22 Richard Biener <rguenther@suse.de>
12181
12182 PR tree-optimization/79666
12183 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
12184 to not symbolically negate if that may introduce undefined
12185 overflow.
12186
12187 2017-02-22 Martin Liska <mliska@suse.cz>
12188
12189 PR lto/79587
12190 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
12191 * data-streamer-out.c (streamer_write_gcov_count_stream):
12192 Likewise.
12193 * value-prof.c (stream_out_histogram_value): Make assert more
12194 precise based on type of counter.
12195
12196 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
12197
12198 PR target/79593
12199 * config/i386/i386.md (standard_x87sse_constant_load splitter):
12200 Use nonimmediate_operand instead of memory_operand for operand 1.
12201 (float-extend standard_x87sse_constant_load splitter): Ditto.
12202
12203 2017-02-21 Jeff Law <law@redhat.com>
12204
12205 PR tree-optimization/79621
12206 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
12207 blocks with edges to themselves.
12208
12209 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12210
12211 PR target/79633
12212 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
12213 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
12214 Use gimple_call_builtin_p.
12215
12216 PR target/79570
12217 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
12218 on temporarily removed DEBUG_INSNs.
12219
12220 PR tree-optimization/79649
12221 * tree-loop-distribution.c (classify_partition): Give up on
12222 non-generic address space loads/stores.
12223
12224 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
12225
12226 * doc/loop.texi (Loop manipulation): Remove nonexistent
12227 tree_ssa_loop_version from the documentation.
12228 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
12229
12230 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12231
12232 PR target/79494
12233 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
12234 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
12235 * config/rs6000/rs6000.c: Include except.h.
12236 (rs6000_expand_split_stack_prologue): Call
12237 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
12238
12239 2017-02-21 Martin Jambor <mjambor@suse.cz>
12240
12241 PR lto/79579
12242 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
12243 have been analyzed.
12244
12245 2017-02-21 Martin Jambor <mjambor@suse.cz>
12246
12247 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
12248 for backward compatibility only.
12249 * doc/invoke.texi (Option Summary): Remove all references to
12250 -fipa-cp-alignment.
12251
12252 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
12253
12254 PR target/78660
12255 Revert:
12256 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12257
12258 * lra-constraints.c (curr_insn_transform): Handle
12259 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12260
12261 2017-02-21 Martin Liska <mliska@suse.cz>
12262
12263 * config/i386/i386.opt: Replace -masm-dialect with -masm.
12264
12265 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
12266
12267 PR translation/79638
12268 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
12269
12270 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
12271
12272 PR ada/67205
12273 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
12274 (arm_function_ok_for_sibcall): Return false for an indirect call by
12275 descriptor if all the argument registers are used.
12276 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
12277 alignment of the function.
12278
12279 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12280
12281 PR tree-optimization/61441
12282 * simplify-rtx.c (simplify_const_unary_operation): For
12283 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
12284 the sNaN unmodified.
12285
12286 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12287
12288 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
12289 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
12290 instead of SYSTEM_HEADER_DIR.
12291
12292 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
12293 Martin Liška <mliska@suse.cz>
12294
12295 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
12296 Fix typos and grammar, use active voice, and clarify.
12297
12298 2017-02-20 Marek Polacek <polacek@redhat.com>
12299
12300 PR middle-end/79537
12301 * gimplify.c (gimplify_expr): Handle unused *&&L;.
12302
12303 PR sanitizer/79558
12304 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
12305
12306 2017-02-20 Jakub Jelinek <jakub@redhat.com>
12307
12308 PR target/79568
12309 * config/i386/i386.c (ix86_expand_builtin): Handle
12310 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
12311 ix86_builtins_isa[fcode].isa as a requirement of those
12312 flags and any other flag in the bitmask.
12313 (ix86_init_mmx_sse_builtins): Use 0 instead of
12314 ~OPTION_MASK_ISA_64BIT as mask.
12315 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
12316 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
12317 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
12318 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
12319
12320 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12321
12322 PR target/78012
12323 * lra-constraints.c (split_reg): Check requested split mode
12324 is supported by the register.
12325
12326 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12327
12328 * lra-constraints.c (simplify_operand_subreg): Remove early
12329 return false.
12330
12331 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12332
12333 PR target/78660
12334 * lra-constraints.c (curr_insn_transform): Tighten condition
12335 for converting SUBREG reloads from OP_OUT to OP_INOUT.
12336
12337 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12338
12339 PR target/78660
12340 * lra-constraints.c (curr_insn_transform): Handle
12341 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12342
12343 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
12344
12345 Revert:
12346 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12347
12348 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12349
12350 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
12351
12352 PR c++/69523
12353 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
12354 description.
12355
12356 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12357
12358 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
12359 for FMA_EXPR.
12360
12361 2017-02-18 Jakub Jelinek <jakub@redhat.com>
12362
12363 * final.c (last_columnnum, override_columnnum): New variables.
12364 (final_start_function): Set last_columnnum, pass it to begin_prologue
12365 hook and pass 0 to dwarf2out_begin_prologue.
12366 (final_scan_insn): Update override_columnnum. Pass last_columnnum
12367 to source_line debug hook.
12368 (notice_source_line): Compute last_columnnum and for debug_column_info
12369 return true on column changes.
12370 * debug.h (struct gcc_debug_hooks): Add column argument to
12371 source_line and begin_prologue hooks.
12372 (debug_nothing_int_charstar_int_bool): Remove prototype.
12373 (debug_nothing_int_int_charstar,
12374 debug_nothing_int_int_charstar_int_bool): New prototypes.
12375 (dwarf2out_begin_prologue): Add column argument.
12376 * debug.c (do_nothing_debug_hooks): Adjust source_line and
12377 begin_prologue hooks.
12378 (debug_nothing_int_charstar_int_bool): Remove.
12379 (debug_nothing_int_int_charstar,
12380 debug_nothing_int_int_charstar_int_bool): New functions.
12381 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
12382 through to dwarf2out_source_line.
12383 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
12384 (dwarf2out_source_line): Add column argument, emit it if requested.
12385 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
12386 arguments.
12387 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12388 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12389 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
12390 through to dwarf2out_begin_prologue.
12391 (vmsdbgout_source_line): Add column argument, pass it through to
12392 dwarf2out_source_line.
12393 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
12394 dbxout_source_line caller.
12395 (dbxout_source_line): Add column argument.
12396
12397 * common.opt (gno-column-info, gcolumn-info): New options.
12398 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
12399 (check_die): Also test for multiple DW_AT_decl_column attributes.
12400 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
12401 DW_AT_decl_column if requested.
12402 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
12403 if requested.
12404 (gen_variable_die): Likewise.
12405 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
12406 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
12407
12408 PR target/79569
12409 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
12410 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
12411 (ix86_handle_option): Handle OPT_m3dnowa.
12412 * doc/invoke.texi (-m3dnowa): Document.
12413 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
12414 -m3dnowa instead of -m3dnow -march=athlon.
12415
12416 PR target/79559
12417 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
12418 instead of gcc_assert for K, r and R code checks. Formatting fixes.
12419
12420 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12421
12422 PR target/79261
12423 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
12424 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
12425 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
12426 generator for vsx_xxpermdi_<mode>_be.
12427 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
12428 force big-endian semantics.
12429 (vsx_xxpermdi_<mode>_be): New define_expand with same
12430 implementation as previous version of vsx_xxpermdi_<mode>.
12431
12432 2017-02-17 Jakub Jelinek <jakub@redhat.com>
12433
12434 PR tree-optimization/79327
12435 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
12436 variable, its initialization and use.
12437
12438 2017-02-17 Julia Koval <julia.koval@intel.com>
12439
12440 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
12441 (OPTION_MASK_ISA_PKU_UNSET): New.
12442 (ix86_handle_option): Handle -mrdpid.
12443 * config/i386/cpuid.h (bit_RDPID): New.
12444 * config/i386/driver-i386.c (host_detect_local_cpu):
12445 Detect RDPID feature.
12446 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
12447 * config/i386/i386-c.c (ix86_target_macros_internal):
12448 Handle RDPID flag.
12449 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
12450 (ix86_valid_target_attribute_inner_p): Add "rdpid".
12451 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
12452 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
12453 * config/i386/i386.md (define_insn "rdpid"): New.
12454 * config/i386/i386.opt Add -mrdpid.
12455 * config/i386/immintrin.h (_rdpid_u32): New.
12456
12457 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
12458
12459 PR rtl-optimization/79541
12460 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
12461 instead of transforming it into USE.
12462
12463 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
12464
12465 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
12466 If HONOR_SNANS (SFmode) force the input to a register.
12467 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
12468 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
12469 an frsp or similar insn.
12470
12471 2017-02-17 Martin Liska <mliska@suse.cz>
12472
12473 PR rtl-optimization/79577
12474 * params.def (selsched-max-sched-times): Increase minimum to 1.
12475
12476 2017-02-17 Martin Liska <mliska@suse.cz>
12477
12478 PR rtl-optimization/79574
12479 * gcse.c (want_to_gcse_p): Prevent integer overflow.
12480
12481 2017-02-17 Martin Liska <mliska@suse.cz>
12482
12483 PR tree-optimization/79529
12484 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
12485 ssa_defined_default_def_p to handle cases which are implicitly
12486 defined.
12487 * tree-ssa.c (ssa_defined_default_def_p): New function.
12488 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
12489 which are implicitly defined.
12490 * tree-ssa.h (ssa_defined_default_def_p): Declare.
12491
12492 2017-02-17 Richard Biener <rguenther@suse.de>
12493
12494 PR middle-end/79576
12495 * params.def (max-ssa-name-query-depth): Limit to 10.
12496
12497 2017-02-17 Richard Biener <rguenther@suse.de>
12498
12499 PR tree-optimization/79552
12500 * tree-ssa-structalias.c (visit_loadstore): Properly verify
12501 default defs.
12502
12503 2017-02-17 Richard Biener <rguenther@suse.de>
12504
12505 PR bootstrap/79567
12506 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
12507
12508 2017-02-17 Marek Polacek <polacek@redhat.com>
12509
12510 PR middle-end/79536
12511 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
12512 (fold_negate_expr): New wrapper.
12513
12514 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
12515
12516 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
12517 Correct terminology and de-emphasize pre-standard behavior.
12518
12519 2017-02-16 Alan Modra <amodra@gmail.com>
12520
12521 PR rtl-optimization/79286
12522 * ira.c (def_dominates_uses): New function.
12523 (update_equiv_regs): Don't create an equivalence for insns that
12524 may trap where the register def does not dominate the use.
12525
12526 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
12527
12528 PR rtl-optimization/78127
12529 * lra.c (lra): Call lra_eliminate before finish the loop after
12530 lra_constraint.
12531
12532 2017-02-16 Richard Biener <rguenther@suse.de>
12533
12534 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
12535 isl/isl_val.h.
12536 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
12537 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
12538 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
12539 (isl_val_int_from_wi): New function.
12540 (extract_affine_gmp): Rename to ...
12541 (extract_affine_wi): ... this, take a widest_int.
12542 (extract_affine_int): Just wrap extract_affine_wi.
12543 (add_param_constraints): Use isl_val_int_from_wi.
12544 (add_loop_constraints): Likewise, and extract_affine_wi.
12545
12546 2017-02-15 Jeff Law <law@redhat.com>
12547
12548 PR middle-end/79521
12549 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
12550 ira_init_register_move_cost_if_necessary.
12551
12552 2017-02-15 Martin Sebor <msebor@redhat.com>
12553
12554 PR middle-end/32003
12555 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
12556 removed in a prior commit.
12557
12558 2017-02-15 Bin Cheng <bin.cheng@arm.com>
12559
12560 PR tree-optimization/79347
12561 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
12562 counters during peeling.
12563
12564 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
12565
12566 * Makefile.in (site.exp): Remove "set ISLVER".
12567
12568 2017-02-15 Jakub Jelinek <jakub@redhat.com>
12569
12570 PR target/79487
12571 * real.c (real_from_integer): Call real_convert even for decimal.
12572
12573 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12574
12575 PR target/79421
12576 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
12577
12578 2017-02-14 Andrew Pinski <apinski@cavium.com>
12579
12580 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
12581 cores and change the partno/implementer to be correct.
12582 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
12583 the 'B" as the implementer.
12584 * config/aarch64/aarch64-tune.md: Regenerate.
12585
12586 2017-02-14 Carl Love <cel@us.ibm.com>
12587
12588 * config/rs6000/rs6000.c: Add case statement entry to make the
12589 xvcvuxdsp built-in argument unsigned.
12590 * config/rs6000/vsx.md: Fix the source and return operand types so they
12591 match the instruction definitions from the ISA document. Fix typo
12592 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
12593 statement.
12594
12595 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
12596
12597 PR target/79282
12598 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
12599 member early_clobber_alts.
12600 * lra-lives.c (reg_early_clobber_p): New.
12601 (process_bb_lives): Use it.
12602 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
12603 (debug_operand_data): Initialize early_clobber_alts.
12604 (setup_operand_alternative): Set up early_clobber_alts.
12605 (collect_non_operand_hard_regs): Ditto. Pass early clobber
12606 alternatives to new_insn_reg.
12607 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
12608 it.
12609 (lra_update_insn_regno_info): Pass the new arg.
12610
12611 2017-02-14 Jakub Jelinek <jakub@redhat.com>
12612
12613 PR middle-end/79505
12614 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
12615 (new_oacc_loop_raw): Don't clear already cleared fields.
12616
12617 PR target/79481
12618 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
12619 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
12620 _mm512_prefetch_i64gather_ps): New inline functions and macros.
12621
12622 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
12623
12624 PR target/79495
12625 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
12626
12627 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
12628
12629 PR target/79498
12630 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
12631 the extra instruction to the right place to store 128-bit constant
12632 when needed.
12633
12634 2017-02-14 Martin Sebor <msebor@redhat.com>
12635
12636 PR middle-end/79448
12637 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
12638 warning for strings of unknown length.
12639
12640 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
12641
12642 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
12643
12644 2017-02-14 Jeff Law <law@redhat.com>
12645
12646 PR target/79404
12647 * ira-costs.c (scan_one_insn): Initialize register move costs
12648 for pseudos seen in USE/CLOBBER insns.
12649
12650 PR tree-optimization/79095
12651 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
12652 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
12653 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
12654 if the operands are known to be not equal, then the resulting range
12655 is ~[0,0].
12656 (intersect_ranges): If the new range is ~[0,0] and the old range is
12657 wide, then prefer ~[0,0].
12658 * tree-vrp.c (overflow_comparison_p_1): New function.
12659 (overflow_comparison_p): New function.
12660 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
12661 if NAME is used in an overflow test.
12662 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
12663 overflow check that can be expressed as an equality test, then adjust
12664 ops to be that equality test.
12665
12666 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12667
12668 * config/s390/s390-builtin-types.def: Remove flags argument.
12669 * config/s390/s390.c (s390_init_builtins): Likewise.
12670
12671 2017-02-14 Martin Liska <mliska@suse.cz>
12672
12673 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
12674 vector. Fix trailing white spaces.
12675
12676 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
12677
12678 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
12679 HFmode.
12680
12681 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12682
12683 PR rtl-optimization/68664
12684 * config/arm/arm.c (arm_sched_can_speculate_insn):
12685 New function. Declare prototype.
12686 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
12687
12688 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12689
12690 PR rtl-optimization/68664
12691 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
12692 New function.
12693 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
12694
12695 2017-02-14 Amit Pawar <amit.pawar@amd.com>
12696
12697 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
12698 max skip bytes for function, loop and jump.
12699
12700 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12701
12702 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
12703 ABS_EXPR for gimple dump.
12704
12705 2017-02-14 Jakub Jelinek <jakub@redhat.com>
12706
12707 PR target/79462
12708 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
12709
12710 PR tree-optimization/79408
12711 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
12712 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
12713 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
12714 also if rhs1 is INTEGER_CST.
12715
12716 2017-02-14 Richard Biener <rguenther@suse.de>
12717
12718 PR middle-end/79432
12719 * tree-into-ssa.c (insert_phi_nodes): When the function can
12720 have abnormal edges rewrite SSA names with broken use-def
12721 dominance out of SSA and register them for PHI insertion.
12722
12723 2017-02-13 Martin Sebor <msebor@redhat.com>
12724
12725 PR middle-end/79496
12726 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
12727 clearing info.nowrite flag when snprintf size argument is a range.
12728
12729 2017-02-13 Jakub Jelinek <jakub@redhat.com>
12730
12731 * cprop.c (cprop_jump): Add missing space in string literal.
12732 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
12733 (get_constraint_for_component_ref): Likewise.
12734 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
12735 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
12736 * lra-constraints.c (process_alt_operands): Likewise.
12737 * ipa-inline.c (inline_small_functions): Likewise.
12738 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
12739 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
12740 * trans-mem.c (diagnose_tm_1_op): Likewise.
12741 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
12742 (grid_parallel_clauses_gridifiable): Likewise.
12743
12744 * config/nvptx/mkoffload.c (process): Add space in between
12745 , and %d.
12746
12747 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
12748 "MOD4_SSE_REGS" and "ALL_REGS".
12749
12750 * spellcheck.c (test_data): Add , in between "foo" and "food".
12751
12752 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12753
12754 PR target/79449
12755 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
12756 boundary crossing check and subsequent code generation agree.
12757
12758 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12759
12760 * config/aarch64/aarch64.c (has_memory_op): Delete.
12761 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
12762 has_memory_op.
12763
12764 2017-02-13 Jakub Jelinek <jakub@redhat.com>
12765
12766 PR rtl-optimization/79388
12767 PR rtl-optimization/79450
12768 * combine.c (distribute_notes): When removing TEM_INSN for which
12769 corresponding dest has last value recorded, invalidate that last
12770 value.
12771
12772 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12773
12774 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
12775 of explicit '@'. Add missing assembly comment marker on branch costs
12776 printout.
12777
12778 2017-02-13 Nathan Sidwell <nathan@acm.org>
12779
12780 * gengtype-lex.l (<in_struct>): Add '/'.
12781
12782 2017-02-13 Martin Liska <mliska@suse.cz>
12783
12784 PR c/79471
12785 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
12786
12787 2017-02-13 Richard Biener <rguenther@suse.de>
12788
12789 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
12790 Remove.
12791 * configure: Re-generate.
12792 * config.in: Likewise.
12793 * graphite-dependences.c: Simplify as if
12794 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
12795 * graphite-isl-ast-to-gimple.c: Likewise.
12796 * graphite-optimize-isl.c: Likewise.
12797 * graphite-poly.c: Likewise.
12798 * graphite-sese-to-poly.c: Likewise.
12799 * graphite.h: Likewise.
12800 * toplev.c: Include isl/version.h and use isl_version () for
12801 printing the ISL version.
12802 * doc/install.texi: Update ISL requirement.
12803
12804 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12805
12806 * doc/standards.texi (Standards): Update reference to
12807 Objective-C 2.0.
12808
12809 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12810
12811 * doc/extend.texi (Named Address Spaces): sourceware.org now
12812 defaults to https.
12813 * doc/install.texi (Binaries): Ditto.
12814 (Specific): Ditto.
12815
12816 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
12817
12818 * doc/cpp.texi: Replace "stringify"/"stringification" with C
12819 standard terminology "stringize"/"stringizing" throughout.
12820 * doc/cppinternals.texi: Likewise.
12821
12822 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
12823
12824 * doc/extend.texi: Fix some spelling mistakes and typos.
12825 * doc/invoke.texi: Likewise.
12826
12827 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
12828
12829 PR ipa/79224
12830 * params.def (inline-min-speedup) Change from 10 to 8.
12831
12832 2017-02-11 Jakub Jelinek <jakub@redhat.com>
12833
12834 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
12835 4.5.
12836
12837 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
12838
12839 PR ipa/79224
12840 * ipa-inline-analysis.c (get_minimal_bb): New function.
12841 (record_modified): Use it.
12842 (remap_edge_change_prob): Handle also ancestor functions.
12843
12844 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
12845
12846 * doc/contrib.texi (Contributors): Remove broken link into
12847 the Mauve CVS repository.
12848
12849 2017-02-11 Jakub Jelinek <jakub@redhat.com>
12850
12851 PR middle-end/79454
12852 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
12853 result computation whenever lhs doesn't have vector mode, not
12854 just when it has BLKmode.
12855
12856 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
12857
12858 * doc/makefile.texi (profiledbootstrap): Refer to the
12859 installation instructions only in textual form.
12860
12861 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12862
12863 PR target/79295
12864 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
12865
12866 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
12867
12868 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
12869 (Specific): Update mingw-w64 reference.
12870 (Binaries): Ditto.
12871 (Specific): Remove broken link to Renesas RX processor.
12872
12873 2017-02-10 Richard Biener <rguenther@suse.de>
12874
12875 * toplev.c (process_options): Do not mention obsolete graphite
12876 options when printing sorry message about missing graphite support.
12877 Mention -floop-nest-optimize.
12878
12879 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
12880
12881 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
12882 (vtst_p16): Likewise.
12883 (vtstq_p8): Likewise.
12884 (vtstq_p16): Likewise.
12885 (vtst_p64): New.
12886 (vtstq_p64): Likewise.
12887 * config/arm/arm_neon.h (vgetq_lane_p64): New.
12888 (vset_lane_p64): New.
12889 (vsetq_lane_p64): New.
12890
12891 2017-02-10 Jakub Jelinek <jakub@redhat.com>
12892
12893 PR tree-optimization/79411
12894 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
12895 stmt operands are SSA_NAMEs used in abnormal phis.
12896 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
12897 phis.
12898
12899 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
12900
12901 PR ipa/70795
12902 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
12903 flag if needed.
12904
12905 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
12906
12907 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
12908
12909 2017-02-09 Jakub Jelinek <jakub@redhat.com>
12910
12911 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
12912 to avoid warning.
12913
12914 PR c/79413
12915 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
12916 not arbitrary TREE_CONSTANT.
12917
12918 PR c/79431
12919 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
12920 "omp declare target link" attribute unless is_global_var.
12921 * omp-offload.c (find_link_var_op): Likewise.
12922
12923 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
12924 Chung-Lin Tang <cltang@codesourcery.com>
12925
12926 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
12927 OMP_CLAUSE_TILE.
12928 (gimplify_adjust_omp_clauses): Don't delete TILE.
12929 (gimplify_omp_for): Deal with TILE.
12930 * internal-fn.c (expand_GOACC_TILE): New function.
12931 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
12932 (GOACC_TILE): New.
12933 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
12934 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
12935 element fields.
12936 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
12937 avoid DIV for outermost collapse var.
12938 (expand_oacc_for): Insert tile element loop as needed. Adjust.
12939 Remove out of date comments, fix whitespace.
12940 * omp-general.c (omp_extract_for_data): Deal with tiling.
12941 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
12942 adjust OLF_DIM_BASE value.
12943 (struct omp_for_data): Add tiling field.
12944 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
12945 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
12946 for auto loops. Remove default auto determining, moved to
12947 oacc_loop_fixed_partitions.
12948 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
12949 stmts, add e_mask field.
12950 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
12951 (oacc_thread_numbers): Use oacc_dim_call.
12952 (oacc_xform_tile): New.
12953 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
12954 (finish_oacc_loop): Adjust for ifns vector.
12955 (oacc_loop_discover_walk): Append loop abstraction sites to list,
12956 add case for GOACC_TILE fns.
12957 (oacc_loop_xform_loop): Delete.
12958 (oacc_loop_process): Iterate over call list directly, and add
12959 handling for GOACC_TILE fns.
12960 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
12961 dump partitioning.
12962 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
12963 vector partitioning to outer loops. Assign 2 partitions to loops
12964 when available. Add TILE handling.
12965 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
12966 (execite_oacc_device_lower): Process GOACC_TILE fns,
12967 ignore unknown specs.
12968 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
12969 * tree.c (omp_clause_num_ops): Adjust TILE ops.
12970 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
12971
12972 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
12973
12974 * configure.ac (ACX_BUGURL): Update.
12975 * configure: Regenerate.
12976
12977 2017-02-09 Richard Biener <rguenther@suse.de>
12978
12979 PR tree-optimization/69823
12980 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
12981 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
12982
12983 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
12984
12985 * config/arc/arc-c.def: Add __NPS400__ definition.
12986 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
12987 (TARGET_NPS400): Define.
12988
12989 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
12990
12991 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
12992 file.
12993 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
12994 pointer, arch_info.
12995 (arc_cpu_types): Fill the arch_info field with a pointer into the
12996 arc_arch_types table.
12997 (arc_selected_cpu): Declare.
12998 * config/arc/arc.c (arc_selected_cpu): Make global.
12999 (arc_selected_arch): Delete.
13000 (arc_base_cpu): Delete.
13001 (arc_override_options): Remove references to deleted variables,
13002 update access to arch information.
13003 (ARC_OPT): Update access to arch information.
13004 (ARC_OPTX): Likewise.
13005 * config/arc/arc.h (arc_base_cpu): Remove declaration.
13006 (TARGET_ARC600): Update access to arch information.
13007 (TARGET_ARC601): Likewise.
13008 (TARGET_ARC700): Likewise.
13009 (TARGET_EM): Likewise.
13010 (TARGET_HS): Likewise.
13011 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
13012 information.
13013
13014 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
13015
13016 PR target/78604
13017 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
13018 condition/operands for integer GE/LE/GEU/LEU operations.
13019
13020 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
13021
13022 PR translation/79397
13023 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
13024 of AltiVec.
13025
13026 2017-02-08 Martin Jambor <mjambor@suse.cz>
13027
13028 PR ipa/79375
13029 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
13030 whether allocation happened.
13031 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
13032 nothing was allocated.
13033
13034 2017-02-08 Jakub Jelinek <jakub@redhat.com>
13035
13036 PR tree-optimization/79408
13037 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
13038 constant, but SSA_NAME with a known integer range, use the minimum
13039 of that range instead of op1 to determine if modulo can be replaced
13040 with its first operand.
13041
13042 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13043
13044 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
13045
13046 2017-02-08 Richard Biener <rguenther@suse.de>
13047
13048 PR tree-optimization/71824
13049 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
13050 Check all loops contained in the merged region.
13051
13052 2017-02-07 Andrew Pinski <apinski@cavium.com>
13053
13054 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
13055
13056 2017-02-07 Andrew Pinski <apinski@cavium.com>
13057
13058 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
13059 (thunderxt88): Likewise.
13060 (thunderxt81): Disable LSE and change v8.1 to v8.
13061 (thunderxt83): Likewise.
13062
13063 2017-02-07 Jakub Jelinek <jakub@redhat.com>
13064 Richard Biener <rguenther@suse.de>
13065
13066 PR middle-end/79399
13067 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
13068 type from int to size_t.
13069 * ira-costs.c (struct_costs_size): Change type from int to size_t.
13070
13071 2017-02-07 Jakub Jelinek <jakub@redhat.com>
13072
13073 PR rtl-optimization/79386
13074 * cprop.c (bypass_conditional_jumps): Initialize
13075 bypass_last_basic_block already before splitting bbs after
13076 unconditional traps...
13077 (bypass_conditional_jumps): ... rather than here.
13078
13079 PR target/79299
13080 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
13081 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
13082 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
13083 fix -masm=intel patterns.
13084
13085 2017-02-07 Richard Biener <rguenther@suse.de>
13086
13087 PR tree-optimization/79256
13088 PR middle-end/79278
13089 * builtins.c (get_object_alignment_2): Use min_align_of_type
13090 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
13091 and ADJUST_FIELD_ALIGN.
13092
13093 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
13094 type parameter.
13095 * doc/tm.texi: Regenerate.
13096 * stor-layout.c (layout_decl): Adjust.
13097 (update_alignment_for_field): Likewise.
13098 (place_field): Likewise.
13099 (min_align_of_type): Likewise.
13100 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
13101 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
13102 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
13103 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
13104 * config/frv/frv.c (frv_adjust_field_align): Likewise.
13105 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
13106 * config/i386/i386.c (x86_field_alignment): Likewise.
13107 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
13108 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
13109 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
13110 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
13111 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
13112 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
13113 Likewise.
13114
13115 Revert
13116 2017-01-30 Richard Biener <rguenther@suse.de>
13117
13118 PR tree-optimization/79256
13119 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
13120 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
13121 alignment on TYPE.
13122
13123 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
13124
13125 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
13126 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
13127 builtins to SImode and emit a zero-extend, if necessary.
13128
13129 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
13130
13131 * docs/invoke.texi (RISC-V Options): Alphabetize.
13132
13133 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
13134
13135 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
13136 options.
13137
13138 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
13139
13140 * config/riscv/riscv.c: New file.
13141 * gcc/common/config/riscv/riscv-common.c: Likewise.
13142 * config.gcc: Likewise.
13143 * config/riscv/constraints.md: Likewise.
13144 * config/riscv/elf.h: Likewise.
13145 * config/riscv/generic.md: Likewise.
13146 * config/riscv/linux.h: Likewise.
13147 * config/riscv/multilib-generator: Likewise.
13148 * config/riscv/peephole.md: Likewise.
13149 * config/riscv/pic.md: Likewise.
13150 * config/riscv/predicates.md: Likewise.
13151 * config/riscv/riscv-builtins.c: Likewise.
13152 * config/riscv/riscv-c.c: Likewise.
13153 * config/riscv/riscv-ftypes.def: Likewise.
13154 * config/riscv/riscv-modes.def: Likewise.
13155 * config/riscv/riscv-opts.h: Likewise.
13156 * config/riscv/riscv-protos.h: Likewise.
13157 * config/riscv/riscv.h: Likewise.
13158 * config/riscv/riscv.md: Likewise.
13159 * config/riscv/riscv.opt: Likewise.
13160 * config/riscv/sync.md: Likewise.
13161 * config/riscv/t-elf-multilib: Likewise.
13162 * config/riscv/t-linux: Likewise.
13163 * config/riscv/t-linux-multilib: Likewise.
13164 * config/riscv/t-riscv: Likewise.
13165 * configure.ac: Likewise.
13166 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
13167 Waterman as RISC-V maintainers.
13168 * doc/install.texi: Add RISC-V entries.
13169 * doc/invoke.texi: Add RISC-V options section.
13170 * doc/md.texi: Add RISC-V constraints section.
13171 * configure: Regenerated.
13172
13173 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
13174
13175 PR target/66144
13176 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
13177 false values to be constant vectors with all 0 or all 1 bits set.
13178 (vcondu<mode><mode>): Likewise.
13179 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
13180 predicate.
13181 (fpmask_comparison_operator): Update comment.
13182 (vecint_comparison_operator): New predicate.
13183 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
13184 vector conditionals when the true and false values are constant
13185 vectors with all 0 bits or all 1 bits set.
13186
13187 2017-02-06 Martin Sebor <msebor@redhat.com>
13188
13189 PR tree-optimization/79376
13190 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
13191
13192 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
13193
13194 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
13195 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
13196 to simplify split condition.
13197
13198 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13199
13200 * omp-expand.c (oxpand_omp_atomic_fetch_op,
13201 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
13202 false.
13203
13204 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
13205
13206 PR rtl-optimization/68664
13207 * target.def (can_speculate_insn): New hook.
13208 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
13209 * doc/tm.texi: Regenerate.
13210 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
13211 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
13212 (rs6000_sched_can_speculate_insn): New function.
13213
13214 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13215
13216 PR tree-optimization/79284
13217 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
13218 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
13219 vectorizable_mask_load_store, vectorizable_operation,
13220 vect_is_simple_cond, get_same_sized_vectype): Use it instead
13221 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
13222 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
13223 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
13224 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13225 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
13226 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
13227 is_gimple_assign (stmt). Replace another such test with
13228 is_gimple_assign (stmt).
13229
13230 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13231
13232 PR target/78883
13233 * config/avr/avr.c (rtl-iter.h): Include it.
13234 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
13235 (avr_legitimate_combined_insn): ...and implementation.
13236
13237 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
13238
13239 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
13240 * config/s390/s390.c (s390_const_operand_ok)
13241 (s390_canonicalize_comparison, s390_extract_part)
13242 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
13243 (s390_contiguous_bitmask_p, s390_rtx_costs)
13244 (legitimize_pic_address): Likewise.
13245 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
13246 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
13247 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
13248 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
13249 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
13250
13251 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13252
13253 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
13254 REGNO($0) == REGNO($1).
13255
13256 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13257
13258 * config/s390/linux.h(SIZE_TYPE): Add comment.
13259
13260 2017-02-06 Julian Brown <julian@codesourcery.com>
13261 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13262 Virendra Pathak <virendra.pathak@broadcom.com>
13263
13264 * config/aarch64/aarch64-cores.def: Change the scheduler
13265 to Thunderx2t99.
13266 * config/aarch64/aarch64.md: Include thunderx2t99.md.
13267 * config/aarch64/thunderx2t99.md: New file.
13268
13269 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13270
13271 * doc/standards.texi (Go Language): Update link to language
13272 standard.
13273
13274 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13275
13276 * tree-eh.c (lower_resx): Sanitize profile.
13277 (cleanup_empty_eh_move_lp): Likewise.
13278
13279 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13280
13281 PR tree-ssa/79347
13282 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
13283 ELSE_PROB.
13284 * cfgloopmanip.h (loop_version): Update prototype.
13285 * modulo-sched.c (sms_schedule): Update call of loop_version.
13286 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
13287 * tree-parloops.c (gen_parallel_loop): Likewise.
13288 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
13289 * tree-ssa-loop-split.c (split_loop): Likewise.
13290 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
13291 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
13292
13293 2017-02-05 Martin Liska <mliska@suse.cz>
13294
13295 PR bootstrap/78985
13296 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
13297 variable to NULL.
13298 (print_operand_address): Initialize a struct to zero.
13299
13300 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13301
13302 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
13303 garbage collector only in textual form.
13304
13305 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13306
13307 * doc/extend.texi (x86 specific memory model extensions for
13308 transactional memory): Simplify a phrase.
13309
13310 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
13311
13312 PR target/79353
13313 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
13314 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
13315 (atomic_storedi_1): Likewise.
13316
13317 2017-02-04 Jakub Jelinek <jakub@redhat.com>
13318
13319 PR tree-optimization/79338
13320 * tree-parloops.c (gather_scalar_reductions): Don't call
13321 vect_analyze_loop_form for loop->inner before destroying loop's
13322 loop_vinfo.
13323
13324 2017-02-03 Martin Sebor <msebor@redhat.com>
13325
13326 PR tree-optimization/79327
13327 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
13328 when precision has resulted in leading zeros.
13329 (format_integer): Adjust the likely counter to assume an unknown
13330 argument that may be zero is non-zero.
13331
13332 2017-02-03 Jason Merrill <jason@redhat.com>
13333
13334 PR c++/78689
13335 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
13336 avoid copying non-taken branch.
13337
13338 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13339
13340 PR tree-optimization/79340
13341 * tree-vect-loop.c (vectorizable_reduction): Release
13342 vec_defs elements after safe_splicing them into other vectors.
13343 Formatting fixes.
13344
13345 PR tree-optimization/79327
13346 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
13347 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
13348 dirtype.
13349 (format_integer): Use wide_int_to_tree instead of build_int_cst
13350 + to_?hwi. If argmin is NULL, just set argmin and argmax to
13351 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
13352 of shortest and longest sequence.
13353
13354 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
13355
13356 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
13357 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
13358
13359 2017-02-03 Walter Lee <walt@tilera.com>
13360
13361 PR target/78862
13362 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
13363 after initial stackframe link reg save.
13364 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
13365
13366 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13367
13368 PR target/79354
13369 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
13370 wu for stxssp alternative.
13371
13372 2017-02-03 Martin Sebor <msebor@redhat.com>
13373
13374 PR tree-optimization/79352
13375 * gimple-fold.c (get_range_strlen): Add argument.
13376 (get_range_strlen): Change return type to bool.
13377 (get_maxval_strlen): Pass in a dummy argument.
13378 * gimple-fold.h (get_range_strlen): Change return type to bool.
13379 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
13380 * tree.h (array_at_struct_end_p): Add argument.
13381 * tree.c (array_at_struct_end_p): Handle it.
13382
13383 2017-02-03 Martin Liska <mliska@suse.cz>
13384
13385 PR lto/66295
13386 * multiple_target.c (create_dispatcher_calls): Redirect edge
13387 from a caller of a dispatcher.
13388 (expand_target_clones): Make the clones local.
13389 (ipa_target_clone): Do both target clones and resolvers.
13390 (ipa_dispatcher_calls): Remove the pass.
13391 (pass_dispatcher_calls::gate): Likewise.
13392 (make_pass_dispatcher_calls): Likewise.
13393 * passes.def (pass_target_clone): Put as very first IPA early
13394 pass.
13395
13396 2017-02-03 Martin Liska <mliska@suse.cz>
13397
13398 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
13399 in case of a function with ifunc attribute.
13400
13401 2017-02-03 Martin Liska <mliska@suse.cz>
13402
13403 * cgraph.c (cgraph_node::dump): Dump function version info.
13404 * symtab.c (symtab_node::dump_base): Add missing new line.
13405
13406 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13407
13408 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
13409 (ifcombine_ifandif): Use it.
13410
13411 2017-02-03 Martin Liska <mliska@suse.cz>
13412
13413 * doc/invoke.texi: Document default value for
13414 use-after-scope-direct-emission-threshold.
13415
13416 2017-02-03 Martin Liska <mliska@suse.cz>
13417
13418 PR tree-optimization/79339
13419 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
13420 (format_floating): Likewise.
13421
13422 2017-02-03 Martin Liska <mliska@suse.cz>
13423
13424 PR ipa/79337
13425 * ipa-prop.c (ipa_node_params_t::insert): Remove current
13426 implementation.
13427 (ipa_node_params_t::remove): Likewise.
13428 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
13429 initialization from removed ipa_node_params_t::insert.
13430 (ipa_node_params::~ipa_node_params): Move from removed
13431 ipa_node_params_t::release.
13432 * symbol-summary.h (symbol_summary::m_released): New member.
13433 Do not release a summary twice. Do not allow to call finalizer
13434 for types of a summary that live in GGC memory.
13435
13436 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13437
13438 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
13439 cmp_branch fusion.
13440
13441 2017-02-02 Martin Sebor <msebor@redhat.com>
13442
13443 PR middle-end/79275
13444 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
13445 (format_string): Tighten up the range of output for non-constant
13446 strings and correct the expected range for wide non-constant strings.
13447
13448 2017-02-02 Martin Sebor <msebor@redhat.com>
13449
13450 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
13451
13452 PR middle-end/32003
13453 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
13454 index.
13455 (-fdump-tree-@var): Add to index and document how to come up
13456 with pass-specific option and dump file names.
13457 (-fdump-passes): Clarify where to look for output.
13458
13459 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13460
13461 PR middle-end/77445
13462 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
13463 statistics of the analyzed path; allow threading for speed when
13464 any of BBs along the path are optimized for speed.
13465
13466 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
13467
13468 PR middle-end/78468
13469 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
13470 settings of the virtual registers.
13471
13472 Revert again
13473 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
13474
13475 * explow.c (get_dynamic_stack_size): Take known alignment of stack
13476 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
13477 needed.
13478
13479 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13480
13481 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
13482 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
13483
13484 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13485
13486 * config/s390/s390.md: Add missing comments with the expanded
13487 mnemonics.
13488 * config/s390/vector.md: Likewise.
13489 * config/s390/vx-builtins.md: Likewise.
13490
13491 2017-02-02 Jakub Jelinek <jakub@redhat.com>
13492
13493 PR target/79197
13494 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
13495 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
13496 conditions on a single line.
13497
13498 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13499
13500 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
13501 __S390_VX__ to __VX__.
13502
13503 2017-02-01 Andrew Pinski <apinski@cavium.com>
13504
13505 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
13506 stmt_info to record_stmt_cost.
13507 (vect_get_known_peeling_cost): Pass stmt_info if known to
13508 record_stmt_cost.
13509 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
13510 cpu_vector_cost field into
13511 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
13512 field into vec_int_stmt_cost and vec_fp_stmt_cost.
13513 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
13514 splitting of scalar_stmt_cost and vec_stmt_cost.
13515 (thunderx_vector_cost): Likewise.
13516 (cortexa57_vector_cost): LIkewise.
13517 (exynosm1_vector_cost): Likewise.
13518 (xgene1_vector_cost): Likewise.
13519 (thunderx2t99_vector_cost): Improve after the splitting of the two
13520 fields.
13521 (aarch64_builtin_vectorization_cost): Update for the splitting of
13522 scalar_stmt_cost and vec_stmt_cost.
13523
13524 2017-02-01 Torvald Riegel <triegel@redhat.com>
13525 Richard Henderson <rth@redhat.com>
13526
13527 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
13528 conditional on existance of a fast atomic load.
13529 * optabs-query.c (can_atomic_load_p): New function.
13530 * optabs-query.h (can_atomic_load_p): Declare it.
13531 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
13532 no fast atomic load is available for the particular size of access.
13533 (expand_atomic_compare_and_swap): Likewise.
13534 (expand_atomic_load): Likewise.
13535 (expand_atomic_store): Likewise.
13536 (expand_atomic_fetch_op): Likewise.
13537 * testsuite/lib/target-supports.exp
13538 (check_effective_target_sync_int_128): Remove x86 because it provides
13539 no fast atomic load.
13540 (check_effective_target_sync_int_128_runtime): Likewise.
13541
13542 2017-02-01 Richard Biener <rguenther@suse.de>
13543
13544 * graphite.c: Include tree-vectorizer.h for find_loop_location.
13545 (graphite_transform_loops): Provide opt-info for optimized nests.
13546 * tree-parloop.c (parallelize_loops): Provide opt-info for
13547 parallelized loops.
13548
13549 2017-02-01 Richard Biener <rguenther@suse.de>
13550
13551 PR middle-end/79315
13552 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
13553 was not set before.
13554
13555 2017-02-01 Richard Biener <rguenther@suse.de>
13556
13557 PR tree-optimization/71824
13558 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
13559 Verify the loops are valid in the merged SESE region.
13560 (scop_detection::can_represent_loop_1): Check analyzing the
13561 evolution of the number of iterations in the region succeeds.
13562
13563 2017-01-31 Ian Lance Taylor <iant@golang.org>
13564
13565 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
13566 REG_ARGS_SIZE note to 32-bit push insns and call insn.
13567
13568 2017-01-31 David Malcolm <dmalcolm@redhat.com>
13569
13570 PR preprocessor/79210
13571 * input.c (get_substring_ranges_for_loc): Replace line_width
13572 assertion with error-handling.
13573
13574 2017-01-31 Richard Biener <rguenther@suse.de>
13575
13576 PR tree-optimization/77318
13577 * graphite-sese-to-poly.c (extract_affine): Fix assert.
13578 (create_pw_aff_from_tree): Take loop parameter.
13579 (add_condition_to_pbb): Pass loop of the condition to
13580 create_pw_aff_from_tree.
13581
13582 2017-01-31 Jakub Jelinek <jakub@redhat.com>
13583
13584 * config/s390/s390.c (s390_asan_shadow_offset): New function.
13585 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
13586
13587 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
13588
13589 PR target/78597
13590 PR target/79038
13591 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
13592 no longer used.
13593 (convert_int_to_float128): Likewise.
13594 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
13595 (convert_int_to_float128): Likewise.
13596 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
13597 (UNSPEC_IEEE128_CONVERT): Likewise.
13598 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
13599 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
13600 Use local variables for IBM extended format.
13601 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
13602 (fix_trunc<mode>si2_fprs): Likewise.
13603 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
13604 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
13605 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
13606 to know that we can now have integers of all sizes in vector
13607 registers.
13608 (fix<uns>_<mode>di2_hw): Likewise.
13609 (float<uns>_<mode>si2_hw): Likewise.
13610 (fix_<mode>si2_hw): Likewise.
13611 (fixuns_<mode>si2_hw): Likewise.
13612 (float<uns>_<mode>di2_hw): Likewise.
13613 (float_<mode>di2_hw): Likewise.
13614 (float_<mode>si2_hw): Likewise.
13615 (floatuns_<mode>di2_hw): Likewise.
13616 (floatuns_<mode>si2_hw): Likewise.
13617 (xscvqp<su>wz_<mode>): Delete, no longer used.
13618 (xscvqp<su>dz_<mode>): Likewise.
13619 (xscv<su>dqp_<mode>): Likewise.
13620 (ieee128_mfvsrd_64bit): Likewise.
13621 (ieee128_mfvsrd_32bit): Likewise.
13622 (ieee128_mfvsrwz): Likewise.
13623 (ieee128_mtvsrw): Likewise.
13624 (ieee128_mtvsrd_64bit): Likewise.
13625 (ieee128_mtvsrd_32bit): Likewise.
13626
13627 2017-01-31 Martin Liska <mliska@suse.cz>
13628
13629 PR ipa/79285
13630 * ipa-prop.c (ipa_free_all_node_params): Call release method
13631 instead of ~sumbol_summary to not to trigger double times
13632 dtor of hash_map.
13633
13634 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
13635
13636 PR tree-optimization/71691
13637 * bitmap.h (class auto_bitmap): New.
13638 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
13639 is_maybe_undefined instead of ssa_undefined_value_p.
13640
13641 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13642
13643 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
13644 __S390_ARCH_LEVEL__ to __ARCH__.
13645
13646 2017-01-31 Jakub Jelinek <jakub@redhat.com>
13647
13648 PR tree-optimization/79267
13649 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
13650 if should_remove_lhs_p is true.
13651
13652 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
13653
13654 PR debug/63238
13655 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
13656 (add_alignment_attribute): New.
13657 (base_type_die): Add alignment attribute.
13658 (subrange_type_die): Likewise.
13659 (modified_type_die): Likewise.
13660 (gen_array_type_die): Likewise.
13661 (gen_descr_array_type_die: Likewise.
13662 (gen_enumeration_type_die): Likewise.
13663 (gen_subprogram_die): Likewise.
13664 (gen_variable_die): Likewise.
13665 (gen_field_die): Likewise.
13666 (gen_ptr_to_mbr_type_die): Likewise.
13667 (gen_struct_or_union_type_die): Likewise.
13668 (gen_subroutine_type_die): Likewise.
13669 (gen_typedef_die): Likewise.
13670 (base_type_cmp): Compare alignment attribute.
13671
13672 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13673
13674 PR target/79170
13675 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
13676 (setb_unsigned) New pattern for setb with CCUNS.
13677 * config/rs6000/rs6000.c (expand_block_compare): Use a different
13678 subfc./subfe sequence to avoid overflow problems. Generate a
13679 shorter sequence with cmpld/setb for power9.
13680 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
13681 for generating subfc. instruction.
13682 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
13683 now uses this instruction.
13684
13685 2017-01-30 Ian Lance Taylor <iant@google.com>
13686
13687 PR debug/79289
13688 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
13689 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
13690
13691 2017-01-30 Martin Sebor <msebor@redhat.com>
13692
13693 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
13694 Move constant to the right of a relational operator.
13695 (get_mpfr_format_length, format_character, format_string): Ditto.
13696 (should_warn_p, maybe_warn): Same.
13697
13698 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
13699
13700 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
13701
13702 PR lto/79061
13703 * asan.c (get_translation_unit_decl): Remove function.
13704 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
13705
13706 2017-01-30 Martin Liska <mliska@suse.cz>
13707
13708 PR gcov-profile/79259
13709 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
13710 -fprofile-generate.
13711
13712 2017-01-30 Martin Liska <mliska@suse.cz>
13713
13714 PR bootstrap/78985
13715 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
13716 Initialize variables with NULL value.
13717
13718 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
13719
13720 PR target/79260
13721 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
13722 tm_p_file.
13723 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
13724
13725 2017-01-30 Richard Biener <rguenther@suse.de>
13726
13727 PR tree-optimization/79276
13728 * tree-vrp.c (process_assert_insertions): Properly adjust common
13729 when removing a duplicate.
13730
13731 * gcc.dg/torture/pr79276.c: New testcase.
13732
13733 2017-01-30 Richard Biener <rguenther@suse.de>
13734
13735 PR tree-optimization/79256
13736 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
13737 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
13738 alignment on TYPE.
13739 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
13740
13741 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
13742
13743 PR target/79240
13744 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
13745 ("*r<noxa>sbg_<mode>_sll_bitmask")
13746 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
13747 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
13748 Use contiguous_bitmask_nowrap_operand.
13749
13750 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13751
13752 PR target/79268
13753 * config/rs6000/altivec.h (vec_xl): Revise #define.
13754 (vec_xst): Likewise.
13755
13756 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
13757
13758 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
13759
13760 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
13761
13762 PR rtl-optimization/79194
13763 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
13764 traps before call to bypass_conditional_jumps.
13765
13766 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
13767
13768 PR tree-optimization/71374
13769 * lra-constraints.c (check_conflict_input_operands): New.
13770 (match_reload): Use it.
13771
13772 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
13773
13774 PR target/79131
13775 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
13776 account to calculate conflict_set.
13777
13778 2017-01-27 Bin Cheng <bin.cheng@arm.com>
13779
13780 PR rtl-optimization/78559
13781 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
13782 other_insn in combine.
13783
13784 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
13785
13786 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
13787 uint16_type_node for BT_UINT16.
13788
13789 2017-01-27 David Malcolm <dmalcolm@redhat.com>
13790
13791 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
13792 "RTL Tests" to menu.
13793 (GIMPLE Tests): New node.
13794 (RTL Tests): New node.
13795
13796 2017-01-27 Richard Biener <rguenther@suse.de>
13797
13798 PR tree-optimization/79245
13799 * tree-loop-distribution.c (distribute_loop): Apply cost
13800 modeling also to detected patterns.
13801
13802 2017-01-27 Richard Biener <rguenther@suse.de>
13803
13804 PR tree-optimization/71433
13805 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
13806 (compare_assert_loc): New function.
13807 (process_assert_insertions): Sort and optimize assert locations
13808 to remove duplicates and push down identical assertions on
13809 edges to their destination block.
13810
13811 2017-01-27 Richard Biener <rguenther@suse.de>
13812
13813 PR tree-optimization/79244
13814 * tree-vrp.c (remove_range_assertions): Forcefully propagate
13815 out SSA names even if abnormal.
13816
13817 2017-01-27 Jakub Jelinek <jakub@redhat.com>
13818
13819 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
13820 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
13821 instead of MPFR_RNDN.
13822
13823 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
13824
13825 PR target/79239
13826 * arm.c (arm_option_override): Don't call build_target_option_node
13827 until after doing all option overrides.
13828 (arm_valid_target_attribute_tree): Likewise.
13829
13830 2017-01-27 Martin Liska <mliska@suse.cz>
13831
13832 * doc/invoke.texi (-fprofile-arcs): Document profiling support
13833 for {cd}tors and C++ {cd}tors.
13834
13835 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
13836
13837 * config/s390/s390.md ("*setmem_long_and")
13838 ("*setmem_long_and_31z"): Use zero_extend instead of and.
13839
13840 2017-01-26 Martin Sebor <msebor@redhat.com>
13841
13842 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
13843 of precision.
13844
13845 2017-01-26 Martin Sebor <msebor@redhat.com>
13846
13847 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
13848 HAVE_DFmode before using XFmode or DFmode.
13849 (parse_directive): Avoid using the z length modifier to avoid
13850 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
13851
13852 PR middle-end/78703
13853 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
13854 to accept adjustment as an array.
13855 (get_int_range): New function.
13856 (struct directive): Make width and prec arrays.
13857 (directive::set_width, directive::set_precision): Call get_int_range.
13858 (format_integer, format_floating): Handle width and precision ranges.
13859 (format_string, parse_directive): Same.
13860
13861 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13862
13863 PR debug/79129
13864 * dwarf2out.c (generate_skeleton_bottom_up): For children with
13865 comdat_type_p set, just clone them, but keep the children in the
13866 original DIE.
13867
13868 PR debug/78835
13869 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
13870 which have direct callers with -fvar-tracking-assignments enabled
13871 in the current TU.
13872 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
13873 inside of type units.
13874
13875 2017-01-26 Martin Sebor <msebor@redhat.com>
13876
13877 PR middle-end/78703
13878 * gimple-ssa-sprintf.c (struct result_range): Add likely and
13879 unlikely counters.
13880 (struct format_result): Replace number_chars, number_chars_min,
13881 and number_chars_max with a single member of struct result_range.
13882 Remove bounded.
13883 (format_result::operator+=): Adjust.
13884 (struct fmtresult): Remove bounded. Handle likely and unlikely
13885 counters.
13886 (fmtresult::adjust_for_width_or_precision): New function.
13887 (fmtresult:type_max_digits): New function.
13888 (bytes_remaining): Handle likely and unlikely counters.
13889 (min_bytes_remaining): Remove.
13890 (format_percent): Simplify.
13891 (format_integer, format_floating): Set likely and unlikely counters.
13892 (get_string_length, format_character, format_string): Same.
13893 (format_plain, should_warn_p): New function.
13894 (maybe_warn): Call should_warn_p. Update diagnostic messages
13895 and handle those for all directives, including plain strings.
13896 (format_directive): Handle likely and unlikely counters.
13897 Remove unnecessary quoting from diagnostics. Add an informational
13898 note.
13899 (add_bytes): Remove.
13900 (pass_sprintf_length::compute_format_length): Simplify.
13901 (try_substitute_return_value): Handle likely and unlikely counters.
13902
13903 2017-01-26 Carl Love <cel@us.ibm.com>
13904
13905 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
13906 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
13907
13908 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
13909
13910 PR target/79131
13911 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
13912 endianess for subregs into account.
13913 * lra-constraints.c (lra_constraints): Do risky transformations
13914 always on the first iteration.
13915 * lra-lives.c (check_pseudos_live_through_calls): Add arg
13916 last_call_used_reg_set.
13917 (process_bb_lives): Define and use last_call_used_reg_set.
13918 * lra.c (lra): Always continue after lra_constraints on the first
13919 iteration.
13920
13921 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
13922
13923 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
13924 constant.
13925 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
13926
13927 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13928
13929 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
13930 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
13931 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
13932 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
13933 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
13934 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
13935 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
13936 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
13937 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
13938
13939 2017-01-26 Marek Polacek <polacek@redhat.com>
13940
13941 PR c/79199
13942 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
13943 for the third operand.
13944
13945 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13946
13947 PR middle-end/79236
13948 * omp-low.c (struct omp_context): Add simt_stmt field.
13949 (scan_omp_for): Return omp_context *.
13950 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
13951 context to the _simt_ SIMD stmt.
13952 (lower_omp_for): For combined SIMD with sibling _simt_
13953 SIMD, make sure to use the same decls in _looptemp_
13954 clauses as in the sibling.
13955
13956 2017-01-26 David Sherwood <david.sherwood@arm.com>
13957
13958 PR middle-end/79212
13959 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
13960 all contexts.
13961
13962 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13963
13964 PR target/70465
13965 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
13966 emit fld b; fld a; if possible.
13967
13968 * brig-builtins.def: Update copyright years.
13969 * config/arm/arm_acle_builtins.def: Update copyright years.
13970
13971 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
13972
13973 PR target/79179
13974 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
13975 constraint instead of o for the stxsd instruction.
13976
13977 2017-01-25 Carl Love <cel@us.ibm.com>
13978
13979 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
13980 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
13981
13982 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
13983
13984 * doc/invoke.texi (C++ Dialect Options): Fix typo.
13985
13986 2017-01-25 Richard Biener <rguenther@suse.de>
13987
13988 PR tree-optimization/69264
13989 * target.def (vector_alignment_reachable): Improve documentation.
13990 * doc/tm.texi: Regenerate.
13991 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
13992 and add a comment.
13993 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
13994 earlier changes with respect to TYPE_USER_ALIGN.
13995 (vector_alignment_reachable_p): Likewise. Improve dumping.
13996
13997 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13998
13999 PR target/79145
14000 * config/arm/arm.md (xordi3): Force constant operand into a register
14001 for TARGET_IWMMXT.
14002
14003 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14004
14005 * doc/invoke.texi (-fstore-merging): Correct default optimization
14006 levels at which it is enabled.
14007 (-O): Move -fstore-merging from list to...
14008 (-O2): ... Here.
14009
14010 2017-01-25 Richard Biener <rguenther@suse.de>
14011
14012 PR debug/78363
14013 * omp-expand.c: Include debug.h.
14014 (expand_omp_taskreg): Make sure to generate early debug before
14015 outlining anything from a function.
14016 (expand_omp_target): Likewise.
14017 (grid_expand_target_grid_body): Likewise.
14018
14019 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
14020
14021 PR lto/79061
14022 * asan.c (get_translation_unit_decl): New function.
14023 (asan_add_global): Extract modules file name from globals
14024 TRANSLATION_UNIT_DECL name.
14025
14026 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
14027
14028 PR target/77439
14029 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
14030 for long calls with APCS frame and VFP.
14031
14032 2017-01-24 David Malcolm <dmalcolm@redhat.com>
14033
14034 * cfg.c (original_copy_tables_initialized_p): New function.
14035 * cfg.h (original_copy_tables_initialized_p): New decl.
14036 * cfgrtl.c (relink_block_chain): Guard the call to
14037 free_original_copy_tables with a call to
14038 original_copy_tables_initialized_p.
14039 * cgraph.h (symtab_node::native_rtl_p): New decl.
14040 * cgraphunit.c (symtab_node::native_rtl_p): New function.
14041 (symtab_node::needed_p): Don't assert for early assembly output
14042 for __RTL functions.
14043 (cgraph_node::finalize_function): Set "force_output" for __RTL
14044 functions.
14045 (cgraph_node::analyze): Bail out early for __RTL functions.
14046 (analyze_functions): Update assertion to support __RTL functions.
14047 (cgraph_node::expand): Bail out early for __RTL functions.
14048 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
14049 __RTL functions.
14050 * function.h (struct function): Update comment for field
14051 "pass_startwith".
14052 * gimple-expr.c: Include "tree-pass.h".
14053 (gimple_has_body_p): Return false for __RTL functions.
14054 * Makefile.in (OBJS): Add run-rtl-passes.o.
14055 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
14056 accessor.
14057 (gcc::pass_manager::get_clean_slate): New accessor.
14058 * passes.c: Include "insn-addr.h".
14059 (should_skip_pass_p): Add logging. Update logic for running
14060 "expand" to be compatible with both __GIMPLE and __RTL. Guard
14061 property-provider override so it is only done for gimple passes.
14062 Don't skip dfinit.
14063 (skip_pass): New function.
14064 (execute_one_pass): Call skip_pass when skipping passes.
14065 * read-md.c (md_reader::read_char): Support filtering
14066 the input to a subset of line numbers.
14067 (md_reader::md_reader): Initialize fields
14068 m_first_line and m_last_line.
14069 (md_reader::read_file_fragment): New function.
14070 * read-md.h (md_reader::read_file_fragment): New decl.
14071 (md_reader::m_first_line): New field.
14072 (md_reader::m_last_line): New field.
14073 * read-rtl-function.c (function_reader::create_function): Only
14074 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
14075 curr_properties. Set DECL_INITIAL to a dummy block.
14076 (read_rtl_function_body_from_file_range): New function.
14077 * read-rtl-function.h (read_rtl_function_body_from_file_range):
14078 New decl.
14079 * run-rtl-passes.c: New file.
14080 * run-rtl-passes.h: New file.
14081
14082 2017-01-24 Jeff Law <law@redhat.com>
14083
14084 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
14085 buffer size.
14086
14087 2017-01-24 Bin Cheng <bin.cheng@arm.com>
14088
14089 PR tree-optimization/79159
14090 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
14091 (record_nonwrapping_iv): Improve boundary using above function if no
14092 value range information.
14093
14094 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
14095 Martin Jambor <mjambor@suse.cz>
14096
14097 * brig-builtins.def: New file.
14098 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
14099 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
14100 (DEF_HSAIL_SAT_BUILTIN): Likewise.
14101 (DEF_HSAIL_INTR_BUILTIN): Likewise.
14102 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
14103 * builtin-types.def (BT_INT8): New.
14104 (BT_INT16): Likewise.
14105 (BT_UINT8): Likewise.
14106 (BT_UINT16): Likewise.
14107 (BT_FN_ULONG): Likewise.
14108 (BT_FN_UINT_INT): Likewise.
14109 (BT_FN_UINT_ULONG): Likewise.
14110 (BT_FN_UINT_LONG): Likewise.
14111 (BT_FN_UINT_PTR): Likewise.
14112 (BT_FN_ULONG_PTR): Likewise.
14113 (BT_FN_INT8_FLOAT): Likewise.
14114 (BT_FN_INT16_FLOAT): Likewise.
14115 (BT_FN_UINT32_FLOAT): Likewise.
14116 (BT_FN_UINT16_FLOAT): Likewise.
14117 (BT_FN_UINT8_FLOAT): Likewise.
14118 (BT_FN_UINT64_FLOAT): Likewise.
14119 (BT_FN_UINT16_UINT32): Likewise.
14120 (BT_FN_UINT32_UINT16): Likewise.
14121 (BT_FN_UINT16_UINT16_UINT16): Likewise.
14122 (BT_FN_INT_PTR_INT): Likewise.
14123 (BT_FN_UINT_PTR_UINT): Likewise.
14124 (BT_FN_LONG_PTR_LONG): Likewise.
14125 (BT_FN_ULONG_PTR_ULONG): Likewise.
14126 (BT_FN_VOID_UINT64_UINT64): Likewise.
14127 (BT_FN_UINT8_UINT8_UINT8): Likewise.
14128 (BT_FN_INT8_INT8_INT8): Likewise.
14129 (BT_FN_INT16_INT16_INT16): Likewise.
14130 (BT_FN_INT_INT_INT): Likewise.
14131 (BT_FN_UINT_FLOAT_UINT): Likewise.
14132 (BT_FN_FLOAT_UINT_UINT): Likewise.
14133 (BT_FN_ULONG_UINT_UINT): Likewise.
14134 (BT_FN_ULONG_UINT_PTR): Likewise.
14135 (BT_FN_ULONG_ULONG_ULONG): Likewise.
14136 (BT_FN_UINT_UINT_UINT): Likewise.
14137 (BT_FN_VOID_UINT_PTR): Likewise.
14138 (BT_FN_UINT_UINT_PTR: Likewise.
14139 (BT_FN_UINT32_UINT64_PTR): Likewise.
14140 (BT_FN_INT_INT_UINT_UINT): Likewise.
14141 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
14142 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
14143 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
14144 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
14145 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
14146 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
14147 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
14148 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
14149 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
14150 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
14151 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
14152 * doc/frontends.texi: List BRIG FE.
14153 * doc/install.texi (Testing): Add BRIG tesring requirements.
14154 * doc/invoke.texi (Overall Options): Mention BRIG.
14155 * doc/standards.texi (Standards): Doucment BRIG HSA version.
14156
14157 2017-01-24 Richard Biener <rguenther@suse.de>
14158
14159 PR translation/79208
14160 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
14161
14162 2017-01-24 Martin Jambor <mjambor@suse.cz>
14163
14164 PR bootstrap/79198
14165 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
14166 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
14167 and known_contexts.
14168
14169 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
14170
14171 PR middle-end/79123
14172 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
14173 casts from signed to unsigned really don't have a range.
14174
14175 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
14176
14177 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
14178 GMP_RNDx for compatiblity.
14179
14180 2017-01-24 Martin Liska <mliska@suse.cz>
14181
14182 PR bootstrap/79132
14183 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
14184 that would prevent us to call alloca with -1 as argument.
14185
14186 2017-01-24 Jakub Jelinek <jakub@redhat.com>
14187
14188 * dwarf2out.c (output_compilation_unit_header, output_file_names):
14189 Avoid -Wformat-security warning.
14190
14191 2017-01-23 Andrew Pinski <apinski@cavium.com>
14192
14193 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
14194 cost table.
14195
14196 2017-01-23 Martin Sebor <msebor@redhat.com>
14197
14198 PR middle-end/78703
14199 * gimple-ssa-sprintf.c (warn_level): New global.
14200 (format_integer): Use it here and throughout the rest of the file.
14201 Use the same switch to compute sign as base.
14202 (maybe_warn): New function.
14203 (format_directive): Factor out warnings into maybe_warn.
14204 Add debugging output. Use warn_level.
14205 (add_bytes): Use warn_level.
14206 (pass_sprintf_length::compute_format_length): Add debugging output.
14207 (try_substitute_return_value): Same.
14208 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
14209
14210 PR middle-end/78703
14211 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
14212 (struct fmtresult, format_integer, format_floating): Adjust.
14213 (fmtresult::fmtresult): Set max correctly in two argument ctor.
14214 (get_string_length, format_string,format_directive): Same.
14215 (pass_sprintf_length::compute_format_length): Same.
14216 (try_substitute_return_value): Simplify slightly.
14217
14218 PR middle-end/78703
14219 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
14220 (fmtresult::operator+=): Outlined.
14221 (struct fmtresult): Add ctors.
14222 (struct conversion_spec): Rename...
14223 (struct directive): ...to this. Add and remove data members.
14224 (directive::set_width, directive::set_precision): New functions.
14225 (format_percent): Use fmtresult ctor.
14226 (get_width_and_precision): Remove.
14227 (format_integer): Make naming changes. Avoid computing width and
14228 precision.
14229 (format_floating): Same. Adjust indentation.
14230 (format_character, format_none): New functions.
14231 (format_string): Moved character handling to format_character.
14232 (format_directive): Remove arguments, change return type.
14233 (parse_directive): New function.
14234 (pass_sprintf_length::compute_format_length): Move directive
14235 parsing to parse_directive.
14236
14237 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14238
14239 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
14240 (assign_assembler_name_if_needed): ... this.
14241 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
14242 (assign_assembler_name_if_needed): ... this.
14243 (free_lang_data_in_cgraph): Adjust callers.
14244 * cgraphunit.c (cgraph_node::analyze): Likewise.
14245 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
14246 Likewise.
14247
14248 2017-01-23 Richard Biener <rguenther@suse.de>
14249
14250 PR tree-optimization/79088
14251 PR tree-optimization/79188
14252 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
14253 resetting loop bounds after last path deletion. Reset loop
14254 bounds of the target loop, make code match the comments.
14255 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
14256 Make sure loops need no fixups.
14257
14258 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
14259
14260 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
14261 exponent support with double type for first argument.
14262 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
14263 type returned by __builtin_vec_extract_sig,
14264 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
14265 functions from "vector int" to "vector unsigned int" or from
14266 "vector long long int" to "vector unsigned long long int".
14267 Changed type returned by __builtin_vec_extract_exp,
14268 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
14269 functions from "vector int" to "vector unsigned int" or from
14270 "vector long long int" to "vector unsigned long long int".
14271 Changed return type of __builtin_vec_test_data_class,
14272 __builtin_vec_test_data_class_sp, and
14273 __builtin_vec_test_data_class_dp from "vector int" to
14274 "vector bool int" or from "vector long long int" to "vector bool
14275 long long int" and changed second argument type from "unsigned
14276 int" to "int". Added new overloaded function forms "vector float
14277 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
14278 "vector float __builtin_vec_insert_exp_sp (vector float, vector
14279 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
14280 double, vector unsigned long long int)" and "vector double
14281 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
14282 long int)". Changed return type of
14283 __builtin_scalar_test_data_class and
14284 __builtin_scalar_test_data_class_sp and
14285 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
14286 int" and changed second argument from "unsigned int" to "int".
14287 Changed type returned by __builtin_scalar_test_neg,
14288 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
14289 from "int" to "bool int". Added new overloaded function form
14290 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
14291 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
14292 exponent double-precision with floating point first argument.
14293 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
14294 documentation of scalar_test_data_class, scalar_test_neg,
14295 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
14296 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
14297 vec_test_data_class built-in functions to reflect refinements in
14298 their type signatures.
14299
14300 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
14301
14302 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
14303 size of buf.
14304 (aarch64_elf_asm_destructor): Likewise.
14305
14306 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
14307
14308 PR rtl-optimization/78634
14309 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
14310 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
14311 * ifcvt.c (noce_try_cmove): Add missing cost check.
14312
14313 PR rtl-optimization/71724
14314 * combine.c (if_then_else_cond): Look for situations where it is
14315 beneficial to undo the work of one of the recursive calls.
14316
14317 2017-01-23 Bin Cheng <bin.cheng@arm.com>
14318
14319 PR tree-optimization/70754
14320 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
14321 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
14322 combined stmt before it if not NULL.
14323 (combine_chains): Process refs reversely and compute dominance point
14324 for root ref.
14325
14326 2017-01-23 Martin Liska <mliska@suse.cz>
14327
14328 PR tree-optimization/79196
14329 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
14330 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
14331 instead of memcmp.
14332 (strlen_optimize_stmt): Call the renamed function.
14333
14334 2017-01-23 Michael Matz <matz@suse.de>
14335
14336 PR tree-optimization/78384
14337 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
14338
14339 2017-01-23 Richard Biener <rguenther@suse.de>
14340
14341 PR tree-optimization/79186
14342 * tree-vrp.c (register_new_assert_for): Make sure we've seen
14343 both incoming edges before moving an assert.
14344
14345 2017-01-23 Martin Jambor <mjambor@suse.cz>
14346
14347 * ipa-prop.c (load_from_param_1): Removed.
14348 (load_from_unmodified_param): Bits from load_from_param_1 put back
14349 here.
14350 (load_from_param): Removed.
14351 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
14352 with stmt. Reverted back to use of load_from_unmodified_param.
14353
14354 2017-01-23 Martin Jambor <mjambor@suse.cz>
14355
14356 PR ipa/79108
14357 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
14358 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
14359 field a pointer to garbage collected vector, mark lattices and
14360 ipcp_orig_node with GTY((skip)).
14361 (ipa_get_param_count): Adjust to descriptors being a pointer.
14362 (ipa_get_param): Likewise.
14363 (ipa_get_type): Likewise.
14364 (ipa_get_param_move_cost): Likewise.
14365 (ipa_set_param_used): Likewise.
14366 (ipa_get_controlled_uses): Likewise.
14367 (ipa_set_controlled_uses): Likewise.
14368 (ipa_is_param_used): Likewise.
14369 (ipa_node_params_t): Move into garbage collector. New methods insert
14370 and remove.
14371 (ipa_node_params_sum): Annotate wth GTY(()).
14372 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
14373 garbage collected.
14374 (ipa_load_from_parm_agg): Adjust declaration.
14375 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
14376 * ipa-profile.c (ipa_profile): Likewise.
14377 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
14378 (ipa_populate_param_decls): Make descriptors parameter garbage
14379 collected.
14380 (ipa_dump_param): Adjust to descriptors being a pointer.
14381 (ipa_alloc_node_params): Likewise.
14382 (ipa_initialize_node_params): Likewise.
14383 (load_from_param_1): Make descriptors parameter garbage collected.
14384 (load_from_unmodified_param): Likewise.
14385 (load_from_param): Likewise.
14386 (ipa_load_from_parm_agg): Likewise.
14387 (ipa_node_params::~ipa_node_params): Removed.
14388 (ipa_free_all_node_params): Remove call to delete operator.
14389 (ipa_node_params_t::insert): New.
14390 (ipa_node_params_t::remove): Likewise.
14391 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
14392 copy known_csts and known_contexts vectors.
14393 (ipa_read_node_info): Adjust to descriptors being a pointer.
14394 (ipcp_modif_dom_walker): Make m_descriptors field garbage
14395 collected.
14396 (ipcp_transform_function): Make descriptors variable garbage
14397 collected.
14398
14399 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
14400
14401 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
14402 * config/i386/avx512dqintrin.h: Ditto.
14403 * config/i386/avx512fintrin.h: Ditto.
14404 * gcc/config/i386/i386.c: Handle new builtins.
14405 * config/i386/i386-builtin.def: Add new builtins.
14406 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
14407 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
14408
14409 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14410 Martin Liska <mliska@suse.cz>
14411
14412 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
14413 * asan.c (asan_expand_poison_ifn): Support stores and use
14414 appropriate ASAN report function.
14415 * internal-fn.c (expand_ASAN_POISON_USE): New function.
14416 * internal-fn.def (ASAN_POISON_USE): Declare.
14417 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
14418 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
14419 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
14420 ASAN_POISON calls w/o LHS.
14421 * tree-ssa.c (execute_update_addresses_taken): Create clobber
14422 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
14423 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
14424 * gimplify.c (asan_poison_variables): Add attribute
14425 use_after_scope_memory to variables that really needs to live
14426 in memory.
14427 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
14428 having the attribute.
14429
14430 2017-01-23 Martin Liska <mliska@suse.cz>
14431
14432 * asan.c (create_asan_shadow_var): New function.
14433 (asan_expand_poison_ifn): Likewise.
14434 * asan.h (asan_expand_poison_ifn): New declaration.
14435 * internal-fn.c (expand_ASAN_POISON): Likewise.
14436 * internal-fn.def (ASAN_POISON): New builtin.
14437 * sanopt.c (pass_sanopt::execute): Expand
14438 asan_expand_poison_ifn.
14439 * tree-inline.c (copy_decl_for_dup_finish): Make function
14440 external.
14441 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
14442 * tree-ssa.c (is_asan_mark_p): New function.
14443 (execute_update_addresses_taken): Rewrite local variables
14444 (identified just by use-after-scope as addressable) into SSA.
14445
14446 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14447
14448 * doc/install.texi (Specific): opensource.apple.com uses https
14449 now. Remove trailing slash.
14450
14451 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14452
14453 * README.Portability: Remove note on an Irix compatibility issue.
14454
14455 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
14456
14457 * gcov.c (INCLUDE_ALGORITHM): Define.
14458 (INCLUDE_VECTOR): Define.
14459 No longer include <vector> and <algorithm> directly.
14460
14461 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
14462
14463 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
14464 to https.
14465 * doc/invoke.texi (Code Gen Options): Ditto.
14466
14467 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
14468
14469 PR lto/78407
14470 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
14471
14472 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
14473
14474 rtl-optimization/79125
14475 * cprop.c (local_cprop_pass): Handle cases where we make an
14476 unconditional trap.
14477
14478 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
14479
14480 PR target/61729
14481 PR target/77850
14482 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
14483 read from, for big endian.
14484
14485 2017-01-20 Jiong Wang <jiong.wang@arm.com>
14486
14487 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
14488 register pauth builtins for LP64 only.
14489
14490 2017-01-20 Marek Polacek <polacek@redhat.com>
14491
14492 PR c/79152
14493 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
14494 non-case labels.
14495
14496 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
14497
14498 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
14499 of safelen status.
14500 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
14501 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
14502 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
14503
14504 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14505
14506 PR target/71270
14507 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
14508 in big-endian mode when they are not a single duplicated value.
14509
14510 2017-01-20 Richard Biener <rguenther@suse.de>
14511
14512 * BASE-VER: Bump to 7.0.1.
14513
14514 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
14515
14516 * omp-low.c (omplow_simd_context): New struct. Use it...
14517 (lower_rec_simd_input_clauses): ...here and...
14518 (lower_rec_input_clauses): ...here to hold common data. Adjust all
14519 references to idx, lane, max_vf, is_simt.
14520
14521 2017-01-20 Graham Markall <graham.markall@embecosm.com>
14522
14523 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
14524 mcpu=nps400.
14525
14526 2017-01-20 Martin Jambor <mjambor@suse.cz>
14527
14528 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
14529 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
14530 gt-hsa-common.h.
14531 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
14532 (GTFILES): Rename hsa.c to hsa-common.c.
14533 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
14534 * hsa-dump.c: Likewise.
14535 * hsa-gen.c: Likewise.
14536 * hsa-regalloc.c: Likewise.
14537 * ipa-hsa.c: Likewise.
14538 * omp-expand.c: Likewise.
14539 * omp-low.c: Likewise.
14540 * toplev.c: Likewise.
14541
14542 2017-01-20 Marek Polacek <polacek@redhat.com>
14543
14544 PR c/64279
14545 * doc/invoke.texi: Document -Wduplicated-branches.
14546 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
14547 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
14548 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
14549 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
14550 return 0 only when not OEP_LEXICOGRAPHIC.
14551 (fold_build_cleanup_point_expr): Use the expression
14552 location when building CLEANUP_POINT_EXPR.
14553 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
14554 * tree.c (add_expr): Handle error_mark_node.
14555
14556 2017-01-20 Martin Liska <mliska@suse.cz>
14557
14558 PR lto/69188
14559 * tree-profile.c (init_ic_make_global_vars): Do not call
14560 finalize_decl.
14561 (gimple_init_gcov_profiler): Likewise.
14562
14563 2017-01-20 Martin Liska <mliska@suse.cz>
14564
14565 PR ipa/71190
14566 * cgraph.h (maybe_create_reference): Remove argument and
14567 update comment.
14568 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
14569 argument.
14570 * ipa-cp.c (create_specialized_node): Likewise.
14571 * symtab.c (symtab_node::maybe_create_reference): Handle
14572 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
14573
14574 2017-01-20 Martin Liska <mliska@suse.cz>
14575
14576 * read-rtl-function.c (function_reader::create_function): Use
14577 build_decl instread of build_decl_stat.
14578
14579 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
14580
14581 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
14582 * config/i386/avx512dqintrin.h: Ditto.
14583 * config/i386/avx512fintrin.h: Ditto.
14584 * config/i386/i386-builtin-types.def: Add new types.
14585 * gcc/config/i386/i386.c: Handle new types.
14586 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
14587 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
14588 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
14589 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
14590 (__builtin_ia32_kshiftridi): New.
14591 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
14592
14593 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
14594
14595 PR target/78875
14596 PR target/79140
14597 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
14598 define to rs6000_init_stack_protect_guard.
14599 (rs6000_init_stack_protect_guard): New function.
14600
14601 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
14602 Yunqiang Su <yunqiang.su@imgtec.com>
14603
14604 * config.gcc (supported_defaults): Add madd4.
14605 (with_madd4): Add validation.
14606 (all_defaults): Add madd4.
14607 * config/mips/mips.opt (mmadd4): New option.
14608 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
14609 mmadd4.
14610 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
14611 __mips_no_madd4.
14612 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
14613 (ISA_HAS_FUSED_MADD4): Likewise.
14614 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
14615 * gcc/doc/install.texi (--with-madd4): Document the new option.
14616
14617 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14618
14619 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
14620 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
14621 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
14622 (aarch64_init_pauth_hint_builtins): New.
14623 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
14624 (aarch64_expand_builtin): Expand new builtins.
14625
14626 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14627
14628 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
14629 * combine-stack-adj.c (no_unhandled_cfa): Handle
14630 REG_CFA_TOGGLE_RA_MANGLE.
14631 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
14632 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
14633 info for return address signing.
14634 (aarch64_expand_epilogue): Likewise.
14635
14636 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14637
14638 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
14639 * config/aarch64/aarch64-protos.h
14640 (aarch64_return_address_signing_enabled): New declaration.
14641 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
14642 New function.
14643 (aarch64_expand_prologue): Sign return address before it's pushed onto
14644 stack.
14645 (aarch64_expand_epilogue): Authenticate return address fetched from
14646 stack.
14647 (aarch64_override_options): Sanity check for ILP32 and ISA level.
14648 (aarch64_attributes): New function attributes for "sign-return-address".
14649 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
14650 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
14651 ("*do_return"): Generate combined instructions according to key index.
14652 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
14653 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
14654 iterators.
14655 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
14656 * config/aarch64/aarch64.opt (msign-return-address=): New.
14657 * doc/extend.texi (AArch64 Function Attributes): Documents
14658 "sign-return-address=".
14659 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
14660
14661 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
14662
14663 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
14664 overall option summary.
14665
14666 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14667
14668 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
14669 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
14670 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
14671 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
14672
14673 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
14674
14675 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
14676 -mpower9-minmax by default for -mcpu=power9.
14677 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
14678 128-bit floating point.
14679
14680 2017-01-20 Alan Modra <amodra@gmail.com>
14681
14682 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
14683 optimizing for size.
14684
14685 2017-01-20 Alan Modra <amodra@gmail.com>
14686
14687 PR target/79144
14688 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
14689 for strcmp and strncmp from corresponding builtin decl.
14690
14691 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
14692
14693 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
14694 instead of i386/rtems-64.h.
14695 * config/i386/rtems-64.h: Remove.
14696
14697 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
14698
14699 PR target/78478
14700 Revert:
14701 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
14702
14703 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
14704
14705 2017-01-19 Tamar Christina <tamar.christina@arm.com>
14706
14707 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
14708 Change int to HOST_WIDE_INT.
14709 * config/aarch64/aarch64-protos.h
14710 (aarch64_simd_gen_const_vector_dup): Likewise.
14711 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
14712
14713 2017-01-19 David Malcolm <dmalcolm@redhat.com>
14714
14715 * langhooks-def.h (lhd_type_for_size): New decl.
14716 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
14717 * langhooks.c (lhd_type_for_size): New function, taken from
14718 lto_type_for_size.
14719
14720 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
14721
14722 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
14723 define_bypass for CR latency.
14724 (power9-cracked-alu): Update bypass latency and remove power9-branch.
14725 (power9-alu2): Add define_bypass for CR latency.
14726 (power9-cmp): New.
14727 (power9-mul): Update insn latency.
14728 (power9-mul-compare): Update insn latency, bypass latency and remove
14729 power9-branch.
14730
14731 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14732
14733 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
14734 Delete.
14735 * config/aarch64/aarch64.md
14736 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
14737 aarch64_nopcrelative_literal_loads.
14738 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
14739
14740 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
14741
14742 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
14743 TARGET_LOONGSON_3A.
14744 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
14745
14746 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
14747
14748 PR target/78176
14749 * config.gcc (supported_defaults): Add lxc1-sxc1.
14750 (with_lxc1_sxc1): Add validation.
14751 (all_defaults): Add lxc1-sxc1.
14752 * config/mips/mips.opt (mlxc1-sxc1): New option.
14753 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
14754 mlxc1-sxc1.
14755 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
14756 __mips_no_lxc1_sxc1.
14757 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
14758 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
14759 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
14760
14761 2017-01-19 Richard Biener <rguenther@suse.de>
14762
14763 PR tree-optimization/72488
14764 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
14765 sure to restore SSA info.
14766 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
14767
14768 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
14769
14770 PR rtl-optimization/79121
14771 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
14772 of the inner type when shifting an extended value.
14773
14774 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
14775
14776 PR lto/78407
14777 * symtab.c (symtab_node::equal_address_to): Fix comparing of
14778 interposable aliases.
14779
14780 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
14781
14782 PR target/78516
14783 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
14784 Use the evmergelohi instruction.
14785 (mov_si<mode>_e500_subreg4_2_le): Likewise.
14786 (mov_sitf_e500_subreg8_2_be): Likewise.
14787 (mov_sitf_e500_subreg12_2_le): Likewise.
14788 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
14789 (mov_si<mode>_e500_subreg4_2_be): Likewise.
14790 (mov_sitf_e500_subreg8_2_le): Likewise.
14791 (mov_sitf_e500_subreg12_2_be): Likewise.
14792
14793 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14794
14795 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
14796 attribute from vecsimple to vecperm.
14797 (altivec_vbpermq2): Likewise.
14798
14799 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14800
14801 PR target/79040
14802 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
14803
14804 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14805 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
14806 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
14807 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
14808 case where N arg is SIZE_MAX.
14809 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
14810 (cmpstrsi): Add pattern.
14811
14812 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14813
14814 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14815 __builtin_vec_revb builtins.
14816 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
14817 built-in functions to support generation of the ISA 3.0 XXBR<x>
14818 vector byte reverse instructions.
14819 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
14820 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
14821 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
14822 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
14823 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
14824 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
14825 (P9V_BUILTIN_VEC_REVB): Likewise.
14826 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
14827 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
14828 (p9_xxbrq_v16qi): Likewise.
14829 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
14830 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
14831 (p9_xxbrh_v8hi): Likewise.
14832 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
14833 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
14834 vec_revb built-in functions.
14835
14836 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
14837
14838 PR rtl-optimization/78952
14839 * config/i386/i386.md (any_extract): New code iterator.
14840 (*insvqi_2): Use any_extract for source operand.
14841 (*insvqi_3): Use any_shiftrt for source operand.
14842
14843 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
14844
14845 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
14846 New function.
14847 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
14848
14849 2017-01-18 Matthias Klose <doko@ubuntu.com>
14850
14851 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
14852
14853 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14854
14855 * config/rs6000/altivec.h (vec_bperm): Change #define.
14856 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
14857 (altivec_vbpermq2): New define_insn.
14858 (altivec_vbpermd): Likewise.
14859 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
14860 function interface.
14861 (VBPERMD): Likewise.
14862 (VBPERM): New polymorphic function interface.
14863 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
14864 Add entries for P9V_BUILTIN_VEC_VBPERM.
14865 * doc/extend.texi: Add interfaces for vec_bperm.
14866
14867 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14868
14869 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
14870 first letter of error messages.
14871 (s390_resolve_overloaded_builtin): Likewise.
14872 * config/s390/s390.c (s390_expand_builtin): Likewise.
14873 (s390_invalid_arg_for_unprototyped_fn): Likewise.
14874 (s390_valid_target_attribute_inner_p): Likewise.
14875 * config/s390/s390.md ("tabort"): Likewise.
14876
14877 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
14878
14879 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
14880 (ISA_AVOID_DIV_HILO): New macro.
14881 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
14882 (ISA_HAS_DDIV): Likewise.
14883
14884 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14885
14886 * doc/invoke.texi (fabi-version): Correct number of occurrences.
14887
14888 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14889
14890 * doc/invoke.texi (fabi-version): Spelling fix.
14891
14892 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14893
14894 PR c++/70182
14895 * doc/invoke.texi (fabi-version): Mention mangling fix for
14896 operator names.
14897
14898 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14899
14900 PR c++/77489
14901 * doc/invoke.texi (fabi-version): Document discriminator mangling.
14902
14903 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
14904
14905 PR target/78875
14906 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
14907 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
14908 the new options.
14909 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
14910 flexible settings.
14911 (stack_protect_test): Ditto.
14912 * config/rs6000/rs6000.opt (mstack-protector-guard=,
14913 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
14914 options.
14915 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
14916 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
14917 -mstack-protector-guard-offset=.
14918 (RS/6000 and PowerPC Options): Ditto.
14919
14920 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
14921
14922 * config/i386/i386.h (MASK_CLASS_P): New define.
14923 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
14924 there are no registers from different register sets also when
14925 mask registers are used. Update function comment.
14926 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
14927 to (*k/*r) and (*k/*km) alternatives.
14928
14929 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
14930
14931 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
14932 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
14933 (EH_RETURN_HANDLER_RTX): New define.
14934 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
14935 Force frame pointer in EH return functions.
14936 (aarch64_expand_epilogue): Add barrier for eh_return.
14937 (aarch64_final_eh_return_addr): Remove.
14938 (aarch64_eh_return_handler_rtx): New function.
14939 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
14940 Remove.
14941 (aarch64_eh_return_handler_rtx): New prototype.
14942
14943 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14944
14945 * config/rs6000/altivec.h (vec_rlmi): New #define.
14946 (vec_vrlnm): Likewise.
14947 (vec_rlnm): Likewise.
14948 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
14949 (UNSPEC_VRLNM): Likewise.
14950 (VIlong): New mode iterator.
14951 (altivec_vrl<VI_char>mi): New define_insn.
14952 (altivec_vrl<VI_char>nm): Likewise.
14953 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
14954 function entry.
14955 (VRLDNM): Likewise.
14956 (RLNM): New polymorphic function entry.
14957 (VRLWMI): New monomorphic function entry.
14958 (VRLDMI): Likewise.
14959 (RLMI): New polymorphic function entry.
14960 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
14961 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
14962 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
14963 vec_vrlnm.
14964
14965 2017-01-17 Jakub Jelinek <jakub@redhat.com>
14966
14967 PR debug/78839
14968 * dwarf2out.c (field_byte_offset): Restore the
14969 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
14970 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
14971 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
14972 of build2 + fold.
14973
14974 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
14975
14976 PR ada/67205
14977 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
14978
14979 2017-01-17 Jakub Jelinek <jakub@redhat.com>
14980
14981 PR debug/71669
14982 * dwarf2out.c (add_data_member_location_attribute): For constant
14983 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
14984 instead of DW_AT_data_member_location, DW_AT_bit_offset and
14985 DW_AT_byte_size attributes.
14986
14987 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
14988
14989 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
14990 after forcing to constant memory when the code model is medium.
14991
14992 2017-01-17 Julia Koval <julia.koval@intel.com>
14993
14994 PR target/76731
14995 * config/i386/avx512fintrin.h
14996 (_mm512_i32gather_ps): Change __addr type to void const*.
14997 (_mm512_mask_i32gather_ps): Ditto.
14998 (_mm512_i32gather_pd): Ditto.
14999 (_mm512_mask_i32gather_pd): Ditto.
15000 (_mm512_i64gather_ps): Ditto.
15001 (_mm512_mask_i64gather_ps): Ditto.
15002 (_mm512_i64gather_pd): Ditto.
15003 (_mm512_mask_i64gather_pd): Ditto.
15004 (_mm512_i32gather_epi32): Ditto.
15005 (_mm512_mask_i32gather_epi32): Ditto.
15006 (_mm512_i32gather_epi64): Ditto.
15007 (_mm512_mask_i32gather_epi64): Ditto.
15008 (_mm512_i64gather_epi32): Ditto.
15009 (_mm512_mask_i64gather_epi32): Ditto.
15010 (_mm512_i64gather_epi64): Ditto.
15011 (_mm512_mask_i64gather_epi64): Ditto.
15012 (_mm512_i32scatter_ps): Change __addr type to void*.
15013 (_mm512_mask_i32scatter_ps): Ditto.
15014 (_mm512_i32scatter_pd): Ditto.
15015 (_mm512_mask_i32scatter_pd): Ditto.
15016 (_mm512_i64scatter_ps): Ditto.
15017 (_mm512_mask_i64scatter_ps): Ditto.
15018 (_mm512_i64scatter_pd): Ditto.
15019 (_mm512_mask_i64scatter_pd): Ditto.
15020 (_mm512_i32scatter_epi32): Ditto.
15021 (_mm512_mask_i32scatter_epi32): Ditto.
15022 (_mm512_i32scatter_epi64): Ditto.
15023 (_mm512_mask_i32scatter_epi64): Ditto.
15024 (_mm512_i64scatter_epi32): Ditto.
15025 (_mm512_mask_i64scatter_epi32): Ditto.
15026 (_mm512_i64scatter_epi64): Ditto.
15027 (_mm512_mask_i64scatter_epi64): Ditto.
15028 * config/i386/avx512pfintrin.h
15029 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
15030 (_mm512_mask_prefetch_i32gather_ps): Ditto.
15031 (_mm512_mask_prefetch_i64gather_pd): Ditto.
15032 (_mm512_mask_prefetch_i64gather_ps): Ditto.
15033 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
15034 (_mm512_prefetch_i32scatter_ps): Ditto.
15035 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
15036 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
15037 (_mm512_prefetch_i64scatter_pd): Ditto.
15038 (_mm512_prefetch_i64scatter_ps): Ditto.
15039 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
15040 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
15041 * config/i386/avx512vlintrin.h
15042 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
15043 (_mm_mmask_i32gather_ps): Ditto.
15044 (_mm256_mmask_i32gather_pd): Ditto.
15045 (_mm_mmask_i32gather_pd): Ditto.
15046 (_mm256_mmask_i64gather_ps): Ditto.
15047 (_mm_mmask_i64gather_ps): Ditto.
15048 (_mm256_mmask_i64gather_pd): Ditto.
15049 (_mm_mmask_i64gather_pd): Ditto.
15050 (_mm256_mmask_i32gather_epi32): Ditto.
15051 (_mm_mmask_i32gather_epi32): Ditto.
15052 (_mm256_mmask_i32gather_epi64): Ditto.
15053 (_mm_mmask_i32gather_epi64): Ditto.
15054 (_mm256_mmask_i64gather_epi32): Ditto.
15055 (_mm_mmask_i64gather_epi32): Ditto.
15056 (_mm256_mmask_i64gather_epi64): Ditto.
15057 (_mm_mmask_i64gather_epi64): Ditto.
15058 (_mm256_i32scatter_ps): Change __addr type to void*.
15059 (_mm256_mask_i32scatter_ps): Ditto.
15060 (_mm_i32scatter_ps): Ditto.
15061 (_mm_mask_i32scatter_ps): Ditto.
15062 (_mm256_i32scatter_pd): Ditto.
15063 (_mm256_mask_i32scatter_pd): Ditto.
15064 (_mm_i32scatter_pd): Ditto.
15065 (_mm_mask_i32scatter_pd): Ditto.
15066 (_mm256_i64scatter_ps): Ditto.
15067 (_mm256_mask_i64scatter_ps): Ditto.
15068 (_mm_i64scatter_ps): Ditto.
15069 (_mm_mask_i64scatter_ps): Ditto.
15070 (_mm256_i64scatter_pd): Ditto.
15071 (_mm256_mask_i64scatter_pd): Ditto.
15072 (_mm_i64scatter_pd): Ditto.
15073 (_mm_mask_i64scatter_pd): Ditto.
15074 (_mm256_i32scatter_epi32): Ditto.
15075 (_mm256_mask_i32scatter_epi32): Ditto.
15076 (_mm_i32scatter_epi32): Ditto.
15077 (_mm_mask_i32scatter_epi32): Ditto.
15078 (_mm256_i32scatter_epi64): Ditto.
15079 (_mm256_mask_i32scatter_epi64): Ditto.
15080 (_mm_i32scatter_epi64): Ditto.
15081 (_mm_mask_i32scatter_epi64): Ditto.
15082 (_mm256_i64scatter_epi32): Ditto.
15083 (_mm256_mask_i64scatter_epi32): Ditto.
15084 (_mm_i64scatter_epi32): Ditto.
15085 (_mm_mask_i64scatter_epi32): Ditto.
15086 (_mm256_i64scatter_epi64): Ditto.
15087 (_mm256_mask_i64scatter_epi64): Ditto.
15088 (_mm_i64scatter_epi64): Ditto.
15089 (_mm_mask_i64scatter_epi64): Ditto.
15090 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
15091 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
15092 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
15093 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
15094 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
15095 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
15096 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
15097 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
15098 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
15099 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
15100 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
15101 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
15102 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
15103 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
15104 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
15105 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
15106 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
15107 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
15108 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
15109 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
15110 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
15111 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
15112 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
15113 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
15114 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
15115 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
15116 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
15117 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
15118 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
15119 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
15120 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
15121 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
15122 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
15123 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
15124 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
15125 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
15126 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
15127 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
15128 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
15129 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
15130 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
15131 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
15132 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
15133 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
15134 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
15135 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
15136 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
15137 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
15138 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
15139 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
15140 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
15141 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
15142 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
15143 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
15144 definitions accordingly.
15145
15146 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
15147 Kuan-Lin Chen <kuanlinchentw@gmail.com>
15148
15149 PR target/79079
15150 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
15151 gen_lowpart.
15152
15153 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
15154
15155 PR target/79058
15156 * ira-conflicts.c (ira_build_conflicts): Update total conflict
15157 hard regs for inner regno.
15158
15159 2017-01-17 Martin Liska <mliska@suse.cz>
15160
15161 PR ipa/71207
15162 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
15163 assumption and add comment.
15164
15165 2017-01-17 Nathan Sidwell <nathan@acm.org>
15166
15167 * ipa-visibility.c (localize_node): New function, broken out of ...
15168 (function_and_variable_visibility): ... here. Call it.
15169
15170 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
15171
15172 PR middle-end/77445
15173 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
15174 correctly set frequency of oudgoing edge.
15175 (duplicate_thread_path): Fix profile updating.
15176
15177 2017-01-17 Jakub Jelinek <jakub@redhat.com>
15178
15179 PR other/79046
15180 * configure.ac: Add GCC_BASE_VER.
15181 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
15182 version from BASE-VER file.
15183 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
15184 (gcc.o): Depend on $(BASEVER).
15185 * common.opt (dumpfullversion): New option.
15186 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
15187 * doc/invoke.texi: Document -dumpfullversion.
15188 * doc/install.texi: Document --with-gcc-major-version-only.
15189 * configure: Regenerated.
15190
15191 2017-01-17 Richard Biener <rguenther@suse.de>
15192
15193 PR tree-optimization/71433
15194 * tree-vrp.c (register_new_assert_for): Merge same asserts
15195 on all incoming edges.
15196 (process_assert_insertions_for): Handle insertions at the
15197 beginning of BBs.
15198
15199 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
15200
15201 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
15202 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
15203
15204 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
15205
15206 PR target/78633
15207 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
15208 RTL sharing.
15209
15210 2017-01-17 Alan Modra <amodra@gmail.com>
15211
15212 PR target/79066
15213 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
15214 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
15215 symbolic stack limit when pic.
15216
15217 2017-01-16 Martin Sebor <msebor@redhat.com>
15218
15219 PR tree-optimization/78608
15220 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
15221
15222 2017-01-16 Jeff Law <law@redhat.com>
15223
15224 Revert:
15225 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
15226 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
15227 for several include directories that may be relative to sysroot.
15228 * config/i386/x-mingw32 (gplus_includedir): Define.
15229 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
15230 (native_system_includedir): Likewise.
15231 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
15232 override if TARGET_SYSTEM_ROOT is defined.
15233 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
15234
15235 PR tree-optimization/79090
15236 PR tree-optimization/33562
15237 PR tree-optimization/61912
15238 PR tree-optimization/77485
15239 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
15240 and computed trims into the dump file.
15241
15242 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
15243
15244 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
15245
15246 2017-01-16 Jakub Jelinek <jakub@redhat.com>
15247
15248 PR c/79089
15249 * gimplify.c (gimplify_init_constructor): If want_value and
15250 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
15251 fix.
15252
15253 PR target/79080
15254 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
15255 sequence. Formatting fixes.
15256 (doloop_optimize): Formatting fixes.
15257
15258 PR driver/49726
15259 * gcc.c (debug_level_greater_than_spec_func): New function.
15260 (static_spec_functions): Add debug-level-gt spec function.
15261 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
15262 !g0.
15263 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15264 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15265 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
15266 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
15267 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
15268 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
15269
15270 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
15271
15272 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
15273 QImode fixups to general and mask registers only.
15274
15275 2017-01-16 Carl Love <cel@us.ibm.com>
15276
15277 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
15278 for built-in functions
15279 vector signed char vec_nabs (vector signed char)
15280 vector signed short vec_nabs (vector signed short)
15281 vector signed int vec_nabs (vector signed int)
15282 vector signed long long vec_nabs (vector signed long long)
15283 vector float vec_nabs (vector float)
15284 vector double vec_nabs (vector double)
15285 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
15286 and NABS overload.
15287 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
15288 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
15289 * doc/extend.texi: Update the documentation file for the new built-in
15290 functions.
15291
15292 2017-01-16 Martin Sebor <msebor@redhat.com>
15293
15294 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
15295 message.
15296
15297 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15298
15299 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
15300 UNSPEC_VSX__XXSPLTD to require special splat handling.
15301
15302 2017-01-16 David Malcolm <dmalcolm@redhat.com>
15303
15304 PR bootstrap/78616
15305 * system.h: Poison strndup.
15306
15307 2017-01-16 Alan Modra <amodra@gmail.com>
15308
15309 PR target/79098
15310 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
15311 use a switch.
15312
15313 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
15314
15315 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
15316
15317 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
15318
15319 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
15320 call recog here. Assert that INSN_CODE (insn) is non-negative.
15321
15322 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15323
15324 PR target/72749
15325 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
15326 fallthrough.
15327 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
15328 in the currently scheduled RTL fragment.
15329
15330 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15331
15332 PR rtl-optimization/78751
15333 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
15334 give up.
15335
15336 2017-01-14 Jeff Law <law@redhat.com>
15337
15338 PR tree-optimization/79090
15339 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
15340 variable length stores.
15341 (compute_trims): Delete dead assignment to *trim_tail.
15342 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
15343 zero length.
15344
15345 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
15346
15347 PR rtl-optimization/78626
15348 PR rtl-optimization/78727
15349 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
15350 of a block, and split such blocks after everything else is finished.
15351
15352 2017-01-14 Alan Modra <amodra@gmail.com>
15353
15354 PR target/72749
15355 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
15356 target legitimate_combined_insn.
15357 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
15358 (rs6000_legitimate_combined_insn): New function.
15359 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
15360 all uses.
15361 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
15362 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
15363 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
15364
15365 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
15366
15367 * doc/frontends.texi (G++ and GCC): Remove references to Java.
15368
15369 2017-01-13 Jeff Law <law@redhat.com>
15370
15371 PR tree-optimization/33562
15372 PR tree-optimization/61912
15373 PR tree-optimization/77485
15374 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
15375 a statement.
15376 (delete_dead_assignment): Likewise.
15377 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
15378 statement to delete_dead_call and delete_dead_assignment.
15379
15380 2017-01-13 David Malcolm <dmalcolm@redhat.com>
15381
15382 PR c/78304
15383 * substring-locations.c (format_warning_va): Strengthen case 1 so
15384 that both endpoints of the substring must be within the format
15385 range for just the substring to be printed.
15386
15387 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
15388
15389 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
15390 * config/i386/i386.c (ix86_target_string): Add missing options
15391 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
15392 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
15393 flags_other and ix86_target_other to flags2_other. Display unknown
15394 isa2 options.
15395 (ix86_valid_target_attribute_inner_p): Add missing options and
15396 reorder options by implied ISAs, as in ix86_target_string.
15397
15398 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15399
15400 * hash-table.h (hash_table::too_empty_p): New function.
15401 (hash_table::expand): Use it.
15402 (hash_table::traverse): Likewise.
15403 (hash_table::empty_slot): Use sizeof (value_type) instead of
15404 sizeof (PTR) to convert bytes to elements. Shrink the table
15405 if the current size is excessive for the current number of
15406 elements.
15407
15408 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15409
15410 * ira-costs.c (record_reg_classes): Break from the inner loop
15411 early once alt_fail is known to be true. Update outer loop
15412 handling accordingly.
15413
15414 2017-01-13 Jeff Law <law@redhat.com>
15415
15416 * tree-ssa-dse.c (decrement_count): New function.
15417 (increment_start_addr, maybe_trim_memstar_call): Likewise.
15418 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
15419 when we know the partially dead statement is a mem* function.
15420
15421 PR tree-optimization/61912
15422 PR tree-optimization/77485
15423 * tree-ssa-dse.c: Include expr.h.
15424 (maybe_trim_constructor_store): New function.
15425 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
15426
15427 PR tree-optimization/33562
15428 PR tree-optimization/61912
15429 PR tree-optimization/77485
15430 * doc/invoke.texi: Document new dse-max-object-size param.
15431 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
15432 * tree-ssa-dse.c: Include params.h.
15433 (dse_store_status): New enum.
15434 (initialize_ao_ref_for_dse): New, partially extracted from
15435 dse_optimize_stmt.
15436 (valid_ao_ref_for_dse, normalize_ref): New.
15437 (setup_live_bytes_from_ref, compute_trims): Likewise.
15438 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
15439 (maybe_trim_partially_dead_store): Likewise.
15440 (maybe_trim_complex_store): Likewise.
15441 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
15442 Track what bytes live from the original store. Return tri-state
15443 for dead, partially dead or live.
15444 (dse_dom_walker): Add constructor, destructor and new private members.
15445 (delete_dead_call, delete_dead_assignment): New extracted from
15446 dse_optimize_stmt.
15447 (dse_optimize_stmt): Make a member of dse_dom_walker.
15448 Use initialize_ao_ref_for_dse.
15449
15450 PR tree-optimization/33562
15451 PR tree-optimization/61912
15452 PR tree-optimization/77485
15453 * sbitmap.h (bitmap_count_bits): Prototype.
15454 (bitmap_clear_range, bitmap_set_range): Likewise.
15455 * sbitmap.c (bitmap_clear_range): New function.
15456 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
15457
15458 2017-01-13 Martin Liska <mliska@suse.cz>
15459
15460 PR ipa/79043
15461 * function.c (set_cfun): Add new argument force.
15462 * function.h (set_cfun): Likewise.
15463 * ipa-inline-transform.c (inline_call): Use the function when
15464 strict alising from is dropped for function we inline to.
15465
15466 2017-01-13 Richard Biener <rguenther@suse.de>
15467
15468 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
15469 for dumping GIMPLE INTEGER_CSTs.
15470
15471 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15472
15473 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
15474 to 201112L since C++17.
15475
15476 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
15477
15478 PR sanitizer/78887
15479 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
15480 if -fsanitize=kernel-address is present.
15481
15482 2017-01-13 Richard Biener <rguenther@suse.de>
15483
15484 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
15485 as _Literal ( type ) number in case usual suffixes do not
15486 preserve all information.
15487
15488 2017-01-13 Richard Biener <rguenther@suse.de>
15489
15490 PR tree-optimization/77283
15491 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
15492 and ssa-iterators.h.
15493 (is_feasible_trace): Implement a cost model based on joiner
15494 PHI node uses.
15495
15496 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
15497
15498 PR target/79004
15499 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
15500 char or short to __float128/_Float128 directly.
15501
15502 2017-01-12 Martin Sebor <msebor@redhat.com>
15503
15504 to -Wformat-overflow.
15505 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
15506 (min_bytes_remaining): Same.
15507 (get_string_length): Same.
15508 (format_string): Same.
15509 (format_directive): Same.
15510 (add_bytes): Same.
15511 (pass_sprintf_length::handle_gimple_call): Same.
15512
15513 2017-01-12 Jakub Jelinek <jakub@redhat.com>
15514
15515 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
15516 info.nowrite calls with no lhs that can't throw. Return bool
15517 whether gsi_remove has been called or not.
15518 (pass_sprintf_length::handle_gimple_call): Return bool whether
15519 try_substitute_return_value called gsi_remove. Formatting fix.
15520 (pass_sprintf_length::execute): Don't use gsi_remove if
15521 handle_gimple_call returned true.
15522
15523 PR bootstrap/79069
15524 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
15525 be removed due to side-effects, don't remove following barrier nor
15526 turn the successor edge into fallthru edge.
15527
15528 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15529
15530 PR target/79044
15531 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
15532 element-reversing loads and stores as not swappable.
15533
15534 2017-01-12 Nathan Sidwell <nathan@acm.org>
15535 Nicolai Stange <nicstange@gmail.com>
15536
15537 * combine.c (try_combine): Don't ignore result of overlap checking
15538 loop. Combine overlap & asm check into single loop.
15539
15540 2017-01-12 Richard Biener <rguenther@suse.de>
15541
15542 * tree-pretty-print.c (dump_generic_node): Provide -gimple
15543 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
15544
15545 2017-01-12 Richard Biener <rguenther@suse.de>
15546
15547 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
15548 and TS_TARGET_OPTION directly derive from TS_BASE.
15549 * tree-core.h (tree_optimization_option): Derive from tree_base.
15550 (tree_target_option): Likewise.
15551
15552 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
15553
15554 * config/i386/i386.c (memory_address_length): Increase len
15555 only when rip_relative_addr_p returns false.
15556
15557 2017-01-11 Julia Koval <julia.koval@intel.com>
15558
15559 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
15560 (OPTION_MASK_ISA_SGX_SET): New.
15561 (ix86_handle_option): Handle OPT_msgx.
15562 * config.gcc: Added sgxintrin.h.
15563 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
15564 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
15565 * config/i386/i386.c (ix86_target_string): Add -msgx.
15566 (PTA_SGX): New.
15567 (ix86_option_override_internal): Handle new options.
15568 (ix86_valid_target_attribute_inner_p): Add sgx.
15569 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
15570 * config/i386/i386.opt: Add msgx.
15571 * config/i386/sgxintrin.h: New file.
15572 * config/i386/x86intrin.h: Add sgxintrin.h.
15573
15574 2017-01-11 Jakub Jelinek <jakub@redhat.com>
15575
15576 PR c++/71537
15577 * fold-const.c (maybe_nonzero_address): Return 1 for function
15578 local objects.
15579 (tree_single_nonzero_warnv_p): Don't handle function local objects
15580 here.
15581
15582 PR c++/72813
15583 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
15584 of c-header.
15585
15586 2017-01-11 David Malcolm <dmalcolm@redhat.com>
15587
15588 PR driver/78877
15589 * opts.c: Include "spellcheck.h"
15590 (struct string_fragment): New struct.
15591 (struct edit_distance_traits<const string_fragment &>): New
15592 struct.
15593 (get_closest_sanitizer_option): New function.
15594 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
15595
15596 2017-01-11 Jakub Jelinek <jakub@redhat.com>
15597
15598 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
15599 by 12.
15600 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
15601 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
15602 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
15603 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
15604 for initial die_offset if dwarf_split_debug_info.
15605 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
15606 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
15607 fields.
15608 (output_skeleton_debug_sections): Formatting fix. Use
15609 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
15610 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
15611
15612 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
15613
15614 * config/arm/cortex-a53.md: Add bypasses for
15615 cortex_a53_r2f_cvt.
15616 (cortex_a53_r2f): Only use for transfers.
15617 (cortex_a53_f2r): Likewise.
15618 (cortex_a53_r2f_cvt): Add reservation for conversions.
15619 (cortex_a53_f2r_cvt): Likewise.
15620
15621 2017-01-11 Tamar Christina <tamar.christina@arm.com>
15622
15623 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
15624 to all inlined functions, change static to extern.
15625
15626 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
15627
15628 PR target/78253
15629 * config/arm/arm.c (legitimize_pic_address): Handle reference to
15630 weak symbol.
15631 (arm_assemble_integer): Likewise.
15632
15633 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
15634
15635 * config.gcc: Use new awk script to check CPU, FPU and architecture
15636 parameters for --with-... options.
15637 * config/arm/parsecpu.awk: New file
15638 * config/arm/arm-cpus.in: New file.
15639 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
15640 files.
15641 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
15642 files.
15643 * config/arm/t-arm: Update dependency rules.
15644 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
15645 of processing .def files.
15646 * config/arm/genopt.sh: Deleted.
15647 * config/arm/gentune.sh: Deleted.
15648 * config/arm/arm-cores.def: Deleted.
15649 * config/arm/arm-arches.def: Deleted.
15650 * config/arm/arm-fpus.def: Deleted.
15651 * config/arm/arm-tune.md: Regenerated.
15652 * config/arm/arm-tables.opt: Regenerated.
15653 * config/arm/arm-cpu.h: New generated file.
15654 * config/arm/arm-cpu-data.h: New generated file.
15655 * config/arm/arm-cpu-cdata.h: New generated file.
15656
15657 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
15658
15659 PR lto/79042
15660 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
15661 bit.
15662 (input_varpool_node): Unpack dynamically_initialized bit.
15663
15664 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
15665
15666 PR rtl-optimization/79032
15667 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
15668 the alignment of the adjusted memory reference against that of MODE,
15669 instead of the alignment of the original memory reference.
15670
15671 2017-01-11 Martin Jambor <mjambor@suse.cz>
15672
15673 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
15674 test.
15675 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
15676 decorated functions.
15677
15678 2017-01-11 Richard Biener <rguenther@suse.de>
15679
15680 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
15681 set range/nonnull info for PHI results. Do not set it on
15682 stmts marked for removal.
15683
15684 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
15685
15686 * expr.c (store_field): In the bitfield case, fetch the return value
15687 from the registers before applying a single big-endian adjustment.
15688 Always do a final load for a BLKmode value not larger than a word.
15689
15690 2017-01-10 David Malcolm <dmalcolm@redhat.com>
15691
15692 PR c++/77949
15693 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
15694 that we correctly handle column numbers greater than
15695 LINE_MAP_MAX_COLUMN_NUMBER.
15696
15697 2017-01-10 Martin Sebor <msebor@redhat.com>
15698
15699 PR middle-end/78245
15700 * gimple-ssa-sprintf.c (get_destination_size): Call
15701 {init,fini}object_sizes.
15702 * tree-object-size.c (addr_object_size): Adjust.
15703 (pass_through_call): Adjust.
15704 (pass_object_sizes::execute): Adjust.
15705 * tree-object-size.h (fini_object_sizes): Declare.
15706
15707 2017-01-10 Martin Sebor <msebor@redhat.com>
15708
15709 PR tree-optimization/78775
15710 * builtins.c (get_size_range): Move...
15711 * calls.c: ...to here.
15712 (alloc_max_size): Accept zero argument.
15713 (operand_signed_p): Remove.
15714 (maybe_warn_alloc_args_overflow): Call get_size_range.
15715 * calls.h (get_size_range): Declare.
15716
15717 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
15718
15719 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
15720 from TI's devices.csv file as of September 2016.
15721 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
15722
15723 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
15724
15725 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
15726 * doc/invoke.texi: Likewise.
15727 * doc/md.texi: Likewise.
15728 * doc/objc.texi: Likewise.
15729
15730 2017-01-10 Joshua Conner <joshconner@google.com>
15731
15732 * config/arm/fuchsia-elf.h: New file.
15733 * config/fuchsia.h: New file.
15734 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
15735 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
15736 targets.
15737 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
15738
15739 2016-01-10 Richard Biener <rguenther@suse.de>
15740
15741 PR tree-optimization/79034
15742 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
15743 Propagate out degenerate PHIs in the joiner.
15744
15745 2017-01-10 Martin Liska <mliska@suse.cz>
15746
15747 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
15748 (sort_congruence_classes_by_decl_uid): Likewise.
15749 (sort_congruence_class_groups_by_decl_uid): Likewise.
15750 (sem_item_optimizer::merge_classes): Sort class, groups in these
15751 classes and members in the groups by DECL_UID of declarations.
15752 This would make merge operations stable.
15753
15754 2017-01-10 Martin Liska <mliska@suse.cz>
15755
15756 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
15757 usage of m_classes_vec.
15758 (sem_item_optimizer::~sem_item_optimizer): Likewise.
15759 (sem_item_optimizer::get_group_by_hash): Likewise.
15760 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
15761 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
15762 (sem_item_optimizer::verify_classes): Likewise.
15763 (sem_item_optimizer::process_cong_reduction): Likewise.
15764 (sem_item_optimizer::dump_cong_classes): Likewise.
15765 (sem_item_optimizer::merge_classes): Likewise.
15766 * ipa-icf.h (congruence_class_hash): Rename from
15767 congruence_class_group_hash. Remove declaration of m_classes_vec.
15768
15769 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
15770
15771 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
15772 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
15773 * config.gcc: Add avx512vpopcntdqintrin.h.
15774 * config/i386/avx512vpopcntdqintrin.h: New.
15775 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
15776 * config/i386/i386-builtin-types.def: Add new types.
15777 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
15778 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
15779 __builtin_ia32_vpopcountq_v8di_mask): New.
15780 * config/i386/i386-c.c (ix86_target_macros_internal): Define
15781 __AVX512VPOPCNTDQ__.
15782 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
15783 (PTA_AVX512VPOPCNTDQ): Define.
15784 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
15785 TARGET_AVX512VPOPCNTDQ_P): Define.
15786 * config/i386/i386.opt: Add mavx512vpopcntdq.
15787 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
15788 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
15789
15790 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
15791
15792 PR middle-end/77484
15793 * predict.def (PRED_CALL): Set to 67.
15794
15795 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
15796
15797 * expr.c (store_field): In the bitfield case, if the value comes from
15798 a function call and is of an aggregate type returned in registers, do
15799 not modify the field mode; extract the value in all cases if the mode
15800 is BLKmode and the size is not larger than a word.
15801
15802 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
15803
15804 PR target/71017
15805 * config/i386/cpuid.h: Fix undefined behavior.
15806
15807 2017-01-04 Jeff Law <law@redhat.com>
15808
15809 PR tree-optimization/79007
15810 PR tree-optimization/67955
15811 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
15812 conservative for pt.null when flag_non_call_exceptions is on.
15813
15814 2017-01-09 Jakub Jelinek <jakub@redhat.com>
15815
15816 PR translation/79019
15817 PR translation/79020
15818 * params.def (PARAM_INLINE_MIN_SPEEDUP,
15819 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
15820 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
15821 in descriptions.
15822 * config/avr/avr.opt (maccumulate-args): Likewise.
15823 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
15824 * common.opt (freport-bug): Likewise.
15825 * cif-code.def (CIF_FINAL_ERROR): Likewise.
15826 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
15827 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
15828 translatable string.
15829 * config/i386/i386.c (function_value_32): Likewise.
15830 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
15831 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
15832 Likewise.
15833 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
15834 * common/config/msp430/msp430-common.c (msp430_handle_option):
15835 Likewise.
15836 * symtab.c (symtab_node::verify_base): Likewise.
15837 * opts.c (set_debug_level): Likewise.
15838 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
15839 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
15840 missing whitespace to translatable strings.
15841 * config/avr/avr.md (bswapsi2): Fix typo in comment.
15842 * config/sh/superh.h: Likewise.
15843 * config/i386/xopintrin.h: Likewise.
15844 * config/i386/znver1.md: Likewise.
15845 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
15846 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
15847 * double-int.h (struct double_int): Likewise.
15848 * double-int.c (div_and_round_double): Likewise.
15849 * wide-int.cc: Likewise.
15850 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
15851 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
15852 * cfgcleanup.c (crossjumps_occured): Renamed to ...
15853 (crossjumps_occurred): ... this.
15854 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
15855 Adjust all uses.
15856
15857 PR tree-optimization/78899
15858 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
15859 returning bool return struct loop *, NULL for failure and the new
15860 loop on success.
15861 (versionable_outer_loop_p): Don't version outer loop if it has
15862 dont_vectorized bit set.
15863 (tree_if_conversion): When versioning outer loop, ensure
15864 tree_if_conversion is performed also on the inner loop of the
15865 non-vectorizable outer loop copy.
15866 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
15867 LOOP_VECTORIZED in inner loop of the scalar outer loop and
15868 prevent vectorization of it.
15869 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
15870 the outer loop vectorization of the non-scalar version is attempted
15871 before vectorization of the inner loop in scalar version. If
15872 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
15873 vectorization of its inner loop.
15874 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
15875 has 2 inner loops, rename also on edges from bb whose single pred
15876 is outer_loop->header. Fix typo in function comment.
15877
15878 2017-01-09 Martin Sebor <msebor@redhat.com>
15879
15880 PR bootstrap/79033
15881 * asan.c (asan_emit_stack_protection): Increase local buffer size
15882 to avoid snprintf truncation warning.
15883
15884 2017-01-09 Andrew Pinski <apinski@cavium.com>
15885
15886 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
15887 to reference thunderx2t99 for the tuning structure
15888 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
15889 Rename to ...
15890 (thunderx2t99_extra_costs): This.
15891 * config/aarch64/aarch64-tune.md: Regenerate.
15892 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
15893 (vulcan_addrcost_table): This.
15894 (vulcan_regmove_cost): Rename to ...
15895 (thunderx2t99_regmove_cost): This.
15896 (vulcan_vector_cost): Rename to ...
15897 (thunderx2t99_vector_cost): this.
15898 (vulcan_branch_cost): Rename to ...
15899 (thunderx2t99_branch_cost): This.
15900 (vulcan_tunings): Rename to ...
15901 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
15902 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
15903
15904 2017-01-09 Martin Jambor <mjambor@suse.cz>
15905
15906 PR ipa/78365
15907 PR ipa/78599
15908 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
15909 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
15910 (propagate_vr_accross_jump_function): Use the above function for all
15911 value range computations for pass-through jump functions and type
15912 converasion from explicit value range values.
15913 (ipcp_propagate_stage): Do not attempt to deduce types of formal
15914 parameters from TYPE_ARG_TYPES.
15915 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
15916 (ipa_write_node_info): Stream type of the actual argument.
15917 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
15918
15919 2017-01-09 Martin Liska <mliska@suse.cz>
15920
15921 PR pch/78970
15922 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
15923 (lookup_compiler): Do not show error message with have_E.
15924
15925 2017-01-09 Jakub Jelinek <jakub@redhat.com>
15926
15927 PR tree-optimization/78938
15928 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
15929 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
15930 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
15931 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
15932 fixes.
15933
15934 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15935
15936 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
15937 is const0_rtx.
15938
15939 2017-01-09 Richard Biener <rguenther@suse.de>
15940
15941 PR tree-optimization/78997
15942 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
15943 name condition properly.
15944
15945 2017-01-09 Richard Biener <rguenther@suse.de>
15946
15947 PR debug/79000
15948 * dwarf2out.c (is_cxx): New overload with context.
15949 (is_naming_typedef_decl): Use it.
15950
15951 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15952
15953 * invoke.texi (Option Summary): Correct spacing in option lists
15954 and add line breaks to fix over-long lines.
15955
15956 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15957
15958 PR middle-end/17660
15959
15960 * extend.texi (Common Variable Attributes): Add xref to GCC
15961 Internals manual to explain mode attribute keywords.
15962
15963 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15964
15965 PR other/16519
15966 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
15967 and Preprocessor Options.
15968 (Options for Linking): Document -pthread here....
15969 (RS/6000 and PowerPC Options): ...not here.
15970 (Solaris 2 Options): ...or here.
15971 * doc/cppopts.texi: Document -pthread.
15972
15973 2017-01-08 Martin Sebor <msebor@redhat.com>
15974
15975 PR middle-end/77708
15976 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
15977 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
15978 New member functions.
15979 (format_directive): Used them.
15980 (add_bytes): Same.
15981 (pass_sprintf_length::handle_gimple_call): Same.
15982 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
15983 to avoid truncation for any argument.
15984 (extract_affine_mul): Same.
15985 * tree.c (get_file_function_name): Same.
15986
15987 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
15988
15989 PR middle-end/77484
15990 * predict.def (PRED_INDIR_CALL): Set to 86.
15991
15992 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
15993
15994 PR preprocessor/54124
15995 * doc/cppopts.texi: Reformat -d subtable to list the full name
15996 of the options. Add cross-reference to the docs for the general
15997 compiler -d options.
15998 * doc/invoke.texi (Developer Options): Add cross-reference to the
15999 preprocessor-specific -d option documentation.
16000
16001 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
16002
16003 PR preprocessor/13498
16004 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
16005 redudant material, and reflect new command-line options.
16006 (System Headers): Likewise.
16007
16008 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
16009
16010 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
16011 -isystem, and -idirafter. Copy-edit.
16012 * doc/cppopts.texi: Copy-edit. Remove contradiction about
16013 default for -ftrack-macro-expansion. Delete obsolete and
16014 badly-formatted implementation details about -fdebug-cpp output.
16015 * doc/cppwarnopts.texi: Copy-edit.
16016
16017 2017-01-07 David Malcolm <dmalcolm@redhat.com>
16018
16019 PR c++/72803
16020 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
16021 that the transition from a max line width >= 1<<10 to narrower
16022 lines works correctly.
16023
16024 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
16025
16026 * doc/options.texi (PerFunction): New.
16027 * opt-functions.awk (switch_flags): Map both Optimization and
16028 PerFunction to CL_OPTIMIZATION.
16029 * opth-gen.awk: Test for PerFunction flag along with
16030 Optimization.
16031 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
16032 it only when the latter is present. Skip those that don't in
16033 the hash function generator.
16034 * common.opt (fvar-tracking): Mark as PerFunction instead of
16035 Optimization.
16036 (fvar-tracking-assignments): Likewise.
16037 (fvar-tracking-assignments-toggle): Likewise.
16038 (fvar-tracking-uninit): Likewise.
16039
16040 2017-01-07 Jakub Jelinek <jakub@redhat.com>
16041
16042 PR translation/79018
16043 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
16044 the and store.
16045
16046 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
16047
16048 PR target/57583
16049 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
16050 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
16051 TARGET_LONG_JUMP_TABLE_OFFSETS.
16052 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
16053 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
16054 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
16055 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
16056 * config/m68k/m68k.md (tablejump expander): Likewise.
16057 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
16058 TARGET_LONG_JUMP_TABLE_OFFSETS.
16059 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
16060 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
16061
16062 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
16063 David Holsgrove <david.holsgrove@xilinx.com>
16064
16065 * common/config/microblaze/microblaze-common.c
16066 (TARGET_EXCEPT_UNWIND_INFO): Remove.
16067 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
16068 New prototype.
16069 * config/microblaze/microblaze.c (microblaze_must_save_register)
16070 (microblaze_expand_epilogue, microblaze_return_addr): Handle
16071 calls_eh_return.
16072 (microblaze_eh_return): New function.
16073 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
16074 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
16075 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
16076 * config/microblaze/microblaze.md (eh_return): New pattern.
16077
16078 2017-01-06 Jakub Jelinek <jakub@redhat.com>
16079
16080 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
16081 GCC_DIAGNOSTIC_STRINGIFY): Define.
16082
16083 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
16084
16085 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16086
16087 * config/arm/arm.md (<mcrr>): New.
16088 (<mrrc>): New.
16089 * config/arm/arm.c (arm_arch5te): New.
16090 (arm_option_override): Set arm_arch5te.
16091 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
16092 and mrrc2.
16093 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
16094 (arm_mcrr_qualifiers): ... this. New.
16095 (MRRC_QUALIFIERS): Define to...
16096 (arm_mrrc_qualifiers): ... this. New.
16097 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
16098 __arm_mrrc2): New.
16099 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
16100 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
16101 (MRRCI, mrrc, MRRC): New.
16102 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
16103 VUNSPEC_MRRC2): New.
16104
16105 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16106
16107 * config/arm/arm.md (<mcr>): New.
16108 (<mrc>): New.
16109 * config/arm/arm.c (arm_coproc_builtin_available): Add
16110 support for mcr, mrc, mcr2 and mrc2.
16111 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
16112 (arm_mcr_qualifiers): ... this. New.
16113 (MRC_QUALIFIERS): Define to ...
16114 (arm_mrc_qualifiers): ... this. New.
16115 (MCR_QUALIFIERS): Define to ...
16116 (arm_mcr_qualifiers): ... this. New.
16117 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
16118 __arm_mrc2): New.
16119 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
16120 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
16121 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
16122 VUNSPEC_MRC2): New.
16123
16124 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16125
16126 * config/arm/arm.md (*ldc): New.
16127 (*stc): New.
16128 (<ldc>): New.
16129 (<stc>): New.
16130 * config/arm/arm.c (arm_coproc_builtin_available): Add
16131 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
16132 (arm_coproc_ldc_stc_legitimate_address): New.
16133 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
16134 'qualifier_const_pointer'.
16135 (LDC_QUALIFIERS): Define to...
16136 (arm_ldc_qualifiers): ... this. New.
16137 (STC_QUALIFIERS): Define to...
16138 (arm_stc_qualifiers): ... this. New.
16139 * config/arm/arm-protos.h
16140 (arm_coproc_ldc_stc_legitimate_address): New.
16141 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
16142 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
16143 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
16144 stc2, stcl, stc2l): New.
16145 * config/arm/constraints.md (Uz): New.
16146 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
16147 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
16148 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
16149 VUNSPEC_STC2L): New.
16150
16151 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16152
16153 * config/arm/arm.md (<cdp>): New.
16154 * config/arm/arm.c (neon_const_bounds): Rename this ...
16155 (arm_const_bounds): ... this.
16156 (arm_coproc_builtin_available): New.
16157 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
16158 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
16159 (CDP_QUALIFIERS): Define to...
16160 (arm_cdp_qualifiers): ... this. New.
16161 (void_UP): Define.
16162 (arm_expand_builtin_args): Add case for 6 arguments.
16163 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
16164 (arm_const_bounds): ... this.
16165 (arm_coproc_builtin_available): New.
16166 * config/arm/arm_acle.h (__arm_cdp): New.
16167 (__arm_cdp2): New.
16168 * config/arm/arm_acle_builtins.def (cdp): New.
16169 (cdp2): New.
16170 * config/arm/iterators.md (CDPI,CDP,cdp): New.
16171 * config/arm/neon.md: Rename all 'neon_const_bounds' to
16172 'arm_const_bounds'.
16173 * config/arm/types.md (coproc): New.
16174 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
16175 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
16176 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
16177 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
16178
16179 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16180
16181 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
16182 (UBINOP_QUALIFIERS): New.
16183 (si_UP): Define.
16184 (acle_builtin_data): New. Change comment.
16185 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
16186 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
16187 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
16188 arm_acle_builtins.def.
16189 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
16190 (arm_init_acle_builtins): New.
16191 (CRC32_BUILTIN): Remove.
16192 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
16193 crc32cb, crc32ch and crc32cw.
16194 (arm_init_crc32_builtins): Remove.
16195 (arm_init_builtins): Use arm_init_acle_builtins rather
16196 than arm_init_crc32_builtins.
16197 (arm_expand_acle_builtin): New.
16198 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
16199 * config/arm/arm_acle_builtins.def: New.
16200
16201 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16202
16203 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
16204 (arm_builtin_datum): ... this.
16205 (arm_init_neon_builtin): Rename to ...
16206 (arm_init_builtin): ... this. Add a new parameters PREFIX
16207 and USE_SIG_IN_NAME.
16208 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
16209 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
16210 'arm_builtin_datum'.
16211 (arm_init_vfp_builtins): Likewise.
16212 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
16213 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
16214 (arm_expand_neon_args): Rename to ...
16215 (arm_expand_builtin_args): ... this. Rename builtin_arg
16216 enum values and differentiate between ARG_BUILTIN_MEMORY
16217 and ARG_BUILTIN_NEON_MEMORY.
16218 (arm_expand_neon_builtin_1): Rename to ...
16219 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
16220 values, arm_expand_builtin_args and add bool parameter NEON.
16221 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
16222 (arm_expand_vfp_builtin): Likewise.
16223 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
16224
16225 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16226
16227 PR middle-end/77484
16228 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
16229 * predict.c (tree_estimate_probability_bb): Reverse direction of
16230 polymorphic call predictor.
16231
16232 2017-01-06 David Malcolm <dmalcolm@redhat.com>
16233
16234 * passes.c (execute_one_pass): Split out pass-skipping logic into...
16235 (determine_pass_name_match): ...this new function and...
16236 (should_skip_pass_p): ...this new function.
16237
16238 2017-01-06 Nathan Sidwell <nathan@acm.org>
16239
16240 * ipa-visibility.c (function_and_variable_visibility): Reformat
16241 comments and long lines. Remove extrneous if.
16242 * symtab.c (symtab_node::make_decl_local): Fix code format.
16243 (symtab_node::set_section_for_node): Fix comment typo.
16244
16245 2017-01-06 Martin Liska <mliska@suse.cz>
16246
16247 PR bootstrap/79003
16248 * lra-constraints.c: Rename invariant to lra_invariant.
16249 * predict.c (set_even_probabilities): Initialize e to NULL.
16250
16251 2017-01-05 Martin Sebor <msebor@redhat.com>
16252
16253 PR tree-optimization/78910
16254 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
16255 (format_integer): Correct off-by-one error in the handling
16256 of precision with negative numbers in signed conversions..
16257
16258 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
16259
16260 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
16261
16262 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16263
16264 PR tree-optimization/71016
16265 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
16266 factor_out_conditional_conversion. Formatting fix.
16267 (factor_out_conditional_conversion): Add cond_stmt argument.
16268 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
16269 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
16270 Formatting fix.
16271
16272 2017-01-05 David Malcolm <dmalcolm@redhat.com>
16273
16274 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
16275 read-rtl-function.o, and selftest-rtl.o.
16276 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
16277 (selftest::aarch64_test_loading_full_dump): New function.
16278 (selftest::aarch64_run_selftests): New function.
16279 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
16280 selftest::aarch64_run_selftests.
16281 * config/i386/i386.c
16282 (selftest::ix86_test_loading_dump_fragment_1): New function.
16283 (selftest::ix86_test_loading_call_insn): New function.
16284 (selftest::ix86_test_loading_full_dump): New function.
16285 (selftest::ix86_test_loading_unspec): New function.
16286 (selftest::ix86_run_selftests): Call the new functions.
16287 * emit-rtl.c (maybe_set_max_label_num): New function.
16288 * emit-rtl.h (maybe_set_max_label_num): New decl.
16289 * function.c (instantiate_decls): Guard call to
16290 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
16291 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
16292 "static".
16293 * gensupport.c (gen_reader::gen_reader): Pass "false"
16294 for new "compact" param of rtx_reader.
16295 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
16296 rather than an empty string for NULL strings.
16297 * read-md.c: Potentially include config.h rather than bconfig.h.
16298 Wrap include of errors.h with #ifdef GENERATOR_FILE.
16299 (have_error): New global, copied from errors.c.
16300 (md_reader::read_name): Rename to...
16301 (md_reader::read_name_1): ...this, adding "out_loc" param,
16302 and converting "missing name or number" to returning false, rather
16303 than failing.
16304 (md_reader::read_name): Reimplement in terms of read_name_1.
16305 (md_reader::read_name_or_nil): New function.
16306 (md_reader::read_string): Handle "(nil)" by returning NULL.
16307 (md_reader::md_reader): Add new param "compact".
16308 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
16309 (md_reader::read_file): New method.
16310 * read-md.h (md_reader::md_reader): Add new param "compact".
16311 (md_reader::read_file): New method.
16312 (md_reader::is_compact): New accessor.
16313 (md_reader::read_name): Convert return type from void to file_location.
16314 (md_reader::read_name_or_nil): New decl.
16315 (md_reader::read_name_1): New decl.
16316 (md_reader::m_compact): New field.
16317 (noop_reader::noop_reader): Pass "false" for new "compact" param
16318 of rtx_reader.
16319 (rtx_reader::rtx_reader): Add new "compact" param.
16320 (rtx_reader::read_rtx_operand): Make virtual and convert return
16321 type from void to rtx.
16322 (rtx_reader::read_until): New decl.
16323 (rtx_reader::handle_any_trailing_information): New virtual function.
16324 (rtx_reader::postprocess): New virtual function.
16325 (rtx_reader::finalize_string): New virtual function.
16326 (rtx_reader::m_in_call_function_usage): New field.
16327 (rtx_reader::m_reuse_rtx_by_id): New field.
16328 * read-rtl-function.c: New file.
16329 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
16330 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
16331 (selftest::verify_three_block_rtl_cfg): New decl.
16332 * read-rtl-function.h: New file.
16333 * read-rtl.c: Potentially include config.h rather than bconfig.h.
16334 For host, include function.h, memmodel.h, and emit-rtl.h.
16335 (one_time_initialization): New function.
16336 (struct compact_insn_name): New struct.
16337 (compact_insn_names): New array.
16338 (find_code): Handle insn codes in compact dumps.
16339 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
16340 (bind_subst_iter_and_attr): Likewise.
16341 (add_condition_to_string): Likewise.
16342 (add_condition_to_rtx): Likewise.
16343 (apply_attribute_uses): Likewise.
16344 (add_current_iterators): Likewise.
16345 (apply_iterators): Likewise.
16346 (initialize_iterators): Guard usage of apply_subst_iterator with
16347 #ifdef GENERATOR_FILE.
16348 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
16349 (md_reader::read_mapping): Likewise.
16350 (add_define_attr_for_define_subst): Likewise.
16351 (add_define_subst_attr): Likewise.
16352 (read_subst_mapping): Likewise.
16353 (check_code_iterator): Likewise.
16354 (rtx_reader::read_rtx): Likewise. Move one-time initialization
16355 logic to...
16356 (one_time_initialization): New function.
16357 (rtx_reader::read_until): New method.
16358 (read_flags): New function.
16359 (parse_reg_note_name): New function.
16360 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
16361 Handle reuse_rtx ids.
16362 Wrap iterator lookup within #ifdef GENERATOR_FILE.
16363 Add parsing support for RTL dumps, mirroring the special-cases in
16364 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
16365 values, and calling handle_any_trailing_information.
16366 (rtx_reader::read_rtx_operand): Convert return type from void
16367 to rtx, returning return_rtx. Handle case 'e'. Call
16368 finalize_string on XSTR and XTMPL fields.
16369 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
16370 "(nil)" values were omitted. Call the postprocess vfunc on the
16371 return_rtx.
16372 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
16373 class ctor. Initialize m_in_call_function_usage. Call
16374 one_time_initialization.
16375 * rtl-tests.c (selftest::test_uncond_jump): Call
16376 set_new_first_and_last_insn.
16377 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
16378 * selftest-rtl.c: New file.
16379 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
16380 (selftest::get_insn_by_uid): New decl.
16381 * selftest-run-tests.c (selftest::run_tests): Call
16382 read_rtl_function_c_tests.
16383 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
16384 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
16385 dumps.
16386
16387 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
16388
16389 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
16390 operands in a special way. Assert that pos+len <= mode precision.
16391
16392 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16393
16394 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
16395 3 argument Alias with unlimited for the negative form.
16396 (fno-vect-cost-model): Removed.
16397
16398 2017-01-05 Martin Liska <mliska@suse.cz>
16399
16400 * hsa-gen.c (gen_hsa_divmod): New function.
16401 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
16402
16403 2017-01-05 Martin Liska <mliska@suse.cz>
16404
16405 PR pch/78970
16406 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
16407 header.
16408
16409 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16410
16411 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
16412 small constant length operands.
16413
16414 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16415
16416 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
16417 between loop iterations.
16418
16419 2017-01-05 Martin Liska <mliska@suse.cz>
16420
16421 PR sanitizer/78815
16422 * gimplify.c (gimplify_decl_expr): Compare to
16423 asan_poisoned_variables instread of checking flags.
16424 (gimplify_target_expr): Likewise.
16425 (gimplify_expr): Likewise.
16426 (gimplify_function_tree): Conditionally initialize
16427 asan_poisoned_variables.
16428
16429 2017-01-04 Jeff Law <law@redhat.com>
16430
16431 PR tree-optimizatin/78812
16432 * rtl.h (contains_mem_rtx_p): Prototype.
16433 * ifcvt.c (containts_mem_rtx_p): Move from here to...
16434 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
16435 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
16436 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
16437 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
16438
16439 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16440
16441 * input.c (assert_char_at_range): Default-initialize actual_range.
16442
16443 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16444
16445 * df-scan.c (df_ref_create_structure): Make regno unsigned,
16446 to match the caller.
16447
16448 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16449
16450 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
16451 insns after final jump in test to emit dummy move.
16452
16453 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16454
16455 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
16456 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
16457
16458 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16459
16460 * multiple_target.c (create_dispatcher_calls): Init e_next.
16461 * tree-ssa-loop-split.c (split_loop): Init border.
16462 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
16463 scalar_type.
16464
16465 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
16466
16467 PR target/71977
16468 PR target/70568
16469 PR target/78823
16470 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
16471 (altivec_register_operand): Do not return true if the operand
16472 contains a SUBREG mixing SImode and SFmode.
16473 (vsx_register_operand): Likewise.
16474 (vsx_reg_sfsubreg_ok): New predicate.
16475 (vfloat_operand): Do not return true if the operand contains a
16476 SUBREG mixing SImode and SFmode.
16477 (vint_operand): Likewise.
16478 (vlogical_operand): Likewise.
16479 (gpc_reg_operand): Likewise.
16480 (int_reg_operand): Likewise.
16481 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
16482 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
16483 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
16484 SImode and SFmode.
16485 (rs6000_emit_move_si_sf_subreg): New helper function.
16486 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
16487 fixup SUBREGs involving SImode and SFmode.
16488 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
16489 numbers for the new peephole2 optimization.
16490 (peephole2 for SFmode unions): New peephole2 to optimize cases in
16491 the GLIBC math library that do AND/IOR/XOR operations on single
16492 precision floating point.
16493 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
16494 target macros to say whether we need to avoid SUBREGs mixing
16495 SImode and SFmode.
16496 (TARGET_ALLOW_SF_SUBREG): Likewise.
16497 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
16498 (UNSPEC_SI_FROM_SF): Likewise.
16499 (iorxor): Change spacing.
16500 (and_ior_xor): New iterator for AND, IOR, and XOR.
16501 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
16502 (movdi_from_sf_zero_ext): Likewise.
16503 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
16504 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
16505 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
16506 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
16507 (fms<mode>4): Likewise.
16508 (fnma<mode>4): Likewise.
16509 (fnms<mode>4): Likewise.
16510 (nfma<mode>4): Likewise.
16511 (nfms<mode>4): Likewise.
16512
16513 2017-01-04 Marek Polacek <polacek@redhat.com>
16514
16515 PR c++/64767
16516 * doc/invoke.texi: Document -Wpointer-compare.
16517
16518 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16519
16520 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
16521 RejectNegative.
16522
16523 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
16524 descriptions for -gdwarf-5 and emit them as uleb128 instead of
16525 2-byte data.
16526
16527 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
16528
16529 PR target/78056
16530 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
16531 documentation of the powerpc_popcntb_ok attribute.
16532 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
16533 code to issue warning messages if a requested CPU configuration is
16534 not supported by the binary (assembler and loader) toolchain.
16535 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
16536 made to define a built-in function that has been disabled.
16537 (paired_init_builtins): Add assertion to prevent ICE if attempt is
16538 made to define a built-in function that has been disabled.
16539 (altivec_init_builtins): Add comment explaining why definition
16540 of the DST built-in functions is not preceded by an assertion
16541 check. Add assertions to prevent ICE if attempts are made to
16542 define an altivec predicate or an abs* built-in function that has
16543 been disabled.
16544 (htm_init_builtins): Add comment explaining why definition of the
16545 htm built-in functions is not preceded by an assertion check.
16546
16547 2017-01-04 Jeff Law <law@redhat.com>
16548
16549 PR tree-optimizatin/67955
16550 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
16551 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
16552 the points-to solution does not include pt_null. Use DECL_PT_UID
16553 unconditionally.
16554
16555 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
16556
16557 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
16558 Use gen_int_mode instead of gen_lopwart for const_int operands.
16559
16560 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16561
16562 PR tree-optimization/71563
16563 * match.pd: Simplify X << Y into X if Y is known to be 0 or
16564 out of range value - has low bits known to be zero.
16565
16566 2017-01-04 Alan Modra <amodra@gmail.com>
16567
16568 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
16569 * configure: Regenerate.
16570 * config.in: Regenerate.
16571
16572 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16573
16574 PR bootstrap/77569
16575 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
16576 a substring of the message, but strcmp with the whole message. Ifdef
16577 ENABLE_NLS, translate the message first using dgettext.
16578
16579 2017-01-03 Jeff Law <law@redhat.com>
16580
16581 PR tree-optimizatin/78856
16582 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
16583 (mark_threaded_blocks): Remove code to truncate thread paths that
16584 cross multiple loop headers. Instead invalidate the cached loop
16585 iteration information and handle case of a thread path walking
16586 into an irreducible region.
16587
16588 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
16589
16590 PR target/78900
16591 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
16592 assertions. Add support for doing the signbit if the IEEE 128-bit
16593 floating point value is in a GPR.
16594 * config/rs6000/rs6000.md (Fsignbit): Delete.
16595 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
16596 Update the length attribute if the value is in a GPR.
16597 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
16598 the sign or zero extension instruction, since the value is always 0/1.
16599 (signbit<mode>2_dm2): Delete using <Fsignbit>.
16600
16601 PR target/78953
16602 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
16603 extracting SImode to a GPR register so that we can generate a
16604 store, limit the vector to be in a traditional Altivec register
16605 for the vextuwrx instruction.
16606
16607 2017-01-03 Ian Lance Taylor <iant@google.com>
16608
16609 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
16610
16611 2017-01-03 Martin Sebor <msebor@redhat.com>
16612
16613 PR tree-optimization/78696
16614 * gimple-ssa-sprintf.c (format_floating): Correct handling of
16615 precision. Use MPFR for %f for greater fidelity. Correct handling
16616 of %g.
16617 (pass_sprintf_length::compute_format_length): Set width and precision
16618 specified by asrerisk to void_node for vararg functions.
16619 (try_substitute_return_value): Adjust dump output.
16620
16621 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
16622
16623 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
16624
16625 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
16626
16627 * doc/invoke.texi (SPARC options): Document -mlra as the default.
16628 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
16629 -mlra/-mno-lra was passed to the compiler.
16630
16631 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
16632
16633 PR rtl-optimization/65618
16634 * emit-rtl.c (try_split): Move initialization of "before" and
16635 "after" to just before the call to emit_insn_after_setloc.
16636
16637 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
16638
16639 * doc/md.texi (Standard Names): Remove reference to Java frontend.
16640
16641 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
16642
16643 * dwarf2out.c (gen_enumeration_type_die): When
16644 -gno-strict-dwarf, add a DW_AT_encoding attribute.
16645
16646 2017-01-03 Jakub Jelinek <jakub@redhat.com>
16647
16648 PR tree-optimization/78965
16649 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
16650 Change first argument from const call_info & to call_info &. For %n
16651 set info.nowrite to false.
16652
16653 PR middle-end/78901
16654 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
16655 possibly throwing calls.
16656
16657 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
16658 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
16659 and fns handling, rather than in a separate case SSA_NAME.
16660
16661 2017-01-02 Jeff Law <law@redhat.com>
16662
16663 * config/darwin-driver.c (darwin_driver_init): Const-correctness
16664 fixes for first_period and second_period variables.
16665
16666 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
16667
16668 PR target/78967
16669 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
16670 (*insvqi_1): New insn pattern.
16671 (*insvqi_1_mem_rex64): Ditto.
16672 (*insvqi_2): Ditto.
16673 (*insvqi_3): Rename from *insvqi.
16674
16675 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
16676
16677 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
16678
16679 * doc/cfg.texi (Edges): Remove reference to Java.
16680 (Maintaining the CFG): Ditto.
16681
16682 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16683
16684 PR middle-end/77674
16685 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
16686 transparent aliases.
16687
16688 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16689
16690 PR middle-end/77484
16691 * predict.def (PRED_CALL): Update hitrate.
16692 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
16693 * predict.c (tree_estimate_probability_bb): Split CALL predictor
16694 into direct/indirect/polymorphic variants.
16695
16696 2017-01-01 Jakub Jelinek <jakub@redhat.com>
16697
16698 Update copyright years.
16699
16700 * gcc.c (process_command): Update copyright notice dates.
16701 * gcov-dump.c (print_version): Ditto.
16702 * gcov.c (print_version): Ditto.
16703 * gcov-tool.c (print_version): Ditto.
16704 * gengtype.c (create_file): Ditto.
16705 * doc/cpp.texi: Bump @copying's copyright year.
16706 * doc/cppinternals.texi: Ditto.
16707 * doc/gcc.texi: Ditto.
16708 * doc/gccint.texi: Ditto.
16709 * doc/gcov.texi: Ditto.
16710 * doc/install.texi: Ditto.
16711 * doc/invoke.texi: Ditto.
16712 \f
16713 Copyright (C) 2017 Free Software Foundation, Inc.
16714
16715 Copying and distribution of this file, with or without modification,
16716 are permitted in any medium without royalty provided the copyright
16717 notice and this notice are preserved.