tree-predcom.c: (struct chain): Handle store-store chain in which stores for eliminat...
[gcc.git] / gcc / ChangeLog
1 2017-07-28 Bin Cheng <bin.cheng@arm.com>
2
3 * tree-predcom.c: (struct chain): Handle store-store chain in which
4 stores for elimination only store loop invariant values.
5 (execute_pred_commoning_chain): Ditto.
6 (prepare_initializers_chain_store_elim): Ditto.
7 (prepare_finalizers): Ditto.
8 (is_inv_store_elimination_chain): New function.
9 (initialize_root_vars_store_elim_1): New function.
10
11 2017-07-28 Bin Cheng <bin.cheng@arm.com>
12
13 * tree-predcom.c: Revise general description of the pass.
14 (enum chain_type): New enum type for store elimination.
15 (struct chain): New field supporting store elimination.
16 (struct component): Ditto.
17 (dump_chain): Dump store-stores chain.
18 (release_chain): Release resources.
19 (split_data_refs_to_components): Compute and create component
20 contains only stores for elimination.
21 (get_chain_last_ref_at): New function.
22 (make_invariant_chain): Initialization.
23 (make_rooted_chain): Specify chain type in parameter and record it.
24 (add_looparound_copies): Skip for store-stores chain.
25 (determine_roots_comp): Compute type of chain and pass it to
26 make_rooted_chain.
27 (initialize_root_vars_store_elim_2): New function.
28 (finalize_eliminated_stores): New function.
29 (remove_stmt): Handle store for elimination.
30 (execute_pred_commoning_chain): Execute predictive commoning on
31 store-store chains.
32 (determine_unroll_factor): Skip unroll for store-stores chain.
33 (prepare_initializers_chain_store_elim): New function.
34 (prepare_initializers_chain): Hanlde store-store chain.
35 (prepare_finalizers_chain, prepare_finalizers): New function.
36 (tree_predictive_commoning_loop): Return integer value indicating
37 if loop is unrolled or lcssa form is corrupted.
38 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
39
40 2017-07-28 Bin Cheng <bin.cheng@arm.com>
41
42 * tree-predcom.c (initialize_root): Delete.
43 (execute_pred_commoning_chain): Initialize root vars and replace
44 reference of non-combined chain directly, rather than call above
45 function.
46
47 2017-07-28 Bin Cheng <bin.cheng@arm.com>
48
49 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
50 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
51
52 2017-07-28 Bin Cheng <bin.cheng@arm.com>
53
54 * tree-predcom.c (struct chain): New field init_seq.
55 (release_chain): Release init_seq.
56 (prepare_initializers_chain): Record intialization stmts in above
57 field.
58 (insert_init_seqs): New function.
59 (tree_predictive_commoning_loop): Call insert_init_seqs.
60
61 2017-07-28 Bin Cheng <bin.cheng@arm.com>
62
63 * tree-predcom.c (determine_roots_comp): Skip trivial components.
64
65 2017-07-28 Richard Biener <rguenther@suse.de>
66
67 * match.pd: Remove superfluous :c.
68 * genmatch.c (simplify::id): Add member.
69 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
70 Copy id.
71 (current_id): New global.
72 (dt_node::parent): Move from ...
73 (dt_operand::parent): ... here. Add for_id member.
74 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
75 (decision_tree::find_node): Relax order requirement when
76 merging DT_TRUE nodes to ones inbetween the current simplify
77 and the one we try to merge with. Add diagnostic whenever
78 we need to enforce pattern order by not merging.
79 (decision_tree::insert): Set current_id.
80 (decision_tree::print_node): Dump parent node and for_id.
81 (parser::last_id): Add member.
82 (parser::push_simplify): Assign unique id.
83 (parser::parser): Initialize last_id.
84
85 2017-07-28 Martin Liska <mliska@suse.cz>
86
87 PR sanitizer/81340
88 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
89 gimple_build_debug_bind.
90
91 2017-07-28 Richard Biener <rguenther@suse.de>
92
93 PR tree-optimization/81502
94 * match.pd: Add pattern combining BIT_INSERT_EXPR with
95 BIT_FIELD_REF.
96 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
97 size/pos operands.
98 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
99 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
100 for BIT_FIELD_REF args.
101 * fold-const.c (make_bit_field_ref): Likewise.
102 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
103
104 2017-07-28 Jakub Jelinek <jakub@redhat.com>
105
106 PR sanitizer/80998
107 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
108 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
109 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
110 Or it into SANITIZER_UNDEFINED.
111 * ubsan.c: Include gimple-fold.h and varasm.h.
112 (ubsan_expand_ptr_ifn): New function.
113 (instrument_pointer_overflow): New function.
114 (maybe_instrument_pointer_overflow): New function.
115 (instrument_object_size): Formatting fix.
116 (pass_ubsan::execute): Call instrument_pointer_overflow
117 and maybe_instrument_pointer_overflow.
118 * internal-fn.c (expand_UBSAN_PTR): New function.
119 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
120 * sanitizer.def (__ubsan_handle_pointer_overflow,
121 __ubsan_handle_pointer_overflow_abort): New builtins.
122 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
123 * internal-fn.def (UBSAN_PTR): New internal function.
124 * opts.c (sanitizer_opts): Add pointer-overflow.
125 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
126 * fold-const.c (build_range_check): Compute pointer range check in
127 integral type if pointer arithmetics would be needed. Formatting
128 fixes.
129
130 2017-07-28 Martin Liska <mliska@suse.cz>
131
132 PR sanitizer/81460
133 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
134 parameters that are of a variable-length.
135
136 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
137
138 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
139 rs6000/biarch64.h.
140 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
141 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
142 (CRT_CALL_STATIC_FUNCTION): Likewise.
143 (ASM_DEFAULT_SPEC): New define.
144 (ASM_SPEC32): Likewise.
145 (ASM_SPEC64): Likewise.
146 (ASM_SPEC_COMMON): Likewise.
147 (ASM_SPEC): Likewise.
148 (INVALID_64BIT): Likewise.
149 (LINK_OS_DEFAULT_SPEC): Likewise.
150 (LINK_OS_SPEC32): Likewise.
151 (LINK_OS_SPEC64): Likewise.
152 (POWERPC_LINUX): Likewise.
153 (PTRDIFF_TYPE): Likewise.
154 (RESTORE_FP_PREFIX): Likewise.
155 (RESTORE_FP_SUFFIX): Likewise.
156 (SAVE_FP_PREFIX): Likewise.
157 (SAVE_FP_SUFFIX): Likewise.
158 (SIZE_TYPE): Likewise.
159 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
160 (TARGET_64BIT): Likewise.
161 (TARGET_64BIT): Likewise.
162 (TARGET_AIX): Likewise.
163 (WCHAR_TYPE_SIZE): Likewise.
164 (WCHAR_TYPE): Undefine.
165 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
166 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
167 (CPP_OS_RTEMS_SPEC): Delete.
168 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
169 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
170 link_os_spec64.
171 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
172
173 2017-07-28 Jakub Jelinek <jakub@redhat.com>
174
175 PR tree-optimization/81578
176 * tree-parloops.c (build_new_reduction): Bail out if
177 reduction_code isn't one of the standard OpenMP reductions.
178 Move the details printing after that decision.
179
180 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
181
182 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
183 related to reload_in_progress.
184 (splat_input_operand): Likewise.
185 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
186 Delete prototype.
187 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
188 field.
189 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
190 (TARGET_INSTANTIATE_DECLS): Likewise.
191 (legitimate_indexed_address_p): Delete reload_in_progress code.
192 (rs6000_debug_legitimate_address_p): Likewise.
193 (rs6000_eliminate_indexed_memrefs): Likewise.
194 (rs6000_emit_le_vsx_store): Likewise.
195 (rs6000_emit_move_si_sf_subreg): Likewise.
196 (rs6000_emit_move): Likewise.
197 (register_to_reg_type): Likewise.
198 (rs6000_pre_atomic_barrier): Likewise.
199 (rs6000_machopic_legitimize_pic_address): Likewise.
200 (rs6000_allocate_stack_temp): Likewise.
201 (rs6000_address_for_fpconvert): Likewise.
202 (rs6000_address_for_altivec): Likewise.
203 (rs6000_secondary_memory_needed_rtx): Delete function.
204 (rs6000_check_sdmode): Likewise.
205 (rs6000_alloc_sdmode_stack_slot): Likewise.
206 (rs6000_instantiate_decls): Likewise.
207 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
208 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
209 Delete reload_in_progress.
210 (*vec_reload_and_plus_<mptrsize>): Likewise.
211 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
212 (vsx_div_v2di): Likewise.
213 (vsx_udiv_v2di): Likewise.
214
215 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
216
217 * config/rs6000/rs6000.opt (mlra): Replace with stub.
218 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
219 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
220 (rs6000_debug_reg_global): Delete print of LRA status.
221 (rs6000_option_override_internal): Delete dead LRA related code.
222 (rs6000_lra_p): Delete function.
223 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
224
225 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
226
227 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
228 * config/riscv/rtems.h: New file.
229
230 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
231 Sudakshina Das <sudi.das@arm.com>
232
233 * config/aarch64/aarch64.md
234 (define_split for and<mode>3nr_compare): Move
235 non aarch64_logical_operand to a register.
236 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
237 register immediate operand to a register.
238 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
239
240 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
241
242 PR middle-end/81564
243 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
244
245 2017-07-27 Richard Biener <rguenther@suse.de>
246
247 PR tree-optimization/81573
248 PR tree-optimization/81494
249 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
250 multi defuse cycle case.
251
252 2017-07-27 Richard Biener <rguenther@suse.de>
253
254 PR tree-optimization/81571
255 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
256 PHIs.
257
258 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
259
260 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
261 earlier and only if MASK_FPU is set. Adjust formatting.
262
263 2017-07-27 Martin Liska <mliska@suse.cz>
264
265 * opt-functions.awk: Add validation of value of Init.
266 * optc-gen.awk: Pass new argument.
267
268 2017-07-27 Martin Liska <mliska@suse.cz>
269
270 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
271 Fix wrong condition.
272
273 2017-07-27 Martin Liska <mliska@suse.cz>
274
275 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
276 BBs and edges seen by autoFDO.
277
278 2017-07-27 Richard Biener <rguenther@suse.de>
279
280 PR tree-optimization/81502
281 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
282 with incompatible but same sized type.
283 (execute_update_addresses_taken): Likewise.
284
285 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
286
287 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
288 flag_tree_loop_vectorize rather than flag_tree_vectorize.
289
290 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
291
292 PR target/81534
293 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
294 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
295 Change s_operand to memory_operand.
296
297 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
298
299 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
300 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
301 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
302 Emit instructions rather than returning an expression. Handle TFmode
303 and KFmode by casting to TImode.
304 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
305 (rs6000_emit_le_vsx_store): Likewise.
306 * config/rs6000/vsx.md (VSX_TI): New iterator.
307 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
308 (*vsx_le_undo_permute_<mode>): Likewise.
309 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
310 emit the split sequence.
311 (*vsx_le_perm_store_<mode>): Likewise.
312
313 2017-07-27 Jakub Jelinek <jakub@redhat.com>
314
315 PR tree-optimization/81555
316 PR tree-optimization/81556
317 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
318 if true, force CHANGED for the recursive invocation.
319 (reassociate_bb): Remember original length of ops array, pass
320 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
321
322 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
323 attributes for noipa attribute. For naked attribute use
324 lookup_attribute first before lookup_attribute_spec.
325 * final.c (rest_of_handle_final): Disable IPA RA for functions with
326 noipa attribute.
327 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
328 for functions with noipa attribute.
329 (cgraph_externally_visible_p): Return true for functions with noipa
330 attribute.
331 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
332 for functions with noipa attribute.
333 * doc/extend.texi: Document noipa function attribute.
334 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
335 also for functions with noipa attribute.
336 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
337
338 2017-07-26 Andrew Pinski <apinski@cavium.com>
339
340 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
341 vec_unalign_load_cost and vec_unalign_store_cost.
342
343 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
344
345 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
346 -mvsx-small-integer option.
347 (ISA_3_0_MASKS_IEEE): Likewise.
348 (OTHER_VSX_VECTOR_MASKS): Likewise.
349 (POWERPC_MASKS): Likewise.
350 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
351 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
352 code, only testing for DImode being allowed in non-VSX floating
353 point registers.
354 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
355 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
356 another VSX test.
357 (rs6000_option_override_internal): Delete -mvsx-small-integer.
358 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
359 TARGET_P8_VECTOR test.
360 (rs6000_secondary_reload_simple_move): Likewise.
361 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
362 since TARGET_P9_VECTOR was already tested.
363 (rs6000_opt_masks): Remove -mvsx-small-integer.
364 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
365 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
366 used.
367 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
368 test for TARGET_VEXTRACTUB was used, and that uses
369 TARGET_P9_VECTOR.
370 (p9 extract splitter): Likewise.
371 (vsx_extract_<mode>_di_p9): Likewise.
372 (vsx_extract_<mode>_store_p9): Likewise.
373 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
374 for TARGET_P9_VECTOR was used. Delete code that is now dead with
375 the elimination of TARGET_VSX_SMALL_INTEGER.
376 (vsx_extract_<mode>_p8): Likewise.
377 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
378 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
379 (vsx_set_<mode>_p9): Likewise.
380 (vsx_set_v4sf_p9): Likewise.
381 (vsx_set_v4sf_p9_zero): Likewise.
382 (vsx_insert_extract_v4sf_p9): Likewise.
383 (vsx_insert_extract_v4sf_p9_2): Likewise.
384 * config/rs6000/rs6000.md (sign extend splitter): Change
385 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
386 (floatsi<mode>2_lfiwax_mem): Likewise.
387 (floatunssi<mode>2_lfiwzx_mem): Likewise.
388 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
389 since a test for TARGET_P9_VECTOR was used.
390 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
391 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
392 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
393 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
394 TARGET_P8_VECTOR test.
395 (fix_trunc<mode>si2_stfiwx): Likewise.
396 (fix_trunc<mode>si2_internal): Likewise.
397 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
398 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
399 used.
400 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
401 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
402 TARGET_P8_VECTOR test.
403 (fixuns_trunc<mode>si2_stfiwx): Likewise.
404 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
405 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
406 used.
407 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
408 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
409 since a test for TARGET_P9_VECTOR was used.
410 (splitter for loading small constants): Likewise.
411
412 2017-07-26 Andrew Pinski <apinski@cavium.com>
413
414 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
415 vec_fp_stmt_cost.
416
417 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
418
419 PR target/81563
420 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
421 (fp_valid_at): Likewise.
422
423 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
424
425 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
426 (qdf24xx_addrcost_table): Likewise.
427 (cortexa57_tunings): Update to use generic_branch_cost.
428 (cortexa72_tunings): Likewise.
429 (cortexa73_tunings): Likewise.
430 (qdf24xx_tunings): Likewise.
431
432 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
433
434 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
435 (thunderx2t99_branch_cost): Likewise.
436 (cortexa35_tunings): Update to use generic_branch_cost.
437 (cortexa53_tunings): Likewise.
438 (cortexa57_tunings): Likewise.
439 (cortexa72_tunings): Likewise.
440 (cortexa73_tunings): Likewise.
441 (thunderx2t99_tunings): Likewise.
442
443 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
444
445 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
446 (sparc_option_override): Honour MASK_FSMULD.
447 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
448 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
449 * config/sparc/sparc.opt (mfsmuld): New option.
450 * doc/invoke.texi (mfsmuld): Document option.
451
452 2017-07-26 Marek Polacek <polacek@redhat.com>
453
454 PR middle-end/70992
455 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
456
457 2017-07-26 Richard Biener <rguenther@suse.de>
458
459 * gimple-match-head.c (do_valueize): Return OP if valueize
460 returns NULL_TREE.
461 (get_def): New helper to get at the def stmt of a SSA name
462 if valueize allows.
463 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
464 do_valueize to get at the def stmt.
465 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
466
467 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
468
469 PR middle-end/46932
470 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
471
472 2017-07-26 Martin Liska <mliska@suse.cz>
473
474 PR sanitize/81186
475 * function.c (expand_function_start): Make expansion of
476 nonlocal_goto_save_area after parm_birth_insn.
477
478 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
479
480 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
481 from all CPU target flags enable members.
482
483 2017-07-26 Richard Biener <rguenther@suse.de>
484
485 * genmatch.c (dt_simplify::gen): Make iterator vars const.
486 (decision_tree::gen): Make 'type' const.
487 (write_predicate): Likewise.
488
489 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
490
491 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
492 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
493 (rs6000_option_override_internal): Likewise.
494 (rs6000_expand_vector_set): Likewise.
495 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
496 (TARGET_UPPER_REGS_SF): Likewise.
497 (TARGET_UPPER_REGS_DI): Likewise.
498 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
499 (TARGET_DIRECT_MOVE_64BIT): Likewise.
500 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
501 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
502 (Splitters for DI constants in Altivec registers): Likewise.
503 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
504 (vsx_set_v4sf_p9): Likewise.
505 (vsx_set_v4sf_p9_zero): Likewise.
506 (vsx_insert_extract_v4sf_p9): Likewise.
507 (vsx_insert_extract_v4sf_p9_2): Likewise.
508
509 2017-07-25 Carl Love <cel@us.ibm.com>
510
511 * doc/extend.texi: Update the built-in documentation file for the
512 existing built-in functions
513 vector signed char vec_cnttz (vector signed char);
514 vector unsigned char vec_cnttz (vector unsigned char);
515 vector signed short vec_cnttz (vector signed short);
516 vector unsigned short vec_cnttz (vector unsigned short);
517 vector signed int vec_cnttz (vector signed int);
518 vector unsigned int vec_cnttz (vector unsigned int);
519 vector signed long long vec_cnttz (vector signed long long);
520 vector unsigned long long vec_cnttz (vector unsigned long long);
521
522 2017-07-25 Andrew Pinski <apinski@cavium.com>
523
524 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
525 accesses where the use is for the first operand of a BIT_INSERT.
526
527 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
528
529 PR bootstrap/81521
530 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
531 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
532
533 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
534
535 * config/i386/gstabs.h: Delete.
536 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
537
538 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
539
540 * config/i386/i386.c (ix86_decompose_address): Do not check for
541 register RTX when looking at index_reg or base_reg.
542 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
543
544 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
545
546 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
547 to update EH info here.
548
549 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
550
551 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
552
553 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
554
555 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
556
557 2017-07-25 Torsten Duwe <duwe@suse.de>
558
559 * common.opt: Introduce -fpatchable-function-entry
560 command line option, and its variables function_entry_patch_area_size
561 and function_entry_patch_area_start.
562 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
563 including a two-value parser.
564 * target.def (print_patchable_function_entry): New target hook.
565 * targhooks.h (default_print_patchable_function_entry): New function.
566 * targhooks.c (default_print_patchable_function_entry): Likewise.
567 * toplev.c (process_options): Switch off IPA-RA if
568 patchable function entries are being generated.
569 * varasm.c (assemble_start_function): Look at the
570 patchable-function-entry command line switch and current
571 function attributes and maybe generate NOP instructions by
572 calling the print_patchable_function_entry hook.
573 * doc/extend.texi: Document patchable_function_entry attribute.
574 * doc/invoke.texi: Document -fpatchable_function_entry
575 command line option.
576 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
577 New target hook.
578 * doc/tm.texi: Re-generate.
579
580 2017-07-25 Jakub Jelinek <jakub@redhat.com>
581
582 PR target/81532
583 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
584 TARGET_AVX512DQ rather than TARGET_AVX512BW.
585
586 2017-07-25 Tamar Christina <tamar.christina@arm.com>
587
588 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
589
590 2017-07-25 Richard Biener <rguenther@suse.de>
591
592 PR tree-optimization/81455
593 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
594 not walk in cycles when looking for guards.
595
596 2017-07-25 Richard Biener <rguenther@suse.de>
597
598 PR tree-optimization/81529
599 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
600 when optimizing backedge uses.
601
602 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
603
604 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
605 character for AIX.
606 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
607 to dl_section_ref. On AIX, append an expression to subtract
608 the size of the section length to dl_section_ref.
609
610 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
611
612 * configure.ac: If any of the config.* scripts fail, exit 1.
613 * configure: Regenerate.
614
615 2017-07-25 Richard Biener <rguenther@suse.de>
616
617 PR middle-end/81546
618 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
619 of immediate uses, be more verbose on errors.
620
621 2017-07-25 Richard Biener <rguenther@suse.de>
622
623 PR tree-optimization/81510
624 * tree-vect-loop.c (vect_is_simple_reduction): When the
625 reduction stmt is not inside the loop bail out.
626
627 2017-07-25 Richard Biener <rguenther@suse.de>
628
629 PR tree-optimization/81303
630 * tree-vect-loop-manip.c (vect_loop_versioning): Build
631 profitability check against LOOP_VINFO_NITERSM1.
632
633 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
634
635 * domwalk.c (cmp_bb_postorder): Simplify.
636 (sort_bbs_postorder): New function. Use it...
637 (dom_walker::walk): ...here to optimize common cases.
638
639 2017-07-25 Martin Liska <mliska@suse.cz>
640
641 PR ipa/81520
642 * ipa-visibility.c (function_and_variable_visibility): Make the
643 redirection just on target that supports aliasing.
644 Fix GNU coding style.
645
646 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
647
648 PR libgcc/61152
649 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
650 Format changes.
651 * config/arm/rtems.h: Likewise.
652 * config/bfin/rtems.h: Likewise.
653 * config/i386/rtemself.h: Likewise.
654 * config/lm32/rtems.h: Likewise.
655 * config/m32c/rtems.h: Likewise.
656 * config/m68k/rtemself.h: Likewise.
657 * config/microblaze/rtems.h: Likewise.
658 * config/mips/rtems.h: Likewise.
659 * config/moxie/rtems.h: Likewise.
660 * config/nios2/rtems.h: Likewise.
661 * config/powerpcspe/rtems.h: Likewise.
662 * config/rs6000/rtems.h: Likewise.
663 * config/rtems.h: Likewise.
664 * config/sh/rtems.h: Likewise.
665 * config/sh/rtemself.h: Likewise.
666 * config/sparc/rtemself.h: Likewise.
667
668 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
669
670 PR 81487
671 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
672 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
673 * tree-ssa-structalias.c (alias_get_name): Same.
674
675 2017-07-25 Bin Cheng <bin.cheng@arm.com>
676
677 PR target/81414
678 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
679 instructions if no du chain is found.
680
681 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
682
683 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
684
685 2017-07-25 Richard Biener <rguenther@suse.de>
686
687 PR middle-end/81505
688 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
689 sticky.
690
691 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
692
693 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
694 upper-regs options.
695 (ISA_2_7_MASKS_SERVER): Likewise.
696 (ISA_3_0_MASKS_IEEE): Likewise.
697 (OTHER_P8_VECTOR_MASKS): Likewise.
698 (OTHER_VSX_VECTOR_MASKS): Likewise.
699 (POWERPC_MASKS): Likewise.
700 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
701 duplicate list of options.
702 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
703 explicit -mupper-regs options.
704 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
705 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
706 alias for -mupper-regs-df.
707 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
708 (rs6000_init_hard_regno_mode_ok): Likewise.
709 (rs6000_option_override_internal): Likewise.
710 (rs6000_opt_masks): Likewise.
711 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
712 options in terms of whether -mvsx or -mpower8-vector was used.
713 (TARGET_UPPER_REGS_DI): Likewise.
714 (TARGET_UPPER_REGS_SF): Likewise.
715 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
716 -mupper-regs-* options.
717
718 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
719
720 * passes.c (emergency_dump_function): Print some empty lines and a
721 header before the RTL dump.
722
723 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
724
725 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
726
727 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
728
729 PR target/79041
730 * config/aarch64/aarch64.c (aarch64_classify_symbol):
731 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
732
733 2017-07-24 Carl Love <cel@us.ibm.com>
734
735 * config/rs6000/rs6000-c.c: Add support for built-in functions
736 vector float vec_extract_fp32_from_shorth (vector unsigned short);
737 vector float vec_extract_fp32_from_shortl (vector unsigned short);
738 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
739 vec_extract_fp_from_shortl): Add defines for the two builtins.
740 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
741 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
742 new builtins.
743 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
744 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
745 * doc/extend.texi: Update the built-in documentation file for the
746 new built-in function.
747
748 2017-07-24 Jakub Jelinek <jakub@redhat.com>
749
750 PR bootstrap/81521
751 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
752 documentation.
753 * doc/generic.texi: Likewise.
754 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
755 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
756
757 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
758
759 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
760 (aarch64_mls_elt_merge<mode>): Likewise.
761
762 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
763
764 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
765 having __cxa_atexit.
766
767 2017-07-23 Michael Collison <michael.collison@arm.com>
768
769 * config/arm/arm.c (arm_option_override): Deprecate
770 use of -mstructure-size-boundary.
771 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
772 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
773
774 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
775
776 PR target/80695
777 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
778 Reduce cost estimate for direct moves.
779
780 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
781
782 PR target/80569
783 * config/i386/i386.c (ix86_option_override_internal): Disable
784 BMI, BMI2 and TBM instructions for -m16.
785
786 2017-07-21 Carl Love <cel@us.ibm.com>
787
788 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
789 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
790 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
791 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
792 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
793 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
794 VMULOSW): New enum "unspec" values.
795 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
796 altivec_vmulosw): New patterns.
797 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
798 VMULOSW): Add definitions.
799
800 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
801
802 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
803 (qdf24xx): Likewise.
804 * config/aarch64/aarch64-options-extensions.def (rdma); New.
805 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
806 (AARCH64_FL_V8_1): Renumber.
807 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
808 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
809 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
810 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
811 rdma to feature modifiers list.
812
813 2017-07-21 Yury Gribov <tetra2005@gmail.com>
814
815 PR middle-end/56727
816 * ipa-visibility (function_and_variable_visibility): Convert
817 recursive PLT call to direct call if appropriate.
818
819 2017-07-21 Andrew Pinski <apinski@cavium.com>
820
821 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
822 operand 1 to see if the types precision matches.
823 * fold-const.c (operand_equal_p): Likewise.
824
825 2017-07-21 Richard Biener <rguenther@suse.de>
826
827 PR tree-optimization/81303
828 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
829 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
830 (vect_peeling_hash_get_lowest_cost): Adjust.
831 (vect_enhance_data_refs_alignment): Likewise. Use
832 vect_get_peeling_costs_all_drs to compute the penalty for no
833 peeling to match up costs.
834
835 2017-07-21 Richard Biener <rguenther@suse.de>
836
837 PR tree-optimization/81500
838 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
839 we didn't identify a reduction path.
840
841 2017-07-21 Tom de Vries <tom@codesourcery.com>
842 Cesar Philippidis <cesar@codesourcery.com>
843
844 PR gcov-profile/81442
845 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
846 probabilities.
847
848 2017-07-21 Tom de Vries <tom@codesourcery.com>
849
850 PR lto/81430
851 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
852 function.
853 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
854 nvptx_override_options_after_change.
855
856 2017-07-21 Ulrich Drepper <drepper@redhat.com>
857
858 * dwarf2out.c (output_file_names): Avoid double testing for
859 dwarf_version >= 5.
860
861 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
862
863 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
864
865 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
866
867 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
868 hot/cold regions.
869 (try_crossjump_to_edge): Do not punt on partitioned functions.
870
871 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
872
873 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
874 Put all BBs reachable only via paths crossing cold region to cold
875 region.
876 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
877
878 2016-07-21 Richard Biener <rguenther@suse.de>
879
880 PR tree-optimization/81303
881 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
882 into account prologue and epilogue iterations when raising
883 min_profitable_iters to sth at least covering one vector iteration.
884
885 2017-07-21 Tamar Christina <tamar.christina@arm.com>
886
887 * config/arm/arm.c (arm_test_cpu_arch_dat):
888 Check for overlap.
889
890 2017-07-20 Nathan Sidwell <nathan@acm.org>
891
892 Remove TYPE_METHODS.
893 * tree.h (TYPE_METHODS): Delete.
894 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
895 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
896 (dbxout_type_methods): Scan TYPE_FIELDS.
897 (dbxout_type): Don't check TYPE_METHODS here.
898 * function.c (use_register_for_decl): Always ignore register for
899 class types when not optimizing.
900 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
901 * tree.c (free_lang_data_in_type): Stitch out member functions and
902 templates from TYPE_FIELDS.
903 (build_distinct_type_copy, verify_type_variant,
904 verify_type): Member fns are on TYPE_FIELDS.
905 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
906 * tree-pretty-print.c (dump_generic_node): Likewise.
907
908 2017-07-20 Jakub Jelinek <jakub@redhat.com>
909
910 PR target/80846
911 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
912 V2TImode and V4TImode.
913 (ix86_expand_vector_extract): Likewise.
914 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
915 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
916 (ssescalarmode): Handle V4TImode and V2TImode.
917 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
918 (*vec_extractv2ti, *vec_extractv4ti): New insns.
919 (VEXTRACTI128_MODE): New mode iterator.
920 (splitter for *vec_extractv?ti first element): New.
921 (VEC_INIT_MODE): New mode iterator.
922 (vec_init<mode>): Consolidate 3 expanders into one using
923 VEC_INIT_MODE mode iterator.
924
925 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
926
927 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
928 non_spilled_static_chain_regno_p.
929
930 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
931
932 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
933
934 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
935
936 * bb-reorder.c (connect_traces): Allow copying of blocks within
937 single partition.
938
939 2017-07-20 Richard Biener <rguenther@suse.de>
940
941 * gimple.h (gimple_phi_result): Add gphi * overload.
942 (gimple_phi_result_ptr): Likewise.
943 (gimple_phi_arg): Likewise. Adjust index assert to only
944 allow actual argument accesses rather than all slots available
945 by capacity.
946 (gimple_phi_arg_def): Add gphi * overload.
947 * tree-phinodes.c (make_phi_node): Initialize only actual
948 arguments.
949 (resize_phi_node): Clear memory not covered by old node,
950 do not initialize excess argument slots.
951 (reserve_phi_args_for_new_edge): Initialize new argument slot
952 completely.
953
954 2017-07-20 Bin Cheng <bin.cheng@arm.com>
955
956 PR tree-optimization/81388
957 Revert r238585:
958 2016-07-21 Bin Cheng <bin.cheng@arm.com>
959
960 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
961 by removing computation of may_be_zero.
962
963 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
964 Tom de Vries <tom@codesourcery.com>
965
966 PR middle-end/81030
967 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
968 when gimple level profile disagrees with what RTL expander did.
969
970 2017-07-20 Richard Biener <rguenther@suse.de>
971
972 PR tree-optimization/61171
973 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
974 (vect_analyze_stmt): Add slp instance parameter.
975 (vectorizable_reduction): Likewise.
976 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
977 (vect_is_simple_reduction): Deal with chains not detected
978 as SLP reduction chain, specifically not properly associated
979 chains containing a mix of plus/minus.
980 (get_reduction_op): Remove.
981 (get_initial_defs_for_reduction): Simplify, pass in whether
982 this is a reduction chain, pass in the SLP node for the PHIs.
983 (vect_create_epilog_for_reduction): Get the SLP instance as
984 arg and adjust.
985 (vectorizable_reduction): Get the SLP instance as arg.
986 During analysis remember the SLP node with the PHIs in the
987 instance. Simplify getting at the vectorized reduction PHIs.
988 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
989 through SLP instance.
990 (vect_slp_analyze_operations): Likewise.
991 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
992 (vect_transform_stmt): Likewise.
993
994 2017-07-20 Tom de Vries <tom@codesourcery.com>
995
996 PR tree-optimization/81489
997 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
998 read of phi arg location to before loop that modifies phi.
999
1000 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
1001
1002 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
1003 New pattern.
1004
1005 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
1006
1007 PR middle-end/81331
1008 * except.c (execute): Fix ordering issue.
1009
1010 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
1011
1012 PR rtl-optimization/81423
1013 * combine.c (make_compound_operation_int): Don't try to optimize
1014 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
1015
1016 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
1017
1018 PR rtl-optimization/81423
1019 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
1020 with a constant that is -1 in the truncated to mode.
1021
1022 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
1023
1024 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
1025 (determine_unlikely_bbs): ... here.
1026 * predict.h (propagate_unlikely_bbs_forward): Declare.
1027 * cfgexpand.c (pass_expand::execute): Use it.
1028 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
1029 unlikely edges.
1030 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
1031 propagate_unlikely_bbs_forward.
1032
1033 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
1034
1035 PR middle-end/81331
1036 * except.c (maybe_add_nop_after_section_switch): New function.
1037 (execute): Use it.
1038
1039 2017-07-19 Tom de Vries <tom@codesourcery.com>
1040
1041 * gimple.h (gimple_phi_set_arg): Make assert more strict.
1042
1043 2017-07-19 Tom de Vries <tom@codesourcery.com>
1044
1045 * gimple.h (gimple_phi_arg): Make assert more strict.
1046
1047 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
1048
1049 * config.gcc (powerpc*-*-*): Add mmintrin.h.
1050 * config/rs6000/mmintrin.h: New file.
1051 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
1052
1053 2017-07-19 Jakub Jelinek <jakub@redhat.com>
1054
1055 PR tree-optimization/81346
1056 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
1057
1058 2017-07-19 Tom de Vries <tom@codesourcery.com>
1059
1060 * config/nvptx/nvptx.md (VECIM): Add V2DI.
1061
1062 2017-07-19 Tom de Vries <tom@codesourcery.com>
1063
1064 * config/nvptx/nvptx-modes.def: Add V2DImode.
1065 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
1066 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
1067 (nvptx_output_mov_insn): Handle lack of mov.b128.
1068 (nvptx_print_operand): Handle 'H' and 'L' codes.
1069 (nvptx_vector_mode_supported): Allow V2DImode.
1070 (nvptx_preferred_simd_mode): New function.
1071 (nvptx_data_alignment): New function.
1072 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
1073 nvptx_preferred_simd_mode.
1074 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
1075 64 to 128 bits.
1076 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
1077
1078 2017-07-19 Tom de Vries <tom@codesourcery.com>
1079
1080 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
1081 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
1082 (nvptx_vector_mode_supported): New function. Allow V2SImode.
1083 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
1084 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
1085 (mov<VECIM>_insn): New define_insn.
1086 (define_expand "mov<VECIM>): New define_expand.
1087
1088 2017-07-19 Tom de Vries <tom@codesourcery.com>
1089
1090 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
1091
1092 2017-07-19 Jakub Jelinek <jakub@redhat.com>
1093
1094 PR tree-optimization/81346
1095 * fold-const.h (fold_div_compare, range_check_type): Declare.
1096 * fold-const.c (range_check_type): New function.
1097 (build_range_check): Use range_check_type.
1098 (fold_div_compare): No longer static, rewritten into
1099 a match.pd helper function.
1100 (fold_comparison): Don't call fold_div_compare here.
1101 * match.pd (X / C1 op C2): New optimization using fold_div_compare
1102 as helper function.
1103
1104 2017-07-19 Nathan Sidwell <nathan@acm.org>
1105
1106 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
1107 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
1108 * tree.c (find_decls_types_r, verify_type): Use
1109 TYPE_{MIN,MAX}_VALUE_RAW.
1110 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
1111 (hash_tree): Likewise.
1112 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
1113 Likewise.
1114 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
1115 Likewise.
1116
1117 2017-07-18 Tom de Vries <tom@codesourcery.com>
1118
1119 PR middle-end/81464
1120 * omp-expand.c (expand_omp_for_static_chunk): Handle
1121 equal-argument loop exit phi.
1122
1123 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
1124
1125 PR target/81471
1126 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
1127 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
1128 operand 2 predicate.
1129 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
1130 operand 2 predicate.
1131 (ror,rol -> rorx splitters): Use const_int_operand as
1132 operand 2 predicate.
1133
1134 2017-06-18 Richard Biener <rguenther@suse.de>
1135
1136 PR tree-optimization/81410
1137 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
1138 the gap in the ! slp_perm SLP case after each group.
1139
1140 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
1141
1142 PR middle-end/81463
1143 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
1144 again.
1145
1146 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
1147
1148 PR middle-end/81462
1149 * predict.c (set_even_probabilities): Cleanup; do not affect
1150 probabilities that are already known.
1151 (combine_predictions_for_bb): Call even when count is set.
1152
1153 2017-07-18 Nathan Sidwell <nathan@acm.org>
1154
1155 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
1156 TYPE_MAX_VALUE.
1157
1158 2017-07-18 Bin Cheng <bin.cheng@arm.com>
1159
1160 PR target/81408
1161 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
1162 optimization for loop niter analysis.
1163
1164 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
1165
1166 PR target/81473
1167 * config/avr/avr.c (avr_optimize_casesi): Don't use
1168 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
1169
1170 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
1171
1172 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
1173 body_cost_vec from _vect_peel_extended_info.
1174 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
1175 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
1176 npeel.
1177
1178 2017-07-18 Bin Cheng <bin.cheng@arm.com>
1179
1180 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
1181
1182 2017-07-18 Richard Biener <rguenther@suse.de>
1183
1184 PR tree-optimization/80620
1185 PR tree-optimization/81403
1186 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
1187 info when re-using a VN table entry.
1188
1189 2017-07-18 Richard Biener <rguenther@suse.de>
1190
1191 PR tree-optimization/81418
1192 * tree-vect-loop.c (vectorizable_reduction): Properly compute
1193 vectype_in. Verify that with lane-reducing reduction operations
1194 we have a single def-use cycle.
1195
1196 2017-07-17 Carl Love <cel@us.ibm.com>
1197
1198 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
1199
1200 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1201 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
1202 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
1203 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
1204 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
1205 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
1206 VMULOSW): New enum "unspec" values.
1207 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
1208 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
1209 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
1210 altivec_vmulosw): New patterns.
1211 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
1212 VMULOSW): Add definitions.
1213 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
1214
1215 * config/alpha/alpha.c: Include predict.h.
1216
1217 2017-07-17 Yury Gribov <tetra2005@gmail.com>
1218
1219 * tree-vrp.c (compare_assert_loc): Fix comparison function
1220 to return predictable results.
1221
1222 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
1223
1224 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
1225 option.
1226 (subdi3): Likewise.
1227 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
1228 * doc/invoke.texi (mexpand-adddi): Update text.
1229
1230 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
1231
1232 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
1233 that also clobbers the CC register. The old expand code is moved
1234 to ...
1235 (*arc_clzsi2): ... here.
1236 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
1237 the CC register. The old expand code is moved to ...
1238 (arc_ctzsi2): ... here.
1239
1240 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
1241
1242 * config/arc/arc.opt (mindexed-loads): Use initial value
1243 TARGET_INDEXED_LOADS_DEFAULT.
1244 (mauto-modify-reg): Use initial value
1245 TARGET_AUTO_MODIFY_REG_DEFAULT.
1246 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
1247 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
1248 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
1249 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
1250
1251 2017-07-17 Martin Liska <mliska@suse.cz>
1252
1253 PR sanitizer/81302
1254 * opts.c (finish_options): Do not allow -fgnu-tm
1255 w/ -fsanitize={kernel-,}address. Say sorry.
1256
1257 2017-07-17 Bin Cheng <bin.cheng@arm.com>
1258
1259 PR target/81369
1260 * tree-loop-distribution.c (classify_partition): Only assert on
1261 numer of iterations.
1262 (merge_dep_scc_partitions): Delete prameter. Update function call.
1263 (distribute_loop): Remove code handling loop with unknown niters.
1264 (pass_loop_distribution::execute): Skip loop with unknown niters.
1265
1266 2017-07-17 Bin Cheng <bin.cheng@arm.com>
1267
1268 PR target/81369
1269 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
1270 function sort_partitions_by_post_order.
1271
1272 2017-07-17 Bin Cheng <bin.cheng@arm.com>
1273
1274 PR tree-optimization/81374
1275 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
1276 the max index of basic blocks, rather than number of basic blocks.
1277
1278 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
1279
1280 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
1281 proto.
1282 (arc_legitimate_pic_operand_p): Likewise.
1283 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
1284 function.
1285 (arc_needs_pcl_p): Likewise.
1286 (arc_legitimate_pc_offset_p): Likewise.
1287 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
1288 function is also used in constrains.md.
1289 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
1290 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
1291 PLUS. Only return true/false in known cases, otherwise assert.
1292 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
1293 is already called in arc_legitimate_constant_p.
1294 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
1295 pic addresses.
1296 (LEGITIMATE_PIC_OPERAND_P): Use
1297 arc_raw_symbolic_reference_mentioned_p function.
1298 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
1299 function.
1300 (Cal): Likewise.
1301 (C32): Likewise.
1302
1303 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
1304 Andrew Burgess <andrew.burgess@embecosm.com>
1305
1306 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
1307 (arc_return_address_register): New function.
1308 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
1309 (arc_handle_fndecl_attribute): Add naked attribute.
1310 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
1311 (TARGET_WARN_FUNC_RETURN): Likewise.
1312 (arc_allocate_stack_slots_for_args): New function.
1313 (arc_warn_func_return): Likewise.
1314 (machine_function): Change type fn_type.
1315 (arc_compute_function_type): Consider new naked function type,
1316 change function return type.
1317 (arc_must_save_register): Adapt to handle new
1318 arc_compute_function_type's return type.
1319 (arc_expand_prologue): Likewise.
1320 (arc_expand_epilogue): Likewise.
1321 (arc_return_address_regs): Delete.
1322 (arc_return_address_register): New function.
1323 (arc_epilogue_uses): Use above function.
1324 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
1325 (arc_function_type): Change encoding, add naked type.
1326 (ARC_INTERRUPT_P): Change to handle the new encoding.
1327 (ARC_FAST_INTERRUPT_P): Likewise.
1328 (ARC_NORMAL_P): Define.
1329 (ARC_NAKED_P): Likewise.
1330 (arc_compute_function_type): Delete prototype.
1331 * config/arc/arc.md (in_ret_delay_slot): Use
1332 arc_return_address_register function.
1333 (simple_return): Likewise.
1334 (p_return_i): Likewise.
1335
1336 2017-07-17 Jakub Jelinek <jakub@redhat.com>
1337
1338 PR tree-optimization/81428
1339 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
1340 can't be built for those types.
1341
1342 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
1343
1344 Remove stuff dead since r239246.
1345
1346 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
1347 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
1348 (avr_inform_devices): Remove dead stuff.
1349
1350 2017-07-17 Tamar Christina <tamar.christina@arm.com>
1351
1352 * config/arm/arm_neon.h: Fix softp typo.
1353
1354 2017-07-17 Jakub Jelinek <jakub@redhat.com>
1355
1356 PR tree-optimization/81365
1357 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
1358 aggregate moves onto bb predecessor edges, make sure there are no
1359 loads that could alias the lhs in between the start of bb and the
1360 loads from *phi.
1361
1362 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
1363
1364 PR 80929
1365 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
1366 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
1367 [LSHIFTRT, outer_code = TRUNCATE]: Same.
1368
1369 2017-07-17 Jakub Jelinek <jakub@redhat.com>
1370
1371 PR tree-optimization/81396
1372 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
1373 (init_symbolic_number): Initialize it to 1.
1374 (perform_symbolic_merge): Add n_ops from both operands into the new
1375 n_ops.
1376 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
1377 without base_addr as useless if they need more than one operation.
1378 (bswap_replace): Handle !bswap case for NULL base_addr.
1379
1380 2017-07-17 Tom de Vries <tom@codesourcery.com>
1381
1382 PR target/81069
1383 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
1384 as possible.
1385
1386 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
1387
1388 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
1389 conditional builtin define __FIX_LEON3FT_B2BST.
1390
1391 2017-07-17 Daniel Cederman <cederman@gaisler.com>
1392
1393 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
1394 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
1395 with -mfix-ut700.
1396
1397 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
1398
1399 PR rtl-optimization/81424
1400 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
1401 to remove potential trapping from operands if -fnon-call-exceptions.
1402
1403 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
1404
1405 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
1406 profile_proability for scalling.
1407 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
1408
1409 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
1410
1411 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
1412
1413 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
1414
1415 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
1416 fixpoint arithmetics.
1417
1418 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
1419
1420 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
1421 fixpoint arithmetics.
1422
1423 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
1424
1425 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
1426 fixpoint arithmetics.
1427
1428 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
1429
1430 * profile-count.h (profile_probability::from_reg_br_prob_note,
1431 profile_probability::to_reg_br_prob_note): New functions.
1432 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
1433 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
1434 * predict.c (probability_reliable_p): Update.
1435 (edge_probability_reliable_p): Update.
1436 (br_prob_note_reliable_p): Update.
1437 (invert_br_probabilities): Update.
1438 (add_reg_br_prob_note): New function.
1439 (combine_predictions_for_insn): Update.
1440 * asan.c (asan_clear_shadow): Update.
1441 * cfgbuild.c (compute_outgoing_frequencies): Update.
1442 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
1443 (update_br_prob_note): Update.
1444 (rtl_verify_edges): Update.
1445 (purge_dead_edges): Update.
1446 (fixup_reorder_chain): Update.
1447 * emit-rtl.c (try_split): Update.
1448 * ifcvt.c (cond_exec_process_insns): Update.
1449 (cond_exec_process_if_block): Update.
1450 (dead_or_predicable): Update.
1451 * internal-fn.c (expand_addsub_overflow): Update.
1452 (expand_neg_overflow): Update.
1453 (expand_mul_overflow): Update.
1454 * loop-doloop.c (doloop_modify): Update.
1455 * loop-unroll.c (compare_and_jump_seq): Update.
1456 * optabs.c (emit_cmp_and_jump_insn_1): Update.
1457 * predict.h: Update.
1458 * reorg.c (mostly_true_jump): Update.
1459 * rtl.h: Update.
1460 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
1461 * config/alpha/alpha.c (emit_unlikely_jump): Update.
1462 * config/arc/arc.c: (emit_unlikely_jump): Update.
1463 * config/arm/arm.c: (emit_unlikely_jump): Update.
1464 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
1465 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
1466 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
1467 (ix86_print_operand): Update.
1468 (ix86_split_fp_branch): Update.
1469 (predict_jump): Update.
1470 * config/ia64/ia64.c (ia64_print_operand): Update.
1471 * config/mmix/mmix.c (mmix_print_operand): Update.
1472 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
1473 (rs6000_expand_split_stack_prologue): Update.
1474 * config/rs6000/rs6000.c: Update.
1475 * config/s390/s390.c (s390_expand_vec_strlen): Update.
1476 (s390_expand_vec_movstr): Update.
1477 (s390_expand_cs_tdsi): Update.
1478 (s390_expand_split_stack_prologue): Update.
1479 * config/sh/sh.c (sh_print_operand): Update.
1480 (expand_cbranchsi4): Update.
1481 (expand_cbranchdi4): Update.
1482 * config/sparc/sparc.c (output_v9branch): Update.
1483 * config/spu/spu.c (get_branch_target): Update.
1484 (ea_load_store_inline): Update.
1485 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
1486 * config/tilepro/tilepro.c: Update.
1487
1488 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
1489
1490 * gimplify.c (mostly_copy_tree_r): Revert latest change.
1491 (gimplify_save_expr): Likewise.
1492
1493 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
1494
1495 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
1496
1497 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
1498
1499 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
1500 TV_IPA_FNSUMMARY.
1501 * timevar.def (TV_IPA_FNSUMMARY): Define.
1502
1503 2017-07-16 Daniel Cederman <cederman@gaisler.com>
1504
1505 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
1506 to back store errata sensitive sequence from being generated.
1507 (sqrtdf2_fix): Likewise.
1508
1509 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
1510
1511 * tree-ssa-threadupdate.c (compute_path_counts,
1512 update_joiner_offpath_counts): Use profile_probability.
1513
1514 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
1515
1516 Revert:
1517 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1518
1519 * config/arm/arm-c.c (arm_cpu_builtins): Define
1520 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
1521
1522 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
1523
1524 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1525 array entries to represent __ieee128 versions of the
1526 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
1527 scalar_extract_sig, and scalar_insert_exp built-in functions.
1528 (altivec_resolve_overloaded_builtin): Add special case handling
1529 for the __builtin_scalar_insert_exp function, as represented by
1530 the P9V_BUILTIN_VEC_VSIEDP constant.
1531 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
1532 exponent support for __ieee128 argument.
1533 (VSESQP): Add scalar extract signature support for __ieee128
1534 argument.
1535 (VSTDCNQP): Add scalar test negative support for __ieee128
1536 argument.
1537 (VSIEQP): Add scalar insert exponent support for __int128 argument
1538 with __ieee128 result.
1539 (VSIEQPF): Add scalar insert exponent support for __ieee128
1540 argument with __ieee128 result.
1541 (VSTDCQP): Add scalar test data class support for __ieee128
1542 argument.
1543 (VSTDCNQP): Add overload support for scalar test negative with
1544 __ieee128 argument.
1545 (VSTDCQP): Add overload support for scalar test data class
1546 __ieee128 argument.
1547 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
1548 UNSPEC_VSX_SXSIGDP.
1549 (UNSPEC_VSX_SIEXPQP): New constant.
1550 (xsxexpqp): New insn for VSX scalar extract exponent quad
1551 precision.
1552 (xsxsigqp): New insn for VSX scalar extract significand quad
1553 precision.
1554 (xsiexpqpf): New insn for VSX scalar insert exponent quad
1555 precision with floating point argument.
1556 (xststdcqp): New expand for VSX scalar test data class quad
1557 precision.
1558 (xststdcnegqp): New expand for VSX scalar test negative quad
1559 precision.
1560 (xststdcqp): New insn to match expansions for VSX scalar test data
1561 class quad precision and VSX scalar test negative quad precision.
1562 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
1563 special case operand checking to enforce that second operand of
1564 VSX scalar test data class with quad precision argument is a 7-bit
1565 unsigned literal.
1566 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
1567 prototypes and descriptions of __ieee128 versions of
1568 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
1569 scalar_test_data_class, and scalar_test_neg built-in functions.
1570
1571 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1572
1573 PR tree-optimization/81162
1574 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
1575 replace a negate with an add.
1576
1577 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
1578
1579 * doc/invoke.texi (arm/-mcpu): Document +crypto.
1580
1581 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1582
1583 * config/arm/arm-c.c (arm_cpu_builtins): Define
1584 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
1585
1586 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1587
1588 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
1589 (armv8-r): Set ARM Cortex-R52 as default CPU.
1590 * config/arm/arm-tables.opt: Regenerate.
1591 * config/arm/arm-tune.md: Regenerate.
1592 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
1593 Cortex-R52.
1594 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
1595 extension for -mcpu=cortex-r52.
1596
1597 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
1598
1599 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
1600 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
1601 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
1602 (fp-armv8): Define it as FP_ARMv8 only.
1603 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
1604 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
1605 TARGET_FPU_ARMV8.
1606 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
1607 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
1608 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
1609 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
1610 than TARGET_FPU_ARMV8.
1611 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
1612 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
1613 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
1614 TARGET_FPU_ARMV8.
1615 * config/arm/neon.md (neon_vrint): Likewise.
1616 (neon_vcvt): Likewise.
1617 (neon_<fmaxmin_op><mode>): Likewise.
1618 (<fmaxmin><mode>3): Likewise.
1619 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
1620 * config/arm/predicates.md (arm_cond_move_operator): Check against
1621 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
1622
1623 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
1624
1625 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
1626 to top of function.
1627
1628 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1629
1630 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
1631 loop in comment with memset.
1632
1633 2017-07-14 Martin Liska <mliska@suse.cz>
1634
1635 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
1636 * dwarf2out.c (is_java): Remove the function.
1637 (output_pubname): Remove usage of the function.
1638 (lower_bound_default): Remove usage of DW_LANG_Java.
1639 (gen_compile_unit_die): Likewise.
1640 * gcc.c: Remove compiler defaults for .java and .zip files.
1641 * gimple-expr.c (remove_suffix): Change as there's no longer
1642 extension than 4-letter one.
1643 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
1644 (gimplify_save_expr): Likewise.
1645 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
1646 as it's possible even for other languages than Java.
1647 * langhooks.h (struct lang_hooks): Remove Java from a comment.
1648 * lto-opts.c (lto_write_options): Remove reference to Java.
1649 * opts.c (strip_off_ending): Update file extension handling.
1650 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
1651 * tree-eh.c (lower_resx): Likewise.
1652 * tree.c (free_lang_data_in_type): Remove dead code.
1653 (find_decls_types_r): Likewise.
1654 (build_common_builtin_nodes): Remove Java from a comment.
1655 (verify_type): Remove dead code.
1656 * varasm.c (assemble_external): Remove Java from a comment.
1657
1658 2017-07-14 Martin Liska <mliska@suse.cz>
1659
1660 * opts.c (finish_options): Add quotes.
1661 (common_handle_option): Likewise.
1662
1663 2017-07-14 Martin Liska <mliska@suse.cz>
1664
1665 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
1666 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
1667 Remove N_SO_PASCAL.
1668 * dwarf2out.c (lower_bound_default): Do not handle
1669 DW_LANG_Pascal83.
1670 (gen_compile_unit_die): Likewise.
1671 * gcc.c: Remove default extension binding for GNU Pascal.
1672 * stmt.c: Remove Pascal language from a comment.
1673 * xcoffout.c: Likewise.
1674
1675 2017-07-13 David Malcolm <dmalcolm@redhat.com>
1676
1677 PR c/81405
1678 * diagnostic-show-locus.c (fixit_cmp): New function.
1679 (layout::layout): Sort m_fixit_hints.
1680 (column_range::column_range): Assert that the values are valid.
1681 (struct char_span): New struct.
1682 (correction::overwrite): New method.
1683 (struct source_line): New struct.
1684 (line_corrections::add_hint): Add assertions. Reimplement memcpy
1685 calls in terms of classes source_line and char_span, and
1686 correction::overwrite.
1687 (selftest::test_overlapped_fixit_printing_2): New function.
1688 (selftest::diagnostic_show_locus_c_tests): Call it.
1689
1690 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
1691
1692 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
1693 early if there is no lhs.
1694
1695 2017-07-13 Martin Liska <mliska@suse.cz>
1696
1697 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
1698 (gen_reference_type_die): Likewise.
1699 * stor-layout.c: Remove Pascal-related comment.
1700
1701 2017-07-13 Martin Liska <mliska@suse.cz>
1702
1703 * opts.c (finish_options): Add quotes to error messages.
1704 (parse_sanitizer_options): Likewise.
1705
1706 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
1707
1708 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
1709
1710 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
1711
1712 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
1713
1714 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
1715
1716 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
1717 during expansion.
1718 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
1719
1720 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1721
1722 PR target/81193
1723 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
1724 provides the hardware capability bits, define the macro
1725 __BUILTIN_CPU_SUPPORTS__.
1726 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
1727 if GLIBC does not provide the hardware capability bits. Add a
1728 gcc_unreachable call if the built-in cpu function is neither
1729 __builtin_cpu_is nor __builtin_cpu_supports.
1730 (rs6000_get_function_versions_dispatcher): Change the warning
1731 that an old GLIBC is used which does not export the capability
1732 bits to be an error.
1733 * doc/extend.texi (target_clones attribute): Document the
1734 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
1735 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
1736 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
1737 the macros defined by GCC if the newer GLIBC is available.
1738
1739 2017-07-12 Jeff Law <law@redhat.com>
1740
1741 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
1742 remaining includes slightly.
1743 * config/riscv/riscv-builtins.c: Include profile-count.h.
1744
1745 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
1746
1747 PR target/79883
1748 * config/avr/avr.c (avr_set_current_function): In diagnostic
1749 messages: Quote keywords and (parts of) identifiers.
1750 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
1751 "INTERUPT".
1752
1753 2017-07-12 Carl Love <cel@us.ibm.com>
1754
1755 * config/rs6000/rs6000-c.c: Add support for built-in functions
1756 vector bool char vec_revb (vector bool char);
1757 vector bool short vec_revb (vector short char);
1758 vector bool int vec_revb (vector bool int);
1759 vector bool long long vec_revb (vector bool long long);
1760 * doc/extend.texi: Update the built-in documentation file for the
1761 new built-in functions.
1762
1763 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1764
1765 * config/s390/s390.md: Remove movcc splitter.
1766
1767 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1768
1769 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
1770 load/store on condition.
1771
1772 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
1773
1774 PR target/81407
1775 * config/avr/avr.c (avr_encode_section_info)
1776 [progmem && !TREE_READONLY]: Error if progmem object needs
1777 constructing.
1778
1779 2017-07-11 Michael Collison <michael.collison@arm.com>
1780
1781 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
1782 New pattern.
1783
1784 2017-07-11 Carl Love <cel@us.ibm.com>
1785
1786 * config/rs6000/rs6000-c.c: Add support for builtins
1787 vector unsigned int vec_parity_lsbb (vector signed int);
1788 vector unsigned int vec_parity_lsbb (vector unsigned int);
1789 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
1790 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
1791 vector unsigned long long vec_parity_lsbb (vector signed long long);
1792 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
1793 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
1794 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
1795 * doc/extend.texi: Update the built-in documentation file for the
1796 new built-in functions.
1797
1798 2017-07-11 David Malcolm <dmalcolm@redhat.com>
1799
1800 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
1801 (layout::m_primary_loc): New field.
1802 (layout::layout): Initialize new field. Move location filtering
1803 logic from here to...
1804 (layout::maybe_add_location_range): ...this new method. Add
1805 support for filtering to just the lines already specified by other
1806 locations.
1807 (layout::will_show_line_p): New method.
1808 (gcc_rich_location::add_location_if_nearby): New method.
1809 (selftest::test_add_location_if_nearby): New test function.
1810 (selftest::diagnostic_show_locus_c_tests): Call it.
1811 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
1812 New method.
1813
1814 2017-07-11 Tom de Vries <tom@codesourcery.com>
1815
1816 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
1817 (bb_first_real_insn): New function.
1818 (nvptx_single): Add extra initialization of broadcasted condition
1819 variables.
1820
1821 2017-07-11 Nathan Sidwell <nathan@acm.org>
1822
1823 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
1824
1825 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
1826
1827 * doc/extend.texi (AVR Function Attributes): Remove weblink to
1828 Binutils doc as TEXI will mess them up.
1829 * doc/invoke.texi (AVR Options): Same here.
1830
1831 2017-07-11 Daniel Cederman <cederman@gaisler.com>
1832
1833 * config/sparc/sparc.opt (mfix-ut700): New option.
1834 (mfix-gr712rc): Likewise.
1835 (sparc_fix_b2bst): New variable.
1836 * doc/invoke.texi (SPARC options): Document them.
1837 (ARM options): Fix warnings.
1838 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
1839 instructions to prevent sequences that can trigger the store-store
1840 errata for certain LEON3FT processors.
1841 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
1842 (sparc_option_override): Set sparc_fix_b2bst appropriately.
1843 * config/sparc/sparc.md (fix_b2bst): New attribute.
1844 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
1845
1846 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
1847
1848 PR target/81375
1849 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
1850 (rcpps): Ditto.
1851 (*rsqrtsf2_sse): Ditto.
1852 (rsqrtsf2): Ditto.
1853 (div<mode>3): Macroize insn from divdf3 and divsf3
1854 using MODEF mode iterator.
1855
1856 2017-07-10 Martin Sebor <msebor@redhat.com>
1857
1858 PR tree-optimization/80397
1859 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
1860 instead of testing for equality to INTEGER_TYPE.
1861
1862 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
1863
1864 * config.gcc: Remove uclibc from arc target spec.
1865
1866 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
1867
1868 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
1869
1870 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
1871
1872 PR lto/80838
1873 * lto-wrapper.c (remove_option): New function.
1874 (merge_and_complain): Merge PIC/PIE options more realistically.
1875
1876 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
1877
1878 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
1879
1880 PR target/20296
1881 PR target/81268
1882 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
1883 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
1884 * config.in: Regenerate.
1885 * configure: Regenerate.
1886 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
1887 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
1888 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
1889 (TARGET_GASISR_PROLOGUES): ...target mask.
1890 * common/config/avr/avr-common.c
1891 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
1892 Set -mgas-isr-prologues.
1893 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
1894 INSERT_PASS_BEFORE for it.
1895 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
1896 * config/avr/avr.c (avr_option_override)
1897 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
1898 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
1899 (avr_attribute_table) <no_gccisr>: Add new function attribute.
1900 (avr_set_current_function) <is_no_gccisr>: Init machine field.
1901 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
1902 and rtl_opt_pass.
1903 (make_avr_pass_pre_proep): New function.
1904 (emit_push_sfr) <treg>: Add argument to function and use it
1905 instead of TMP_REG.
1906 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
1907 and set machine->gasisr.yes.
1908 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
1909 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
1910 __gcc_isr.n_pushed to .L__stack_usage.
1911 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
1912 (avr_asm_final_postscan_insn): ...this new static function.
1913 * config/avr/avr.h (machine_function)
1914 <is_no_gccisr, use_L__stack_usage>: New fields.
1915 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
1916 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
1917 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
1918 (gasisr, *gasisr): New expander and insn.
1919 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
1920 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
1921 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
1922
1923 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
1924
1925 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
1926 in quoted strings.
1927
1928 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
1929
1930 Move jump-tables out of .text again.
1931
1932 PR target/81075
1933 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
1934 (ASM_OUTPUT_ADDR_VEC): New function.
1935 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
1936 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
1937 INSN_ADDRESSes as asm comment.
1938 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
1939 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
1940 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
1941 * config/avr/avr.md (*tablejump): Adjust comment.
1942 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
1943 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
1944 New detail.
1945 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
1946 (avr_output_addr_vec): New proto.
1947 (avr_log_t) <insn_addresses>: New field.
1948
1949 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
1950
1951 PR target/81313
1952 * config/i386/i386.c (ix86_function_arg_advance): Set
1953 outgoing_args_on_stack to true if there are outgoing arguments
1954 on stack.
1955 (ix86_function_arg): Likewise.
1956 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
1957 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
1958 * config/i386/i386.h (machine_function): Add
1959 outgoing_args_on_stack.
1960
1961 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
1962
1963 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
1964 supporting pthreds.
1965 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
1966
1967 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
1968
1969 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
1970 (REAL_H): Remove $(MACHMODE_H).
1971 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
1972 double-int.h.
1973 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
1974 $(MACHMODE_H) and double-int.h.
1975 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
1976 $(MACHMODE_H).
1977 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
1978 double-int.h.
1979
1980 2017-07-07 Andrew Pinski <apinski@cavium.com>
1981
1982 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
1983 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
1984
1985 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
1986
1987 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
1988 Add warning if GCC was not configured to link against a GLIBC that
1989 exports the hardware capability bits.
1990 (make_resolver_func): Make resolver function private and not a
1991 COMDAT function. Create the name with clone_function_name instead
1992 of make_unique_name.
1993
1994 PR target/81348
1995 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
1996 correct operand in doing the split.
1997
1998 2017-07-07 Carl Love <cel@us.ibm.com>
1999
2000 * config/rs6000/rs6000-c: Add support for built-in function
2001 vector unsigned short vec_pack_to_short_fp32 (vector float,
2002 vector float).
2003 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
2004 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
2005 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
2006 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
2007 (convert_4f32_8i16): Add define_expand.
2008 * doc/extend.texi: Update the built-in documentation file for the
2009 new built-in function.
2010
2011 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2012
2013 * config/sparc/m8.md: New file.
2014 * config/sparc/sparc.md: Include m8.md.
2015
2016 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2017
2018 * config/sparc/sparc.opt: New option -mvis4b.
2019 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
2020 (sparc_option_override): Handle VIS4B.
2021 (enum sparc_builtins): Define
2022 SPARC_BUILTIN_DICTUNPACK{8,16,32},
2023 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
2024 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
2025 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
2026 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
2027 (check_constant_argument): New function.
2028 (sparc_vis_init_builtins): Define builtins
2029 __builtin_vis_dictunpack{8,16,32},
2030 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
2031 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
2032 __builtin_vis_fpcmpde{8,16,32}shl and
2033 __builtin_vis_fpcmpur{8,16,32}shl.
2034 (sparc_expand_builtin): Check that the constant operands to
2035 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
2036 constant and in range.
2037 * config/sparc/sparc-c.c (sparc_target_macros): Handle
2038 TARGET_VIS4B.
2039 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
2040 (SPARC_IMM5_P): Likewise.
2041 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
2042 (enabled): Handle vis4b.
2043 (UNSPEC_DICTUNPACK): New unspec.
2044 (UNSPEC_FPCMPSHL): Likewise.
2045 (UNSPEC_FPUCMPSHL): Likewise.
2046 (UNSPEC_FPCMPDESHL): Likewise.
2047 (UNSPEC_FPCMPURSHL): Likewise.
2048 (cpu_feature): New CPU feature `vis4b'.
2049 (dictunpack{8,16,32}): New insns.
2050 (FPCSMODE): New mode iterator.
2051 (fpcscond): New code iterator.
2052 (fpcsucond): Likewise.
2053 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
2054 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
2055 (fpcmpde{8,16,32}{si,di}shl): Likewise.
2056 (fpcmpur{8,16,32}{si,di}shl): Likewise.
2057 * config/sparc/constraints.md: Define constraints `q' for unsigned
2058 2-bit integer constants and `t' for unsigned 5-bit integer
2059 constants.
2060 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
2061 predicate.
2062 (imm5_operand_dictunpack16): Likewise.
2063 (imm5_operand_dictunpack32): Likewise.
2064 (imm2_operand): Likewise.
2065 * doc/invoke.texi (SPARC Options): Document -mvis4b.
2066 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2067 ditunpack* and fpcmp*shl builtins.
2068
2069 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2070
2071 * config.gcc: Handle m8 in --with-{cpu,tune} options.
2072 * config.in: Add HAVE_AS_SPARC6 define.
2073 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
2074 M8.
2075 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
2076 TARGET_CPU_m8.
2077 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
2078 (CPP_CPU_SPEC): Handle m8.
2079 (ASM_CPU_SPEC): Likewise.
2080 * config/sparc/sparc-opts.h (enum processor_type): Add
2081 PROCESSOR_M8.
2082 * config/sparc/sparc.c (m8_costs): New struct.
2083 (sparc_option_override): Handle TARGET_CPU_m8.
2084 (sparc32_initialize_trampoline): Likewise.
2085 (sparc64_initialize_trampoline): Likewise.
2086 (sparc_issue_rate): Likewise.
2087 (sparc_register_move_cost): Likewise.
2088 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
2089 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
2090 (ASM_CPU64_DEFAULT_SPEC): Likewise.
2091 (CPP_CPU_SPEC): Handle M8.
2092 (ASM_CPU_SPEC): Likewise.
2093 (AS_M8_FLAG): Define.
2094 * config/sparc/sparc.md: Add m8 to the cpu attribute.
2095 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
2096 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
2097 M8 instructions.
2098 * configure: Regenerate.
2099 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
2100 -mtune=m8.
2101
2102 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2103
2104 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
2105 subtypes.
2106 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
2107 ("*movdi_insn_sp32"): Do not set v3pipe.
2108 ("*movsi_insn"): Likewise.
2109 ("*movdi_insn_sp64"): Likewise.
2110 ("*movsf_insn"): Likewise.
2111 ("*movdf_insn_sp32"): Likewise.
2112 ("*movdf_insn_sp64"): Likewise.
2113 ("*zero_extendsidi2_insn_sp64"): Likewise.
2114 ("*sign_extendsidi2_insn"): Likewise.
2115 ("*mov<VM32:mode>_insn"): Likewise.
2116 ("*mov<VM64:mode>_insn_sp64"): Likewise.
2117 ("*mov<VM64:mode>_insn_sp32"): Likewise.
2118 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
2119 ("<vlop:code><VL:mode>3"): Likewise.
2120 ("*not_<vlop:code><VL:mode>3"): Likewise.
2121 ("*nand<VL:mode>_vis"): Likewise.
2122 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
2123 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
2124 ("one_cmpl<VL:mode>2"): Likewise.
2125 ("faligndata<VM64:mode>_vis"): Likewise.
2126 ("alignaddrsi_vis"): Likewise.
2127 ("alignaddrdi_vis"): Likweise.
2128 ("alignaddrlsi_vis"): Likewise.
2129 ("alignaddrldi_vis"): Likewise.
2130 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
2131 ("bmaskdi_vis"): Likewise.
2132 ("bmasksi_vis"): Likewise.
2133 ("bshuffle<VM64:mode>_vis"): Likewise.
2134 ("cmask8<P:mode>_vis"): Likewise.
2135 ("cmask16<P:mode>_vis"): Likewise.
2136 ("cmask32<P:mode>_vis"): Likewise.
2137 ("pdistn<P:mode>_vis"): Likewise.
2138 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
2139
2140 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2141
2142 * config/sparc/sparc.md ("subtype"): New insn attribute.
2143 ("*wrgsr_sp64"): Set insn subtype.
2144 ("*rdgsr_sp64"): Likewise.
2145 ("alignaddrsi_vis"): Likewise.
2146 ("alignaddrdi_vis"): Likewise.
2147 ("alignaddrlsi_vis"): Likewise.
2148 ("alignaddrldi_vis"): Likewise.
2149 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
2150 ("fexpand_vis"): Likewise.
2151 ("fpmerge_vis"): Likewise.
2152 ("faligndata<VM64:mode>_vis"): Likewise.
2153 ("bshuffle<VM64:mode>_vis"): Likewise.
2154 ("cmask8<P:mode>_vis"): Likewise.
2155 ("cmask16<P:mode>_vis"): Likewise.
2156 ("cmask32<P:mode>_vis"): Likewise.
2157 ("fchksm16_vis"): Likewise.
2158 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
2159 ("fmean16_vis"): Likewise.
2160 ("fp<plusminus_insn>64_vis"): Likewise.
2161 ("<plusminus_insn>v8qi3"): Likewise.
2162 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
2163 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
2164 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
2165 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
2166 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
2167 ("*movqi_insn"): Likewise.
2168 ("*movhi_insn"): Likewise.
2169 ("*movsi_insn"): Likewise.
2170 ("movsi_pic_gotdata_op"): Likewise.
2171 ("*movdi_insn_sp32"): Likewise.
2172 ("*movdi_insn_sp64"): Likewise.
2173 ("movdi_pic_gotdata_op"): Likewise.
2174 ("*movsf_insn"): Likewise.
2175 ("*movdf_insn_sp32"): Likewise.
2176 ("*movdf_insn_sp64"): Likewise.
2177 ("*zero_extendhisi2_insn"): Likewise.
2178 ("*zero_extendqihi2_insn"): Likewise.
2179 ("*zero_extendqisi2_insn"): Likewise.
2180 ("*zero_extendqidi2_insn"): Likewise.
2181 ("*zero_extendhidi2_insn"): Likewise.
2182 ("*zero_extendsidi2_insn_sp64"): Likewise.
2183 ("ldfsr"): Likewise.
2184 ("prefetch_64"): Likewise.
2185 ("prefetch_32"): Likewise.
2186 ("tie_ld32"): Likewise.
2187 ("tie_ld64"): Likewise.
2188 ("*tldo_ldub_sp32"): Likewise.
2189 ("*tldo_ldub1_sp32"): Likewise.
2190 ("*tldo_ldub2_sp32"): Likewise.
2191 ("*tldo_ldub_sp64"): Likewise.
2192 ("*tldo_ldub1_sp64"): Likewise.
2193 ("*tldo_ldub2_sp64"): Likewise.
2194 ("*tldo_ldub3_sp64"): Likewise.
2195 ("*tldo_lduh_sp32"): Likewise.
2196 ("*tldo_lduh1_sp32"): Likewise.
2197 ("*tldo_lduh_sp64"): Likewise.
2198 ("*tldo_lduh1_sp64"): Likewise.
2199 ("*tldo_lduh2_sp64"): Likewise.
2200 ("*tldo_lduw_sp32"): Likewise.
2201 ("*tldo_lduw_sp64"): Likewise.
2202 ("*tldo_lduw1_sp64"): Likewise.
2203 ("*tldo_ldx_sp64"): Likewise.
2204 ("*mov<VM32:mode>_insn"): Likewise.
2205 ("*mov<VM64:mode>_insn_sp64"): Likewise.
2206 ("*mov<VM64:mode>_insn_sp32"): Likewise.
2207
2208 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2209
2210 * config/sparc/sparc.md ("type"): New insn type viscmp.
2211 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
2212 viscmp.
2213 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
2214 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
2215 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
2216 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
2217 viscmp.
2218 ("n7_vis_logical_11cycle"): Likewise.
2219 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
2220 * config/sparc/niagara2.md ("niag3_vis": Likewise.
2221 * config/sparc/niagara.md ("niag_vis"): Likewise.
2222 * config/sparc/ultra3.md ("us3_fga"): Likewise.
2223 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
2224
2225 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2226
2227 * config/sparc/sparc.md: New instruction type `bmask'.
2228 (bmaskdi_vis): Use the `bmask' type.
2229 (bmasksi_vis): Likewise.
2230 * config/sparc/ultra3.md (us3_array): Likewise.
2231 * config/sparc/niagara7.md (n7_array): Likewise.
2232 * config/sparc/niagara4.md (n4_array): Likewise.
2233 * config/sparc/niagara2.md (niag2_vis): Likewise.
2234 (niag3_vis): Likewise.
2235 * config/sparc/niagara.md (niag_vis): Likewise.
2236
2237 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
2238
2239 * ipa-comdats.c: Remove optimize check from gate.
2240 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
2241 for functions not optimized.
2242 (ipa_fn_summary_read): Skip optimize check.
2243 (ipa_fn_summary_write): Likewise.
2244 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
2245 is optimized.
2246 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
2247 uninlinable.
2248 (can_inline_edge_p): Check flag_pcc_struct_return for match.
2249 (check_callers): Give up on caller which is not optimized.
2250 (inline_small_functions): Likewise.
2251 (ipa_inline): Do not give up when not optimizing.
2252 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
2253 away unoptimizes cdtors.
2254 (whole_program_function_and_variable_visibility): Do
2255 ipa_discover_readonly_nonaddressable_vars in LTO mode.
2256 * ipa.c (process_references): Do not check optimize.
2257 (symbol_table::remove_unreachable_nodes): Update optimize check.
2258 (set_writeonly_bit): Update optimize check.
2259 (pass_ipa_cdtor_merge::gate): Do not check optimize.
2260 (pass_ipa_single_use::gate): Remove.
2261
2262 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2263
2264 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
2265 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
2266 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
2267 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
2268 permute_load, permute_store, adjust_extract, adjust_splat,
2269 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
2270 replace_swap_with_copy, dump_swap_insn_table,
2271 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
2272 recombine_lvx_pattern, recombine_stvx_pattern,
2273 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
2274 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
2275 to file rs6000-p8swap.c.
2276 * config/rs6000/rs6000-p8swap.c: New file.
2277 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
2278 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
2279 and rs6000*-*-* targets.
2280
2281 2017-07-06 David Malcolm <dmalcolm@redhat.com>
2282
2283 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
2284
2285 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
2286
2287 * lto-wrapper.c (merge_and_complain): Do not merge
2288 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
2289 fsigned_zeros, ftrapping_math, fwrapv.
2290 (append_compiler_options): Do not track these options.
2291 (append_linker_options): Likewie
2292
2293 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
2294
2295 * cgraphunit.c (cgraph_node::finalize_function): When
2296 !flag_toplevel_reorde set no_reorder flag.
2297 (varpool_node::finalize_decl): Likewise.
2298 (symbol_table::compile): Drop no toplevel reorder path.
2299
2300 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
2301
2302 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
2303 edges; zero probability is not better than uninitialized.
2304
2305 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
2306
2307 * asan.h (asan_sanitize_allocas_p): Declare.
2308 * asan.c (asan_sanitize_allocas_p): New function.
2309 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
2310 (handle_builtin_alloca): Likewise.
2311 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
2312 if !asan_sanitize_allocas_p.
2313 * params.def (asan-instrument-allocas): Add new option.
2314 * params.h (ASAN_PROTECT_ALLOCAS): Define.
2315 * opts.c (common_handle_option): Disable allocas sanitization for
2316 KASan by default.
2317
2318 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
2319
2320 * asan.c: Include gimple-fold.h.
2321 (get_last_alloca_addr): New function.
2322 (handle_builtin_stackrestore): Likewise.
2323 (handle_builtin_alloca): Likewise.
2324 (asan_emit_allocas_unpoison): Likewise.
2325 (get_mem_refs_of_builtin_call): Add new parameter, remove const
2326 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
2327 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
2328 (instrument_builtin_call): Pass gimple iterator to
2329 get_mem_refs_of_builtin_call.
2330 (last_alloca_addr): New global.
2331 * asan.h (asan_emit_allocas_unpoison): Declare.
2332 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
2333 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
2334 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
2335 if function calls alloca.
2336 * gimple-fold.c (replace_call_with_value): Remove static keyword.
2337 * gimple-fold.h (replace_call_with_value): Declare.
2338 * internal-fn.c: Include asan.h.
2339 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
2340 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
2341
2342 2017-07-06 David Malcolm <dmalcolm@redhat.com>
2343
2344 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
2345 (C_SELFTEST_FLAGS): New.
2346 (CPP_SELFTEST_FLAGS): New.
2347 (SELFTEST_DEPS): New, from deps of s-selftest.
2348 (C_SELFTEST_DEPS): New, from deps of s-selftest.
2349 (CPP_SELFTEST_DEPS): New.
2350 (selftest): Add dependency on s-selftest-c++.
2351 (s-selftest): Rename to...
2352 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
2353 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
2354 than SELFTEST_FLAGS.
2355 (selftest-gdb): Rename to...
2356 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
2357 C_SELFTEST_FLAGS.
2358 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
2359 (selftest-valgrind): Rename to...
2360 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
2361 C_SELFTEST_FLAGS.
2362 (selftest-valgrind): Reintroduce as an alias for
2363 selftest-c-valgrind.
2364 (s-selftest-c++): New.
2365 (selftest-c++-gdb): New.
2366 (selftest-c++-valgrind): New.
2367
2368 2017-07-06 Olivier Hainque <hainque@adacore.com>
2369
2370 * gcc.c (process_command): When deciding if undefined variables
2371 should be ignored when processing specs, accept "gcc -v" as well.
2372
2373 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
2374
2375 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
2376 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
2377
2378 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
2379
2380 * config/arm/arm-cpus.in (armv8-r): Add new entry.
2381 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
2382 * config/arm/arm-tables.opt: Regenerate.
2383 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
2384 enumerator.
2385 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
2386
2387 2017-07-06 Carl Love <cel@us.ibm.com>
2388
2389 * ChangeLog: Clean up from mid air collision
2390
2391 2017-07-06 Carl Love <cel@us.ibm.com>
2392
2393 * config/rs6000/rs6000-c.c: Add support for built-in functions
2394 vector signed int vec_subc (vector signed int, vector signed int);
2395 vector signed __int128 vec_subc (vector signed __int128,
2396 vector signed __int128);
2397 vector unsigned __int128 vec_subc (vector unsigned __int128,
2398 vector unsigned __int128);
2399 vector signed int vec_sube (vector signed int, vector signed int,
2400 vector signed int);
2401 vector unsigned int vec_sube (vector unsigned int,
2402 vector unsigned int,
2403 vector unsigned int);
2404 vector signed __int128 vec_sube (vector signed __int128,
2405 vector signed __int128,
2406 vector signed__int128);
2407 vector unsigned __int128 vec_sube (vector unsigned __int128,
2408 vector unsigned __int128,
2409 vector unsigned __int128);
2410 vector signed int vec_subec (vector signed int, vector signed int,
2411 vector signed int);
2412 vector unsigned int vec_subec (vector unsigned int,
2413 vector unsigned int,
2414 vector unsigned int);
2415 vector signed __int128 vec_subec (vector signed __int128,
2416 vector signed __int128,
2417 vector signed__int128);
2418 vector unsigned __int128 vec_subec (vector unsigned __int128,
2419 vector unsigned __int128,
2420 vector unsigned __int128);
2421 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
2422 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
2423 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
2424 BU_ALTIVEC_OVERLOAD_X definitions.
2425 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
2426 * doc/extend.texi: Update the built-in documentation file for the new
2427 built-in functions.
2428
2429 2017-07-06 David Malcolm <dmalcolm@redhat.com>
2430
2431 PR c++/79300
2432 * diagnostic-show-locus.c (layout::layout): Use start and finish
2433 spelling location for the start and finish of each range.
2434 * genmatch.c (linemap_client_expand_location_to_spelling_point):
2435 Add unused aspect param.
2436 * input.c (expand_location_1): Add "aspect" param, and use it
2437 to access the correct part of the location.
2438 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
2439 expand_location_1.
2440 (expand_location_to_spelling_point): Likewise.
2441 (linemap_client_expand_location_to_spelling_point): Add "aspect"
2442 param, and pass it to expand_location_1.
2443
2444 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
2445
2446 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
2447 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
2448 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
2449 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
2450 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
2451 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
2452 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
2453 _mm_maskz_getmant_ss): New intrinsics.
2454 (__builtin_ia32_getexpss128_mask): Changed to ...
2455 __builtin_ia32_getexpss128_round ... this.
2456 (__builtin_ia32_getexpsd128_mask): Changed to ...
2457 __builtin_ia32_getexpsd128_round ... this.
2458 * config/i386/i386-builtin-types.def
2459 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
2460 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
2461 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
2462 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
2463 __builtin_ia32_getmantss_mask_round): New builtins.
2464 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
2465 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
2466 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
2467 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
2468 * config/i386/sse.md
2469 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
2470 avx512f_sgetexp<mode><mask_scalar_name>
2471 <round_saeonly_scalar_name> ... this.
2472 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
2473 %0, %1, %2<round_saeonly_op3>}): Changed to ...
2474 vgetexp<ssescalarmodesuffix>
2475 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2476 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
2477 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
2478 avx512f_vgetmant<mode><mask_scalar_name>
2479 <round_saeonly_scalar_name> ... this.
2480 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
2481 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
2482 vgetmant<ssescalarmodesuffix>
2483 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
2484 %0<mask_scalar_operand4>, %1, %2
2485 <round_saeonly_scalar_mask_op4>, %3} ... this.
2486 * config/i386/subst.md (mask_scalar_operand4,
2487 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
2488 round_saeonly_scalar_nimm_predicate): New subst attributes.
2489
2490 2017-07-06 Julia Koval <julia.koval@intel.com>
2491
2492 * config/i386/i386.c (ix86_erase_embedded_rounding):
2493 Remove code for old rounding pattern.
2494
2495 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
2496
2497 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
2498
2499 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
2500
2501 * doc/sourcebuild.texi (Test Directives, Variants of
2502 dg-require-support): Add documentation for dg-require-stack-check.
2503
2504 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
2505
2506 * config/i386/subst.md (mask_scalar, round_scalar,
2507 round_saeonly_scalar): New meta-templates.
2508 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
2509 round_scalar_mask_operand3, round_scalar_mask_op3,
2510 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
2511 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
2512 round_saeonly_scalar_constraint,
2513 round_saeonly_scalar_prefix): New subst attribute.
2514 * config/i386/sse.md
2515 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
2516 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
2517 <round_scalar_name> ... this.
2518 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
2519 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
2520 <round_scalar_name> ... this.
2521 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
2522 <sse>_vm<code><mode>3<mask_scalar_name>
2523 <round_saeonly_scalar_name> ... this.
2524 (v<plusminus_mnemonic><ssescalarmodesuffix>
2525 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
2526 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
2527 v<plusminus_mnemonic><ssescalarmodesuffix>
2528 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2529 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
2530 (v<multdiv_mnemonic><ssescalarmodesuffix>
2531 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
2532 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
2533 v<multdiv_mnemonic><ssescalarmodesuffix>
2534 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2535 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
2536 (v<maxmin_float><ssescalarmodesuffix>
2537 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
2538 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
2539 v<maxmin_float><ssescalarmodesuffix>
2540 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
2541 %0<mask_scalar_operand3>, %1, %<iptr>2
2542 <round_saeonly_scalar_mask_op3>} ... this.
2543
2544 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
2545
2546 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
2547 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
2548
2549 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
2550 Alan Hayward <alan.hayward@arm.com>
2551 David Sherwood <david.sherwood@arm.com>
2552
2553 * combine.c (simplify_if_then_else): Remove "enum" before
2554 "machine_mode".
2555 * compare-elim.c (can_eliminate_compare): Likewise.
2556 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
2557 Likewise.
2558 (aarch64_lookup_simd_builtin_type): Likewise.
2559 (aarch64_simd_builtin_type): Likewise.
2560 (aarch64_init_simd_builtin_types): Likewise.
2561 (aarch64_simd_expand_args): Likewise.
2562 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
2563 Likewise.
2564 (aarch64_reverse_mask): Likewise.
2565 (aarch64_simd_emit_reg_reg_move): Likewise.
2566 (aarch64_gen_adjusted_ldpstp): Likewise.
2567 (aarch64_ccmp_mode_to_code): Likewise.
2568 (aarch64_operands_ok_for_ldpstp): Likewise.
2569 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2570 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
2571 Likewise.
2572 (aarch64_min_divisions_for_recip_mul): Likewise.
2573 (aarch64_reassociation_width): Likewise.
2574 (aarch64_get_condition_code_1): Likewise.
2575 (aarch64_simd_emit_reg_reg_move): Likewise.
2576 (aarch64_simd_attr_length_rglist): Likewise.
2577 (aarch64_reverse_mask): Likewise.
2578 (aarch64_operands_ok_for_ldpstp): Likewise.
2579 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2580 (aarch64_gen_adjusted_ldpstp): Likewise.
2581 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
2582 Likewise.
2583 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
2584 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
2585 (arm_lookup_simd_builtin_type): Likewise.
2586 (arm_simd_builtin_type): Likewise.
2587 (arm_init_simd_builtin_types): Likewise.
2588 (arm_expand_builtin_args): Likewise.
2589 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
2590 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
2591 (ft32_setup_incoming_varargs): Likewise.
2592 (ft32_function_arg): Likewise.
2593 (ft32_function_arg_advance): Likewise.
2594 (ft32_pass_by_reference): Likewise.
2595 (ft32_arg_partial_bytes): Likewise.
2596 (ft32_valid_pointer_mode): Likewise.
2597 (ft32_addr_space_pointer_mode): Likewise.
2598 (ft32_addr_space_legitimate_address_p): Likewise.
2599 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
2600 Likewise.
2601 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
2602 (ix86_emit_outlined_ms2sysv_restore): Likewise.
2603 (iamcu_alignment): Likewise.
2604 (canonicalize_vector_int_perm): Likewise.
2605 (ix86_noce_conversion_profitable_p): Likewise.
2606 (ix86_mpx_bound_mode): Likewise.
2607 (ix86_operands_ok_for_move_multiple): Likewise.
2608 * config/microblaze/microblaze-protos.h
2609 (microblaze_expand_conditional_branch_reg): Likewise.
2610 * config/microblaze/microblaze.c
2611 (microblaze_expand_conditional_branch_reg): Likewise.
2612 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
2613 Likewise.
2614 (rs6000_reassociation_width): Likewise.
2615 (rs6000_invalid_binary_op): Likewise.
2616 (fusion_p9_p): Likewise.
2617 (emit_fusion_p9_load): Likewise.
2618 (emit_fusion_p9_store): Likewise.
2619 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
2620 Likewise.
2621 (riscv_hard_regno_mode_ok_p): Likewise.
2622 (riscv_address_insns): Likewise.
2623 (riscv_split_symbol): Likewise.
2624 (riscv_legitimize_move): Likewise.
2625 (riscv_function_value): Likewise.
2626 (riscv_hard_regno_nregs): Likewise.
2627 (riscv_expand_builtin): Likewise.
2628 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
2629 (riscv_build_integer): Likewise.
2630 (riscv_split_integer): Likewise.
2631 (riscv_legitimate_constant_p): Likewise.
2632 (riscv_cannot_force_const_mem): Likewise.
2633 (riscv_regno_mode_ok_for_base_p): Likewise.
2634 (riscv_valid_base_register_p): Likewise.
2635 (riscv_valid_offset_p): Likewise.
2636 (riscv_valid_lo_sum_p): Likewise.
2637 (riscv_classify_address): Likewise.
2638 (riscv_legitimate_address_p): Likewise.
2639 (riscv_address_insns): Likewise.
2640 (riscv_load_store_insns): Likewise.
2641 (riscv_force_binary): Likewise.
2642 (riscv_split_symbol): Likewise.
2643 (riscv_force_address): Likewise.
2644 (riscv_legitimize_address): Likewise.
2645 (riscv_move_integer): Likewise.
2646 (riscv_legitimize_const_move): Likewise.
2647 (riscv_legitimize_move): Likewise.
2648 (riscv_address_cost): Likewise.
2649 (riscv_subword): Likewise.
2650 (riscv_output_move): Likewise.
2651 (riscv_canonicalize_int_order_test): Likewise.
2652 (riscv_emit_int_order_test): Likewise.
2653 (riscv_function_arg_boundary): Likewise.
2654 (riscv_pass_mode_in_fpr_p): Likewise.
2655 (riscv_pass_fpr_single): Likewise.
2656 (riscv_pass_fpr_pair): Likewise.
2657 (riscv_get_arg_info): Likewise.
2658 (riscv_function_arg): Likewise.
2659 (riscv_function_arg_advance): Likewise.
2660 (riscv_arg_partial_bytes): Likewise.
2661 (riscv_function_value): Likewise.
2662 (riscv_pass_by_reference): Likewise.
2663 (riscv_setup_incoming_varargs): Likewise.
2664 (riscv_print_operand): Likewise.
2665 (riscv_elf_select_rtx_section): Likewise.
2666 (riscv_save_restore_reg): Likewise.
2667 (riscv_for_each_saved_reg): Likewise.
2668 (riscv_register_move_cost): Likewise.
2669 (riscv_hard_regno_mode_ok_p): Likewise.
2670 (riscv_hard_regno_nregs): Likewise.
2671 (riscv_class_max_nregs): Likewise.
2672 (riscv_memory_move_cost): Likewise.
2673 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
2674 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
2675 (rl78_addr_space_address_mode): Likewise.
2676 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
2677 Likewise.
2678 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
2679 (rs6000_reassociation_width): Likewise.
2680 (rs6000_invalid_binary_op): Likewise.
2681 (fusion_p9_p): Likewise.
2682 (emit_fusion_p9_load): Likewise.
2683 (emit_fusion_p9_store): Likewise.
2684 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
2685 (ok_for_simple_move_operands): Likewise.
2686 (ok_for_simple_move_strict_operands): Likewise.
2687 (ok_for_simple_arith_logic_operands): Likewise.
2688 (visium_legitimize_reload_address): Likewise.
2689 (visium_select_cc_mode): Likewise.
2690 (output_cbranch): Likewise.
2691 (visium_split_double_move): Likewise.
2692 (visium_expand_copysign): Likewise.
2693 (visium_expand_int_cstore): Likewise.
2694 (visium_expand_fp_cstore): Likewise.
2695 * config/visium/visium.c (visium_pass_by_reference): Likewise.
2696 (visium_function_arg): Likewise.
2697 (visium_function_arg_advance): Likewise.
2698 (visium_libcall_value): Likewise.
2699 (visium_setup_incoming_varargs): Likewise.
2700 (visium_legitimate_constant_p): Likewise.
2701 (visium_legitimate_address_p): Likewise.
2702 (visium_legitimize_address): Likewise.
2703 (visium_secondary_reload): Likewise.
2704 (visium_register_move_cost): Likewise.
2705 (visium_memory_move_cost): Likewise.
2706 (prepare_move_operands): Likewise.
2707 (ok_for_simple_move_operands): Likewise.
2708 (ok_for_simple_move_strict_operands): Likewise.
2709 (ok_for_simple_arith_logic_operands): Likewise.
2710 (visium_function_value_1): Likewise.
2711 (rtx_ok_for_offset_p): Likewise.
2712 (visium_legitimize_reload_address): Likewise.
2713 (visium_split_double_move): Likewise.
2714 (visium_expand_copysign): Likewise.
2715 (visium_expand_int_cstore): Likewise.
2716 (visium_expand_fp_cstore): Likewise.
2717 (visium_split_cstore): Likewise.
2718 (visium_select_cc_mode): Likewise.
2719 (visium_split_cbranch): Likewise.
2720 (output_cbranch): Likewise.
2721 (visium_print_operand_address): Likewise.
2722 * expmed.c (flip_storage_order): Likewise.
2723 * expmed.h (emit_cstore): Likewise.
2724 (flip_storage_order): Likewise.
2725 * genrecog.c (validate_pattern): Likewise.
2726 * hsa-gen.c (gen_hsa_addr): Likewise.
2727 * internal-fn.c (expand_arith_overflow): Likewise.
2728 * ira-color.c (allocno_copy_cost_saving): Likewise.
2729 * lra-assigns.c (find_hard_regno_for_1): Likewise.
2730 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
2731 (process_invariant_for_inheritance): Likewise.
2732 * lra-eliminations.c (move_plus_up): Likewise.
2733 * omp-low.c (lower_oacc_reductions): Likewise.
2734 * simplify-rtx.c (simplify_subreg): Likewise.
2735 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
2736 (TARGET_CHKP_BOUND_MODE): Likewise..
2737 * targhooks.c (default_chkp_bound_mode): Likewise.
2738 (default_setup_incoming_vararg_bounds): Likewise.
2739 * targhooks.h (default_chkp_bound_mode): Likewise.
2740 (default_setup_incoming_vararg_bounds): Likewise.
2741 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
2742 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
2743 (have_whole_vector_shift): Likewise.
2744 * tree-vect-stmts.c (vectorizable_load): Likewise.
2745 * doc/tm.texi: Regenerate.
2746
2747 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
2748
2749 Graceful degrade if Binutils PR21472 is not available.
2750
2751 PR target/81072
2752 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
2753 .rodata in flash test fails.
2754 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
2755 * confgure: Regenerate.
2756 * config.in: Regenerate.
2757 * config/avr/avr.c (avr_asm_named_section)
2758 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
2759 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
2760 (avr_asm_init_sections): Same.
2761
2762 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2763
2764 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
2765 (fma<VH:mode>4_intrinsic): Likewise.
2766 (*fmsub<VCVTF:mode>4): Likewise.
2767 (*fmsub<VH:mode>4_intrinsic): Likewise.
2768
2769 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
2770
2771 PR target/81305
2772 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
2773 Don't depend on "optimize > 0".
2774 (out_movhi_r_mr, out_movqi_mr_r): Same.
2775 (out_movhi_mr_r, out_movqi_r_mr): Same.
2776 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
2777 io_address_operand on "optimize > 0".
2778
2779 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2780
2781 * tree-loop-distribution.c: Add general explanantion on the pass.
2782 (generate_loops_for_partition): Mark distributed loop.
2783 (pg_add_dependence_edges): New parameter. Handle alias data
2784 dependence specially and record it in the parameter if asked.
2785 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
2786 (init_partition_graph_vertices, add_partition_graph_edge): New.
2787 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
2788 (free_partition_graph_vdata, build_partition_graph): New.
2789 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
2790 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
2791 (data_ref_segment_size, latch_dominated_by_data_ref): New.
2792 (compute_alias_check_pairs, version_loop_by_alias_check): New.
2793 (version_for_distribution_p, finalize_partitions): New.
2794 (distribute_loop): Handle alias data dependence specially. Factor
2795 out loop fusion code as functions and call these functions.
2796
2797 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2798
2799 * tree-loop-distribution.c (classify_partition): New parameter and
2800 better handle reduction statement.
2801 (rdg_build_partitions): Revise comment.
2802 (distribute_loop): Compute statements in all partitions and pass it
2803 to classify_partition.
2804
2805 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2806
2807 * tree-loop-distribution.c (enum partition_type): New.
2808 (struct partition): New field type.
2809 (partition_merge_into): Add parameter. Update partition type.
2810 (data_dep_in_cycle_p, update_type_for_merge): New functions.
2811 (build_rdg_partition_for_vertex): Compute partition type.
2812 (rdg_build_partitions): Dump partition type.
2813 (distribute_loop): Update calls to partition_merge_into.
2814
2815 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2816
2817 * tree-loop-distribution.c (struct ddr_hasher): New.
2818 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
2819 (ddrs_table): New.
2820 (classify_partition): Call get_data_dependence.
2821 (pg_add_dependence_edges): Ditto.
2822 (distribute_loop): Release data dependence hash table.
2823
2824 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2825
2826 * tree-loop-distribution.c (ref_base_address): Delete.
2827 (similar_memory_accesses): Rename ...
2828 (share_memory_accesses): ... to this. Check if partitions access
2829 the same memory reference.
2830 (distribute_loop): Call share_memory_accesses.
2831
2832 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2833
2834 * tree-loop-distribution.c (struct partition): New field recording
2835 its data reference.
2836 (partition_alloc, partition_free): Init and release data refs.
2837 (partition_merge_into): Merge data refs.
2838 (build_rdg_partition_for_vertex): Collect data refs for partition.
2839 (pg_add_dependence_edges): Change parameters from vector to bitmap.
2840 Update uses.
2841 (distribute_loop): Remve data refs from vertice data of partition
2842 graph.
2843
2844 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2845
2846 * tree-loop-distribution.c (params.h): Include header file.
2847 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
2848 (datarefs_vec): New global var.
2849 (create_rdg_vertices): Use datarefs_vec directly.
2850 (free_rdg): Don't free data references.
2851 (build_rdg): Update use. Don't free data references.
2852 (distribute_loop): Compute global variable for data references.
2853 Bail out if there are too many data references.
2854
2855 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2856
2857 * tree-loop-distribution.c (loop_nest): New global var.
2858 (build_rdg): Use loop directly, rather than loop nest.
2859 (pg_add_dependence_edges): Remove loop nest parameter. Use global
2860 variable directly.
2861 (distribute_loop): Compute global variable loop nest. Update use.
2862
2863 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2864
2865 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
2866 (partition_merge_into): New parameter. Dump reason for fusion.
2867 (distribute_loop): Update use of partition_merge_into.
2868
2869 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2870
2871 * tree-loop-distribution.c (bb_top_order_index): New.
2872 (bb_top_order_index_size, bb_top_order_cmp): New.
2873 (stmts_from_loop): Use topological order.
2874 (pass_loop_distribution::execute): Compute and release topological
2875 order for basic blocks.
2876
2877 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2878
2879 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
2880 if no loops.
2881
2882 2017-07-05 Bin Cheng <bin.cheng@arm.com>
2883
2884 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
2885 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
2886 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
2887 * internal-fn.def (LOOP_DIST_ALIAS): New.
2888 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
2889 (fold_loop_internal_call): ... this.
2890 (vect_loop_dist_alias_call): New function.
2891 (set_uid_loop_bbs): Call fold_loop_internal_call.
2892 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
2893 internal calls.
2894
2895 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
2896
2897 PR target/81300
2898 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
2899 Require dead FLAGS_REG at the beginning of a peephole.
2900
2901 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
2902
2903 PR target/81294
2904 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
2905 arguments in the call to __builtin_ia32_sbb_u32.
2906 (_subborrow_u64): Swap _X and _Y arguments in the call to
2907 __builtin_ia32_sbb_u64.
2908
2909 2017-07-04 Jakub Jelinek <jakub@redhat.com>
2910
2911 PR debug/81278
2912 * tree-vrp.c (compare_assert_loc): Turn into a function template
2913 with stable template parameter. Only test if a->e is NULL,
2914 !a->e == !b->e has been verified already. Use e == NULL or
2915 e != NULL instead of e or ! e tests. If stable is true, don't use
2916 iterative_hash_expr, on the other side allow a or b or both NULL
2917 and sort the NULLs last.
2918 (process_assert_insertions): Sort using compare_assert_loc<false>
2919 instead of compare_assert_loc, later sort using
2920 compare_assert_loc<true> before calling process_assert_insertions_for
2921 in a loop. Use break instead of continue once seen NULL pointer.
2922
2923 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
2924
2925 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
2926 Cortex-R7 and Cortex-R8 processors.
2927
2928 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
2929
2930 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
2931 uninitialized while src is not.
2932
2933 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
2934
2935 * common/config/arm/arm-common.c: Adjust include path for
2936 arm-cpu-cdata.h
2937 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
2938 (arm-cpu.h): Create in build directory. Adjust dependency rules.
2939 (arm-cpu-data.h): Likewise.
2940 (arm-cpu-cdata.h): Likewise.
2941 * config/arm/arm-cpu.h: Delete.
2942 * config/arm/arm-cpu-cdata.h: Delete.
2943 * config/arm/arm-cpu-data.h: Delete.
2944
2945 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
2946
2947 * config/arm/arm-cpus.in (cortex-a55): New.
2948 (cortex-a75): Likewise.
2949 (cortex-a75.cortex-a55): Likewise.
2950 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
2951 cortex-a75.
2952 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
2953 * config/arm/arm-cpu-cdata.h: Regenerate.
2954 * config/arm/arm-cpu-data.h: Regenerate.
2955 * config/arm/arm-cpu.h: Regenerate.
2956 * config/arm/arm-tables.opt: Regenerate.
2957 * config/arm/arm-tune.md: Regenerate.
2958
2959 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
2960
2961 * haifa-sched.c (sched_create_recovery_edges): Update profile.
2962
2963 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
2964
2965 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
2966 probability.
2967
2968 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
2969
2970 PR tree-optimization/81292
2971 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
2972 full_string_p, also call adjust_related_strinfos if the adjustment
2973 is simple, otherwise invalidate related strinfos.
2974
2975 2017-07-04 Martin Liska <mliska@suse.cz>
2976
2977 PR sanitizer/81040
2978 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
2979 newly created variable as DECL_IGNORED_P.
2980
2981 2017-07-04 Martin Liska <mliska@suse.cz>
2982
2983 PR ipa/81293
2984 * ipa-inline.c (inline_small_functions):
2985 Use xstrdup_for_dump.
2986
2987 2017-07-04 Tom de Vries <tom@codesourcery.com>
2988
2989 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
2990
2991 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
2992
2993 PR target/81033
2994 * config/darwin.c (darwin_function_switched_text_sections):
2995 Fix spaces.
2996
2997 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
2998
2999 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
3000
3001 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
3002
3003 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
3004
3005 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3006
3007 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
3008 min_profitable_iters, and th as inclusive lower bounds.
3009 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
3010 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
3011 for min_profitable_iters and min_profitable_estimate.
3012 (vect_transform_loop): Treat th as an inclusive lower bound.
3013 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
3014
3015 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
3016
3017 PR target/81033
3018 * config/darwin.c (darwin_function_switched_text_sections):
3019 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
3020 in two pieces, and suppress the use of buf.
3021
3022 2017-07-03 Nathan Sidwell <nathan@acm.org>
3023
3024 * hash-table.h (hash_table_mod1): Fix indentation.
3025
3026 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3027
3028 PR middle-end/81290
3029 * predict.c (force_edge_cold): Be more careful about propagation
3030 backward.
3031 * profile-count.h (profile_probability::guessed,
3032 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
3033 New.
3034 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
3035
3036 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
3037
3038 * doc/invoke.texi (rcpc architecture extension): Document it.
3039
3040 2017-07-03 Richard Biener <rguenther@suse.de>
3041
3042 PR tree-optimization/60510
3043 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
3044 the scalar reduction PHI and use it.
3045 (vectorizable_reduction): Properly guard the single_defuse_cycle
3046 path for non-SLP reduction chains where we cannot use it.
3047 Rework reduc_def/index and vector type deduction. Rework
3048 vector operand gathering during reduction op code-gen.
3049 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
3050 chains dissolve the chain and leave it to non-SLP reduction
3051 handling.
3052
3053 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3054
3055 * tree-data-ref.h (dr_alignment): Declare.
3056 * tree-data-ref.c (dr_alignment): New function.
3057 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
3058 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
3059 set it.
3060 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
3061
3062 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3063
3064 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
3065 and base_misalignment fields.
3066 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
3067 * tree-data-ref.c: Include builtins.h.
3068 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
3069 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
3070 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
3071 * tree-vect-data-refs.c: Include tree-cfg.h.
3072 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
3073 fields instead of calculating an alignment here.
3074 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
3075 innermost_loop_behavior fields.
3076
3077 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3078
3079 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
3080 field.
3081 (DR_STEP_ALIGNMENT): New macro.
3082 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
3083 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
3084 (create_data_ref): Print it.
3085 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
3086 to tell whether the step preserves vector (mis)alignment.
3087 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
3088 Move the check for an integer step and generalise to all INTEGER_CST.
3089 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
3090 Print the outer step alignment.
3091
3092 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3093
3094 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
3095 with offset_alignment.
3096 (DR_ALIGNED_TO): Delete.
3097 (DR_OFFSET_ALIGNMENT): New macro.
3098 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
3099 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
3100 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
3101 (create_data_ref): Likewise.
3102 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
3103 (vect_analyze_data_refs): Likewise.
3104 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
3105 creating dummy innermost behavior.
3106
3107 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3108
3109 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
3110 with a "innermost_loop_behavior *" and refeence tree.
3111 * tree-data-ref.c (dr_analyze_innermost): Likewise.
3112 (create_data_ref): Update call accordingly.
3113 * tree-predcom.c (find_looparound_phi): Likewise.
3114
3115 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3116
3117 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
3118 fields with dr_wrt_vec_loop.
3119 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
3120 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
3121 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
3122 (vect_dr_behavior): New function.
3123 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
3124 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
3125 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
3126 track whether the step preserves the misalignment.
3127 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
3128 Use vect_dr_behavior.
3129 (vect_setup_realignment): Update call accordingly.
3130 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
3131 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
3132 call to vect_create_addr_base_for_vector_ref.
3133 (vect_create_cond_for_align_checks): Likewise.
3134 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
3135 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
3136 (vect_recog_mask_conversion_pattern): Likewise.
3137 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
3138 (new_stmt_vec_info): Remove redundant zeroing.
3139
3140 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
3141
3142 * common/config/arm/arm-common.c (arm_be8_option): New function.
3143 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
3144 (ISA_ARMv6): Add isa_bit_be8.
3145 * config/arm/arm.h (arm_be8_option): Add prototype.
3146 (BE8_SPEC_FUNCTION): New define.
3147 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
3148 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
3149 (mlittle-endian): Similarly.
3150 (mbe8, mbe32): New options.
3151 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
3152 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
3153
3154 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3155
3156 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
3157
3158 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3159
3160 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
3161 (cleanup_tree_cfg_bb): Use it.
3162 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
3163 New functions.
3164 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
3165
3166 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3167
3168 PR bootstrap/81285
3169 * loop-doloop.c (add_test): Update profile.
3170
3171 2017-07-03 Martin Liska <mliska@suse.cz>
3172
3173 PR sanitize/81040
3174 * sanopt.c (rewrite_usage_of_param): New function.
3175 (sanitize_rewrite_addressable_params): Likewise.
3176 (pass_sanopt::execute): Call rewrite_usage_of_param.
3177
3178 2017-07-03 Richard Biener <rguenther@suse.de>
3179
3180 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
3181 back to using VIEW_CONVERT_EXPR.
3182
3183 2017-07-03 Martin Liska <mliska@suse.cz>
3184
3185 PR other/78366
3186 * doc/extend.texi: Document when a resolver function is
3187 generated for target_clones.
3188
3189 2017-07-03 Martin Liska <mliska@suse.cz>
3190
3191 * asan.c (asan_emit_stack_protection): Unpoison just red zones
3192 and shadow memory of auto variables which are subject of
3193 use-after-scope sanitization.
3194 (asan_expand_mark_ifn): Add do set only when is_poison.
3195
3196 2016-07-03 Richard Biener <rguenther@suse.de>
3197
3198 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
3199 reduction PHIs.
3200 (vect_force_simple_reduction): Record reduction def -> phi mapping.
3201 (vectorizable_reduction): Perform reduction PHI creation when
3202 visiting a reduction PHI and adjust and simplify code generation
3203 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
3204 (vect_transform_loop): Visit reduction PHIs.
3205 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
3206 defs into the SLP tree.
3207 (vect_build_slp_tree): Reduction defs terminate the recursion.
3208 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
3209 of reduction defs.
3210 (vect_get_vec_defs_for_stmt_copy): Export.
3211 (vect_get_vec_defs): Likewise.
3212 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
3213 purpose.
3214 (vect_get_vec_defs_for_stmt_copy): Declare.
3215 (vect_get_vec_defs): Likewise.
3216
3217 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
3218
3219 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
3220 parameter with a "loop" parameter and use it instead of the
3221 loop containing DR_STMT. Don't check simple_iv when doing
3222 BB analysis. Describe the two analysis modes in the comment.
3223
3224 2017-07-03 Tom de Vries <tom@codesourcery.com>
3225
3226 PR tree-optimization/69468
3227 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
3228 (find_same_succ_bb): Handle ignore_edge_flags.
3229
3230 2017-07-03 Tom de Vries <tom@codesourcery.com>
3231
3232 PR tree-optimization/81192
3233 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
3234 hash.
3235 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
3236 differs.
3237 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
3238
3239 2017-07-03 Tom de Vries <tom@codesourcery.com>
3240
3241 PR tree-optimization/81192
3242 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
3243 BB_SAME_SUCC (bb) == NULL.
3244
3245 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3246
3247 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
3248 consistency.
3249
3250 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3251
3252 * dumpfile.c: Include profile-count.h
3253 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
3254 update profile.
3255 (insert_cond_bb): Update profile.
3256 * tree-cfg.h (insert_cond_bb): Update prototype.
3257 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
3258 * tree-dump.c: Do not include tree-cfg.
3259
3260 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3261
3262 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
3263
3264 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3265
3266 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
3267 bb.
3268
3269 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
3270
3271 * tree-complex.c (expand_complex_div_wide): update profile.
3272
3273 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
3274 Alan Hayward <alan.hayward@arm.com>
3275 David Sherwood <david.sherwood@arm.com>
3276
3277 * Makefile.in (MACHMODE_H): Remove insn-modes.h
3278 (CORETYPES_H): New define.
3279 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
3280 (insn-modes-inline.h, s-modes-inline-h): New rules.
3281 (generated_files): Add insn-modes-inline.h.
3282 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
3283 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
3284 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
3285 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
3286 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
3287 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
3288 (build/gencodes.o, build/genconditions.o): Likewise.
3289 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
3290 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
3291 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
3292 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
3293 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
3294 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
3295 * coretypes.h: Include everything up to real.h for generators.
3296 Include insn-modes.h first. Include wide-int-print.h after
3297 wide-int.h. Include insn-modes-inline.h and then machmode.h.
3298 * machmode.h: Don't include insn-modes.h here.
3299 * function-tests.c: Remove includes of signop.h, machmode.h,
3300 double-int.h and wide-int.h.
3301 * rtl.h: Likewise.
3302 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
3303 and wide-int.h.
3304 * optc-save-gen.awk: Likewise.
3305 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
3306 * godump.c: Remove include of wide-int-print.h.
3307 * pretty-print.h: Likewise.
3308 * wide-int-print.cc: Likewise.
3309 * wide-int.cc: Likewise.
3310 * hash-map-tests.c: Remove include of signop.h.
3311 * hash-set-tests.c: Likewise.
3312 * rtl-tests.c: Likewise.
3313 * mkconfig.sh: Remove include of machmode.h.
3314 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
3315 into...
3316 (emit_insn_modes_inline_h): ...this new function. Emit the code
3317 into an insn-modes-inline.h header file, adding appropriate
3318 include guards and end comments.
3319 (emit_insn_modes_c_header): Remove include of machmode.h.
3320 (emit_min_insn_modes_c_header): Include coretypes.h rather than
3321 machmode.h.
3322 (main): Handle -i flag and call emit_insn_modes_inline_h when
3323 it is passed.
3324
3325 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
3326
3327 * tree-ssa-strlen.c (strinfo): Rename the length field to
3328 nonzero_chars. Add a full_string_p field.
3329 (compare_nonzero_chars, zero_length_string_p): New functions.
3330 (get_addr_stridx): Add an offset_out parameter.
3331 Use compare_nonzero_chars.
3332 (get_stridx): Update accordingly. Use compare_nonzero_chars.
3333 (new_strinfo): Update after above changes to strinfo.
3334 (set_endptr_and_length): Set full_string_p.
3335 (get_string_length): Update after above changes to strinfo.
3336 (unshare_strinfo): Update call to new_strinfo.
3337 (maybe_invalidate): Likewise.
3338 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
3339 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
3340 as a uhwi instead of an shwi. Update after above changes to
3341 strinfo and new_strinfo.
3342 (zero_length_string): Assert that chainsi contains full strings.
3343 Use zero_length_string_p. Update call to new_strinfo.
3344 (adjust_related_strinfos): Update after above changes to strinfo.
3345 Copy full_string_p from origsi.
3346 (adjust_last_stmt): Use zero_length_string_p.
3347 (handle_builtin_strlen): Update after above changes to strinfo and
3348 new_strinfo. Install the lhs as the string length if the previous
3349 entry didn't describe a full string.
3350 (handle_builtin_strchr): Update after above changes to strinfo
3351 and new_strinfo.
3352 (handle_builtin_strcpy): Likewise.
3353 (handle_builtin_strcat): Likewise.
3354 (handle_builtin_malloc): Likewise.
3355 (handle_pointer_plus): Likewise.
3356 (handle_builtin_memcpy): Likewise. Track nonzero characters
3357 that aren't necessarily followed by a nul terminator.
3358 (handle_char_store): Likewise.
3359
3360 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
3361
3362 PR tree-optimization/80769
3363 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
3364 for malloc and calloc. Document the new invariant that all related
3365 strinfos have delayed lengths or none do.
3366 (verify_related_strinfos): Move earlier in file.
3367 (set_endptr_and_length): New function, split out from...
3368 (get_string_length): ...here. Also set the lengths of related
3369 strinfos.
3370 (zero_length_string): Assert that chainsi has known (rather than
3371 delayed) lengths.
3372 (adjust_related_strinfos): Likewise.
3373
3374 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
3375
3376 PR tree-optimization/81136
3377 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
3378 assert that two references with the same misalignment have the same
3379 compile-time misalignment if those compile-time misalignments
3380 are known.
3381
3382 2017-07-01 Andi Kleen <ak@linux.intel.com>
3383
3384 * print-tree.c (print_node): Print all attributes.
3385
3386 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
3387
3388 * cfg.c (scale_bbs_frequencies): New function.
3389 * cfg.h (scale_bbs_frequencies): Declare it.
3390 * cfgloopanal.c (single_likely_exit): Cleanup.
3391 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
3392 as parameter.
3393 (scale_loop_profile): Likewise.
3394 (loop_version): Likewise.
3395 (create_empty_loop_on_edge): Update.
3396 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
3397 scale_loop_frequencies, scale_loop_profile, loopify,
3398 loop_version): Update prototypes.
3399 * modulo-sched.c (sms_schedule): Update.
3400 * predict.c (unlikely_executed_edge_p): Also check probability.
3401 (probably_never_executed_edge_p): Fix typo.
3402 * tree-if-conv.c (version_loop_for_if_conversion): Update.
3403 * tree-parloops.c (gen_parallel_loop): Update.
3404 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
3405 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
3406 * tree-ssa-loop-split.c (split_loop): Update.
3407 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
3408 * tree-vect-loop-manip.c (vect_do_peeling): Update.
3409 (vect_loop_versioning): Update.
3410 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
3411
3412 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
3413
3414 * trans-mem.c (split_bb_make_tm_edge): Update profile.
3415
3416 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
3417
3418 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
3419 to keep profile consistent.
3420
3421 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
3422
3423 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
3424 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
3425 * profile-count.h (max_safe_multiplier): Make unsigned.
3426 (profile_count::guessed_zero): New.
3427
3428 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
3429
3430 * bb-reorder.c (fix_up_crossing_landing_pad,
3431 fix_crossing_conditional_branches): Use make_single_succ_edge
3432 to keep profile consistent.
3433
3434 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
3435
3436 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
3437 to update profile.
3438
3439 2017-07-01 Jakub Jelinek <jakub@redhat.com>
3440
3441 PR sanitizer/81262
3442 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
3443 the right scopes, make sure cond_jump isn't preserved between multiple
3444 iterations. Search for fallthru edge whenever there are 3+ edges and
3445 use find_fallthru_edge for it.
3446
3447 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
3448
3449 Patch by Alexander Monakov <amonakov@ispras.ru>
3450 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
3451 probabilities consistently.
3452
3453 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
3454
3455 * pa.c (pa_expand_compare_and_swap_loop): Update call of
3456 emit_cmp_and_jump_insns.
3457
3458 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
3459
3460 PR ipa/81261
3461 * tree-inline.c (expand_call_inline): Combine profile statuses.
3462
3463 2017-06-30 Andrew Pinski <apinski@cavium.com>
3464
3465 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
3466 fold_stmt returned true.
3467
3468 2017-06-30 Nathan Sidwell <nathan@acm.org>
3469
3470 * ggc.h (empty_string): Delete.
3471 * cfgexpand.c (expand_asm_stmt): Use plain "".
3472 * optabs.c (expand_asm_memory_barrier): Likewise.
3473 * stringpool.c (empty_string): Delete.
3474 (digit_vector, digit_string): Delete.
3475 (ggc_alloc_string): Use plain "", don't optimize single digit
3476 strings. Use ggc_alloc_atomic.
3477
3478 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
3479
3480 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
3481 comparison set and one other set, use the cost of the non-comparison
3482 set.
3483
3484 2017-06-30 Nathan Sidwell <nathan@acm.org>
3485
3486 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
3487 some formatting.
3488
3489 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
3490
3491 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
3492 loops. Remove now unneeded calls to gimple_switch_set_label() that
3493 just set removed labels to NULL_TREE.
3494
3495 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
3496
3497 * tree-ssanames.c (set_range_info_raw): Abstract from ...
3498 (set_range_info): ...here. Only call set_range_info_raw if domain
3499 is useful.
3500 (set_nonzero_bits): Call set_range_info_raw.
3501 * tree-ssanames.h (set_range_info_raw): New.
3502
3503 2017-06-30 Jakub Jelinek <jakub@redhat.com>
3504
3505 PR target/81225
3506 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
3507 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
3508 of nonimmediate_operand and <store_mask_constraint> instead of m
3509 for the input operand. For V8FI iterator, always split if input
3510 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
3511 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
3512 <store_mask_predicate> instead of register_operand and
3513 <store_mask_constraint> instead of v for the input operand. Make
3514 sure both operands aren't MEMs for if not <mask_applied>.
3515
3516 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
3517
3518 * lto-wrapper.c (copy_file) Close both file descriptors before
3519 exiting normally.
3520
3521 2017-06-30 Martin Liska <mliska@suse.cz>
3522
3523 PR ipa/81214
3524 * multiple_target.c (create_dispatcher_calls): Make ifunc
3525 also for function that don't have calls or are not referenced.
3526
3527 2017-06-30 Richard Biener <rguenther@suse.de>
3528
3529 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
3530 analyze the first scalar stmt. Move vector type computation
3531 for the BB case here from ...
3532 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
3533 live operation processing in the SLP case properly.
3534
3535 2017-06-30 Richard Biener <rguenther@suse.de>
3536
3537 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
3538
3539 2017-06-30 Martin Liska <mliska@suse.cz>
3540
3541 PR sanitizer/81021
3542 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
3543 before BUILT_IN_UNWIND_RESUME when ASAN is used.
3544
3545 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
3546
3547 * doc/invoke.texi (AArch64): Add missing options and remove redundant
3548 ones.
3549
3550 2017-06-30 Richard Biener <rguenther@suse.de>
3551
3552 PR tree-optimization/81249
3553 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
3554 condition reduction result to original scalar type.
3555
3556 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3557
3558 * profile-count.h (enum profile_quality): Fix typos and whitespace
3559 issues.
3560
3561 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3562
3563 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
3564 type for branch probabilities.
3565
3566 2017-06-29 Julian Brown <julian@codesourcery.com>
3567 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
3568
3569 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
3570 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
3571 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
3572 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
3573
3574 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
3575
3576 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
3577 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
3578 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
3579 CC usage from generic code to here.
3580 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
3581 CC usage into the target macros.
3582
3583 2017-06-29 Maya Rashish <coypu@sdf.org>
3584
3585 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
3586 objects.
3587
3588 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
3589
3590 * arm/arm-builtins.c: Include profile-count.h
3591 * except.c (sjlj_emit_function_enter): Use
3592 profile_probability::unlikely.
3593
3594 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3595
3596 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
3597 and tocrel_offset be pointer args rather than implicitly using
3598 static versions.
3599 (legitimate_constant_pool_address_p, rs6000_emit_move,
3600 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
3601 tocrel_offset and use in toc_relative_expr_p call.
3602 (print_operand, print_operand_address): Use static tocrel_base_oac
3603 and tocrel_offset_oac.
3604 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
3605 tocrel_offset_oac.
3606
3607 2017-06-29 Maya Rashish <coypu@sdf.org>
3608
3609 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
3610
3611 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
3612
3613 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
3614 objects, take into account only the alignment of 'op0' and 'mode1' if
3615 'op0' is a MEM.
3616
3617 2017-06-29 Steve Ellcey <sellcey@cavium.com>
3618
3619 * ccmp.c (ccmp_tree_comparison_p): New function.
3620 (ccmp_candidate_p): Update to use above function.
3621 (get_compare_parts): New function.
3622 (expand_ccmp_next): Update to use new functions.
3623 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
3624 new functions.
3625 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
3626 take mode as argument.
3627 * ccmp.h (expand_ccmp_expr): Add mode as argument.
3628 * expr.c (expand_expr_real_1): Pass mode as argument.
3629
3630 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
3631
3632 * combine.c (combine_instructions): Print insns to dump_file, together
3633 with their costs.
3634
3635 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
3636
3637 * asan.c (asan_emit_stack_protection): Update.
3638 (create_cond_insert_point): Update.
3639 * auto-profile.c (afdo_propagate_circuit): Update.
3640 * basic-block.h (struct edge_def): Turn probability to
3641 profile_probability.
3642 (EDGE_FREQUENCY): Update.
3643 * bb-reorder.c (find_traces_1_round): Update.
3644 (better_edge_p): Update.
3645 (sanitize_hot_paths): Update.
3646 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
3647 (make_single_succ_edge): Update.
3648 (check_bb_profile): Update.
3649 (dump_edge_info): Update.
3650 (update_bb_profile_for_threading): Update.
3651 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
3652 probabilitycount to 0.
3653 * cfgbuild.c (compute_outgoing_frequencies): Update.
3654 * cfgcleanup.c (try_forward_edges): Update.
3655 (outgoing_edges_match): Update.
3656 (try_crossjump_to_edge): Update.
3657 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
3658 (expand_gimple_tailcall): Update.
3659 (construct_init_block): Use make_single_succ_edge.
3660 (construct_exit_block): Use make_single_succ_edge.
3661 * cfghooks.c (verify_flow_info): Update.
3662 (redirect_edge_succ_nodup): Update.
3663 (split_edge): Update.
3664 (account_profile_record): Update.
3665 * cfgloopanal.c (single_likely_exit): Update.
3666 * cfgloopmanip.c (scale_loop_profile): Update.
3667 (set_zero_probability): Remove.
3668 (duplicate_loop_to_header_edge): Update.
3669 * cfgloopmanip.h (loop_version): Update prototype.
3670 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
3671 (force_nonfallthru_and_redirect): Update.
3672 (update_br_prob_note): Update.
3673 (rtl_verify_edges): Update.
3674 (purge_dead_edges): Update.
3675 (rtl_lv_add_condition_to_bb): Update.
3676 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
3677 * cgraphunit.c (init_lowered_empty_function): Update.
3678 (cgraph_node::expand_thunk): Update.
3679 * cilk-common.c: Include profile-count.h
3680 * dojump.c (inv): Remove.
3681 (jumpifnot): Update.
3682 (jumpifnot_1): Update.
3683 (do_jump_1): Update.
3684 (do_jump): Update.
3685 (do_jump_by_parts_greater_rtx): Update.
3686 (do_compare_rtx_and_jump): Update.
3687 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
3688 do_jump_1. do_compare_rtx_and_jump): Update prototype.
3689 * dwarf2cfi.c: Include profile-count.h
3690 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
3691 (sjlj_emit_dispatch_table): Likewise.
3692 * explow.c: Include profile-count.h
3693 * expmed.c (emit_store_flag_force): Update.
3694 (do_cmp_and_jump): Update.
3695 * expr.c (compare_by_pieces_d::generate): Update.
3696 (compare_by_pieces_d::finish_mode): Update.
3697 (emit_block_move_via_loop): Update.
3698 (store_expr_with_bounds): Update.
3699 (store_constructor): Update.
3700 (expand_expr_real_2): Update.
3701 (expand_expr_real_1): Update.
3702 * expr.h (try_casesi, try_tablejump): Update prototypes.
3703 * gimple-pretty-print.c (dump_probability): Update.
3704 (dump_profile): New.
3705 (dump_gimple_label): Update.
3706 (dump_gimple_bb_header): Update.
3707 * graph.c (draw_cfg_node_succ_edges): Update.
3708 * hsa-gen.c (convert_switch_statements): Update.
3709 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
3710 (find_if_case_1): Update.
3711 (find_if_case_2): Update.
3712 * internal-fn.c (expand_arith_overflow_result_store): Update.
3713 (expand_addsub_overflow): Update.
3714 (expand_neg_overflow): Update.
3715 (expand_mul_overflow): Update.
3716 (expand_vector_ubsan_overflow): Update.
3717 * ipa-cp.c (good_cloning_opportunity_p): Update.
3718 * ipa-split.c (split_function): Use make_single_succ_edge.
3719 * ipa-utils.c (ipa_merge_profiles): Update.
3720 * loop-doloop.c (add_test): Update.
3721 (doloop_modify): Update.
3722 * loop-unroll.c (compare_and_jump_seq): Update.
3723 (unroll_loop_runtime_iterations): Update.
3724 * lra-constraints.c (lra_inheritance): Update.
3725 * lto-streamer-in.c (input_cfg): Update.
3726 * lto-streamer-out.c (output_cfg): Update.
3727 * mcf.c (adjust_cfg_counts): Update.
3728 * modulo-sched.c (sms_schedule): Update.
3729 * omp-expand.c (expand_omp_for_init_counts): Update.
3730 (extract_omp_for_update_vars): Update.
3731 (expand_omp_ordered_sink): Update.
3732 (expand_omp_for_ordered_loops): Update.
3733 (expand_omp_for_generic): Update.
3734 (expand_omp_for_static_nochunk): Update.
3735 (expand_omp_for_static_chunk): Update.
3736 (expand_cilk_for): Update.
3737 (expand_omp_simd): Update.
3738 (expand_omp_taskloop_for_outer): Update.
3739 (expand_omp_taskloop_for_inner): Update.
3740 * omp-simd-clone.c (simd_clone_adjust): Update.
3741 * optabs.c (expand_doubleword_shift): Update.
3742 (expand_abs): Update.
3743 (emit_cmp_and_jump_insn_1): Update.
3744 (expand_compare_and_swap_loop): Update.
3745 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
3746 * predict.c (predictable_edge_p): Update.
3747 (edge_probability_reliable_p): Update.
3748 (set_even_probabilities): Update.
3749 (combine_predictions_for_insn): Update.
3750 (combine_predictions_for_bb): Update.
3751 (propagate_freq): Update.
3752 (estimate_bb_frequencies): Update.
3753 (force_edge_cold): Update.
3754 * profile-count.c (profile_count::dump): Add missing space into dump.
3755 (profile_count::debug): Add newline.
3756 (profile_count::differs_from_p): Explicitly convert to unsigned.
3757 (profile_count::stream_in): Update.
3758 (profile_probability::dump): New member function.
3759 (profile_probability::debug): New member function.
3760 (profile_probability::differs_from_p): New member function.
3761 (profile_probability::differs_lot_from_p): New member function.
3762 (profile_probability::stream_in): New member function.
3763 (profile_probability::stream_out): New member function.
3764 * profile-count.h (profile_count_quality): Rename to ...
3765 (profile_quality): ... this one.
3766 (profile_probability): New.
3767 (profile_count): Update.
3768 * profile.c (compute_branch_probabilities): Update.
3769 * recog.c (peep2_attempt): Update.
3770 * sched-ebb.c (schedule_ebbs): Update.
3771 * sched-rgn.c (find_single_block_region): Update.
3772 (compute_dom_prob_ps): Update.
3773 (schedule_region): Update.
3774 * sel-sched-ir.c (compute_succs_info): Update.
3775 * stmt.c (struct case_node): Update.
3776 (do_jump_if_equal): Update.
3777 (get_outgoing_edge_probs): Update.
3778 (conditional_probability): Update.
3779 (emit_case_dispatch_table): Update.
3780 (expand_case): Update.
3781 (expand_sjlj_dispatch_table): Update.
3782 (emit_case_nodes): Update.
3783 * targhooks.c: Update.
3784 * tracer.c (better_p): Update.
3785 (find_best_successor): Update.
3786 * trans-mem.c (expand_transaction): Update.
3787 * tree-call-cdce.c: Update.
3788 * tree-cfg.c (gimple_split_edge): Upate.
3789 (move_sese_region_to_fn): Upate.
3790 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
3791 * tree-eh.c (lower_resx): Upate.
3792 (cleanup_empty_eh_move_lp): Upate.
3793 * tree-if-conv.c (version_loop_for_if_conversion): Update.
3794 * tree-inline.c (copy_edges_for_bb): Update.
3795 (copy_cfg_body): Update.
3796 * tree-parloops.c (gen_parallel_loop): Update.
3797 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
3798 (gimple_gen_time_profiler): Update.
3799 * tree-ssa-dce.c (remove_dead_stmt): Update.
3800 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
3801 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
3802 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
3803 (unloop_loops): Update.
3804 (try_peel_loop): Update.
3805 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
3806 * tree-ssa-loop-split.c (connect_loops): Update.
3807 (split_loop): Update.
3808 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
3809 (hoist_guard): Update.
3810 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
3811 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
3812 (value_replacement): Update.
3813 * tree-ssa-reassoc.c (branch_fixup): Update.
3814 * tree-ssa-tail-merge.c (replace_block_by): Update.
3815 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
3816 (create_edge_and_update_destination_phis): Update.
3817 (compute_path_counts): Update.
3818 (recompute_probabilities): Update.
3819 (update_joiner_offpath_counts): Update.
3820 (freqs_to_counts_path): Update.
3821 (duplicate_thread_path): Update.
3822 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
3823 (struct switch_conv_info): Update.
3824 (gen_inbound_check): Update.
3825 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
3826 (vect_do_peeling): Update.
3827 (vect_loop_versioning): Update.
3828 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
3829 (optimize_mask_stores): Update.
3830 * ubsan.c (ubsan_expand_null_ifn): Update.
3831 * value-prof.c (gimple_divmod_fixed_value): Update.
3832 (gimple_divmod_fixed_value_transform): Update.
3833 (gimple_mod_pow2): Update.
3834 (gimple_mod_pow2_value_transform): Update.
3835 (gimple_mod_subtract): Update.
3836 (gimple_mod_subtract_transform): Update.
3837 (gimple_ic): Update.
3838 (gimple_stringop_fixed_value): Update.
3839 (gimple_stringops_transform): Update.
3840 * value-prof.h: Update.
3841
3842 2017-06-29 Carl Love <cel@us.ibm.com>
3843
3844 * config/rs6000/rs6000-c.c: Add support for built-in functions
3845 vector signed int vec_signed (vector float);
3846 vector signed long long vec_signed (vector double);
3847 vector signed int vec_signed2 (vector double, vector double);
3848 vector signed int vec_signede (vector double);
3849 vector signed int vec_signedo (vector double);
3850 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
3851 instruction generator.
3852 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
3853 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
3854 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
3855 Add define_insn.
3856 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
3857 vunsignede_v2df): Add define_expands.
3858 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
3859 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
3860 VEC_UNSIGNEDO): Add definitions.
3861 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
3862 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
3863 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
3864 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
3865 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
3866 * config/rs6000/altivec.h (vec_signed, vec_signed2,
3867 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
3868 vec_unsignede, vec_unsignedo): Add builtin defines.
3869 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
3870 declaration.
3871 * doc/extend.texi: Update the built-in documentation file for the
3872 new built-in functions.
3873
3874 2017-06-29 Richard Biener <rguenther@suse.de>
3875
3876 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
3877 reduction chains to LOOP_VINFO_REDUCTIONS.
3878 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
3879 SLP reductions after processing reduction chains.
3880
3881 2017-06-29 Nathan Sidwell <nathan@acm.org>
3882
3883 * builtins.c (fold_builtin_FUNCTION): Use
3884 lang_hooks.decl_printable_name.
3885
3886 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
3887
3888 PR middle-end/81194
3889 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
3890 with only one label.
3891 * stmt.c (expand_case): Assert NCASES is greater than one.
3892
3893 2017-06-29 Richard Biener <rguenther@suse.de>
3894
3895 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
3896 anything.
3897 (group_case_labels): Likewise.
3898 (find_taken_edge): Push sanity checking on val to workers...
3899 (find_taken_edge_cond_expr): ... here
3900 (find_taken_edge_switch_expr): ... and here, handle cases
3901 with just a default label.
3902 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
3903 (group_case_labels): Likewise.
3904 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
3905 group_case_labels does anything cleanup the CFG again.
3906
3907 2017-06-29 Bin Cheng <bin.cheng@arm.com>
3908
3909 PR tree-optimization/81196
3910 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
3911 exit condition comparing two IVs.
3912
3913 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
3914
3915 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
3916 profile to the dummy entry at the end of the list of architectures.
3917 * config/arm/arm-cpu-cdata.h: Regenerated.
3918
3919 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3920 Michael Collison <michael.collison@arm.com>
3921
3922 PR target/70119
3923 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
3924 New pattern.
3925 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
3926 (*aarch64_reg_<mode>3_minus_mask): New pattern.
3927 (*aarch64_<optab>_reg_di3_mask2): New pattern.
3928 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
3929 of shift when the shift amount is masked with constant equal to
3930 the size of the mode.
3931 * config/aarch64/predicates.md (subreg_lowpart_operator): New
3932 predicate.
3933
3934 2017-06-29 Martin Liska <mliska@suse.cz>
3935
3936 * config/i386/i386.opt: Change range from [1,5] to [0,5].
3937
3938 2017-06-29 Yury Gribov <tetra2005@gmail.com>
3939
3940 PR bootstrap/80565
3941 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
3942 code.
3943 * ipa-inline.h
3944 (edge_growth_cache_entry::edge_growth_cache_entry): New
3945 function.
3946 (reset_edge_growth_cache): Update to use constructor.
3947
3948 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3949
3950 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
3951 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
3952 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
3953
3954 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
3955
3956 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
3957 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
3958
3959 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
3960
3961 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
3962 (*-linux-uclibc*): Add t-uclibc tmake_file.
3963 * config/t-musl: New.
3964 * config/t-uclibc: New.
3965
3966 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
3967
3968 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
3969 context.
3970 (gen_comm_data): Emit architectural setting of arch_prof.
3971 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
3972 profile.
3973 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
3974 (armv8-m.base, armv8-m.main): Likewise.
3975 * arm-protos.h (arm_build_target): Add profile field.
3976 (arch_option): Likewise.
3977 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
3978 the active target.
3979 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
3980 arm_active_target.profile.
3981
3982 2017-06-28 Richard Biener <rguenther@suse.de>
3983
3984 PR middle-end/81227
3985 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
3986 TYPE_OVERFLOW_WRAPS.
3987 * match.pd (negate_expr_p): Likewise.
3988 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
3989 fold_build2, not fold_binary.
3990
3991 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
3992
3993 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
3994 Convert memory address to Pmode.
3995 (aarch64_print_operand): Assert MEM operands are always Pmode.
3996
3997 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
3998
3999 PR target/79665
4000 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
4001 Remove redundant if.
4002 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
4003 * config/arm/aarch-common-protos.h
4004 (aarch_forward_to_shift_is_not_shifted_re): Remove.
4005 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
4006
4007 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
4008
4009 PR ipa/81238
4010 * multiple_target.c (create_dispatcher_calls): Set the default
4011 clone to be static, not public.
4012
4013 2017-06-28 Richard Biener <rguenther@suse.de>
4014
4015 * tree-vect-loop.c (vectorizable_reduction): Move special
4016 cond reduction IV var creation ...
4017 (vect_create_epilog_for_reduction): ... here. Remove induction_index
4018 parameter. Use STMT_VINFO_VECTYPE.
4019 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
4020 constant_p.
4021
4022 2017-06-28 Martin Liska <mliska@suse.cz>
4023
4024 PR ipa/81128
4025 * ipa-visibility.c (non_local_p): Handle visibility.
4026
4027 2017-06-28 Martin Liska <mliska@suse.cz>
4028
4029 PR driver/79659
4030 * common.opt: Add IntegerRange to various options.
4031 * opt-functions.awk (integer_range_info): New function.
4032 * optc-gen.awk: Add integer_range_info to cl_options struct.
4033 * opts-common.c (decode_cmdline_option): Handle
4034 CL_ERR_INT_RANGE_ARG.
4035 (cmdline_handle_error): Likewise.
4036 * opts.c (print_filtered_help): Show valid interval in
4037 when --help is provided.
4038 * opts.h (struct cl_option): Add range_min and range_max fields.
4039 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
4040
4041 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
4042
4043 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
4044 (x * C EQ/NE y * C): New transformation.
4045
4046 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
4047
4048 * genmultilib (combination_space): Accept '+' in option names.
4049
4050 2017-06-28 Martin Liska <mliska@suse.cz>
4051
4052 PR sanitizer/81224
4053 * asan.c (instrument_derefs): Bail out inner references
4054 that are hard register variables.
4055
4056 2017-06-28 Jakub Jelinek <jakub@redhat.com>
4057
4058 PR target/81175
4059 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
4060 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
4061
4062 2017-06-28 Richard Biener <rguenther@suse.de>
4063
4064 * tree-vectorizer.h (vect_get_vec_defs): Remove.
4065 (vect_get_slp_defs): Adjust.
4066 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
4067 out from ...
4068 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
4069 simplify.
4070 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
4071 get_initial_defs_for_reduction instead of vect_get_vec_defs.
4072 (vectorizable_reduction): Adjust.
4073 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
4074 handling.
4075 (vect_get_slp_defs): Likewise.
4076 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
4077 (vectorizable_bswap): Adjust.
4078 (vectorizable_call): Likewise.
4079 (vectorizable_conversion): Likewise.
4080 (vectorizable_assignment): Likewise.
4081 (vectorizable_shift): Likewise.
4082 (vectorizable_operation): Likewise.
4083 (vectorizable_store): Likewise.
4084 (vectorizable_condition): Likewise.
4085 (vectorizable_comparison): Likewise.
4086
4087 2017-06-28 Michael Collison <michael.collison@arm.com>
4088
4089 PR target/68535
4090 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
4091 set of base_reg
4092 (arm_gen_movmemqi): Removed unused variable 'i'.
4093 Convert 'for' loop into 'while' loop.
4094 (arm_expand_prologue): Remove last unnecessary set of insn.
4095 (thumb_pop): Remove unused variable 'pushed_words'.
4096 (thumb_exit): Remove last unnecessary set of regs_to_pop.
4097
4098 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4099
4100 * config/s390/predicates.md: Use s390_rel_address_ok_p.
4101 * config/s390/s390-protos.h: Add prototype of
4102 s390_rel_address_ok_p.
4103 * config/s390/s390.c (s390_got_symbol): New function.
4104 (s390_rel_address_ok_p): New function.
4105 (legitimize_pic_address): Use s390_rel_address_ok_p.
4106 (s390_load_got): Use s390_got_symbol.
4107 (s390_option_override): Issue error if
4108 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
4109 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
4110 New macro.
4111 * config/s390/s390.opt: New option mpic-data-is-text-relative.
4112
4113 2017-06-27 Andrew Pinski <apinski@cavium.com>
4114
4115 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
4116 (X * copysign (1.0, X)): New pattern.
4117 (X * copysign (1.0, -X)): New pattern.
4118 (copysign (-1.0, CST)): New pattern.
4119
4120 2017-06-27 Joseph Myers <joseph@codesourcery.com>
4121
4122 * genmultilib (combination_space): Remove variable.
4123 Validate reuse rules against regular expression for any sequence
4124 of multilib options in any order.
4125
4126 2017-06-27 Michael Collison <michael.collison@arm.com>
4127
4128 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
4129 call aarch64_split_simd_combine.
4130 * (aarch64_combine_internal<mode>): Delete pattern.
4131 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
4132 Allow register and subreg operands.
4133
4134 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
4135
4136 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
4137 specific need, just fallback on defaults.
4138 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
4139
4140 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
4141 Olivier Hainque <hainque@adacore.com>
4142
4143 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
4144 map for 64bits.
4145 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
4146 targets. Pick a default if no particular attempt applied.
4147 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
4148 larger contexts.
4149
4150 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
4151
4152 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
4153 (x86_64-wrs-vxworks7): Likewise.
4154
4155 2017-06-27 Marek Polacek <polacek@redhat.com>
4156
4157 PR sanitizer/81223
4158 * ubsan.c (instrument_null): Check get_base_address's result for null.
4159
4160 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
4161
4162 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
4163
4164 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
4165
4166 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
4167 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
4168 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
4169 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
4170 New function types.
4171 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
4172 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
4173 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
4174 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
4175 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
4176 BUILT_IN_FEUPDATEENV): New builtins.
4177 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
4178 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
4179 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
4180 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
4181 macros.
4182 (builtin_structptr_types): Adjust size.
4183 * tree.c (builtin_structptr_types): Add four entries.
4184
4185 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
4186 Olivier Hainque <hainque@adacore.com>
4187
4188 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
4189 (TLS_SYM): New local macro, forcing reference to __tls__ on
4190 link command lines for VxWorks 7 RTPs, triggering initialization
4191 of tlsLib.
4192 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
4193 OS features TLS support, true for RTPs on VxWorks 7.
4194 * config/vxworks.c (vxworks_override_options): Setup emutls
4195 accordingly.
4196
4197 2017-06-27 Jakub Jelinek <jakub@redhat.com>
4198
4199 * predict.c (test_prediction_value_range): Use -1U instead of -1
4200 to avoid narrowing conversion warning.
4201 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
4202 to avoid narrowing conversion warning.
4203 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
4204 -1.
4205 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
4206
4207 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
4208
4209 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
4210 64bit configurations.
4211 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
4212 (SIZE_TYPE): Likewise.
4213 * config/vxworks.c (vxworks_emutls_var_fields): Use
4214 long_unsigned_type_node instead of unsigned_type_node as the offset
4215 field type, which is "pointer" mode in emutls.c.
4216
4217 2017-06-27 Jakub Jelinek <jakub@redhat.com>
4218
4219 PR sanitizer/81209
4220 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
4221
4222 PR middle-end/81207
4223 * gimple-fold.c (replace_call_with_call_and_fold): Handle
4224 gimple_vuse copying separately from gimple_vdef copying.
4225
4226 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4227
4228 * value-prof.c (free_hist): Remove call to memset and the enclosing if
4229 condition.
4230
4231 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
4232 Olivier Hainque <hainque@adacore.com>
4233
4234 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
4235 for all vxworks7 targets.
4236 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
4237 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
4238 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
4239 variations for VX6/VX7 and 32/64bits later on in ...
4240 (VXWORKS_LIB_SPEC): Leverage new macros.
4241 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
4242 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
4243
4244 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
4245
4246 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
4247 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
4248
4249 2017-06-26 Carl Love <cel@us.ibm.com>
4250
4251 * config/rs6000/rs6000-c.c: Add support for built-in functions
4252 vector bool char vec_reve (vector bool char);
4253 vector signed char vec_reve (vector signed char);
4254 vector unsigned char vec_reve (vector unsigned char);
4255 vector bool int vec_reve (vector bool int);
4256 vector signed int vec_reve (vector signed int);
4257 vector unsigned int vec_reve (vector unsigned int);
4258 vector bool long long vec_reve (vector bool long long);
4259 vector signed long long vec_reve (vector signed long long);
4260 vector unsigned long long vec_reve (vector unsigned long long);
4261 vector bool short vec_reve (vector bool short);
4262 vector signed short vec_reve (vector signed short);
4263 vector double vec_reve (vector double);
4264 vector float vec_reve (vector float);
4265 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
4266 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
4267 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
4268 (altivec_vreve): New pattern.
4269 * config/rs6000/altivec.h (vec_reve): New define.
4270 * doc/extend.texi (vec_rev): Update the built-in documentation file
4271 for the new built-in functions.
4272
4273 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4274
4275 PR tree-optimization/71815
4276 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
4277 function.
4278 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
4279 has_single_use.
4280 (slsr_process_phi): Likewise.
4281 (replace_uncond_cands_and_profitable_phis): Don't replace a
4282 multiply candidate with a stride of 1 (copy or cast).
4283 (phi_incr_cost): Call uses_consumed_by_stmt rather than
4284 has_single_use.
4285 (lowest_cost_path): Likewise.
4286 (total_savings): Likewise.
4287
4288 2017-06-26 Richard Biener <rguenther@suse.de>
4289
4290 PR target/81175
4291 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
4292 Use def_builtin_pure for all gather builtins.
4293
4294 2017-06-26 Richard Biener <rguenther@suse.de>
4295
4296 PR tree-optimization/81203
4297 * tree-tailcall.c (find_tail_calls): Do not move stmts into
4298 non-dominating BBs.
4299
4300 2017-06-26 Marek Polacek <polacek@redhat.com>
4301
4302 PR c/80116
4303 * doc/invoke.texi: Document -Wmultistatement-macros.
4304
4305 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
4306
4307 * doc/sourcebuild.texi (ARM-specific attributes): Document new
4308 arm_neon_ok_no_float_abi effective target.
4309
4310 2017-06-26 Richard Biener <rguenther@suse.de>
4311
4312 PR tree-optimization/80928
4313 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
4314 (copy_bbs): Set BB_DUPLICATED flag early.
4315 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
4316 marked blocks.
4317 (execute_on_shrinking_pred): Likewise.
4318 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
4319 BB_DUPLICATED blocks.
4320 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
4321 iterate over all PHIs considering removal of *gsi.
4322
4323 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
4324
4325 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
4326 qdf24xx.
4327
4328 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4329
4330 * config/rs6000/rs6000-string.c: (expand_block_clear,
4331 do_load_for_compare, select_block_compare_mode,
4332 compute_current_alignment, expand_block_compare,
4333 expand_strncmp_align_check, expand_strn_compare,
4334 expand_block_move, rs6000_output_load_multiple)
4335 Move functions related to string/block move/compare
4336 to a separate file.
4337 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
4338 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
4339 for this function which is now used in two files.
4340 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
4341 * config.gcc: Add rs6000-string.o to extra_objs for
4342 targets powerpc*-*-* and rs6000*-*-*.
4343
4344 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
4345
4346 PR target/80510
4347 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
4348 32-bit, since indexed is not valid for DImode.
4349 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
4350 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
4351 (define_peephole2 for Altivec d-form load): Add 32-bit support.
4352 (define_peephole2 for Altivec d-form store): Likewise.
4353
4354 PR ipa/81185
4355 * multiple_target.c (create_dispatcher_calls): Only create the
4356 dispatcher call if the function is the default clone of a
4357 versioned function.
4358
4359 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
4360
4361 PR middle-end/80902
4362 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
4363 a call, force the call to not be a tail call.
4364
4365 2017-06-23 Jeff Law <law@redhat.com>
4366
4367 * doc/contrib.texi: Add entry for Steven Pemberton's work on
4368 enquire.
4369
4370 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
4371
4372 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
4373 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
4374 handling for early expansion of vector shifts (sl,sr,sra,rl).
4375 (builtin_function_type): Add vector shift right instructions
4376 to the unsigned argument list.
4377
4378 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
4379
4380 rtl-optimizatoin/79286
4381 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
4382 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
4383 trap. PIC register plus a const unspec without offset can never trap.
4384
4385 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
4386
4387 * tree.h (builtin_structptr_type): New type.
4388 (builtin_structptr_types): Declare new array.
4389 * tree.c (builtin_structptr_types): New array.
4390 (free_lang_data, build_common_tree_nodes): Use it.
4391
4392 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
4393
4394 PR c++/81187
4395 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
4396 -Wnoexcept.
4397
4398 2017-06-22 Matt Turner <mattst88@gmail.com>
4399
4400 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
4401 Lake models to skylake case. Assume skylake for unknown
4402 models with clflushopt.
4403
4404 2017-06-22 Jeff Law <law@redhat.com>
4405
4406 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
4407 frame sizes that do not satisfy aarch64_uimm12_shift.
4408
4409 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
4410
4411 * profile-count.h (apply_probability,
4412 apply_scale, probability_in): Fix checks for zero.
4413
4414 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4415
4416 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
4417 * doc/cppdiropts.texi (-I @var{dir}): Document it.
4418
4419 2016-06-22 Richard Biener <rguenther@suse.de>
4420
4421 * tree-vect-loop.c (vect_model_reduction_cost): Handle
4422 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
4423 REDUC_MAX_EXPR support.
4424 (vectorizable_reduction): Likewise.
4425 (vect_create_epilog_for_reduction): Likewise.
4426
4427 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
4428
4429 * match.pd (A / (1 << B) -> A >> B): New.
4430 * generic-match-head.c: Include optabs-tree.h.
4431 * gimple-match-head.c: Likewise.
4432 * optabs-tree.h (target_supports_op_p): New.
4433 * optabs-tree.c (target_supports_op_p): New.
4434
4435 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4436
4437 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
4438 $gcc_cv_ld --help output.
4439 (gcc_cv_ld_demangle): Likewise.
4440 (gcc_cv_ld_eh_frame_hdr): Likewise.
4441 (gcc_cv_ld_pie): Likewise.
4442 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
4443 (gcc_cv_ld_buildid): Likewise.
4444 (gcc_cv_ld_sysroot): Likewise.
4445 (ld_bndplt_support): Likewise.
4446 (ld_pushpopstate_support): Likewise.
4447 * configure: Regenerate.
4448 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
4449
4450 2017-06-21 Jakub Jelinek <jakub@redhat.com>
4451
4452 PR target/81151
4453 * config/i386/sse.md (round<mode>2): Renumber match_dup and
4454 operands indexes to avoid gap between operands and match_dups.
4455
4456 2017-06-21 Andrew Pinski <apinski@cavium.com>
4457
4458 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
4459 Increment Arith_shift and Arith_shift_reg by 1.
4460 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
4461 New tuning flag.
4462 * config/aarch64/aarch64.c (thunderx_tunings): Enable
4463 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
4464 (aarch64_strip_extend): Add new argument and test for it.
4465 (aarch64_cheap_mult_shift_p): New function.
4466 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
4467 add a cost if it is true.
4468 Update calls to aarch64_strip_extend.
4469 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
4470
4471 2017-06-21 Andrew Pinski <apinski@cavium.com>
4472
4473 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
4474 tunings.
4475 (thunderxt88): Likewise.
4476 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
4477 (thunderx_prefetch_tune): New variable.
4478 (thunderx2t99_prefetch_tune): Update for the correct values.
4479 (thunderxt88_tunings): New variable.
4480 (thunderx_tunings): Use thunderx_prefetch_tune instead of
4481 generic_prefetch_tune.
4482 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
4483
4484 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4485
4486 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
4487 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
4488 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
4489 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
4490 (aarch64_atomic_cas<mode>, GPI): Likewise.
4491
4492 2017-06-21 Martin Liska <mliska@suse.cz>
4493
4494 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
4495 statements on cold and hot labels.
4496 * predict.c (tree_estimate_probability_bb): Remove the
4497 prediction from this place.
4498
4499 2017-06-21 Martin Liska <mliska@suse.cz>
4500
4501 PR tree-optimization/79489
4502 * gimplify.c (maybe_add_early_return_predict_stmt): New
4503 function.
4504 (gimplify_return_expr): Call the function.
4505 * predict.c (tree_estimate_probability_bb): Remove handling
4506 of early return.
4507 * predict.def: Update comment about early return predictor.
4508 * gimple-predict.h (is_gimple_predict): New function.
4509 * predict.def: Change default value of early return to 66.
4510 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
4511 statements.
4512 * passes.def: Put pass_strip_predict_hints to the beginning of
4513 IPA passes.
4514
4515 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
4516
4517 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
4518 FUNCTION_DECL declarations.
4519 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
4520 declarations.
4521 (dwaf2out_decl): Likewise.
4522 * godump.c (go_early_global_decl): Skip call to the real debug hook
4523 for FUNCTION_DECL declarations.
4524 * passes.c (rest_of_decl_compilation): Skip call to the
4525 early_global_decl debug hook for FUNCTION_DECL declarations, unless
4526 -fdump-go-spec is passed.
4527
4528 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
4529
4530 * config/i386/i386.c (struct builtin_isa): New field pure_p.
4531 Reorder for compactness.
4532 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
4533 (def_builtin_pure, def_builtin_pure2): New functions.
4534 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
4535
4536 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
4537
4538 * match.pd (nop_convert): New predicate.
4539 ((A +- CST1) +- CST2): Allow some NOP conversions.
4540
4541 2017-06-21 Jakub Jelinek <jakub@redhat.com>
4542
4543 PR c++/81130
4544 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
4545 with ctors/dtors if GOVD_SHARED is set.
4546
4547 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
4548
4549 * config/aarch64/aarch64.md (movti_aarch64):
4550 Emit mov rather than orr.
4551 (movtf_aarch64): Likewise.
4552 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
4553 Emit mov rather than orr.
4554
4555 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
4556
4557 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
4558 Swap alternatives, make integer dup more expensive.
4559
4560 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
4561
4562 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
4563 Return true for non-tls symbols.
4564
4565 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
4566
4567 * config/aarch64/aarch64-cores.def (cortex-a55): New.
4568 (cortex-a75): Likewise.
4569 (cortex-a75.cortex-a55): Likewise.
4570 * config/aarch64/aarch64-tune.md: Regenerate.
4571 * doc/invoke.texi (-mtune): Document new values for -mtune.
4572
4573 2017-06-21 Tom de Vries <tom@codesourcery.com>
4574
4575 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
4576 stack_size feature.
4577 (Effective-Target Keywords, Other attributes): Suggest using
4578 dg-add-options stack_size feature to get stack limit in stack_size
4579 effective target documentation.
4580
4581 2017-06-21 Julian Brown <julian@codesourcery.com>
4582 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
4583
4584 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
4585 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
4586 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
4587 reservation.
4588 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
4589 attribute type list for neon_multiply.
4590 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
4591 attribute type list for neon_multiply.
4592 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
4593 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
4594 attribute type list for neon_multiply.
4595 * config/arm/types.md (crypto_pmull): Add.
4596 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
4597 attribute type list.
4598
4599 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
4600
4601 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
4602 arm1176jzf-s.
4603
4604 2017-06-20 Jakub Jelinek <jakub@redhat.com>
4605
4606 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
4607 to make sure not to dereference a NULL cost_classes_ptr pointer.
4608
4609 2017-06-20 Carl Love <cel@us.ibm.com>
4610
4611 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4612 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
4613 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
4614 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
4615 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
4616 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
4617 VMULOSW): New enum "unspec" values.
4618 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
4619 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
4620 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
4621 altivec_vmulosw): New patterns.
4622 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
4623 VMULOSW): Add definitions.
4624
4625 2017-06-20 Julia Koval <julia.koval@intel.com>
4626
4627 * config/i386/i386.c: Fix rounding expand for new pattern.
4628 * config/i386/subst.md: Fix pattern (parallel -> unspec).
4629
4630 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
4631
4632 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
4633 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
4634
4635 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
4636
4637 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
4638 feature string.
4639
4640 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
4641
4642 * config/aarch64/aarch64-cores.def: Rearrange to sort by
4643 architecture, then by implementer ID.
4644 * config/aarch64/aarch64-tune.md: Regenerate.
4645
4646 2017-06-20 Richard Biener <rguenther@suse.de>
4647
4648 PR middle-end/81097
4649 * fold-const.c (split_tree): Fold to type before negating.
4650
4651 2017-06-20 David Malcolm <dmalcolm@redhat.com>
4652
4653 * diagnostic-show-locus.c
4654 (selftest::test_fixit_deletion_affecting_newline): New function.
4655 (selftest::diagnostic_show_locus_c_tests): Call it.
4656
4657 2017-06-20 Andreas Schwab <schwab@suse.de>
4658
4659 PR target/80970
4660 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
4661 instead of "+d".
4662
4663 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
4664
4665 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
4666 __ARM_FEATURE_COPROC according to support.
4667
4668 2017-06-20 Jakub Jelinek <jakub@redhat.com>
4669
4670 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
4671 Rewritten to avoid overflow for > 32-bit pointers.
4672
4673 PR sanitizer/81125
4674 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
4675 by removing enum keyword.
4676 (ubsan_type_descriptor): Likewise. Formatting fix.
4677
4678 PR target/81121
4679 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
4680 splitter): Require TARGET_SSE2 in the condition.
4681
4682 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
4683
4684 PR target/79799
4685 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
4686 for doing vector set of SFmode on ISA 3.0.
4687 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
4688 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
4689 element.
4690 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
4691 SFmode value into a V4SF variable that was extracted from another
4692 V4SF variable without converting the element to double precision
4693 and back to single precision vector format.
4694 (vsx_insert_extract_v4sf_p9_2): Likewise.
4695
4696 2017-06-19 Jakub Jelinek <jakub@redhat.com>
4697
4698 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
4699 in UWHI to avoid undefined overflow.
4700
4701 PR sanitizer/81125
4702 * ubsan.h (enum ubsan_encode_value_phase): New.
4703 (ubsan_encode_value): Change second argument to
4704 enum ubsan_encode_value_phase with default value of
4705 UBSAN_ENCODE_VALUE_GENERIC.
4706 * ubsan.c (ubsan_encode_value): Change second argument to
4707 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
4708 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
4709 create_tmp_var_raw instead of create_tmp_var and use a
4710 TARGET_EXPR.
4711 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
4712 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
4713 ubsan_encode_value callers.
4714
4715 PR sanitizer/81111
4716 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
4717 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
4718 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
4719
4720 2017-06-19 Richard Biener <rguenther@suse.de>
4721
4722 PR middle-end/81118
4723 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
4724 estimates if we changed anything.
4725
4726 2017-06-19 Richard Biener <rguenther@suse.de>
4727
4728 PR tree-optimization/80887
4729 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
4730 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
4731 simplified lookups, then reset mprts_hook.
4732 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
4733 simplifying.
4734 (try_to_simplify): Likewise.
4735
4736 2017-06-19 Martin Liska <mliska@suse.cz>
4737
4738 PR sanitizer/80879
4739 * gimplify.c (gimplify_switch_expr):
4740 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
4741
4742 2017-06-19 Martin Liska <mliska@suse.cz>
4743
4744 * doc/install.texi: Document that PGO runs in 4 stages.
4745
4746 2017-06-19 Martin Liska <mliska@suse.cz>
4747
4748 PR ipa/80732
4749 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
4750 to dispatcher function name.
4751 * multiple_target.c (replace_function_decl): New function.
4752 (create_dispatcher_calls): Redirect both edges and references.
4753
4754 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
4755
4756 * profile-count.c (profile_count::dump): Dump quality.
4757 (profile_count::differs_from_p): Update for unsigned val.
4758 * profile-count.h (profile_count_quality): New enum.
4759 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
4760
4761 2017-06-19 Richard Biener <rguenther@suse.de>
4762
4763 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
4764 struct function as arg.
4765 (estimate_numbers_of_iterations): Export overload with loop arg.
4766 (free_numbers_of_iterations_estimates_loop): Use an overload of
4767 free_numbers_of_iterations_estimates instead.
4768 * tree-cfg.c (remove_bb): Adjust.
4769 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
4770 * tree-parloops.c (gen_parallel_loop): Likewise.
4771 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
4772 Likewise.
4773 (tree_unroll_loops_completely): Likewise.
4774 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
4775 Use an overload instead and export.
4776 (estimated_loop_iterations): Adjust.
4777 (max_loop_iterations): Likewise.
4778 (likely_max_loop_iterations): Likewise.
4779 (estimate_numbers_of_iterations): Take struct function as arg
4780 and adjust.
4781 (loop_exits_before_overflow): Adjust.
4782 (free_numbers_of_iterations_estimates_loop): Use an overload.
4783 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
4784 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
4785
4786 2017-06-19 Richard Biener <rguenther@suse.de>
4787
4788 PR ipa/81112
4789 * ipa-prop.c (find_constructor_constant_at_offset): Handle
4790 RANGE_EXPR conservatively.
4791
4792 2017-06-16 Carl Love <cel@us.ibm.com>
4793
4794 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4795 definitions for vec_float, vec_float2, vec_floato,
4796 vec_floate built-ins.
4797 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
4798 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
4799 floate.
4800 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
4801 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
4802 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
4803 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
4804 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
4805 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
4806 vec_floato): Add builtin defines.
4807 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
4808 Update the built-in documentation file for the new built-in
4809 functions.
4810
4811 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4812
4813 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
4814 (mthumb): Mark as the negative of -marm.
4815
4816 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4817
4818 * doc/invoke.texi (ARM Options, -mcpu): Document supported
4819 extension options.
4820 (ARM Options, -mtune): Document that this accepts the same
4821 extension options as -mcpu.
4822 (ARM Options, -mfpu): Document addition of -mfpu=auto.
4823
4824 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4825
4826 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
4827 permitted extensions.
4828
4829 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4830
4831 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
4832 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
4833 (armv8-m.main): Add option +nodsp.
4834 * config/arm/arm-cpu-cdata.h: Regenerated.
4835
4836 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4837
4838 * config/arm/t-fuchsia: New file.
4839 * config.gcc (arm*-*-fuchsia*): Use it.
4840
4841 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4842
4843 * config/arm/t-symbian: Rewrite for new option infrastructure.
4844
4845 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4846
4847 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
4848 (MULTILIB_REQUIRED): Likewise.
4849
4850 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4851
4852 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
4853 (MULTILIB_RESUE): Likewise.
4854 (MULTILIB_MATCHES): Likewise.
4855 (MULTLIB_REQUIRED): Likewise.
4856
4857 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4858
4859 * config/arm/t-rtems: Rewrite for new option framework.
4860
4861 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4862
4863 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
4864 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
4865 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
4866 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
4867 * config/arm/t-multilib: ... here.
4868 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
4869 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
4870 armv7-a and armv8*-a when A-profile libraries have not been built.
4871 * config/arm/t-rmprofile: Rewrite.
4872
4873 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4874
4875 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
4876 with a backslash. Remove the backslash after substituting unescaped
4877 periods.
4878 * doc/fragments.texi (MULTILIB_REUSE): Document it.
4879
4880 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4881
4882 * config.gcc: (arm*-*-*): When building a-profile libraries, force
4883 the driver to pass through the default setting of -mfloat-abi.
4884 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
4885 rather than NULL.
4886 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
4887 (all_feat_combs): New rule.
4888 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
4889 default libraries.
4890 * config/arm/t-aprofile: Rewrite.
4891
4892 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4893
4894 * config/arm/arm.h (FPUTYPE_AUTO): Define.
4895 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
4896 fpu is not specified by the user/command-line.
4897 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
4898 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
4899 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
4900 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
4901 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
4902 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
4903
4904 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4905
4906 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
4907 * config/arm/t-arm-elf: Rewritten.
4908
4909 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4910
4911 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
4912 have some floating-point instructions.
4913 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
4914 (TARGET_MAYBE_HARD_FLOAT): New macro.
4915 * config/arm/arm-builtins.c (arm_init_builtins): Use
4916 TARGET_MAYBE_HARD_FLOAT.
4917 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
4918
4919 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4920
4921 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
4922 (configargs.h): Include it.
4923 (arm_print_hint_for_fpu_option): New function.
4924 (arm_parse_fpu_option): New function.
4925 (candidate_extension): New class.
4926 (arm_canon_for_multilib): New function.
4927 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
4928 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
4929 (ARCH_CANONICAL_SPECS): New macro.
4930 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
4931
4932 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4933
4934 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
4935 are set after handling multilib fragments. Set target_cpu_default2
4936 from with_cpu.
4937
4938 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4939
4940 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
4941 cpu name.
4942 (arm*-*-*): Set target_cpu_default2 to a quoted string.
4943 * config/arm/parsecpu.awk (check_cpu): Validate any extension
4944 options.
4945 (check_arch): Likewise.
4946 * config/arm/arm.c (arm_configure_build_target): Handle
4947 TARGET_CPU_DEFAULT being a string constant. Scan any feature
4948 options in the default.
4949
4950 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4951
4952 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
4953 when an option is an alias of another.
4954 * config/arm/parsecpu.awk (optalias): New parser token.
4955 (gen_comm_data): Mark non-alias options as such. Emit entries
4956 for extension aliases.
4957 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
4958 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
4959 (armv6kz, armv6zk, armv6t2): Likewise.
4960 (armv7): Make vfpv3-d16 an alias.
4961 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
4962 canonical order.
4963 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
4964 Sort in canonical order.
4965 (armv8-a): Sort in canonical order.
4966 (armv8.1-a, armv8.2-a): Likewise.
4967 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
4968 canonical order.
4969 (cortex-a9): Sort in canonical order.
4970 * config/arm/arm.c (selftests.h): Include it.
4971 (arm_test_cpu_arch_data): New function.
4972 (arm_run_self_tests): New function.
4973 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
4974 (targetm): Move declaration to the end of the file.
4975 * arm-cpu-cdata.h: Regenerated.
4976
4977 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4978
4979 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
4980 call to target_mode_check describing the type of option passed.
4981 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
4982 (arm_target_thumb_only): Use arm_parse_arch_option_name or
4983 arm_parse_cpu_option_name to match parameters against list of
4984 available targets.
4985 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
4986 arm_arch_core_flags data structure.
4987 * config/arm/arm-cpu_cdata.h: Regenerated.
4988
4989 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
4990
4991 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
4992 config/arm/arm.c.
4993 (arm_print_hint_for_cpu_option): Likewise.
4994 (arm_print_hint_for_arch_option): Likewise.
4995 (arm_parse_cpu_option_name): Likewise.
4996 (arm_parse_arch_option_name): Likewise.
4997 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
4998 of entries in the all_fpus list.
4999 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
5000 (arm_parse_cpu_option_name): Declare.
5001 (arm_parse_arch_option_name): Declare.
5002 (arm_parse_option_features): Declare.
5003 (arm_intialize_isa): Declare.
5004 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
5005 data tables to ...
5006 (gen_comm_data): ... here. Make definitions non-static.
5007 * config/arm/arm-cpu-data.h: Regenerated.
5008 * config/arm/arm-cpu-cdata.h: Regenerated.
5009
5010 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5011
5012 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
5013 (cpu_arch_extension): New structure.
5014 (cpu_arch_option, arch_option, cpu_option): New structures.
5015 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
5016 architecture types.
5017 (gen_data): Generate new format data tables.
5018 * config/arm/arm.c (cpu_tune): New structure.
5019 (cpu_option, processors): Delete.
5020 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
5021 (arm_print_hint_for_cpu_option): ... this and ...
5022 (arm_print_hint_for_arch_option): ... this.
5023 (arm_parse_arch_cpu_name): Delete. Replace with ...
5024 (arm_parse_cpu_option_name): ... this and ...
5025 (arm_parse_arch_option_name): ... this.
5026 (arm_unrecognized_feature): Change type of target parameter to
5027 cpu_arch_option.
5028 (arm_parse_arch_cpu_features): Delete. Replace with ...
5029 (arm_parse_option_features): ... this.
5030 (arm_configure_build_target): Rework to use new configuration data
5031 tables.
5032 (arm_print_tune_info): Rework for new configuration data tables.
5033 * config/arm/arm-cpu-data.h: Regenerated.
5034 * config/arm/arm-cpu.h: Regenerated.
5035
5036 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5037
5038 * Makefile.in (OBJS): Move sbitmap.o from here ...
5039 (OBJS-libcommon): ... to here.
5040
5041 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5042
5043 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
5044 (ISA_ALL_CRYPTO): New macro.
5045 (ISA_ALL_SIMD): New macro
5046 (ISA_ALL_FP): New macro.
5047 * config/arm/arm.c (fpu_bitlist): Update initializer.
5048 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
5049 simd or fp.
5050 (arm9e): Add fpu. Add option for nofp
5051 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
5052 (arm926ej-s, arm1026ej-s): Likewise.
5053 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
5054 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
5055 neon-fp16, neon-vfpv4, nofp and nosimd.
5056 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
5057 (cortex-a8): Add fpu. Add option for nofp.
5058 (cortex-a9): Add fpu. Add options for nosimd and nofp.
5059 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
5060 (cortex-r4f): Add fpu.
5061 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
5062 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
5063 for nofp.
5064 (cortex-r8): Likewise.
5065 (cortex-m4): Add fpu. Add option for nofp.
5066 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
5067 (cortex-a17.cortex-a7): Likewise.
5068 (cortex-a32): Add fpu. Add options for crypto and nofp.
5069 (cortex-a35, cortex-a53): Likewise.
5070 (cortex-a57): Add fpu. Add option for crypto.
5071 (cortex-a72, cortex-a73): Likewise.
5072 (exynos-m1): Likewise.
5073 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
5074 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
5075 (cortex-m33): Add fpu. Add option for nofp.
5076 * config/arm/arm-cpu-cdata.h: Regenerated
5077 * config/arm/arm-cpu-data.h: Regenerated.
5078
5079 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5080
5081 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
5082 (armv5te, armv5tej): Likewise.
5083 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
5084 (armv7): Add options fp and vfpv3-d16.
5085 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
5086 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
5087 nofp and nosimd.
5088 (armv7ve): Likewise.
5089 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
5090 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
5091 (armv8-a): Add nocrypto option.
5092 (armv8.1-a, armv8.2-a): Likewise.
5093 (armv8-m.main): add options fp, fp.dp and nofp.
5094
5095 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5096
5097 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
5098 nofp.
5099 (armv8-a+crc): Delete.
5100 (armv8.1-a): Add options simd, crypto and nofp.
5101 (armv8.2-a): Add options fp16, simd, crypto and nofp.
5102 (armv8.2-a+fp16): Delete.
5103 (armv8-m.main): Add option dsp.
5104 (armv8-m.main+dsp): Delete.
5105 (cortex-a8): Add fpu. Add nofp option.
5106 (cortex-a9): Add fpu. Add nofp and nosimd options.
5107 * config/arm/parsecpu.awk (gen_data): Generate option tables and
5108 link to main cpu and architecture data structures.
5109 (gen_comm_data): Only put isa attributes from the main architecture
5110 in common tables.
5111 (option): New statement for architecture and CPU entries.
5112 * arm.c (struct cpu_option): New structure.
5113 (struct processors): Add entry for options.
5114 (arm_unrecognized_feature): New function.
5115 (arm_parse_arch_cpu_name): Ignore any characters after the first
5116 '+' character.
5117 (arm_parse_arch_cpu_feature): New function.
5118 (arm_configure_build_target): Separate out any CPU and architecture
5119 features and parse separately. Don't error out if -mfpu=auto is
5120 used with only an architecture string.
5121 (arm_print_asm_arch_directives): New function.
5122 (arm_file_start): Call it.
5123 * config/arm/arm-cpu-cdata.h: Regenerated.
5124 * config/arm/arm-cpu-data.h: Likewise.
5125 * config/arm/arm-tables.opt: Likewise.
5126
5127 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5128
5129 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
5130 assembler when it is not -mfpu=auto.
5131
5132 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5133
5134 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
5135 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
5136 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
5137 (ASM_CPU_SPEC): Rewrite.
5138 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
5139 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
5140 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
5141 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
5142 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
5143 copied string is NUL-terminated. Also strip any characters prefixed
5144 by '+'.
5145 (arm_rewrite_selected_arch): New function.
5146 (arm_rewrite_march): New function.
5147
5148 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
5149
5150 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
5151 (x_arm_cpu_string, x_arm_tune_string): Likewise.
5152 (march, mcpu, mtune): Convert to string-based options.
5153 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
5154 (arm_parse_arch_cpu_name): New function.
5155 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
5156 identify selected architecture or CPU.
5157 (arm_option_save): New function.
5158 (TARGET_OPTION_SAVE): Redefine.
5159 (arm_option_restore): Restore string options.
5160 (arm_option_print): Print string options.
5161
5162 2017-06-16 Martin Sebor <msebor@redhat.com>
5163
5164 PR tree-optimization/80933
5165 PR tree-optimization/80934
5166 * builtins.c (fold_builtin_3): Do not handle bcmp here.
5167 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
5168 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
5169 (gimple_fold_builtin): Call them.
5170
5171 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
5172
5173 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
5174 as unlikely; update profile.
5175
5176 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
5177
5178 * predict.c (force_edge_cold): Handle declaring edges impossible
5179 more aggresively.
5180
5181 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
5182
5183 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
5184 profile.
5185 (try_unroll_loop_completely): Fix reporting.
5186
5187 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
5188
5189 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
5190
5191 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
5192
5193 PR target/71778
5194 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
5195 if given a non-constant argument for an intrinsic which requires a
5196 constant.
5197
5198 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
5199
5200 * profile.c (compare_freqs): New function.
5201 (branch_prob): Sort edge list.
5202 (find_spanning_tree): Assume that the list is priority sorted.
5203
5204 2017-06-16 Richard Biener <rguenther@suse.de>
5205
5206 PR tree-optimization/81090
5207 * passes.def (pass_record_bounds): Remove.
5208 * tree-pass.h (make_pass_record_bounds): Likewise.
5209 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
5210 make_pass_record_bounds): Likewise.
5211 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
5212 not free niter estimates at the beginning but at the end.
5213 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
5214
5215 2017-06-16 Richard Biener <rguenther@suse.de>
5216
5217 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
5218 initializer to workaround ICE in host GCC 4.8.
5219
5220 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
5221
5222 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
5223 counts.
5224 (clone_inlined_nodes): Update.
5225
5226 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
5227
5228 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
5229 prefetch settings, and enable prefetching by default at -O3.
5230
5231 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
5232
5233 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5234 Set flag_prefetch_loop_arrays according to tuning data.
5235
5236 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
5237
5238 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
5239 New tune structure.
5240 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
5241 [Unrelated to main purpose of the patch] Place the pointer field last
5242 to enable type checking errors when tune structure are wrongly merged.
5243 * config/aarch64/aarch64.c (generic_prefetch_tune,)
5244 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
5245 (thunderx2t99_prefetch_tune): New tune constants.
5246 (tune_params *_tunings): Update all tunings (no functional change).
5247 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
5248 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
5249 from tunings structures.
5250
5251 2017-06-16 Jakub Jelinek <jakub@redhat.com>
5252
5253 PR sanitizer/81094
5254 * ubsan.c (instrument_null): Add T argument, use it instead
5255 of computing it based on IS_LHS.
5256 (instrument_object_size): Likewise.
5257 (pass_ubsan::execute): Adjust instrument_null and
5258 instrument_object_size callers to pass gimple_get_lhs or
5259 gimple_assign_rhs1 result to it. Use instrument_null instead of
5260 calling get_base_address and instrument_mem_ref. Handle
5261 aggregate call arguments for object-size sanitization.
5262
5263 2017-06-16 Yury Gribov <tetra2005@gmail.com>
5264
5265 PR tree-optimization/81089
5266 * tree-vrp.c (is_masked_range_test): Validate operands of
5267 subexpression.
5268
5269 2017-06-15 Martin Sebor <msebor@redhat.com>
5270
5271 PR c++/80560
5272 * dumpfile.c (dump_register): Avoid calling memset to initialize
5273 a class with a default ctor.
5274 * gcc.c (struct compiler): Remove const qualification.
5275 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
5276 * hash-table.h: Ditto.
5277 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
5278 assignment.
5279 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
5280 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
5281 default ctor.
5282 * params.h (struct param_info): Make struct members non-const.
5283 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
5284 with default initialization.
5285 * vec.h (vec_copy_construct, vec_default_construct): New helper
5286 functions.
5287 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
5288 with vec_copy_construct.
5289 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
5290 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
5291 * doc/invoke.texi (-Wclass-memaccess): Document.
5292
5293 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5294
5295 * emit-rtl.h (is_leaf): Update comment about local
5296 register allocator.
5297
5298 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
5299
5300 PR target/78818
5301 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
5302 for a variable to have a section before checking if the section has a
5303 name.
5304 Set section to.persistent if persistent attribute is set.
5305 Warn if .persistent attribute is used on an automatic variable.
5306
5307 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
5308
5309 PR rtl-optimization/80474
5310 * reorg.c (update_block): Do not ignore instructions in a delay slot.
5311
5312 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
5313
5314 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
5315 of REGNO.
5316
5317 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
5318
5319 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
5320 (casesi): Emit bounds checking as RTL.
5321 (casesi_internal_mips16_<mode>): Remove bounds checking.
5322
5323 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
5324
5325 * config/xtensa/xtensa.c (xtensa_option_override): Append
5326 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
5327 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
5328 xtensa_doloop_hooks): Define unconditionally.
5329 (xtensa_reorg_loops): Only call reorg_loops in the presence of
5330 TARGET_LOOPS.
5331 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
5332 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
5333 for it in xtensa_option_override.
5334 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
5335 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
5336
5337 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
5338
5339 * doc/cppopts.texi: Document '-' special value to -MF.
5340
5341 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
5342
5343 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
5344 (cortex_a53_fconst): Likewise.
5345 (cortex_a53_fpmul): Likewise.
5346 (cortex_a53_f_load_64): Likewise.
5347 (cortex_a53_f_load_many): Likewise.
5348 (cortex_a53_advsimd_alu): Likewise.
5349 (cortex_a53_advsimd_alu_q): Likewise.
5350 (cortex_a53_advsimd_mul): Likewise.
5351 (cortex_a53_advsimd_mul_q): Likewise.
5352 (fpmac bypass): Add new bypass for fpmac-fpmac case.
5353 Add missing fmul, r2f_cvt and fconst cases.
5354
5355 2017-06-14 Richard Biener <rguenther@suse.de>
5356
5357 PR middle-end/81088
5358 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
5359 literal constants.
5360 (fold_binary_loc): When associating do not treat pre-existing
5361 TREE_OVERFLOW on literal constants as a reason to allow
5362 TREE_OVERFLOW on associated literal constants.
5363
5364 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
5365
5366 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
5367 (MASK_FEATURES): New macro.
5368 * config/sparc/sparc.c (sparc_option_override): Remove the special
5369 handling of -mfpu and generalize it to all MASK_FEATURES switches.
5370
5371 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
5372
5373 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
5374 a division of 0 if non-call exceptions are enabled.
5375
5376 2017-06-14 Andrew Pinski <apinski@cavium.com>
5377 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
5378
5379 PR target/71663
5380 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
5381 Improve vector initialization code gen for only variable case.
5382
5383 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
5384
5385 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
5386
5387 2017-06-14 Richard Biener <rguenther@suse.de>
5388
5389 PR tree-optimization/81083
5390 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
5391 as values.
5392
5393 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5394
5395 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
5396 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
5397 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
5398 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
5399 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
5400 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
5401
5402 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5403
5404 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
5405 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
5406
5407 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5408
5409 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
5410
5411 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5412
5413 * config/rs6000/t-rtems: Don't handle SPE.
5414
5415 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5416
5417 * config/rs6000/t-linux: Don't handle SPE.
5418
5419 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5420
5421 * config/rs6000/eabispe.h: Delete file.
5422
5423 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5424
5425 * config/rs6000/t-spe: Delete file.
5426
5427 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5428
5429 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
5430 (rs6000_legitimate_offset_address_p): Return false for anything in
5431 V2SImode or V2SFmode.
5432
5433 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
5434
5435 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
5436 except V2SF and V2SI. Rearrange the vector modes, and add comments.
5437 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
5438 and V4HImode.
5439 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
5440 (rs6000_legitimate_offset_address_p): Ditto.
5441 (rs6000_emit_move): Ditto.
5442 (rs6000_init_builtins): Remove V4HI_type_node.
5443
5444 2017-06-13 Martin Liska <mliska@suse.cz>
5445
5446 PR sanitize/78204
5447 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
5448 (gate_asan): Likewise.
5449 * asan.h (asan_no_sanitize_address_p): Remove the function.
5450 (sanitize_flags_p): New function.
5451 * builtins.def: Fix coding style.
5452 * common.opt: Use renamed enum value.
5453 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
5454 * doc/extend.texi: Document no_sanitize attribute.
5455 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
5456 to SANITIZE_UNDEFINED_NONDEFAULT.
5457 * gcc.c (sanitize_spec_function): Use the renamed enum value.
5458 * gimple-fold.c (optimize_atomic_compare_exchange_p):
5459 Use sanitize_flags_p.
5460 * gimplify.c (gimplify_function_tree): Likewise.
5461 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
5462 * opts.c (parse_no_sanitize_attribute): New function.
5463 (common_handle_option): Use renamed enum value.
5464 * opts.h (parse_no_sanitize_attribute): Declare.
5465 * tree.c (sanitize_flags_p): New function.
5466 * tree.h: Declared here.
5467 * tsan.c: Use sanitize_flags_p.
5468 * ubsan.c (ubsan_expand_null_ifn): Likewise.
5469 (instrument_mem_ref): Likewise.
5470 (instrument_bool_enum_load): Likewise.
5471 (do_ubsan_in_current_function): Remove the function.
5472 (pass_ubsan::execute): Use sanitize_flags_p.
5473 * ubsan.h: Remove do_ubsan_in_current_function
5474 * tree-cfg.c (print_no_sanitize_attr_value): New function.
5475 (dump_function_to_file): Use it here.
5476
5477 2017-06-13 Martin Jambor <mjambor@suse.cz>
5478
5479 PR tree-optimization/80803
5480 PR tree-optimization/81063
5481 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
5482 (propagate_subaccesses_across_link): Enqueue subtree whenever
5483 necessary instead of relying on the caller.
5484
5485 2017-06-13 Martin Jambor <mjambor@suse.cz>
5486
5487 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
5488 that have a first_link.
5489 (sort_and_splice_var_accesses): Do not check first_link before
5490 enquing.
5491 (subtree_mark_written_and_enqueue): Likewise.
5492 (propagate_all_subaccesses): Likewise and do not stop at first
5493 parent with a first_link.
5494
5495 2017-06-13 Martin Jambor <mjambor@suse.cz>
5496
5497 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
5498 instead of f.
5499
5500 2017-06-13 Yury Gribov <tetra2005@gmail.com>
5501
5502 * match.pd: New pattern.
5503
5504 2017-06-13 Yury Gribov <tetra2005@gmail.com>
5505
5506 * tree-vrp.c (is_masked_range_test): New function.
5507 (register_edge_assert_for): Determine ranges for
5508 some bit tests.
5509
5510 2017-06-13 Yury Gribov <tetra2005@gmail.com>
5511
5512 PR tree-optimization/67328
5513 * fold-const.c (maskable_range_p): New function.
5514 (build_range_check): Generate bittests if possible.
5515
5516 2017-06-13 Martin Liska <mliska@suse.cz>
5517
5518 * gimple-pretty-print.c (dump_probability): Add new argument.
5519 (dump_edge_probability): Dump both probability and count.
5520 (dump_gimple_label): Likewise.
5521 (dump_gimple_bb_header): Likewise.
5522
5523 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
5524
5525 PR target/81072
5526 * config/avr/avr-devices.c: Fix indentation.
5527 * config/avr/gen-avr-mmcu-specs.c: Dito.
5528
5529 2017-06-13 Richard Biener <rguenther@suse.de>
5530
5531 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
5532 instead get vector type from stmt_info.
5533 (vectorizable_reduction): Adjust. Remove dead code.
5534
5535 2017-06-13 Richard Biener <rguenther@suse.de>
5536
5537 PR middle-end/81065
5538 * fold-const.c (extract_muldiv_1): Remove bogus distribution
5539 case of C * (x * C2 + C3).
5540 (fold_addr_of_array_ref_difference): Properly fold index difference.
5541
5542 2017-06-12 David S. Miller <davem@davemloft.net>
5543
5544 PR target/80968
5545 * config/sparc/sparc.md (return expander): Emit frame blockage if
5546 function uses alloca.
5547
5548 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
5549
5550 * combine.c (make_field_assignment): Check len rather than the mode
5551 precision when calling force_to_mode.
5552
5553 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
5554
5555 Support multilibs and devices that see flash in RAM address range.
5556
5557 PR target/81072
5558 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
5559 (avr_mcu_t) <flash_pm_offset>: New field.
5560 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
5561 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
5562 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
5563 (AVR_TINY_PM_OFFSET): Remove macro.
5564 * config/avr/avr.opt (-mshort-calls): New option.
5565 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
5566 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
5567 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
5568 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
5569 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
5570 instead of avr_arch->have_jmp_call.
5571 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
5572 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
5573 avr_arch->flash_pm_offset to define.
5574 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
5575 new field flash_pm_offset. Add entry for avrxmega3.
5576 (avr_texinfo): Add entry for avrxmega3.
5577 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
5578 attiny212, attiny214,
5579 attiny412, attiny414, attiny416, attiny417,
5580 attiny814, attiny816, attiny817,
5581 attiny1614, attiny1616, attiny1617,
5582 attiny3214, attiny3216, attiny3217.
5583 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
5584 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
5585 (avr_print_operand_address) [AVR_TINY]: Same.
5586 (avr_asm_init_sections) <readonly_data_section>: Only patch
5587 callback if avr_arch->flash_pm_offset = 0.
5588 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
5589 for rodata if avr_arch->flash_pm_offset != 0.
5590 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
5591 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
5592 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
5593 (m_options): Append opt_rcall.
5594 (m_dirnames): Append dir_rcall.
5595 * config/avr/t-multilib: Regenerate.
5596
5597 * configure.ac [target=avr]: Check whether avrxmega3 default
5598 linker description file works as needed.
5599 * configure: Regenerate.
5600 * doc/avr-mmcu.texi: Regenerate.
5601 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
5602 <__AVR_ARCH__>: Document avrxmega3 and 103.
5603 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
5604 <__AVR_SHORT_CALLS__>: Document it.
5605 <__AVR_PM_BASE_ADDRESS__>: Document it.
5606 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
5607 (AVR Variable Attributes) <progmem>: Document this is
5608 not needed for avrxmega3.
5609 (AVR Named Address Spaces) <__flash>: Dito.
5610
5611 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
5612
5613 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
5614
5615 2017-06-12 Doug Rupp <rupp@adacore.com>
5616
5617 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
5618 Append vxworks-stdint.h to the tm_file list.
5619 * config/vxworks-stdint.h: New file.
5620
5621 2017-06-12 Martin Liska <mliska@suse.cz>
5622
5623 PR tree-optimization/81041
5624 * tree-profile.c (gimple_gen_ic_func_profiler):
5625 Create an extra BB in profile-generate
5626 (gimple_gen_time_profiler): Likewise.
5627
5628 2017-06-12 Jakub Jelinek <jakub@redhat.com>
5629
5630 PR tree-optimization/81003
5631 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
5632 (update_range_test): Use it instead of force_gimple_operand_gsi.
5633
5634 2017-06-12 Richard Biener <rguenther@suse.de>
5635
5636 PR tree-optimization/81053
5637 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
5638 with backedge value not defined in loop. Simplify def stmt
5639 compute.
5640
5641 2017-06-11 Tom de Vries <tom@codesourcery.com>
5642
5643 PR target/79939
5644 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
5645 Return true.
5646 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
5647 nvptx_cannot_force_const_mem.
5648
5649 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
5650
5651 * opts.c (finish_options): Move test for flag_split_stack after
5652 it has been initialized.
5653
5654 2017-06-11 Jason Merrill <jason@redhat.com>
5655
5656 * tree.h (id_equal): New.
5657 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
5658 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
5659 instead of strcmp of IDENTIFIER_POINTER.
5660
5661 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
5662
5663 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
5664 (mark_all_inlined_calls_cdtor): Fix formating.
5665 (inline_transform): Rescale profile before inlining.
5666
5667 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
5668
5669 * cgraph.h (cgraph_edge::clone): Update prototype.
5670 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
5671 (cgraph_node::create_clone): Update.
5672 (cgraph_node::create_version_clone): Update.
5673 * tree-inline.c (copy_bb): Update.
5674 (expand_call_inline): Update.
5675
5676 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
5677
5678 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
5679 factored out from ...
5680 (rs6000_emit_prologue): ... here.
5681
5682 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
5683
5684 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
5685 factored out from ...
5686 (rs6000_emit_prologue): ... here.
5687
5688 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
5689
5690 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
5691 edge counts.
5692 (handle_missing_profiles): Fix computation of tp_first_run.
5693 (counts_to_freqs): Do not touch freqs when count is 0.
5694
5695 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
5696
5697 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
5698 profile.
5699
5700 2017-06-10 Tom de Vries <tom@codesourcery.com>
5701
5702 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
5703 attributes): Document signal effective target.
5704
5705 2017-06-10 Tom de Vries <tom@codesourcery.com>
5706
5707 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
5708 Document effective target stack_size.
5709
5710 2017-06-09 David Malcolm <dmalcolm@redhat.com>
5711
5712 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
5713 to the edit_context if they can be auto-applied.
5714
5715 2017-06-9 Ian Lance Taylor <iant@golang.org>
5716
5717 * opts.c (finish_options): If -fsplit-stack, disable implicit
5718 -forder-blocks-and-partition.
5719 * doc/invoke.texi (Optimize Options): Document that when using
5720 -fsplit-stack -forder-blocks-and-partition is not implicitly
5721 enabled.
5722
5723 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
5724
5725 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
5726 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
5727 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
5728 * builtins.def (abort, trap, unreachable): Declare cold.
5729 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
5730 * tree-core.h (ECF_COLD): New.
5731 * tree.c (set_call_expr_flags): Handle ECF_COLD.
5732 (build_common_builtin_nodes): Mark unreachable and abort as cold.
5733
5734 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
5735
5736 * predict.c (unlikely_executed_stmt_p): Cleanup.
5737
5738 2017-06-09 Richard Biener <rguenther@suse.de>
5739
5740 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
5741 model if the ref is always written to.
5742
5743 2017-06-09 Tamar Christina <tamar.christina@arm.com>
5744
5745 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
5746
5747 2017-06-09 Tamar Christina <tamar.christina@arm.com>
5748
5749 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
5750 than udiv.
5751
5752 2017-06-09 Tom de Vries <tom@codesourcery.com>
5753
5754 PR target/80855
5755 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
5756 "target cannot support label values" when encountering LABEL_REF.
5757
5758 2017-06-09 Martin Liska <mliska@suse.cz>
5759
5760 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
5761 (gimple_gen_ic_func_profiler): Emit direct comparison
5762 of __gcov_indirect_call_callee with NULL.
5763 (gimple_gen_time_profiler): Change probability from
5764 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
5765
5766 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
5767
5768 * profile.c (edge_gcov_counts): Turn to pointer.
5769 (compute_branch_probabilities, compute_branch_probabilities): Update.
5770 (branch_prob): Do not clear edge_gcov_count.
5771 * profile.h (edge_gcov_counts): Turn to pointer.
5772 (edge_gcov_count): Update.
5773
5774 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
5775
5776 * gimple.h (gimple_check_failed): Mark cold.
5777
5778 2017-06-09 Richard Biener <rguenther@suse.de>
5779
5780 PR tree-optimization/66623
5781 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
5782 refactor check_reduction into two parts, properly computing
5783 whether we have to check reduction validity for outer loop
5784 vectorization.
5785
5786 2017-06-09 Richard Biener <rguenther@suse.de>
5787
5788 PR tree-optimization/79483
5789 * graphite-scop-detection.c (order): New global.
5790 (get_order): Compute bb to order mapping that satisfies code
5791 generation constraints.
5792 (cmp_pbbs): New helper.
5793 (build_scops): Start domwalk at entry block, sort generated
5794 pbbs.
5795
5796 2017-06-09 Richard Biener <rguenther@suse.de>
5797
5798 PR middle-end/81007
5799 * ipa-polymorphic-call.c
5800 (ipa_polymorphic_call_context::restrict_to_inner_class):
5801 Skip FIELD_DECLs with error_mark_node type.
5802 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
5803 last again.
5804
5805 2017-06-09 Martin Liska <mliska@suse.cz>
5806
5807 * predict.c (struct branch_predictor): New struct.
5808 (test_prediction_value_range): New test.
5809 (predict_c_tests): New function.
5810 * selftest-run-tests.c (selftest::run_tests): Run the function.
5811 * selftest.h: Declare new tests.
5812
5813 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
5814
5815 PR target/80966
5816 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
5817 gen_add3_insn did not fail.
5818 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
5819 r0, construct that number in a temporary reg and add that reg to r0.
5820 If asked to put the result in r0 as well, fail.
5821
5822 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
5823
5824 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
5825 for early expansion of vec_eqv.
5826
5827 2017-06-08 Jakub Jelinek <jakub@redhat.com>
5828
5829 PR middle-end/81005
5830 * ubsan.c (instrument_null): Avoid pointless code temporary.
5831 (pass_ubsan::execute): Instrument aggregate arguments of calls.
5832
5833 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
5834
5835 PR target/81015
5836 Revert:
5837 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
5838
5839 PR target/59874
5840 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
5841 (*clzhi2): Ditto.
5842
5843 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
5844
5845 * predict.c (unlikely_executed_edge_p): Move ahead.
5846 (probably_never_executed_edge_p): Use it.
5847
5848 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
5849
5850 PR middle-end/79988
5851 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
5852 gimple_call_builtin_p call.
5853
5854 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
5855
5856 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
5857 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
5858 rtl_check_failed_type2, rtl_check_failed_code1,
5859 rtl_check_failed_code2, rtl_check_failed_code_mode,
5860 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
5861 rtvec_check_failed_bounds, rtl_check_failed_flag,
5862 _fatal_insn_not_found, _fatal_insn): Likewise.
5863 * tree.h (tree_contains_struct_check_failed,
5864 tree_check_failed, tree_not_check_failed,
5865 tree_class_check_failed, tree_range_check_failed,
5866 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
5867 tree_vec_elt_check_failed, phi_node_elt_check_failed,
5868 tree_operand_check_failed, omp_clause_check_failed,
5869 omp_clause_operand_check_failed, omp_clause_range_check_failed):
5870 Likewise.
5871
5872 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
5873
5874 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
5875 flag_branch_probabilities.
5876 * ipa-inline.c (edge_badness): Likewise.
5877 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
5878 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
5879 * predict.c (maybe_hot_frequency_p): Likewise.
5880 (probably_never_executed): Likewise.
5881 * sched-ebb.c (schedule_ebbs): Likewise.
5882 * sched-rgn.c (find_single_block_region): Likewise.
5883 * tracer.c (tail_duplicate): Likewise.
5884
5885 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
5886
5887 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
5888 longer requires x_flag_profile_use.
5889
5890 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
5891
5892 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
5893 instead of flag_reorder_blocks_and_partition.
5894 * dbxout.c (dbxout_function_end): Likewise.
5895 * dwarf2out.c (gen_subprogram_die): Likewise.
5896 * haifa-sched.c (sched_create_recovery_edges): Likewise.
5897 * hw-doloop.c (reorg_loops): Likewise.
5898 * varasm.c (assemble_start_function,
5899 assemble_end_function): Likewise.
5900 (decide_function_section): Do not check for
5901 flag_reorder_blocks_and_partition.
5902
5903 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
5904
5905 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
5906 New function.
5907 (chkp_get_hard_register_fake_addr_expr): Ditto.
5908 (chkp_build_addr_expr): Add check for hard reg case.
5909 (chkp_parse_array_and_component_ref): Ditto.
5910 (chkp_find_bounds_1): Ditto.
5911 (chkp_process_stmt): Don't generate bounds store for
5912 hard reg case.
5913
5914 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
5915
5916 * predict.c (maybe_hot_bb_p): Do not check profile status.
5917 (maybe_hot_edge_p): Likewise.
5918 (probably_never_executed): Check for zero counts even if profile
5919 is not read.
5920 (unlikely_executed_edge_p): New function.
5921 (unlikely_executed_stmt_p): New function.
5922 (unlikely_executed_bb_p): New function.
5923 (set_even_probabilities): Use unlikely predicates.
5924 (combine_predictions_for_bb): Likewise.
5925 (predict_paths_for_bb): Likewise.
5926 (predict_paths_leading_to_edge): Likewise.
5927 (determine_unlikely_bbs): New function.
5928 (estimate_bb_frequencies): Use it.
5929 (compute_function_frequency): Use zero counts even if profile is
5930 not read.
5931 * profile-count.h: Fix typo.
5932
5933 2017-08-08 Julia Koval <julia.koval@intel.com>
5934
5935 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
5936 _mm512_mask_cvtsepi16_storeu_epi8,
5937 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
5938 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
5939 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
5940 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
5941 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
5942 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
5943 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
5944 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
5945 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
5946 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
5947 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
5948 __builtin_ia32_pmovuswb256mem_mask,
5949 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
5950 __builtin_ia32_pmovwb512mem_mask): New builtins.
5951
5952 2017-08-08 Julia Koval <julia.koval@intel.com>
5953
5954 PR target/73350,80862
5955 * config/i386/subst.md (round): Fix round pattern.
5956 * config/i386/i386.c (ix86_erase_embedded_rounding):
5957 Fix erasing rounding for the fixed pattern.
5958
5959 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
5960
5961 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
5962
5963 2017-06-08 Martin Liska <mliska@suse.cz>
5964
5965 PR gcov-profile/80911
5966 * gcov.c (block_info::block_info): New constructor.
5967
5968 2017-06-07 Carl Love <cel@us.ibm.com>
5969
5970 * config/rs6000/rs6000-c: The return type of the following
5971 built-in functions was implemented as int not long long. Fix sign
5972 of return value for the unsigned version of vec_mulo and vec_mule.
5973 vector unsigned long long vec_bperm (vector unsigned long long,
5974 vector unsigned char)
5975 vector signed long long vec_mule (vector signed int,
5976 vector signed int)
5977 vector unsigned long long vec_mule (vector unsigned int,
5978 vector unsigned int)
5979 vector signed long long vec_mulo (vector signed int,
5980 vector signed int)
5981 vector unsigned long long vec_mulo (vector unsigned int,
5982 vector unsigned int)
5983 * doc/extend.texi: Fix the documentation for the built-in
5984 functions.
5985
5986 2017-06-07 Carl Love <cel@us.ibm.com>
5987
5988 PR target/80982
5989 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
5990 for BE.
5991
5992 2017-06-07 Carl Love <cel@us.ibm.com>
5993
5994 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
5995 support, Generate doublehv for signed int/float for BE case only.
5996
5997 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
5998
5999 * doc/invoke.texi (mcx16): Rewrite.
6000
6001 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6002
6003 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
6004 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
6005 *mov<mode>_softfloat, and an anonymous splitter): Use
6006 nonimmediate_operand instead of rs6000_nonimmediate_operand.
6007
6008 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6009
6010 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
6011 SPEFSCR registers.
6012 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
6013 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
6014 (rs6000_debug_reg_global): Adjust.
6015 (rs6000_init_hard_regno_mode_ok): Adjust.
6016 (rs6000_dbx_register_number): Adjust.
6017 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
6018 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
6019 Remove SPE_ACC and SPEFSCR.
6020 (REG_ALLOC_ORDER): Ditto.
6021 (FRAME_POINTER_REGNUM): Change to 111.
6022 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
6023 (REG_CLASS_NAMES): Ditto.
6024 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
6025 (REGISTER_NAMES): Ditto.
6026 (ADDITIONAL_REG_NAMES): Ditto.
6027 (rs6000_reg_names): Ditto.
6028 * config/rs6000/rs6000.md: Renumber some register number
6029 define_constants.
6030
6031 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6032
6033 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
6034 registers.
6035 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
6036 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
6037 to 117.
6038 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
6039 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
6040 Delete the SPE high registers.
6041 (REG_ALLOC_ORDER): Ditto.
6042 (enum reg_class): Remove SPE_HIGH_REGS.
6043 (REG_CLASS_NAMES): Ditto.
6044 (REG_CLASS_CONTENTS): Delete the SPE high registers.
6045 (REGISTER_NAMES): Ditto.
6046 (rs6000_reg_names): Ditto.
6047 * doc/tm.texi.in: Remove SPE as example.
6048 * doc/tm.texi: Regenerate.
6049
6050 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6051
6052 * config/rs6000/8540.md (ppc8540_brinc): Delete.
6053 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
6054 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
6055 * config/rs6000/rs6000.md (type): Remove "brinc".
6056
6057 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6058
6059 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
6060 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
6061 * config/rs6000/linuxspe.h: Delete file.
6062 * config/rs6000/rs6000.md: Don't include spe.md.
6063 * config/rs6000/spe.h: Delete file.
6064 * config/rs6000/spe.md: Delete file.
6065 * config/rs6000/t-rs6000: Remove spe.md.
6066
6067 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6068
6069 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
6070 (reg_or_none500mem_operand): Delete.
6071 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
6072 instead of reg_or_none500mem_operand.
6073
6074 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6075
6076 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
6077 handling of SPE flags.
6078 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
6079
6080 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6081
6082 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
6083 SPE ABI handling.
6084 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
6085 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
6086 paired_divv2sf3): Similar.
6087 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
6088 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
6089 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
6090 RS6000_BUILTIN_S.
6091 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
6092 Rename the paired_* instruction patterns.
6093 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
6094 define __SPE__.
6095 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
6096 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
6097 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
6098 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
6099 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
6100 PAIRED_VECTOR_MODE.
6101 (struct machine_function): Delete field spe_insn_chain_scanned_p.
6102 (spe_func_has_64bit_regs_p): Delete.
6103 (spe_expand_predicate_builtin): Delete.
6104 (spe_expand_evsel_builtin): Delete.
6105 (TARGET_DWARF_REGISTER_SPAN): Do not define.
6106 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
6107 (invalid_e500_subreg): Delete.
6108 (rs6000_legitimize_address): Always force_reg op2 as well, for
6109 paired single memory accesses.
6110 (rs6000_member_type_forces_blk): Delete.
6111 (rs6000_spe_function_arg): Delete.
6112 (rs6000_expand_unop_builtin): Delete SPE handling.
6113 (rs6000_expand_binop_builtin): Ditto.
6114 (spe_expand_stv_builtin): Delete.
6115 (bdesc_2arg_spe): Delete.
6116 (spe_expand_builtin): Delete.
6117 (spe_expand_predicate_builtin): Delete.
6118 (spe_expand_evsel_builtin): Delete.
6119 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
6120 (spe_init_builtins): Delete.
6121 (spe_func_has_64bit_regs_p): Delete.
6122 (savres_routine_name): Delete "info" parameter. Adjust callers.
6123 (rs6000_emit_stack_reset): Ditto.
6124 (rs6000_dwarf_register_span): Delete.
6125 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
6126 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
6127 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
6128 Delete.
6129 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
6130 Delete.
6131 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
6132 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
6133 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
6134 mulv2sf3, divv2sf3): Delete expanders.
6135
6136 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6137
6138 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
6139
6140 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6141
6142 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
6143 * config/rs6000/rs6000.c: Ditto.
6144
6145 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6146
6147 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
6148 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
6149 comparison_operator.
6150
6151 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6152
6153 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
6154 * config/rs6000/rs6000.opt: Ditto.
6155 * config/rs6000/t-rtems: Ditto.
6156
6157 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6158
6159 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
6160 TARGET_E500_SINGLE by 0, simplify.
6161 * config/rs6000/rs6000.c: Ditto.
6162 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
6163 (spe_build_register_parallel): Delete.
6164 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
6165 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
6166 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
6167 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
6168 (E500_CONVERT): Delete.
6169 * config/rs6000/spe.md: Remove many patterns and all define_constants.
6170
6171 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
6172
6173 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
6174 * config/rs6000/dfp.md: Ditto.
6175 (negdd2, *negdd2_fpr): Merge.
6176 (absdd2, *absdd2_fpr): Merge.
6177 (negtd2, *negtd2_fpr): Merge.
6178 (abstd2, *abstd2_fpr): Merge.
6179 * config/rs6000/e500.h: Delete file.
6180 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
6181 TARGET_FPRS by 1 and simplify.
6182 * config/rs6000/rs6000-c.c: Ditto.
6183 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
6184 TARGET_DF_SPE by 0.
6185 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
6186 TARGET_DF_SPE.
6187 * config/rs6000/rs6000.md: Ditto.
6188 (floatdidf2, *floatdidf2_fpr): Merge.
6189 (move_from_CR_gt_bit): Delete.
6190 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
6191 (E500_CR_IOR_COMPARE): Delete.
6192 (All patterns that require !TARGET_FPRS): Delete.
6193 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
6194
6195 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6196
6197 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
6198
6199 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6200
6201 * graphds.c (add_edge): Intitialize edge's attached data.
6202 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
6203 pointer parameter. Call pointed function on each edge during
6204 graph traversing. Skip traversing the edge when the function
6205 returns true.
6206 (graphds_dfs, graphds_scc): Ditto.
6207 (for_each_edge): New parameter. Pass the new parameter to callback
6208 function.
6209 * graphds.h (skip_edge_callback): New function pointer type.
6210 (graphds_dfs, graphds_scc): New function pointer parameter.
6211 (graphds_edge_callback, for_each_edge): New parameter.
6212
6213 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6214
6215 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
6216 out code checking if runtime alias check is possible to below ...
6217 Call the new function.
6218 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
6219 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
6220
6221 2017-06-07 Marek Polacek <polacek@redhat.com>
6222
6223 PR sanitizer/80932
6224 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
6225 TYPE_OVERFLOW_WRAPS check.
6226
6227 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6228
6229 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
6230 if versioning is required.
6231 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
6232 peeling with the check for versioning.
6233
6234 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6235
6236 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
6237 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
6238 Set true to new parameter if new ssa variable is defined.
6239 (vect_gen_vector_loop_niters): Refactor. Set range information
6240 for the new vector loop bound variable.
6241 (vect_do_peeling): Ditto.
6242
6243 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6244
6245 * tree-affine.c (ssa.h): Include header file.
6246 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
6247 has wrapping overflow behavior.
6248
6249 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6250
6251 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
6252
6253 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6254
6255 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
6256 (tree_to_aff_combination): ... here.
6257
6258 2017-06-07 Bin Cheng <bin.cheng@arm.com>
6259
6260 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
6261 reg_pressure model function.
6262 (ivopts_global_cost_for_size): Delete.
6263 (determine_set_costs, iv_ca_recount_cost): Call new model function
6264 ivopts_estimate_reg_pressure.
6265
6266 2017-06-07 Tamar Christina <tamar.christina@arm.com>
6267
6268 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
6269 expensive than udiv. Remove floating point cases from mod.
6270
6271 2017-06-07 Tamar Christina <tamar.christina@arm.com>
6272
6273 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
6274 Increase idiv cost.
6275
6276 2017-06-07 Tamar Christina <tamar.christina@arm.com>
6277
6278 * config/aarch64/aarch64.md
6279 (copysignsf3): Fix mask generation.
6280
6281 2017-06-07 Jakub Jelinek <jakub@redhat.com>
6282
6283 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
6284 TDI_gimple.
6285 (class dump_manager): Add register_dumps method.
6286 * dumpfile.c: Include langhooks.h.
6287 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
6288 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
6289 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
6290 (dump_manager::dump_register): Start with 512 entries instead of 32.
6291 (dump_manager::register_dumps): New method.
6292 * toplev.c (general_init): Instead of invoking register_dumps
6293 langhook, invoke register_dumps method on the dump manager.
6294 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
6295 TDI_generic.
6296
6297 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
6298
6299 * doc/md.texi: Clarify the restrictions on a define_insn condition.
6300 Say that # requires an associated define_split to exist, and that
6301 the define_split must be suitable for use after register allocation.
6302
6303 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
6304
6305 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
6306 (compute_outgoing_frequencies): Also initialize zero counts.
6307 (find_many_sub_basic_blocks): Do not produce uninitialized profile
6308 around loops; preserve more of profile when nothing changes.
6309
6310 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
6311
6312 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
6313 here.
6314 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
6315 * config/arm/arm-cpu-cdata.h: Regenerate.
6316 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
6317 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
6318 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
6319 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
6320 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
6321 support.
6322 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
6323 support.
6324 * config/arm/t-rmprofile: Likewise.
6325 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
6326
6327 2017-06-06 David S. Miller <davem@davemloft.net>
6328
6329 PR target/80968
6330 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
6331 blockage if function uses alloca.
6332
6333 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6334
6335 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
6336 New "uid" fields to hold pretty-print IDs of group and ref.
6337 Memory references are now identified as <group_id>:<ref_id>
6338 instead of using [random] addresses.
6339 (dump_mem_details): Simplify, no functional change.
6340 (dump_mem_ref): Simplify and make output more concise.
6341 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
6342 (find_or_create_group): Initialize group uid.
6343 (record_ref): Initialize ref uid. Improve debug output.
6344 (prune_group_by_reuse, should_issue_prefetch_p,)
6345 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
6346 (mark_nontemporal_store, determine_loop_nest_reuse):
6347 Improve debug output.
6348
6349 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
6350
6351 * dbgcnt.def (prefetch): New debug counter.
6352 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
6353 (schedule_prefetches): Stop issueing prefetches if debug counter
6354 tripped.
6355
6356 2017-06-06 Tom de Vries <tom@codesourcery.com>
6357
6358 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
6359 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
6360
6361 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6362
6363 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
6364 Use aarch64_reg_or_zero predicate for operand 4.
6365 (aarch64_compare_and_swap<mode> define_insn_and_split):
6366 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
6367 (aarch64_store_exclusive<mode>): Likewise for operand 2.
6368
6369 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
6370
6371 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
6372 (arm_compute_save_core_reg_mask): This.
6373 (thumb1_compute_save_reg_mask): Rename into ...
6374 (thumb1_compute_save_core_reg_mask): This.
6375 (arm_compute_save_reg0_reg12_mask): Adapt comment.
6376 (arm_compute_frame_layout): Likewise.
6377
6378 2017-06-06 Richard Biener <rguenther@suse.de>
6379
6380 PR tree-optimization/80974
6381 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
6382 keep or clear leaders SSA info.
6383
6384 2017-06-06 Tom de Vries <tom@codesourcery.com>
6385
6386 * config/nvptx/nvptx.c (split_mode_p): New function.
6387 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
6388
6389 2017-06-06 Tom de Vries <tom@codesourcery.com>
6390
6391 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
6392
6393 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
6394
6395 PR bootstrap/80978
6396 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
6397 profile.
6398
6399 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
6400
6401 * shrink-wrap.c (handle_simple_exit): Update profile.
6402 (try_shrink_wrapping): Upate profile.
6403
6404 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
6405
6406 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
6407 (tree_guess_outgoing_edge_probabilities): New.
6408 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
6409 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
6410
6411 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
6412
6413 * ipa-split.c (split_function): Initialize return bb profile.
6414
6415 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
6416
6417 * profile.c (compute_branch_probabilities): Also initialize
6418 EXIT_BLOCK profile.
6419
6420 2017-06-06 Richard Biener <rguenther@suse.de>
6421
6422 PR tree-optimization/80928
6423 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
6424 (vect_analyze_loop_operations): Properly guard analysis for
6425 pure SLP case.
6426 (vect_transform_loop): Likewise.
6427 (vect_analyze_loop_2): Also reset SLP type on PHIs.
6428 (vect_model_induction_cost): Do not cost for pure SLP.
6429 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
6430 of induction in inner loop vectorization.
6431 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
6432 (vect_get_and_check_slp_defs): Handle vect_induction_def.
6433 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
6434 recursion.
6435 (vect_analyze_slp_cost_1): Cost induction.
6436 (vect_detect_hybrid_slp_stmts): Handle PHIs.
6437 (vect_get_slp_vect_defs): Likewise.
6438 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
6439 (vect_transform_stmt): Handle SLP reductions.
6440 * tree-vectorizer.h (vectorizable_induction): Adjust.
6441
6442 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
6443
6444 * config/rs6000/rs6000.c (make_resolver_func): Update
6445 init_lowered_empty_function call.
6446
6447 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
6448
6449 * doc/invoke.texi: Document the -fprofile-abs-path option.
6450 * common.opt (fprofile-abs-path): New option.
6451 * gcov-io.h (gcov_write_filename): Declare.
6452 * gcov-io.c (gcov_write_filename): New function.
6453 * coverage.c (coverage_begin_function): Use gcov_write_filename.
6454 * profile.c (output_location): Likewise.
6455
6456 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
6457
6458 * shring-wrap.c: Revert accidental commit.
6459
6460 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
6461
6462 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
6463
6464 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
6465
6466 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
6467 new edge.
6468 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
6469 profile in callgraph edge.
6470 * profile-count.h (apply_probability): If THIS is 0, then result is 0
6471 (apply_scale): Likewise.
6472 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
6473 Also scale profile when inlining function with zero profile.
6474 (initialize_cfun): Update exit block profile even when it is zero.
6475 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
6476 when profile is read.
6477
6478 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
6479
6480 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
6481 (CLONE_*): New constants to define the processors we can generate
6482 code for with the target_clone attribute.
6483 (rs6000_clone_map): New array to identify which clone processors
6484 the current program is running on.
6485 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
6486 target_clone attribute.
6487 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
6488 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
6489 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
6490 (cpu_expand_builtin): Add support for target_clone attribute.
6491 (rs6000_valid_attribute_p): Allow "default" attribute.
6492 (get_decl_name): New debug function to simplify printing the
6493 current function name in debugging statements.
6494 (rs6000_clone_priority): New functions to support the target_clone
6495 attribute, and be able to generate code to switch between ISA 2.05
6496 through ISA 3.0 (power6 through power9).
6497 (rs6000_compare_version_priority): Likewise.
6498 (rs6000_get_function_versions_dispatcher): Likewise.
6499 (make_resolver_func): Likewise.
6500 (add_condition_to_bb): Likewise.
6501 (dispatch_function_versions): Likewise.
6502 (rs6000_generate_version_dispatcher_body): Likewise.
6503 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
6504 (fusion_gpr_load_p): Fix a spacing issue.
6505 * doc/extend.texi (Common Function Attributes): Document that the
6506 PowerPC supports the target_clone attribute.
6507
6508 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
6509
6510 * config/arm/arm.h: explain F symbol found in description of ARM
6511 register allocation in its legend.
6512
6513 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
6514
6515 * config/mips/frame-header-opt.c: Include profile-count.h.
6516 * config/riscv/riscv.c: Include profile-count.h
6517
6518 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
6519
6520 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
6521 update profile.
6522 (sm_set_flag_if_changed): Add bbs field.
6523 (execute_sm_if_changed_flag_set): Pass BBS.
6524 (execute_sm): Update.
6525
6526 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6527
6528 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
6529 New pattern.
6530
6531 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6532
6533 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
6534 (peephole2): New peephole2 to emit the above.
6535 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
6536
6537 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6538
6539 * config/aarch64/aarch64.c (define_peephole2 above
6540 *sub_<shift>_<mode>): New peephole.
6541
6542 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
6543
6544 * config/i386/i386.c (make_resolver_func): Update.
6545 * Makefile.in: Add profile-count.h and profile-count.o
6546 * auto-profile.c (afdo_indirect_call): Update to new API.
6547 (afdo_set_bb_count): Update.
6548 (afdo_propagate_edge): Update.
6549 (afdo_propagate_circuit): Update.
6550 (afdo_calculate_branch_prob): Update.
6551 (afdo_annotate_cfg): Update.
6552 * basic-block.h: Include profile-count.h
6553 (struct edge_def): Turn count to profile_count.
6554 (struct basic_block_def): Likewie.
6555 (REG_BR_PROB_BASE): Move to profile-count.h
6556 (RDIV): Move to profile-count.h
6557 * bb-reorder.c (max_entry_count): Turn to profile_count.
6558 (find_traces): Update.
6559 (rotate_loop):Update.
6560 (connect_traces):Update.
6561 (sanitize_hot_paths):Update.
6562 * bt-load.c (migrate_btr_defs): Update.
6563 * cfg.c (RDIV): Remove.
6564 (init_flow): Use alloc_block.
6565 (alloc_block): Uninitialize count.
6566 (unchecked_make_edge): Uninitialize count.
6567 (check_bb_profile): Update.
6568 (dump_edge_info): Update.
6569 (dump_bb_info): Update.
6570 (update_bb_profile_for_threading): Update.
6571 (scale_bbs_frequencies_int): Update.
6572 (scale_bbs_frequencies_gcov_type): Update.
6573 (scale_bbs_frequencies_profile_count): New.
6574 * cfg.h (update_bb_profile_for_threading): Update.
6575 (scale_bbs_frequencies_profile_count): Declare.
6576 * cfgbuild.c (compute_outgoing_frequencies): Update.
6577 (find_many_sub_basic_blocks): Update.
6578 * cfgcleanup.c (try_forward_edges): Update.
6579 (try_crossjump_to_edge): Update.
6580 * cfgexpand.c (expand_gimple_tailcall): Update.
6581 (construct_exit_block): Update.
6582 * cfghooks.c (verify_flow_info): Update.
6583 (dump_bb_for_graph): Update.
6584 (split_edge): Update.
6585 (make_forwarder_block): Update.
6586 (duplicate_block): Update.
6587 (account_profile_record): Update.
6588 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
6589 (get_estimated_loop_iterations): Update.
6590 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
6591 (single_likely_exit): Update.
6592 * cfgloopmanip.c (scale_loop_profile): Update.
6593 (loopify): Update.
6594 (set_zero_probability): Update.
6595 (lv_adjust_loop_entry_edge): Update.
6596 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
6597 (purge_dead_edges): Update.
6598 (rtl_account_profile_record): Update.
6599 * cgraph.c (cgraph_node::create): Uninitialize count.
6600 (symbol_table::create_edge): Uninitialize count.
6601 (cgraph_update_edges_for_call_stmt_node): Update.
6602 (cgraph_edge::dump_edge_flags): Update.
6603 (cgraph_node::dump): Update.
6604 (cgraph_edge::maybe_hot_p): Update.
6605 * cgraph.h: Include profile-count.h
6606 (create_clone), create_edge, create_indirect_edge): Update.
6607 (cgraph_node): Turn count to profile_count.
6608 (cgraph_edge0: Likewise.
6609 (make_speculative, clone): Update.
6610 (create_edge): Update.
6611 (init_lowered_empty_function): Update.
6612 * cgraphclones.c (cgraph_edge::clone): Update.
6613 (duplicate_thunk_for_node): Update.
6614 (cgraph_node::create_clone): Update.
6615 * cgraphunit.c (cgraph_node::analyze): Update.
6616 (cgraph_node::expand_thunk): Update.
6617 * final.c (dump_basic_block_info): Update.
6618 * gimple-streamer-in.c (input_bb): Update.
6619 * gimple-streamer-out.c (output_bb): Update.
6620 * graphite.c (print_global_statistics): Update.
6621 (print_graphite_scop_statistics): Update.
6622 * hsa-brig.c: Include basic-block.h.
6623 * hsa-dump.c: Include basic-block.h.
6624 * hsa-gen.c (T sum_slice): Update.
6625 (convert_switch_statements):Update.
6626 * hsa-regalloc.c: Include basic-block.h.
6627 * ipa-chkp.c (chkp_produce_thunks): Update.
6628 * ipa-cp.c (struct caller_statistics): Update.
6629 (init_caller_stats): Update.
6630 (gather_caller_stats): Update.
6631 (ipcp_cloning_candidate_p): Update.
6632 (good_cloning_opportunity_p): Update.
6633 (get_info_about_necessary_edges): Update.
6634 (dump_profile_updates): Update.
6635 (update_profiling_info): Update.
6636 (update_specialized_profile): Update.
6637 (perhaps_add_new_callers): Update.
6638 (decide_about_value): Update.
6639 (ipa_cp_c_finalize): Update.
6640 * ipa-devirt.c (struct odr_type_warn_count): Update.
6641 (struct decl_warn_count): Update.
6642 (struct final_warning_record): Update.
6643 (possible_polymorphic_call_targets): Update.
6644 (ipa_devirt): Update.
6645 * ipa-fnsummary.c (redirect_to_unreachable): Update.
6646 * ipa-icf.c (sem_function::merge): Update.
6647 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
6648 * ipa-inline.c (compute_uninlined_call_time): Update.
6649 (compute_inlined_call_time): Update.
6650 (want_inline_small_function_p): Update.
6651 (want_inline_self_recursive_call_p): Update.
6652 (edge_badness): Update.
6653 (lookup_recursive_calls): Update.
6654 (recursive_inlining): Update.
6655 (inline_small_functions): Update.
6656 (dump_overall_stats): Update.
6657 (dump_inline_stats): Update.
6658 * ipa-profile.c (ipa_profile_generate_summary): Update.
6659 (ipa_propagate_frequency): Update.
6660 (ipa_profile): Update.
6661 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
6662 * ipa-utils.c (ipa_merge_profiles): Update.
6663 * loop-doloop.c (doloop_modify): Update.
6664 * loop-unroll.c (report_unroll): Update.
6665 (unroll_loop_runtime_iterations): Update.
6666 * lto-cgraph.c (lto_output_edge): Update.
6667 (lto_output_node): Update.
6668 (input_node): Update.
6669 (input_edge): Update.
6670 (merge_profile_summaries): Update.
6671 * lto-streamer-in.c (input_cfg): Update.
6672 * lto-streamer-out.c (output_cfg): Update.
6673 * mcf.c (create_fixup_graph): Update.
6674 (adjust_cfg_counts): Update.
6675 (sum_edge_counts): Update.
6676 * modulo-sched.c (sms_schedule): Update.
6677 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
6678 * predict.c (maybe_hot_count_p): Update.
6679 (probably_never_executed): Update.
6680 (dump_prediction): Update.
6681 (combine_predictions_for_bb): Update.
6682 (propagate_freq): Update.
6683 (handle_missing_profiles): Update.
6684 (counts_to_freqs): Update.
6685 (rebuild_frequencies): Update.
6686 (force_edge_cold): Update.
6687 * predict.h: Include profile-count.h
6688 (maybe_hot_count_p, counts_to_freqs): UPdate.
6689 * print-rtl-function.c: Do not include cfg.h
6690 * print-rtl.c: Include basic-block.h
6691 * profile-count.c: New file.
6692 * profile-count.h: New file.
6693 * profile.c (is_edge_inconsistent): Update.
6694 (correct_negative_edge_counts): Update.
6695 (is_inconsistent): Update.
6696 (set_bb_counts): Update.
6697 (read_profile_edge_counts): Update.
6698 (compute_frequency_overlap): Update.
6699 (compute_branch_probabilities): Update; Initialize and deinitialize
6700 gcov_count tables.
6701 (branch_prob): Update.
6702 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
6703 (edge_gcov_count): New.
6704 (bb_gcov_count): New.
6705 * shrink-wrap.c (try_shrink_wrapping): Update.
6706 * tracer.c (better_p): Update.
6707 * trans-mem.c (expand_transaction): Update.
6708 (ipa_tm_insert_irr_call): Update.
6709 (ipa_tm_insert_gettmclone_call): Update.
6710 * tree-call-cdce.c: Update.
6711 * tree-cfg.c (gimple_duplicate_sese_region): Update.
6712 (gimple_duplicate_sese_tail): Update.
6713 (gimple_account_profile_record): Update.
6714 (execute_fixup_cfg): Update.
6715 * tree-inline.c (copy_bb): Update.
6716 (copy_edges_for_bb): Update.
6717 (initialize_cfun): Update.
6718 (freqs_to_counts): Update.
6719 (copy_cfg_body): Update.
6720 (expand_call_inline): Update.
6721 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
6722 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
6723 (try_unroll_loop_completely): Update.
6724 (try_peel_loop): Update.
6725 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
6726 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
6727 * tree-ssa-loop-split.c (connect_loops): Update.
6728 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
6729 * tree-ssa-reassoc.c (branch_fixup): Update.
6730 * tree-ssa-tail-merge.c (replace_block_by): Update.
6731 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
6732 (compute_path_counts): Update.
6733 (update_profile): Update.
6734 (recompute_probabilities): Update.
6735 (update_joiner_offpath_counts): Update.
6736 (estimated_freqs_path): Update.
6737 (freqs_to_counts_path): Update.
6738 (clear_counts_path): Update.
6739 (ssa_fix_duplicate_block_edges): Update.
6740 (duplicate_thread_path): Update.
6741 * tree-switch-conversion.c (case_bit_test_cmp): Update.
6742 (struct switch_conv_info): Update.
6743 * tree-tailcall.c (decrease_profile): Update.
6744 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
6745 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
6746 * value-prof.c (check_counter): Update.
6747 (gimple_divmod_fixed_value): Update.
6748 (gimple_mod_pow2): Update.
6749 (gimple_mod_subtract): Update.
6750 (gimple_ic_transform): Update.
6751 (gimple_stringop_fixed_value): Update.
6752 * value-prof.h (gimple_ic): Update.
6753
6754 2017-06-02 Carl Love <cel@us.ibm.com>
6755
6756 * config/rs6000/rs6000-c: Add support for built-in functions
6757 vector double vec_doublee (vector signed int);
6758 vector double vec_doublee (vector unsigned int);
6759 vector double vec_doublee (vector float);
6760 vector double vec_doubleh (vector signed int);
6761 vector double vec_doubleh (vector unsigned int);
6762 vector double vec_doubleh (vector float);
6763 vector double vec_doublel (vector signed int);
6764 vector double vec_doublel (vector unsigned int);
6765 vector double vec_doublel (vector float);
6766 vector double vec_doubleo (vector signed int);
6767 vector double vec_doubleo (vector unsigned int);
6768 vector double vec_doubleo (vector float);.
6769 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
6770 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
6771 UNS_DOUBLEL.
6772 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
6773 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
6774 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
6775 VS_sxwsp.
6776 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
6777 vec_doublel, vec_doubleh.
6778 * doc/extend.texi: Update the built-in documentation file for the
6779 new built-in functions.
6780
6781 2017-06-02 David Malcolm <dmalcolm@redhat.com>
6782
6783 PR jit/80954
6784 * ipa-inline-analysis.c (free_growth_caches): Set
6785 edge_removal_hook_holder to NULL after removing it.
6786
6787 2017-06-02 Sudakshina Das <sudi.das@arm.com>
6788
6789 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
6790 comparision with zero.
6791
6792 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
6793 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
6794 for early expansion of vec_min and vec_max builtins.
6795 (builtin_function_type): Add min/max unsigned variants to those
6796 identified as having unsigned arguments.
6797
6798 2017-06-02 Olivier Hainque <hainque@adacore.com>
6799
6800 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
6801
6802 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6803
6804 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
6805 Use VALL_F16 iterator rather than VALL.
6806
6807 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6808
6809 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
6810 Emit CBNZ inside loop when doing a strong exchange and comparing
6811 against zero. Generate the CC flags after the loop.
6812
6813 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
6814
6815 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
6816 (dl_section_ref): New.
6817 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
6818 On AIX, append an expression to subtract the size of the
6819 section length to dl_section_ref.
6820
6821 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
6822
6823 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
6824 for early expansion of vector absolute builtins.
6825
6826 2017-06-02 Richard Biener <rguenther@suse.de>
6827
6828 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
6829 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
6830
6831 2017-06-02 Richard Biener <rguenther@suse.de>
6832
6833 PR tree-optimization/80948
6834 * tree-tailcall.c (find_tail_calls): Track stmts to move in
6835 stmt order as well.
6836
6837 2017-06-02 Richard Biener <rguenther@suse.de>
6838
6839 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
6840 PHIs are ok.
6841 * tree-vect-stmts.c (process_use): Do not mark backedge defs
6842 for inductions as relevant.
6843
6844 2017-06-02 Richard Biener <rguenther@suse.de>
6845
6846 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
6847 (vectorizable_induction): ... this. Remove dead code.
6848
6849 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
6850
6851 * builtins. (expand_builtin_alloca): Remove second parameter and
6852 infer its value from the first parameter instead.
6853 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
6854
6855 2017-06-02 Jakub Jelinek <jakub@redhat.com>
6856
6857 PR rtl-optimization/80903
6858 * loop-doloop.c (add_test): Unshare sequence.
6859
6860 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
6861
6862 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
6863
6864 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
6865
6866 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
6867 static.
6868 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
6869 xlogue_layout::get_instance, logue_layout::xlogue_layout,
6870 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
6871 (xlogue_layout::get_stub_rtx): Make static.
6872 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
6873 (xlogue_layout::compute_stub_managed_regs): Rename to...
6874 (xlogue_layout::count_stub_managed_regs): ...this.
6875 (xlogue_layout::is_stub_managed_reg): New function.
6876 (xlogue_layout::m_stub_names): Rename to...
6877 (xlogue_layout::s_stub_names): ...this, make static.
6878 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
6879 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
6880 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
6881 xlogue_layout::s_stub_names): Instantiate statics.
6882 (stub_managed_regs): Remove.
6883 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
6884 (disable_call_ms2sysv_xlogues): Rename to...
6885 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
6886 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
6887 warning logic.
6888 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
6889 change after reload_completed.
6890 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
6891 directly.
6892 (ix86_expand_prologue): Likewise.
6893 (ix86_expand_epilogue): Likewise.
6894 (ix86_expand_split_stack_prologue): Likewise.
6895 (ix86_compute_frame_layout): Remove frame parameter ...
6896 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
6897 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
6898 only if necessary.
6899 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
6900 (ix86_frame): Move from here ...
6901 * config/i386/i386.h (ix86_frame): ... to here.
6902 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
6903 complete ix86_frame data structure instead. Remove some_ld_name.
6904
6905 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
6906
6907 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
6908 symbols that hold a DECL_VALUE_EXPR.
6909
6910 2017-06-01 Martin Jambor <mjambor@suse.cz>
6911
6912 PR tree-optimization/80898
6913 * tree-sra.c (process_subtree_disqualification): Removed.
6914 (disqualify_candidate): Do not acll
6915 process_subtree_disqualification.
6916 (subtree_mark_written_and_enqueue): New function.
6917 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
6918 RHS has been disqualified and re-queue LHS if necessary. Apart
6919 from that, ignore disqualified RHS.
6920
6921 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6922
6923 * config/s390/s390.c (s390_emit_epilogue): Disable early return
6924 address fetch for z10 or later.
6925
6926 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6927
6928 * config/arc/arc.md (tst_movb): Add guard when splitting.
6929
6930 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6931
6932 * config/arc/arc.c (arc_can_eliminate): Test against
6933 arc_frame_pointer_needed.
6934
6935 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6936
6937 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
6938 to prevent store reordering.
6939 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
6940 (type): Add block type.
6941 (stack_tie): Define special instruction to be used in
6942 expand_prologue.
6943
6944 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6945
6946 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
6947 constraint. It is not valid for the pattern.
6948 (noncommutative_binary_comparison): Likewise.
6949
6950 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6951
6952 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
6953 scaled addresses.
6954
6955 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6956
6957 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
6958 be used by the reg-alloc.
6959
6960 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6961
6962 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
6963 reg-alloc when having mul64 or mul32x16 instructions.
6964 (mulsidi3): Likewise.
6965 (umulsidi3): Likewise.
6966 (mulsi32x16): New pattern.
6967 (mulsi64): Likewise.
6968 (mulsidi64): Likewise.
6969 (umulsidi64): Likewise.
6970 (MUL32x16_REG): Define.
6971 (mul64_600): Use MUL32x16_REG.
6972 (mac64_600): Likewise.
6973 (umul64_600): Likewise.
6974 (umac64_600): Likewise.
6975
6976 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
6977
6978 * config/arc/arc.md (mulsi3_700): Make it commutative.
6979
6980 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
6981
6982 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
6983 type for movstouw.
6984 (*sign_extendsidi2_insn): Likewise for movstosw.
6985
6986 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
6987
6988 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
6989 the type of the input discriminant value. Convert the
6990 discriminant value of signedness vary.
6991
6992 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
6993
6994 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
6995 Add to -Wall section.
6996
6997 2017-06-01 Richard Biener <rguenther@suse.de>
6998
6999 PR middle-end/66313
7000 * fold-const.c (fold_plusminus_mult_expr): If the factored
7001 factor may be zero use a wrapping type for the inner operation.
7002 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
7003 and handle moved defs.
7004 (process_assignment): Properly guard the unary op case. Return a
7005 tri-state indicating that moving the stmt before the call may allow
7006 to continue. Pass through to_move.
7007 (find_tail_calls): Handle moving unrelated defs before
7008 the call.
7009
7010 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
7011
7012 PR target/80618
7013 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
7014 splitter result in the canonical way.
7015
7016 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
7017
7018 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
7019 also for 32bit target. Update insn attributes.
7020 (zero-extendsidi2 splitter): Allow all registers for operand 1.
7021
7022 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
7023
7024 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
7025 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
7026 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
7027 (_mm_maskz_min_ss): New intrinsics.
7028
7029 2017-05-31 Martin Liska <mliska@suse.cz>
7030
7031 * tree-vect-loop.c (vect_create_epilog_for_reduction):
7032 Change comment style to one we normally use.
7033 (vectorizable_reduction): Likewise.
7034 (vectorizable_induction): Likewise.
7035 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
7036 (vectorizable_call): Likewise.
7037 (vectorizable_simd_clone_call): Likewise.
7038 (vectorizable_conversion): Likewise.
7039 (vectorizable_assignment): Likewise.
7040 (vectorizable_shift): Likewise.
7041 (vectorizable_operation): Likewise.
7042 (vectorizable_store): Likewise.
7043 (vectorizable_load): Likewise.
7044 * tree-vectorizer.h: Likewise.
7045
7046 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
7047
7048 * passes.c (emergency_dump_function): New.
7049 * tree-pass.h (emergency_dump_function): Declare.
7050 * plugin.c (plugins_internal_error_function): Remove.
7051 * plugin.h (plugins_internal_error_function): Remove declaration.
7052 * toplev.c (internal_error_function): New static function. Use it...
7053 (general_init): ...here.
7054
7055 2017-05-31 Graham Markall <graham.markall@embecosm.com>
7056
7057 * config/arc/arc.c (arc_print_operand): Handle constant operands.
7058 (arc_rtx_costs): Add costs for new patterns.
7059 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
7060 * config/arc/predicates.md: Add _1_2_3_operand predicate.
7061
7062 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
7063
7064 * tree-ssa-strlen.c (get_next_strinfo): New function.
7065 (get_stridx_plus_constant): Use it.
7066 (zero_length_string): Likewise.
7067 (adjust_related_strinfos): Likewise.
7068 (adjust_last_stmt): Likewise.
7069
7070 2017-05-31 Richard Biener <rguenther@suse.de>
7071
7072 PR target/80880
7073 * config/i386/i386.c (ix86_expand_builtin): Remove assert
7074 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
7075
7076 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
7077
7078 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
7079 loop_vinfo argument and use of dependence distance vectors.
7080 Check instead whether the two references differ only in their
7081 initial value and assume that they have the same alignment if the
7082 difference is a multiple of the vector alignment.
7083 (vect_analyze_data_refs_alignment): Update call accordingly.
7084
7085 2017-05-31 Martin Liska <mliska@suse.cz>
7086
7087 PR target/79155
7088 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
7089
7090 2017-05-31 Bin Cheng <bin.cheng@arm.com>
7091
7092 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
7093 (create_intersect_range_checks): Move from ...
7094 * tree-data-ref.c (create_intersect_range_checks_index)
7095 (create_intersect_range_checks): ... to here.
7096 (create_runtime_alias_checks): New function factored from ...
7097 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
7098 here. Call above function.
7099 * tree-data-ref.h (create_runtime_alias_checks): New function.
7100
7101 2017-05-31 Bin Cheng <bin.cheng@arm.com>
7102
7103 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
7104 segment length for dr_b and compute it in wide_int.
7105
7106 2017-05-31 Richard Biener <rguenther@suse.de>
7107
7108 PR tree-optimization/80906
7109 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
7110 and pass through iv_map.
7111 (copy_bb_and_scalar_dependences): Adjust.
7112 (translate_pending_phi_nodes): Likewise.
7113 (copy_loop_close_phi_args): Handle code-generating IVs instead
7114 of ICEing.
7115
7116 2017-05-30 David Malcolm <dmalcolm@redhat.com>
7117
7118 * diagnostic-color.c (color_dict): Add "type-diff".
7119 (parse_gcc_colors): Update comment.
7120 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
7121 -fdiagnostics-show-template-tree and -fno-elide-type.
7122 (GCC_COLORS): Add type-diff to example.
7123 (type-diff=): New.
7124 (-fdiagnostics-show-template-tree): New.
7125 (-fno-elide-type): New.
7126 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
7127 the pp_format_decoder callback. Call any m_format_postprocessor's
7128 "handle" method.
7129 (pretty_printer::pretty_printer): Initialize
7130 m_format_postprocessor.
7131 (pretty_printer::~pretty_printer): Delete any
7132 m_format_postprocessor.
7133 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
7134 (class format_postprocessor): New class.
7135 (struct pretty_printer::format_decoder): Document the new parameters.
7136 (struct pretty_printer::m_format_postprocessor): New field.
7137 * tree-diagnostic.c (default_tree_printer): Update for new
7138 bool and const char ** params.
7139 * tree-diagnostic.h (default_tree_printer): Likewise.
7140
7141 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
7142
7143 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
7144 (lwa_operand): Delete rs6000_gen_cell_microcode test.
7145 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
7146 rs6000_gen_cell_microcode code.
7147 (rs6000_final_prescan_insn): Delete.
7148 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
7149 "warn-cell-microcode" entries.
7150 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
7151 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
7152 throughout. Change cc_reg_not_micro_cr0_operand to
7153 cc_reg_not_cr0_operand throughout.
7154 (*extendhi<mode>2_noload): Delete.
7155 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
7156 (mwarn-cell-microcode): Delete.
7157 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
7158 -mgen-cell-microcode and -mwarn-cell-microcode.
7159
7160 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
7161
7162 PR target/80833
7163 * config/i386/constraints.md (Yd): New constraint.
7164 (Ye): Ditto.
7165 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
7166 and (?Yd, r) alternatives. Update insn attributes.
7167 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
7168 and (?*Yd, r) alternatives. Update insn attributes.
7169 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
7170
7171 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
7172
7173 * gimplify.c (gimplify_modify_expr): Don't create a
7174 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
7175 function.
7176
7177 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
7178
7179 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
7180
7181 2017-05-30 Richard Biener <rguenther@suse.de>
7182
7183 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
7184 and reduc_def fields.
7185 (STMT_VINFO_REDUC_TYPE): New define.
7186 (STMT_VINFO_REDUC_DEF): Likewise.
7187 (vect_force_simple_reduction): Adjust prototype.
7188 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
7189 (vect_is_simple_reduction): Remove check_reduction argument.
7190 (vect_force_simple_reduction): Adjust and set
7191 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
7192 (vectorizable_reduction): Do not re-do reduction analysis
7193 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
7194 * tree-parloops.c (gather_scalar_reductions): Adjust.
7195
7196 2017-05-30 Richard Biener <rguenther@suse.de>
7197
7198 PR middle-end/80901
7199 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
7200 split_edge code.
7201
7202 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
7203
7204 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
7205 Introduce unknown_misalignment parameter and remove vf.
7206 (vect_peeling_hash_get_lowest_cost):
7207 Pass unknown_misalignment parameter.
7208 (vect_enhance_data_refs_alignment):
7209 Fix unsupportable data ref treatment.
7210
7211 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
7212
7213 * tree-vect-data-refs.c (vect_get_data_access_cost):
7214 Workaround for SLP handling.
7215 (vect_enhance_data_refs_alignment):
7216 Compute costs for doing no peeling at all, compare to the best
7217 peeling costs so far and avoid peeling if cheaper.
7218
7219 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
7220
7221 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
7222 Return peeling info and set costs to zero for unlimited cost
7223 model.
7224 (vect_enhance_data_refs_alignment): Also inspect all datarefs
7225 with unknown misalignment. Compute and costs for unknown
7226 misalignment, compare them to the costs for known misalignment
7227 and choose the cheapest for peeling.
7228
7229 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
7230
7231 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
7232 (vect_get_peeling_costs_all_drs): Create function.
7233 (vect_peeling_hash_get_lowest_cost):
7234 Use vect_get_peeling_costs_all_drs.
7235 (vect_peeling_supportable): Create function.
7236 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
7237
7238 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
7239
7240 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
7241 DR_HAS_NEGATIVE_STEP.
7242 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
7243 (vect_enhance_data_refs_alignment): Use.
7244 (vect_duplicate_ssa_name_ptr_info): Use.
7245 * tree-vectorizer.h (dr_misalignment): Use.
7246 (known_alignment_for_access_p): Use.
7247
7248 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
7249
7250 PR target/78838
7251 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
7252 .lowtext.
7253 (has_section_name): New function.
7254
7255 2017-05-30 Martin Liska <mliska@suse.cz>
7256
7257 PR other/80909
7258 * auto-profile.c (get_function_decl_from_block): Fix
7259 parenthesis.
7260
7261 2017-05-30 Richard Biener <rguenther@suse.de>
7262
7263 PR middle-end/80876
7264 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
7265
7266 2017-05-30 Martin Liska <mliska@suse.cz>
7267
7268 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
7269 * dumpfile.h (struct dump_file_info): Remove ctors.
7270
7271 2017-05-30 Martin Liska <mliska@suse.cz>
7272
7273 * predict.def: Fix GNU coding style.
7274
7275 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
7276
7277 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
7278 Mark 'to' argument with ATTRIBUTE_UNUSED.
7279
7280 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
7281
7282 * config/xtensa/xtensa.c (xtensa_emit_call): Use
7283 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
7284 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
7285 format string.
7286
7287 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
7288
7289 * doc/install.texi (Options specification): Restore entry of
7290 --enable-sjlj-exceptions.
7291
7292 2017-05-27 Michael Eager <eager@eagercon.com>
7293
7294 Revert:
7295 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
7296
7297 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
7298
7299 * config/microblaze/microblaze.h
7300 (FIXED_REGISTERS): Update in macro.
7301 (CALL_USED_REGISTERS): Update in macro.
7302
7303 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
7304
7305 * doc/install.texi: Add links to macOS binary distributions.
7306
7307 2017-05-27 Jakub Jelinek <jakub@redhat.com>
7308
7309 PR bootstrap/80887
7310 Revert:
7311 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
7312
7313 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
7314
7315 2017-05-26 Martin Liska <mliska@suse.cz>
7316
7317 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
7318
7319 2017-05-26 Martin Liska <mliska@suse.cz>
7320
7321 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
7322 always leading ';; '.
7323 (dump_bb_info): Likewise.
7324 (brief_dump_cfg): Likewise.
7325 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
7326 * dumpfile.c: Remove usage of TDF_VERBOSE.
7327 * dumpfile.h (enum dump_kind): Likewise.
7328 (dump_gimple_bb_header): Do not use TDF_COMMENT.
7329 * print-tree.c (debug_verbose): Remove.
7330 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
7331 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
7332 * tree-diagnostic.c (default_tree_printer): Replace
7333 TDF_DIAGNOSTIC with TDF_SLIM.
7334
7335 2017-05-26 Bin Cheng <bin.cheng@arm.com>
7336
7337 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
7338 in parameter loop, rather than loop_vinfo.
7339 (create_intersect_range_checks): Ditto.
7340 (vect_create_cond_for_alias_checks): Update call to above functions.
7341
7342 2017-05-26 Bin Cheng <bin.cheng@arm.com>
7343
7344 PR tree-optimization/80815
7345 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
7346 for merging runtime alias checks. Handle negative DR_STEPs.
7347
7348 2017-05-26 Bin Cheng <bin.cheng@arm.com>
7349
7350 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
7351 Move from ...
7352 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
7353 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
7354 out code pruning runtime alias checks.
7355 * tree-data-ref.c (prune_runtime_alias_test_list): New function
7356 factored out from above.
7357 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
7358 Move from ...
7359 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
7360 ... to here.
7361 (prune_runtime_alias_test_list): New decalaration.
7362
7363 2017-05-26 Bin Cheng <bin.cheng@arm.com>
7364
7365 * tree-vect-data-refs.c (compare_tree): Rename and move ...
7366 * tree-data-ref.c (data_ref_compare_tree): ... to here.
7367 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
7368 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
7369 (operator==, comp_dr_with_seg_len_pair): Ditto.
7370 (vect_prune_runtime_alias_test_list): Ditto.
7371
7372 2017-05-26 Martin Liska <mliska@suse.cz>
7373
7374 PR ipa/80663
7375 * params.def: Bound partial-inlining-entry-probability param.
7376
7377 2017-05-26 Marek Polacek <polacek@redhat.com>
7378
7379 PR sanitizer/80875
7380 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
7381 can be negated.
7382
7383 2017-05-26 Richard Biener <rguenther@suse.de>
7384
7385 PR tree-optimization/80842
7386 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
7387 value.
7388
7389 2017-05-26 Richard Biener <rguenther@suse.de>
7390
7391 PR tree-optimization/80844
7392 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
7393
7394 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
7395
7396 * doc/md.texi (Machine Constraints): Update x86 family
7397 machine constraints section to match 'config/i386/constraints.md'.
7398
7399 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
7400
7401 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
7402
7403 2017-05-25 Nathan Sidwell <nathan@acm.org>
7404
7405 * doc/invoke.texi (--enable-languages): Update documentation.
7406
7407 2017-05-25 Martin Liska <mliska@suse.cz>
7408
7409 * dumpfile.c: Add TDF_FOLDING.
7410 * dumpfile.h (enum dump_kind): Likewise.
7411 * genmatch.c (dt_simplify::gen_1): Use it.
7412
7413 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
7414
7415 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
7416
7417 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
7418
7419 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
7420 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
7421
7422 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
7423
7424 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
7425 * match.pd (X == C): Rewrite it here.
7426 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
7427 with_certain_nonzero_bits2): New predicates.
7428 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
7429
7430 2017-05-24 Nathan Sidwell <nathan@acm.org>
7431
7432 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
7433 avoid warning.
7434
7435 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
7436 warning.
7437
7438 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
7439
7440 * config/powerpcspe: New port. Files are copied from the rs6000
7441 port, with "rs6000" in filenames replaced by "powerpcspe".
7442
7443 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
7444
7445 PR rtl-optimization/80754
7446 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
7447
7448 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
7449
7450 * config/sparc/sparc.md (length): Return the correct value for -mflat
7451 sibcalls to match output_sibcall.
7452
7453 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
7454
7455 PR bootstrap/80860
7456 PR bootstrap/80843
7457 * config/rs6000/rs6000.c (struct machine_function): Add new field
7458 n_components.
7459 (rs6000_get_separate_components): Init that field, use it.
7460 (rs6000_components_for_bb): Use the field.
7461
7462 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
7463
7464 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
7465
7466 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
7467
7468 PR middle-end/80823
7469 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
7470
7471 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7472
7473 PR target/80725
7474 * config/s390/s390.c (s390_check_qrst_address): Check incoming
7475 address against address_operand predicate.
7476 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
7477
7478 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
7479
7480 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
7481 parameters passed indirectly.
7482
7483 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
7484
7485 * config/i386/i386.md (*movdi_internal): Remove SSE4
7486 alternative 18 (?r, *v). Update insn attributes.
7487 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
7488 Update insn attributes.
7489 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
7490 Update insn attributes.
7491 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
7492 alternative 1 (r, v). Remove isa attribute.
7493 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
7494 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
7495 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
7496
7497 2017-05-23 Tom de Vries <tom@codesourcery.com>
7498
7499 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
7500 dg-line directive.
7501
7502 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
7503
7504 * cgraphunit.c (symbol_table::process_new_functions): Update.
7505 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
7506 (inline_generate_summary): Rename to ...
7507 (ipa_fn_summary_generate): ... this one.
7508 (inline_read_summary): Rename to ...
7509 (ipa_fn_summary_read): ... this one.
7510 (inline_write_summary): Rename to ...
7511 (ipa_fn_summary_write): ... this one.
7512 (inline_free_summary): Rename to ...
7513 (ipa_free_fn_summary): ... this one.
7514 (pass_data_local_fn_summary, pass_local_fn_summary,
7515 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
7516 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
7517 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
7518 make_pass_ipa_fn_summary): New.
7519 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
7520 inline_write_summary, inline_free_summary): Remove.
7521 (ipa_free_fn_summary) : New.
7522 * ipa-inline.c (ipa_inline): Update.
7523 (pass_ipa_inline): Do not generate summaries.
7524 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
7525 Remove.
7526 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
7527 and add pass_ipa_fn_summary.
7528 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
7529 New.
7530 (make_pass_inline_parameters): Remove.
7531
7532 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
7533
7534 * omp-low.c (struct omp_context): Remove "default_kind" member.
7535 Adjust all users.
7536
7537 * omp-offload.c (execute_oacc_device_lower): Remove the
7538 parallelism dimensions function attributes for unparallelized
7539 OpenACC kernels constructs.
7540
7541 2017-05-23 Martin Liska <mliska@suse.cz>
7542
7543 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
7544 functions.
7545 (cgraph_edge::make_speculative): Likewise.
7546 (cgraph_edge::resolve_speculation): Likewise.
7547 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
7548 (cgraph_node::dump): Likewise.
7549 * cgraph.h: Likewise.
7550 * cgraphunit.c (analyze_functions): Likewise.
7551 (symbol_table::compile): Likewise.
7552 * ipa-cp.c (print_all_lattices): Likewise.
7553 (determine_versionability): Likewise.
7554 (initialize_node_lattices): Likewise.
7555 (ipcp_verify_propagated_values): Likewise.
7556 (estimate_local_effects): Likewise.
7557 (update_profiling_info): Likewise.
7558 (create_specialized_node): Likewise.
7559 (perhaps_add_new_callers): Likewise.
7560 (decide_about_value): Likewise.
7561 (decide_whether_version_node): Likewise.
7562 (identify_dead_nodes): Likewise.
7563 (ipcp_store_bits_results): Likewise.
7564 * ipa-devirt.c (dump_targets): Likewise.
7565 (ipa_devirt): Likewise.
7566 * ipa-icf.c (sem_item::dump): Likewise.
7567 (sem_function::equals): Likewise.
7568 (sem_variable::equals): Likewise.
7569 (sem_item_optimizer::read_section): Likewise.
7570 (sem_item_optimizer::execute): Likewise.
7571 (congruence_class::dump): Likewise.
7572 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
7573 (dump_inline_summary): Likewise.
7574 (estimate_node_size_and_time): Likewise.
7575 (inline_analyze_function): Likewise.
7576 * ipa-inline-transform.c (inline_call): Likewise.
7577 * ipa-inline.c (report_inline_failed_reason): Likewise.
7578 (want_early_inline_function_p): Likewise.
7579 (edge_badness): Likewise.
7580 (update_edge_key): Likewise.
7581 (inline_small_functions): Likewise.
7582 * ipa-profile.c (ipa_profile): Likewise.
7583 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
7584 (ipa_make_edge_direct_to_target): Likewise.
7585 (remove_described_reference): Likewise.
7586 (ipa_impossible_devirt_target): Likewise.
7587 (propagate_controlled_uses): Likewise.
7588 (ipa_print_node_params): Likewise.
7589 (ipcp_transform_function): Likewise.
7590 * ipa-pure-const.c (pure_const_read_summary): Likewise.
7591 (propagate_pure_const): Likewise.
7592 * ipa-reference.c (generate_summary): Likewise.
7593 (read_write_all_from_decl): Likewise.
7594 (propagate): Likewise.
7595 (ipa_reference_read_optimization_summary): Likewise.
7596 * ipa-utils.c (ipa_merge_profiles): Likewise.
7597 * ipa.c (walk_polymorphic_call_targets): Likewise.
7598 (symbol_table::remove_unreachable_nodes): Likewise.
7599 (ipa_single_use): Likewise.
7600 * passes.c (execute_todo): Likewise.
7601 * predict.c (drop_profile): Likewise.
7602 * symtab.c (symtab_node::get_dump_name): New function.
7603 (symtab_node::dump_name): Likewise.
7604 (symtab_node::dump_asm_name): Likewise.
7605 (symtab_node::dump_references): Likewise.
7606 (symtab_node::dump_referring): Likewise.
7607 (symtab_node::dump_base): Likewise.
7608 (symtab_node::debug_symtab): Likewise.
7609 * tree-sra.c (convert_callers_for_node): Likewise.
7610 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
7611 * value-prof.c (init_node_map): Likewise.
7612
7613 2017-05-23 Martin Liska <mliska@suse.cz>
7614
7615 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
7616 and symtab_node::debug_symtab to symbol_table::debug.
7617 * cgraphunit.c (analyze_functions): Use the renamed function.
7618 (symbol_table::compile): Likewise.
7619 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
7620 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
7621 * passes.c (execute_todo): Likewise.
7622 * symtab.c (symbol_table::dump): New function.
7623 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
7624
7625 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
7626
7627 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
7628 that nonconst implies exec.
7629
7630 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
7631
7632 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
7633 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
7634 (inline_edge_summary_vec): Turn into ...
7635 (ipa_call_summaries): ... this one.
7636 (redirect_to_unreachable, edge_set_predicate,
7637 evaluate_properties_for_edge, inline_summary_alloc,
7638 reset_ipa_call_summary, reset_inline_summary,
7639 inline_summary_t::duplicate): Update.
7640 (inline_edge_duplication_hook): Turn to ...
7641 (ipa_call_summary_t::duplicate): ... this one.
7642 (inline_edge_removal_hook): Turn to ...
7643 (ipa_call_summary_t::remove): ... this one.
7644 (dump_inline_edge_summary): Turn to ...
7645 (dump_ipa_call_summary): ... this one.
7646 (estimate_function_body_sizes): Update.
7647 (inline_update_callee_summaries): Update.
7648 (remap_edge_change_prob): Update.
7649 (remap_edge_summaries): Update.
7650 (inline_merge_summary): Update.
7651 (do_estimate_edge_time): Update.
7652 (inline_generate_summary): Update.
7653 (inline_read_section): Update.
7654 (inline_read_summary): Update.
7655 (inline_free_summary): Update.
7656 * ipa-inline.c (can_inline_edge_p): Update.
7657 (compute_inlined_call_time): Update.
7658 (want_inline_small_function_p): Update.
7659 (edge_badness): Update.
7660 (early_inliner): Update.
7661 * ipa-inline.h (inline_edge_summary): Turn to ...
7662 (ipa_call_summary): ... this one.
7663 (ipa_call_summary_t): New class.
7664 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
7665 (ipa_call_summaries): New.
7666 (inline_edge_summary): Remove.
7667 (estimate_edge_growth): Update.
7668 * ipa-profile.c (ipa_propagate_frequency_1): Update.
7669 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
7670 * ipa-split.c (execute_split_functions): Update.
7671 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
7672
7673 2017-05-23 Tom de Vries <tom@codesourcery.com>
7674
7675 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
7676 attributes): Document rdrand effective target.
7677
7678 2017-05-23 Tom de Vries <tom@codesourcery.com>
7679
7680 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
7681 attributes): Sort alphabetically.
7682
7683 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
7684
7685 * config/avr/genmultilib.awk: Use gsub instead of gensub.
7686
7687 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
7688
7689 PR target/80718
7690 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
7691 V2DF/V2DI splat into two separate patterns, one that handles
7692 registers, and the other that only handles memory. Drop support
7693 for splatting from a GPR on ISA 2.07 and then splitting the
7694 splat into direct move and splat.
7695 (vsx_splat_<mode>_reg): Likewise.
7696 (vsx_splat_<mode>_mem): Likewise.
7697
7698 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
7699
7700 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
7701
7702 2017-05-22 Jakub Jelinek <jakub@redhat.com>
7703
7704 PR middle-end/80809
7705 * omp-low.c (finish_taskreg_remap): New function.
7706 (finish_taskreg_scan): If unit size of ctx->record_type
7707 is non-constant, unshare the size expression and replace
7708 decls in it with possible outer var refs.
7709
7710 PR middle-end/80809
7711 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
7712 GOVD_SHARED rather than GOVD_PRIVATE with it.
7713 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
7714 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
7715
7716 PR middle-end/80853
7717 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
7718 as last argument to build_outer_var_ref for pointer bases of array
7719 section reductions.
7720
7721 2017-05-19 Martin Sebor <msebor@redhat.com>
7722
7723 * print-tree.c (print_node): Print DECL_READ_P flag.
7724
7725 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
7726
7727 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
7728 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
7729 * cgraph.c: Likewise.
7730 * cgraphunit.c: Likewise.
7731 * gengtype.c: Likewise.
7732 * ipa-cp.c: Likewise.
7733 * ipa-devirt.c: Likewise.
7734 * ipa-icf.c: Likewise.
7735 * ipa-predicate.c: Likewise.
7736 * ipa-profile.c: Likewise.
7737 * ipa-prop.c: Likewise.
7738 * ipa-split.c: Likewise.
7739 * ipa.c: Likewise.
7740 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
7741 edge_predicate_pool, dump_inline_hints,
7742 inline_summary::account_size_time, redirect_to_unreachable,
7743 edge_set_predicate, set_hint_predicate,
7744 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
7745 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
7746 inline_summary_t::remove, remap_hint_predicate_after_duplication,
7747 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
7748 ipa_call_summary_t::remove, initialize_growth_caches,
7749 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
7750 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
7751 mark_modified, unmodified_parm_1, unmodified_parm,
7752 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
7753 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
7754 compute_bb_predicates, will_be_nonconstant_expr_predicate,
7755 will_be_nonconstant_predicate, record_modified_bb_info,
7756 get_minimal_bb, record_modified, param_change_prob,
7757 phi_result_unknown_predicate, predicate_for_phi_result,
7758 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
7759 estimate_function_body_sizes, compute_inline_parameters,
7760 compute_inline_parameters_for_curren, pass_data_inline_parameters,
7761 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
7762 inline_update_callee_summaries, remap_edge_change_prob,
7763 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
7764 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
7765 inline_analyze_function, inline_summary_t::insert,
7766 inline_generate_summary, read_ipa_call_summary, inline_read_section,
7767 inline_read_summary, write_ipa_call_summary, inline_write_summary,
7768 inline_free_summary): Move to ipa-fnsummary.h
7769 (predicate_t): Remove.
7770 * ipa-fnsummary.c: New file.
7771 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
7772 (enum inline_hints_vals, inline_hints, agg_position_info,
7773 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
7774 inline_summaries, ipa_call_summary, ipa_call_summary_t,
7775 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
7776 dump_inline_summary, dump_inline_hints, inline_generate_summary,
7777 inline_read_summary, inline_write_summary, inline_free_summary,
7778 inline_analyze_function, initialize_inline_failed,
7779 inline_merge_summary, inline_update_overall_summary,
7780 compute_inline_parameters): Move to ipa-fnsummary.h
7781 * ipa-fnsummary.h: New file.
7782 * ipa-inline-transform.h: Include ipa-inline.h.
7783 * ipa-inline.c: LIkewise.
7784
7785 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
7786
7787 * ipa-inline.c (edge_badness): Use inlined_time instead of
7788 inline_summaries->get.
7789
7790 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
7791
7792 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
7793
7794 2017-05-22 Nathan Sidwell <nathan@acm.org>
7795
7796 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
7797 (fdump-lang): Document 'raw' option.
7798 * dumpfile.h (TDI_tu): Delete.
7799 * dumpfile.c (dump_files): Remove translation-unit.
7800 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
7801
7802 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
7803
7804 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
7805 command option from $(AWK) call.
7806 * config/avr/genmultilib.awk: Simplify and rewrite so that it
7807 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
7808 [FORMAT]: Remove handling of variable.
7809 * config/avr/t-multilib: Regenerate.
7810
7811 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
7812
7813 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
7814 self_time.
7815 (dump_inline_summary): Do not print self_time.
7816 (estimate_function_body_sizes): Do not set self_time.
7817 (compute_inline_parameters): Likewise.
7818 (inline_read_section, inline_write_summary): Do not stream self_time.
7819 * ipa-inline.h (inline_summary): Drop self_time.
7820
7821 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
7822
7823 * ipa-inline-analysis.c (account_size_time): Rename to ...
7824 (inline_summary::account_size_time): ... this one.
7825 (reset_ipa_call_summary): Turn to ...
7826 (ipa_call_summary::reset): ... this one.
7827 (reset_inline_summary): Turn to ...
7828 (inline_summary::reset): ... this one.
7829 (inline_summary_t::remove): Update.
7830 (inline_summary_t::duplicate): Update.
7831 (ipa_call_summary_t::remove): Update.
7832 (dump_inline_summary): Update.
7833 (estimate_function_body_sizes): Update.
7834 (compute_inline_parameters): Update.
7835 (estimate_node_size_and_time): Update.
7836 (inline_merge_summary): Update.
7837 (inline_update_overall_summary): Update.
7838 (inline_read_section): Update.
7839 (inline_write_summary): Update.
7840 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
7841 add account_size_time and reset member functions.
7842 (ipa_call_summary): Add reset function.
7843 * ipa-predicate.h (predicate::operator &): Constify.
7844
7845 2017-05-22 Richard Biener <rguenther@suse.de>
7846
7847 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
7848
7849 2017-05-19 Jason Merrill <jason@redhat.com>
7850
7851 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
7852
7853 2017-05-19 Marek Polacek <polacek@redhat.com>
7854
7855 PR sanitizer/80800
7856 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
7857 TYPE_OVERFLOW_WRAPS checks.
7858
7859 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
7860
7861 * tree-core.h (enum omp_clause_default_kind): Add
7862 "OMP_CLAUSE_DEFAULT_PRESENT".
7863 * tree-pretty-print.c (dump_omp_clause): Handle it.
7864 * gimplify.c (enum gimplify_omp_var_data): Add
7865 "GOVD_MAP_FORCE_PRESENT".
7866 (gimplify_adjust_omp_clauses_1): Map it to
7867 "GOMP_MAP_FORCE_PRESENT".
7868 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
7869
7870 * gimplify.c (oacc_default_clause): Clarify.
7871
7872 2017-05-19 Nathan Sidwell <nathan@acm.org>
7873
7874 LANG_HOOK_REGISTER_DUMPS
7875 * toplev.c (general_init): Call register dump lang hook.
7876 * doc/invoke.texi: Document -fdump-lang option family.
7877 * dumpfile.c (dump_files): Remove class dump here.
7878 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
7879 * dumpfile.h (tree_dump_index): Remove TDI_class.
7880 * langhooks-def.h (lhd_register_dumps): Declare.
7881 (LANG_HOOKS_REGISTER_DUMPS): Define.
7882 (LANG_HOOKS_INITIALIZER): Add it.
7883 * langhooks.c (lhd_register_dumps): Define.
7884 * langhooks.h (struct lang_hooks): Add register_dumps.
7885
7886 2017-05-19 Nathan Sidwell <nathan@acm.org>
7887
7888 * context.h (context::set_passes): New.
7889 * context.c (context::context): Do not create pass manager.
7890 * toplev.c (general_init): Create pass manager here.
7891
7892 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
7893
7894 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
7895 use this splitter if two add or or instructions would also work for
7896 the constant we want to generate.
7897
7898 2017-05-19 Richard Biener <rguenther@suse.de>
7899
7900 PR build/80821
7901 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
7902 predicate evaluation.
7903
7904 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
7905
7906 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
7907 add ctor.
7908 * ipa-inline.c (want_inline_small_function_p): Do not cast to
7909 unsigned.
7910
7911 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
7912
7913 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
7914 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
7915 (inline_edge_summary_vec): Turn into ...
7916 (ipa_call_summaries): ... this one.
7917 (redirect_to_unreachable, edge_set_predicate,
7918 evaluate_properties_for_edge, inline_summary_alloc,
7919 reset_ipa_call_summary, reset_inline_summary,
7920 inline_summary_t::duplicate): Update.
7921 (inline_edge_duplication_hook): Turn to ...
7922 (ipa_call_summary_t::duplicate): ... this one.
7923 (inline_edge_removal_hook): Turn to ...
7924 (ipa_call_summary_t::remove): ... this one.
7925 (dump_inline_edge_summary): Turn to ...
7926 (dump_ipa_call_summary): ... this one.
7927 (estimate_function_body_sizes): Update.
7928 (inline_update_callee_summaries): Update.
7929 (remap_edge_change_prob): Update.
7930 (remap_edge_summaries): Update.
7931 (inline_merge_summary): Update.
7932 (do_estimate_edge_time): Update.
7933 (inline_generate_summary): Update.
7934 (inline_read_section): Update.
7935 (inline_read_summary): Update.
7936 (inline_free_summary): Update.
7937 * ipa-inline.c (can_inline_edge_p): Update.
7938 (compute_inlined_call_time): Update.
7939 (want_inline_small_function_p): Update.
7940 (edge_badness): Update.
7941 (early_inliner): Update.
7942 * ipa-inline.h (inline_edge_summary): Turn to ...
7943 (ipa_call_summary): ... this one.
7944 (ipa_call_summary_t): New class.
7945 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
7946 (ipa_call_summaries): New.
7947 (inline_edge_summary): Remove.
7948 (estimate_edge_growth): Update.
7949 * ipa-profile.c (ipa_propagate_frequency_1): Update.
7950 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
7951 * ipa-split.c (execute_split_functions): Update.
7952 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
7953
7954 2017-05-19 Richard Biener <rguenther@suse.de>
7955
7956 PR middle-end/80764
7957 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
7958
7959 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
7960
7961 * config/rs6000/rs6000.c (struct machine_function): Add field
7962 fpr_is_wrapped_separately.
7963 (rs6000_get_separate_components): Use 64 components. Handle the
7964 new FPR components.
7965 (rs6000_components_for_bb): Handle the FPR components.
7966 (rs6000_emit_prologue_components): Handle the FPR components.
7967 (rs6000_emit_epilogue_components): Handle the FPR components.
7968 (rs6000_set_handled_components): Handle the FPR components.
7969 (rs6000_emit_prologue): Don't output prologue code for those FPRs
7970 that are already separately shrink-wrapped.
7971 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
7972 that are already separately shrink-wrapped.
7973
7974 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7975
7976 PR target/80510
7977 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
7978 New predicate.
7979
7980 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
7981 (define_peephole2 for Altivec d-form load): Add peepholes to catch
7982 cases where the register allocator uses a move and an offsettable
7983 memory operation to/from a FPR register on ISA 2.06/2.07.
7984 (define_peephole2 for Altivec d-form store): Likewise.
7985
7986 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
7987
7988 PR target/80799
7989 * config/i386/mmx.md (*mov<mode>_internal): Enable
7990 alternatives 11, 12, 13 and 14 also for 32bit targets.
7991 Remove alternatives 15, 16, 17 and 18.
7992 * config/i386/sse.md (vec_concatv2di): Change
7993 alternative (!x, *y) to (x, ?!*Yn).
7994
7995 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
7996
7997 * dumpfile.h (enum dump_kind): Remove stray comma.
7998
7999 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
8000
8001 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
8002 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
8003 predicate::num_conditions
8004 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
8005 (CHANGED): turn into predicate::changed.
8006 (agg_position_info): Move to ipa-predicate.h
8007 (add_condition, predicate::add_clause, predicate::operator &=,
8008 predicate::or_with, predicate::evaluate, predicate::probability,
8009 dump_condition, dump_clause, predicate::dump,
8010 predicate::remap_after_duplication, predicate::remap_after_inlining,
8011 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
8012 (evaluate_conditions_for_known_args): Update.
8013 (set_cond_stmt_execution_predicate): Update.
8014 * ipa-inline.h: Include ipa-predicate.h
8015 (condition, inline_param_summary, conditions, agg_position_info,
8016 predicate): Move to ipa-predicate.h
8017 * ipa-predicate.c: New file.
8018 * ipa-predicate.h: New file.
8019
8020 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
8021
8022 * final.c (leaf_function_p): Check we are not in a sequence.
8023
8024 2017-05-18 Martin Liska <mliska@suse.cz>
8025
8026 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
8027 * dumpfile.c (dump_register): Use new enum dump_kind.
8028 (get_dump_file_name): Likewise.
8029 (dump_enable_all): Likewise.
8030 (dump_switch_p_1): Likewise.
8031 (enable_rtl_dump_file): Remove usage of TDF_RTL.
8032 * dumpfile.h (enum dump_kind): New enum type.
8033 (struct dump_file_info): Create constructor and
8034 format fields and comments.
8035 * passes.c (pass_manager::register_one_dump_file):
8036 Use num dump_kind.
8037 * statistics.c (statistics_early_init): Likewise.
8038 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
8039 TDF_TREE with TDF_SLIM.
8040 (gather_memory_references_ref): Likewise.
8041
8042 2017-05-18 Martin Liska <mliska@suse.cz>
8043
8044 * vec.h (struct vnull): Use it.
8045
8046 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
8047
8048 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
8049 (true_predicate, false_predicate, true_predicate_p,
8050 false_predicate_p): Remove.
8051 (single_cond_predicate, not_inlined_predicate): Turn to member function
8052 in ipa-inline.h
8053 (add_condition): Update.
8054 (add_clause): Turn to...
8055 (predicate::add_clause): ... this one; update; allow passing NULL
8056 as parameter.
8057 (and_predicates): Turn to ...
8058 (predicate::operator &=): ... this one.
8059 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
8060 (or_predicates): Turn to ...
8061 (predicate::or_with): ... this one.
8062 (evaluate_predicate): Turn to ...
8063 (predicate::evaluate): ... this one.
8064 (predicate_probability): Turn to ...
8065 (predicate::probability): ... this one.
8066 (dump_condition): Update.
8067 (dump_predicate): Turn to ...
8068 (predicate::dump): ... this one.
8069 (account_size_time): Update.
8070 (edge_set_predicate): Update.
8071 (set_hint_predicate): UPdate.
8072 (evaluate_conditions_for_known_args): Update.
8073 (evaluate_properties_for_edge): Update.
8074 (remap_predicate_after_duplication): Turn to...
8075 (predicate::remap_after_duplication): ... this one.
8076 (remap_hint_predicate_after_duplication): Update.
8077 (inline_summary_t::duplicate): UPdate.
8078 (dump_inline_edge_summary): Update.
8079 (dump_inline_summary): Update.
8080 (set_cond_stmt_execution_predicate): Update.
8081 (set_switch_stmt_execution_predicate): Update.
8082 (compute_bb_predicates): Update.
8083 (will_be_nonconstant_expr_predicate): Update.
8084 (will_be_nonconstant_predicate): Update.
8085 (phi_result_unknown_predicate): Update.
8086 (predicate_for_phi_result): Update.
8087 (array_index_predicate): Update.
8088 (estimate_function_body_sizes): Update.
8089 (estimate_node_size_and_time): Update.
8090 (estimate_ipcp_clone_size_and_time): Update.
8091 (remap_predicate): Rename to ...
8092 (predicate::remap_after_inlining): ... this one.
8093 (remap_hint_predicate): Update.
8094 (inline_merge_summary): Update.
8095 (inline_update_overall_summary): Update.
8096 (estimate_size_after_inlining): Update.
8097 (read_predicate): Rename to ...
8098 (predicate::stream_in): ... this one.
8099 (read_inline_edge_summary): Update.
8100 (write_predicate): Rename to ...
8101 (predicate::stream_out): ... this one.
8102 (write_inline_edge_summary): Update.
8103 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
8104 (clause_t): Turn to uint32_t
8105 (predicate): Turn to class; implement constructor and operators
8106 ==, !=, &
8107 (size_time_entry): Update.
8108 (inline_summary): Update.
8109 (inline_edge_summary): Update.
8110
8111 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
8112
8113 * fold-const.c (fold_binary_loc): Move transformation...
8114 * match.pd (C - X CMP X): ... here.
8115
8116 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
8117
8118 * config/sparc/sparc.c (sparc_option_override): Set function
8119 alignment for -mcpu=niagara7 to 64 to match the I$ line.
8120 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
8121 latency to 1.
8122 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
8123 latency to 2.
8124 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
8125
8126 2017-05-18 Marek Polacek <polacek@redhat.com>
8127
8128 PR sanitizer/80797
8129 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
8130 (pass_ubsan::execute): Call gimple_assign_single_p instead of
8131 gimple_assign_load_p.
8132
8133 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
8134
8135 PR middle-end/80692
8136 * real.c (do_compare): Give decimal_do_compare preference over
8137 comparing just the signs.
8138
8139 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
8140
8141 * doc/md.texi (Canonicalization of Instructions): Describe the
8142 canonical form of instructions that inherently set a condition
8143 code register.
8144
8145 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
8146
8147 PR middle-end/80775
8148 * tree-cfg.c: Move deletion of unreachable case statements to after
8149 the merging of consecutive case labels.
8150
8151 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
8152
8153 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
8154 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
8155 restoring of callee-saved registers.
8156
8157 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
8158
8159 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
8160 * config/visium/visium.c (single_set_and_flags): Likewise.
8161 * config/visium/visium.md (Substitutions): Likewise.
8162
8163 2017-05-17 Martin Liska <mliska@suse.cz>
8164
8165 * cfg.c: Introduce dump_flags_t type and
8166 use it instead of int type.
8167 * cfg.h: Likewise.
8168 * cfghooks.c: Likewise.
8169 * cfghooks.h (struct cfg_hooks): Likewise.
8170 * cfgrtl.c: Likewise.
8171 * cfgrtl.h: Likewise.
8172 * cgraph.c (cgraph_node::get_body): Likewise.
8173 * coretypes.h: Likewise.
8174 * domwalk.c: Likewise.
8175 * domwalk.h: Likewise.
8176 * dumpfile.c (struct dump_option_value_info): Likewise.
8177 (dump_enable_all): Likewise.
8178 (dump_switch_p_1): Likewise.
8179 (opt_info_switch_p): Likewise.
8180 * dumpfile.h (enum tree_dump_index): Likewise.
8181 (struct dump_file_info): Likewise.
8182 * genemit.c: Likewise.
8183 * generic-match-head.c: Likewise.
8184 * gengtype.c (open_base_files): Likewise.
8185 * gimple-pretty-print.c: Likewise.
8186 * gimple-pretty-print.h: Likewise.
8187 * graph.c (print_graph_cfg): Likewise.
8188 * graphite-scop-detection.c (dot_all_sese): Likewise.
8189 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
8190 * loop-unroll.c (report_unroll): Likewise.
8191 * passes.c (pass_manager::register_one_dump_file): Likewise.
8192 * print-tree.c: Likewise.
8193 * statistics.c: Likewise.
8194 * tree-cfg.c: Likewise.
8195 * tree-cfg.h: Likewise.
8196 * tree-dfa.c: Likewise.
8197 * tree-dfa.h: Likewise.
8198 * tree-dump.c (dump_function): Likewise.
8199 * tree-dump.h (struct dump_info): Likewise.
8200 * tree-pretty-print.c: Likewise.
8201 * tree-pretty-print.h: Likewise.
8202 * tree-ssa-live.c: Likewise.
8203 * tree-ssa-live.h: Likewise.
8204 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
8205 * tree-vect-loop.c: Likewise.
8206 * tree-vect-slp.c: Likewise.
8207
8208 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
8209 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8210
8211 PR tree-optimization/80457
8212 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
8213 of all arguments to a statement as scalar_to_vec operations.
8214 (vectorizable_call): Adjust call to vect_model_simple_cost for
8215 new parameter.
8216 (vectorizable_conversion): Likewise.
8217 (vectorizable_assignment): Likewise.
8218 (vectorizable_shift): Likewise.
8219 (vectorizable_operation): Likewise.
8220 (vectorizable_comparison): Likewise.
8221 (vect_is_simple_cond): Record the def types for operands.
8222 (vectorizable_condition): Likewise, call vect_model_simple_cost.
8223 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
8224 for statement argument count.
8225
8226 2017-05-16 Carl Love <cel@us.ibm.com>
8227
8228 * config/rs6000/rs6000-c: Add support for built-in functions
8229 vector unsigned long long vec_bperm (vector unsigned long long,
8230 vector unsigned char)
8231 vector signed long long vec_mule (vector signed int,
8232 vector signed int)
8233 vector unsigned long long vec_mule (vector unsigned int,
8234 vector unsigned int)
8235 vector signed long long vec_mulo (vector signed int,
8236 vector signed int)
8237 vector unsigned long long vec_mulo (vector unsigned int,
8238 vector unsigned int)
8239 vector signed char vec_sldw (vector signed char,
8240 vector signed char,
8241 const int)
8242 vector unsigned char vec_sldw (vector unsigned char,
8243 vector unsigned char,
8244 const int)
8245 vector signed short vec_sldw (vector signed short,
8246 vector signed short,
8247 const int)
8248 vector unsigned short vec_sldw (vector unsigned short,
8249 vector unsigned short,
8250 const int)
8251 vector signed int vec_sldw (vector signed int,
8252 vector signed int,
8253 const int)
8254 vector unsigned int vec_sldw (vector unsigned int,
8255 vector unsigned int,
8256 const int)
8257 vector signed long long vec_sldw (vector signed long long,
8258 vector signed long long,
8259 const int)
8260 vector unsigned long long vec_sldw (vector unsigned long long,
8261 vector unsigned long long,
8262 const int)
8263 * config/rs6000/rs6000-c: Add support for built-in functions
8264 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
8265 * config/rs6000/altivec.h: Add defintion for vec_sldw.
8266 * doc/extend.texi: Update the built-in documentation for the
8267 new built-in functions.
8268
8269 2017-05-16 Marek Polacek <polacek@redhat.com>
8270
8271 PR sanitizer/80536
8272 PR sanitizer/80386
8273 * tree.c (save_expr): Don't fold the expression.
8274
8275 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
8276
8277 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
8278 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
8279 and (?*y,m). Update insn attributes.
8280
8281 2017-05-16 Martin Liska <mliska@suse.cz>
8282
8283 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
8284 flags argument of print_gimple_stmt, print_gimple_expr,
8285 print_generic_stmt and print_generic_expr.
8286 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
8287 * coretypes.h: Likewise.
8288 * except.c (dump_eh_tree): Likewise.
8289 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
8290 * gimple-pretty-print.h: Likewise.
8291 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
8292 (backprop::push_to_worklist): Likewise.
8293 (backprop::pop_from_worklist): Likewise.
8294 (backprop::process_use): Likewise.
8295 (backprop::intersect_uses): Likewise.
8296 (note_replacement): Likewise.
8297 * gimple-ssa-store-merging.c
8298 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
8299 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
8300 (pass_store_merging::execute): Likewise.
8301 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
8302 (ssa_base_cand_dump_callback): Likewise.
8303 (dump_incr_vec): Likewise.
8304 (replace_refs): Likewise.
8305 (replace_mult_candidate): Likewise.
8306 (create_add_on_incoming_edge): Likewise.
8307 (create_phi_basis): Likewise.
8308 (insert_initializers): Likewise.
8309 (all_phi_incrs_profitable): Likewise.
8310 (introduce_cast_before_cand): Likewise.
8311 (replace_one_candidate): Likewise.
8312 * gimplify.c (gimplify_expr): Likewise.
8313 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
8314 (set_rename): Likewise.
8315 (rename_uses): Likewise.
8316 (copy_loop_phi_nodes): Likewise.
8317 (add_close_phis_to_merge_points): Likewise.
8318 (copy_loop_close_phi_args): Likewise.
8319 (copy_cond_phi_args): Likewise.
8320 (graphite_copy_stmts_from_block): Likewise.
8321 (translate_pending_phi_nodes): Likewise.
8322 * graphite-poly.c (print_pdr): Likewise.
8323 (dump_gbb_cases): Likewise.
8324 (dump_gbb_conditions): Likewise.
8325 (print_scop_params): Likewise.
8326 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
8327 (build_cross_bb_scalars_use): Likewise.
8328 (gather_bbs::before_dom_children): Likewise.
8329 * hsa-dump.c (dump_hsa_immed): Likewise.
8330 * ipa-cp.c (print_ipcp_constant_value): Likewise.
8331 (get_replacement_map): Likewise.
8332 * ipa-inline-analysis.c (dump_condition): Likewise.
8333 (estimate_function_body_sizes): Likewise.
8334 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
8335 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
8336 * ipa-prop.c (ipa_dump_param): Likewise.
8337 (ipa_print_node_jump_functions_for_edge): Likewise.
8338 (ipa_modify_call_arguments): Likewise.
8339 (ipa_modify_expr): Likewise.
8340 (ipa_dump_param_adjustments): Likewise.
8341 (ipa_dump_agg_replacement_values): Likewise.
8342 (ipcp_modif_dom_walker::before_dom_children): Likewise.
8343 * ipa-pure-const.c (check_stmt): Likewise.
8344 (pass_nothrow::execute): Likewise.
8345 * ipa-split.c (execute_split_functions): Likewise.
8346 * omp-offload.c (dump_oacc_loop_part): Likewise.
8347 (dump_oacc_loop): Likewise.
8348 * trans-mem.c (tm_log_emit): Likewise.
8349 (tm_memopt_accumulate_memops): Likewise.
8350 (dump_tm_memopt_set): Likewise.
8351 (dump_tm_memopt_transform): Likewise.
8352 * tree-cfg.c (gimple_verify_flow_info): Likewise.
8353 (print_loop): Likewise.
8354 * tree-chkp-opt.c (chkp_print_addr): Likewise.
8355 (chkp_gather_checks_info): Likewise.
8356 (chkp_get_check_result): Likewise.
8357 (chkp_remove_check_if_pass): Likewise.
8358 (chkp_use_outer_bounds_if_possible): Likewise.
8359 (chkp_reduce_bounds_lifetime): Likewise.
8360 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
8361 (chkp_mark_completed_bounds): Likewise.
8362 (chkp_register_incomplete_bounds): Likewise.
8363 (chkp_mark_invalid_bounds): Likewise.
8364 (chkp_maybe_copy_and_register_bounds): Likewise.
8365 (chkp_build_returned_bound): Likewise.
8366 (chkp_get_bound_for_parm): Likewise.
8367 (chkp_build_bndldx): Likewise.
8368 (chkp_get_bounds_by_definition): Likewise.
8369 (chkp_generate_extern_var_bounds): Likewise.
8370 (chkp_get_bounds_for_decl_addr): Likewise.
8371 * tree-chrec.c (chrec_apply): Likewise.
8372 * tree-data-ref.c (dump_data_reference): Likewise.
8373 (dump_subscript): Likewise.
8374 (dump_data_dependence_relation): Likewise.
8375 (analyze_overlapping_iterations): Likewise.
8376 * tree-inline.c (expand_call_inline): Likewise.
8377 (tree_function_versioning): Likewise.
8378 * tree-into-ssa.c (dump_defs_stack): Likewise.
8379 (dump_currdefs): Likewise.
8380 (dump_names_replaced_by): Likewise.
8381 (dump_update_ssa): Likewise.
8382 (update_ssa): Likewise.
8383 * tree-object-size.c (pass_object_sizes::execute): Likewise.
8384 * tree-parloops.c (build_new_reduction): Likewise.
8385 (try_create_reduction_list): Likewise.
8386 (ref_conflicts_with_region): Likewise.
8387 (oacc_entry_exit_ok_1): Likewise.
8388 (oacc_entry_exit_single_gang): Likewise.
8389 * tree-pretty-print.h: Likewise.
8390 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
8391 (get_scalar_evolution): Likewise.
8392 (add_to_evolution): Likewise.
8393 (get_loop_exit_condition): Likewise.
8394 (analyze_evolution_in_loop): Likewise.
8395 (analyze_initial_condition): Likewise.
8396 (analyze_scalar_evolution): Likewise.
8397 (instantiate_scev): Likewise.
8398 (number_of_latch_executions): Likewise.
8399 (gather_chrec_stats): Likewise.
8400 (final_value_replacement_loop): Likewise.
8401 (scev_const_prop): Likewise.
8402 * tree-sra.c (dump_access): Likewise.
8403 (disqualify_candidate): Likewise.
8404 (create_access): Likewise.
8405 (reject): Likewise.
8406 (maybe_add_sra_candidate): Likewise.
8407 (create_access_replacement): Likewise.
8408 (analyze_access_subtree): Likewise.
8409 (analyze_all_variable_accesses): Likewise.
8410 (sra_modify_assign): Likewise.
8411 (initialize_constant_pool_replacements): Likewise.
8412 (find_param_candidates): Likewise.
8413 (decide_one_param_reduction): Likewise.
8414 (replace_removed_params_ssa_names): Likewise.
8415 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
8416 * tree-ssa-copy.c (dump_copy_of): Likewise.
8417 (copy_prop_visit_cond_stmt): Likewise.
8418 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
8419 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
8420 (record_equivalences_from_stmt): Likewise.
8421 * tree-ssa-dse.c (compute_trims): Likewise.
8422 (delete_dead_call): Likewise.
8423 (delete_dead_assignment): Likewise.
8424 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
8425 (forward_propagate_into_cond): Likewise.
8426 (pass_forwprop::execute): Likewise.
8427 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
8428 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
8429 Likewise.
8430 (move_computations_worker): Likewise.
8431 (execute_sm): Likewise.
8432 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
8433 (remove_exits_and_undefined_stmts): Likewise.
8434 (remove_redundant_iv_tests): Likewise.
8435 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
8436 (adjust_iv_update_pos): Likewise.
8437 * tree-ssa-math-opts.c (bswap_replace): Likewise.
8438 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
8439 (value_replacement): Likewise.
8440 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
8441 * tree-ssa-pre.c (print_pre_expr): Likewise.
8442 (get_representative_for): Likewise.
8443 (create_expression_by_pieces): Likewise.
8444 (insert_into_preds_of_block): Likewise.
8445 (eliminate_insert): Likewise.
8446 (eliminate_dom_walker::before_dom_children): Likewise.
8447 (eliminate): Likewise.
8448 (remove_dead_inserted_code): Likewise.
8449 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
8450 * tree-ssa-reassoc.c (get_rank): Likewise.
8451 (eliminate_duplicate_pair): Likewise.
8452 (eliminate_plus_minus_pair): Likewise.
8453 (eliminate_not_pairs): Likewise.
8454 (undistribute_ops_list): Likewise.
8455 (eliminate_redundant_comparison): Likewise.
8456 (update_range_test): Likewise.
8457 (optimize_range_tests_var_bound): Likewise.
8458 (optimize_vec_cond_expr): Likewise.
8459 (rewrite_expr_tree): Likewise.
8460 (rewrite_expr_tree_parallel): Likewise.
8461 (linearize_expr): Likewise.
8462 (break_up_subtract): Likewise.
8463 (linearize_expr_tree): Likewise.
8464 (attempt_builtin_powi): Likewise.
8465 (attempt_builtin_copysign): Likewise.
8466 (transform_stmt_to_copy): Likewise.
8467 (transform_stmt_to_multiply): Likewise.
8468 (dump_ops_vector): Likewise.
8469 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
8470 (print_scc): Likewise.
8471 (set_ssa_val_to): Likewise.
8472 (visit_reference_op_store): Likewise.
8473 (visit_use): Likewise.
8474 (sccvn_dom_walker::before_dom_children): Likewise.
8475 (run_scc_vn): Likewise.
8476 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
8477 Likewise.
8478 (expr_hash_elt::print): Likewise.
8479 (const_and_copies::pop_to_marker): Likewise.
8480 (const_and_copies::record_const_or_copy_raw): Likewise.
8481 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
8482 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
8483 (dump_predicates): Likewise.
8484 (find_uninit_use): Likewise.
8485 (warn_uninitialized_phi): Likewise.
8486 (pass_late_warn_uninitialized::execute): Likewise.
8487 * tree-ssa.c (verify_vssa): Likewise.
8488 (verify_ssa): Likewise.
8489 (maybe_optimize_var): Likewise.
8490 * tree-vrp.c (dump_value_range): Likewise.
8491 (dump_all_value_ranges): Likewise.
8492 (dump_asserts_for): Likewise.
8493 (register_edge_assert_for_2): Likewise.
8494 (vrp_visit_cond_stmt): Likewise.
8495 (vrp_visit_switch_stmt): Likewise.
8496 (vrp_visit_stmt): Likewise.
8497 (vrp_visit_phi_node): Likewise.
8498 (simplify_cond_using_ranges_1): Likewise.
8499 (fold_predicate_in): Likewise.
8500 (evrp_dom_walker::before_dom_children): Likewise.
8501 (evrp_dom_walker::push_value_range): Likewise.
8502 (evrp_dom_walker::pop_value_range): Likewise.
8503 (execute_early_vrp): Likewise.
8504
8505 2017-05-16 Richard Biener <rguenther@suse.de>
8506
8507 * dwarf2out.c (loc_list_from_tree_1): Do not create
8508 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
8509
8510 2017-05-16 Richard Biener <rguenther@suse.de>
8511
8512 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
8513 just generated.
8514 (note_variable_value_in_expr): If we resolved the decl ref
8515 do not push to the stack.
8516
8517 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
8518
8519 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
8520 operations in fast-math mode.
8521 (vaddq_f16): Likewise.
8522 (vmul_f16): Likewise.
8523 (vmulq_f16): Likewise.
8524 (vsub_f16): Likewise.
8525 (vsubq_f16): Likewise.
8526 * config/arm/neon.md (add<mode>3): New.
8527 (sub<mode>3): New.
8528 (fma:<VH:mode>3): New. Also remove outdated comment.
8529 (mul<mode>3): New.
8530
8531 2017-05-16 Martin Liska <mliska@suse.cz>
8532
8533 PR ipa/79849.
8534 PR ipa/79850.
8535 * ipa-devirt.c (warn_types_mismatch): Fix typo.
8536 (odr_types_equivalent_p): Likewise.
8537
8538 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
8539
8540 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
8541
8542 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
8543
8544 PR target/80425
8545 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
8546 non-interunit SSE move alternatives with '?'.
8547 (zero-extendsidi peephole2): New peephole to skip intermediate
8548 general register in SSE zero-extend sequence.
8549
8550 2017-05-15 Jeff Law <law@redhat.com>
8551
8552 * reorg.c (relax_delay_slots): Create a new variable to hold
8553 the temporary target rather than clobbering TARGET_LABEL.
8554
8555 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
8556 missing argument to extract_bit_field call.
8557 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
8558
8559 2017-05-15 Martin Liska <mliska@suse.cz>
8560
8561 PR driver/31468
8562 * gcc.c (process_command): Do not allow empty argument of -o option.
8563
8564 2017-05-15 Renlin Li <renlin.li@arm.com>
8565
8566 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
8567 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
8568 * config/aarch64/constraints.md (Usf): Add long call check.
8569 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
8570 (call_value): Likewise.
8571 (sibcall): Likewise.
8572 (sibcall_value): Likewise.
8573 (call_insn): New.
8574 (call_value_insn): New.
8575 (sibcall_insn): Update rtx pattern.
8576 (sibcall_value_insn): Likewise.
8577 (call_internal): Remove.
8578 (call_value_internal): Likewise.
8579 (sibcall_internal): Likewise.
8580 (sibcall_value_internal): Likewise.
8581 (call_reg): Likewise.
8582 (call_symbol): Likewise.
8583 (call_value_reg): Likewise.
8584 (call_value_symbol): Likewise.
8585
8586 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
8587
8588 PR target/80600
8589 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
8590
8591 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
8592
8593 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
8594 compatible with CCGOCmode and with CCZmode.
8595
8596 2017-05-14 Martin Sebor <msebor@redhat.com>
8597
8598 PR middle-end/77671
8599 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
8600 (gimple_fold_builtin_snprintf): Same.
8601 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
8602 (gimple_fold_builtin_snprintf): Same.
8603 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
8604 of character types.
8605 (is_call_safe): New function.
8606 (try_substitute_return_value): Call it.
8607 (try_simplify_call): New function.
8608 (pass_sprintf_length::handle_gimple_call): Call it.
8609
8610 2017-05-14 Martin Sebor <msebor@redhat.com>
8611
8612 PR middle-end/80669
8613 * builtins.c (expand_builtin_stpncpy): Simplify.
8614
8615 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
8616
8617 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
8618 * config/i386/i386.h
8619 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
8620 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
8621 (struct machine_function): Add new members call_ms2sysv,
8622 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
8623 (struct machine_frame_state): New fields sp_realigned and
8624 sp_realigned_offset.
8625 * config/i386/i386.c
8626 (enum xlogue_stub): New enum.
8627 (enum xlogue_stub_sets): New enum.
8628 (class xlogue_layout): New class.
8629 (struct ix86_frame): New fields stack_realign_allocate_offset,
8630 stack_realign_offset and outlined_save_offset. Modify comments to
8631 detail stack layout when using out-of-line stubs.
8632 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
8633 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
8634 -mcall-ms2sysv-xlogues.
8635 (stub_managed_regs): New static variable.
8636 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
8637 registers managed by out-of-line stub.
8638 (disable_call_ms2sysv_xlogues): New function.
8639 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
8640 m->call_ms2sysv when appropriate and compute frame layout for
8641 out-of-line stubs.
8642 (sp_valid_at, fp_valid_at): New inline functions.
8643 (choose_basereg): New function.
8644 (choose_baseaddr): Add align parameter, use choose_basereg and modify
8645 all callers.
8646 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
8647 Use align parameter of choose_baseaddr to generated aligned SSE movs
8648 when possible.
8649 (pro_epilogue_adjust_stack): Modify to track
8650 machine_frame_state::sp_realigned.
8651 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
8652 (ix86_nsaved_sseregs): Likewise.
8653 (ix86_emit_save_regs): Likewise.
8654 (ix86_emit_save_regs_using_mov): Likewise.
8655 (ix86_emit_save_sse_regs_using_mov): Likewise.
8656 (get_scratch_register_on_entry): Likewise.
8657 (gen_frame_set): New function.
8658 (gen_frame_load): Likewise.
8659 (gen_frame_store): Likewise.
8660 (emit_outlined_ms2sysv_save): Likewise.
8661 (emit_outlined_ms2sysv_restore): Likewise.
8662 (ix86_expand_prologue): Modify stack re-alignment code and call
8663 emit_outlined_ms2sysv_save when appropriate.
8664 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
8665 parameter rtx_insn *insn, which allows the function to be used to only
8666 generate the notes.
8667 (ix86_expand_epilogue): Modify validity checks of frame and stack
8668 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
8669 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
8670 * config/i386/predicates.md
8671 (save_multiple): New predicate.
8672 (restore_multiple): Likewise.
8673 * config/i386/sse.md
8674 (save_multiple<mode>): New pattern.
8675 (save_multiple_realign<mode>): Likewise.
8676 (restore_multiple<mode>): Likewise.
8677 (restore_multiple_and_return<mode>): Likewise.
8678 (restore_multiple_leave_return<mode>): Likewise.
8679 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
8680
8681 2017-05-14 Julia Koval <julia.koval@intel.com>
8682
8683 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
8684 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
8685 (__builtin_ia32_xsetbv): New builtins.
8686 * config/i386/i386.c (ix86_expand_special_args_builtin):
8687 Process new types.
8688 (ix86_expand_builtin): Special expand for new intrinsics.
8689 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
8690 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
8691 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
8692
8693 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8694
8695 * cfganal.c (inverted_post_order_compute): Change argument type
8696 to vec *.
8697 * cfganal.h (inverted_post_order_compute): Adjust prototype.
8698 * df-core.c (rest_of_handle_df_initialize): Adjust.
8699 (rest_of_handle_df_finish): Likewise.
8700 (df_analyze_1): Likewise.
8701 (df_analyze): Likewise.
8702 (loop_inverted_post_order_compute): Change argument to be a vec *.
8703 (df_analyze_loop): Adjust.
8704 (df_get_n_blocks): Likewise.
8705 (df_get_postorder): Likewise.
8706 * df.h (struct df_d): Change field to be a vec.
8707 * lcm.c (compute_laterin): Adjust.
8708 (compute_available): Likewise.
8709 * lra-lives.c (lra_create_live_ranges_1): Likewise.
8710 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
8711 * tree-ssa-pre.c (compute_antic): Likewise.
8712
8713 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8714
8715 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
8716 (depth_first_search::depth_first_search): Change structure init
8717 function to this constructor.
8718 (depth_first_search::add_bb): Rename function to this member.
8719 (depth_first_search::execute): Likewise.
8720 (flow_dfs_compute_reverse_finish): Adjust.
8721
8722 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8723
8724 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
8725 (longest_simple_path): Likewise.
8726 * shrink-wrap.c (spread_components): Likewise.
8727 (disqualify_problematic_components): Likewise.
8728 (emit_common_heads_for_components): Likewise.
8729 (emit_common_tails_for_components): Likewise.
8730 (insert_prologue_epilogue_for_components): Likewise.
8731
8732 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8733
8734 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
8735 auto_sbitmap.
8736
8737 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8738
8739 * df-core.c (df_set_blocks): Start using auto_bitmap.
8740 (df_compact_blocks): Likewise.
8741 * df-problems.c (df_rd_confluence_n): Likewise.
8742 * df-scan.c (df_insn_rescan_all): Likewise.
8743 (df_process_deferred_rescans): Likewise.
8744 (df_update_entry_block_defs): Likewise.
8745 (df_update_exit_block_uses): Likewise.
8746 (df_entry_block_bitmap_verify): Likewise.
8747 (df_exit_block_bitmap_verify): Likewise.
8748 (df_scan_verify): Likewise.
8749 * lra-constraints.c (lra_constraints): Likewise.
8750 (undo_optional_reloads): Likewise.
8751 (lra_undo_inheritance): Likewise.
8752 * lra-remat.c (calculate_gen_cands): Likewise.
8753 (do_remat): Likewise.
8754 * lra-spills.c (assign_spill_hard_regs): Likewise.
8755 (spill_pseudos): Likewise.
8756 * tree-ssa-pre.c (bitmap_set_and): Likewise.
8757 (bitmap_set_subtract_values): Likewise.
8758
8759 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8760
8761 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
8762 management with auto_bitmap.
8763 (fix_inter_tick): Likewise.
8764 (fix_recovery_deps): Likewise.
8765 * ira.c (add_store_equivs): Likewise.
8766 (find_moveable_pseudos): Likewise.
8767 (split_live_ranges_for_shrink_wrap): Likewise.
8768 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
8769 (rtx_reuse_manager::seen_def_p): Likewise.
8770 (rtx_reuse_manager::set_seen_def): Likewise.
8771 * print-rtl.h (class rtx_reuse_manager): Likewise.
8772
8773 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8774
8775 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
8776 lifetime.
8777 (migrate_btr_def): Likewise.
8778 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
8779 * df-core.c (loop_post_order_compute): Likewise.
8780 (loop_inverted_post_order_compute): Likewise.
8781 * hsa-common.h: Likewise.
8782 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
8783 * init-regs.c (initialize_uninitialized_regs): Likewise.
8784 * ipa-inline.c (resolve_noninline_speculation): Likewise.
8785 (inline_small_functions): Likewise.
8786 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
8787 * ira.c (combine_and_move_insns): Likewise.
8788 (build_insn_chain): Likewise.
8789 * loop-invariant.c (find_invariants): Likewise.
8790 * lower-subreg.c (propagate_pseudo_copies): Likewise.
8791 * predict.c (tree_predict_by_opcode): Likewise.
8792 (predict_paths_leading_to): Likewise.
8793 (predict_paths_leading_to_edge): Likewise.
8794 (estimate_loops_at_level): Likewise.
8795 (estimate_loops): Likewise.
8796 * shrink-wrap.c (try_shrink_wrapping): Likewise.
8797 (spread_components): Likewise.
8798 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
8799 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
8800 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
8801 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
8802 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
8803 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
8804 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
8805 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
8806 (mark_threaded_blocks): Likewise.
8807 (thread_through_all_blocks): Likewise.
8808 * tree-ssa.c (verify_ssa): Likewise.
8809 (execute_update_addresses_taken): Likewise.
8810 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
8811
8812 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8813
8814 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
8815 auto_vec.
8816 (post_order_compute): Likewise.
8817 (inverted_post_order_compute): Likewise.
8818 (pre_and_rev_post_order_compute_fn): Likewise.
8819
8820 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8821
8822 * genrecog.c (int_set::int_set): Explicitly construct our
8823 auto_vec base class.
8824 * vec.h (auto_vec::auto_vec): New constructor.
8825
8826 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8827
8828 * bitmap.h (class auto_bitmap): New constructor taking
8829 bitmap_obstack * argument.
8830
8831 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8832
8833 * bitmap.h (class auto_bitmap): Change type of m_bits to
8834 bitmap_head, and adjust ctor / dtor and member operators.
8835
8836 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
8837
8838 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
8839 when returned register mode doesn't match original mode.
8840
8841 2017-05-12 Jeff Law <law@redhat.com>
8842 Jakub Jelinek <jakub@redhat.com>
8843
8844 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
8845 we look for cc setter after the compare-elim changes.
8846 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
8847 within the vector to match what compare-elim now expects.
8848 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
8849 (xorsi3_flags, one_cmplsi2_flags): Likewise.
8850
8851 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
8852 after the compare-elim changes.
8853 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
8854 the vector to match what compare-elim now expects.
8855 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
8856 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
8857 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
8858 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
8859 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
8860
8861 * config/visium/visium.c (single_set_and_flags): Fix where
8862 we look for cc setter after the compare-elim changes.
8863 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
8864 with the vector to match what compare-elim now expects.
8865 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
8866 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
8867 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
8868 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
8869 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
8870 (neg<mode>2_insn_set_overflow): Likewise.
8871
8872 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
8873
8874 PR middle-end/79794
8875 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
8876 maybe_expand_insn call, set ops[0].target. If still set after call,
8877 set alt_rtl. Add extra arg to recursive calls.
8878 (extract_bit_field): Add alt_rtl argument. Pass to
8879 extract_bit_field.
8880 * expmed.h (extract_bit_field): Fix prototype.
8881 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
8882 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
8883 to extract_bit_field_calls.
8884 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
8885 Pass alt_rtl to extract_bit_field calls.
8886 * calls.c (store_unaligned_arguments_into_psuedos)
8887 load_register_parameters): Pass extra NULL to extract_bit_field calls.
8888 * optabs.c (maybe_legitimize_operand): Clear op->target when call
8889 gen_reg_rtx.
8890 * optabs.h (struct expand_operand): Add target bitfield.
8891
8892 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
8893
8894 * compare-elim.c (try_eliminate_compare): Canonicalize
8895 operation with embedded compare to
8896 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
8897 (set (reg) (operation)].
8898
8899 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
8900
8901 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
8902
8903 PR target/80723
8904 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
8905 cost of adding a carry flag for ADC instruction.
8906 [case MINUS]: Ignore the cost of subtracting a carry flag
8907 for SBB instruction.
8908
8909 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
8910
8911 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
8912 and x86intrin.h
8913 * config/rs6000/bmiintrin.h: New file.
8914 * config/rs6000/bmi2intrin.h: New file.
8915 * config/rs6000/x86intrin.h: New file.
8916
8917 2017-05-12 Jeff Law <law@redhat.com>
8918
8919 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
8920 markers.
8921
8922 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
8923
8924 PR middle-end/80707
8925 * tree-cfg.c: Remove cfg edges of unreachable case statements.
8926
8927 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
8928
8929 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
8930 early expansion of vector divide builtins.
8931 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
8932 builtins identified as having unsigned arguments.
8933
8934 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
8935
8936 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
8937 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
8938 expansion of vector logical operations (and, andc, or, xor,
8939 nor, orc, nand).
8940
8941 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
8942
8943 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
8944 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
8945
8946 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
8947
8948 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
8949 early GIMPLE expansion of vector multiplies.
8950
8951 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
8952
8953 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
8954 TARGET_HAVE_MOVT conditional.
8955 (movt splitter): Likewise.
8956
8957 2017-05-12 Richard Biener <rguenther@suse.de>
8958
8959 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
8960 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
8961 Fold all stmts not inplace.
8962
8963 2017-05-12 Richard Biener <rguenther@suse.de>
8964
8965 PR tree-optimization/80713
8966 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
8967 inserted_exprs bit for not removed stmts.
8968
8969 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
8970
8971 PR middle-end/69921
8972 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
8973 parallelized" attribute for parallelized OpenACC kernels.
8974 * omp-offload.c (execute_oacc_device_lower): Use it.
8975
8976 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
8977 Set "oacc kernels" attribute.
8978 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
8979 parameter. Adjust all users.
8980 (oacc_fn_attrib_kernels_p): Remove function.
8981 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
8982 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
8983 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
8984 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
8985 assert "oacc kernels" attribute is set.
8986
8987 2017-05-11 Carl Love <cel@us.ibm.com>
8988
8989 * config/rs6000/rs6000-c: Add support for built-in functions
8990 vector unsigned char vec_popcnt (vector signed char)
8991 vector unsigned char vec_popcnt (vector unsigned char)
8992 vector unsigned short vec_popcnt (vector signed short)
8993 vector unsigned short vec_popcnt (vector unsigned short)
8994 vector unsigned int vec_popcnt (vector signed int)
8995 vector unsigned int vec_popcnt (vector unsigned int)
8996 vector unsigned long long vec_popcnt (vector signed long long)
8997 vector unsigned long long vec_popcnt (vector unsigned long long)
8998 vector signed long long vec_slo (vector signed long long,
8999 vector signed char)
9000 vector signed long long vec_slo (vector signed long long,
9001 vector unsigned char)
9002 vector unsigned long long vec_slo (vector unsigned long long,
9003 vector signed char)
9004 vector unsigned long long vec_slo (vector unsigned long long,
9005 vector unsigned char)
9006 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
9007 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
9008 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
9009 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
9010 * doc/extend.texi: Update the built-in documentation file for the
9011 new built-in functions.
9012
9013 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
9014
9015 * attribs.h (sorted_attr_string): Move machine independent
9016 functions for target clone support from the i386 port to common
9017 code. Rename ix86_function_versions to common_function_versions.
9018 Rename make_name to make_unique_name.
9019 (common_function_versions): Likewise.
9020 (make_unique_name): Likewise.
9021 (make_dispatcher_decl): Likewise.
9022 (is_function_default_version): Likewise.
9023 * attribs.c (attr_strcmp): Likewise.
9024 (sorted_attr_string): Likewise.
9025 (common_function_versions): Likewise.
9026 (make_unique_name): Likewise.
9027 (make_dispatcher_decl): Likewise.
9028 (is_function_default_version): Likewise.
9029 * config/i386/i386.c (attr_strcmp): Likewise.
9030 (sorted_attr_string): Likewise.
9031 (ix86_function_versions): Likewise.
9032 (make_name): Likewise.
9033 (make_dispatcher_decl): Likewise.
9034 (is_function_default_version): Likewise.
9035 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
9036
9037 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9038
9039 PR target/80695
9040 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
9041 Account for direct move costs for vec_construct of integer
9042 vectors.
9043
9044 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
9045
9046 PR target/80706
9047 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
9048 (UNSPEC_STX_ATOMIC): Ditto.
9049 (loaddi_via_sse): New insn.
9050 (storedi_via_sse): Ditto.
9051 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
9052 Update corresponding peephole2 patterns.
9053 (atomic_storedi_fpu): Ditto.
9054
9055 2017-05-11 Julia Koval <julia.koval@intel.com>
9056
9057 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
9058 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
9059 New intrinsics.
9060 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
9061 (__builtin_ia32_rsqrt14ss_mask): New builtins.
9062 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
9063
9064 2017-05-11 Nathan Sidwell <nathan@acm.org>
9065
9066 * graphite-poly.c: Include dumpfile.h.
9067
9068 * dumpfle.h (dump_function): Declare here ...
9069 * tree-dump.h (dump_function): ... not here.
9070 * dumpfile.c: #include tree-cfg.h.
9071 (dump_function): Move here from ...
9072 * tree-dump.c (dump_function): ... here.
9073 * gimplify.c: #include splay-tree.h, not tree-dump.h.
9074 * graphite-poly.c: Don't include tree-dump.h.
9075 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
9076 * print-tree.c: Likewise.
9077 * stor-layout.c: Likewise.
9078 * tree-nested.c: Likewise.
9079
9080 * dumpfile.c (dump_start): Use TDF_FLAGS.
9081 (dump_enable_all): Fix TDF_KIND check thinko.
9082
9083 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
9084
9085 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9086 array entries to represent two legal parameterizations of the
9087 overloaded __builtin_cmpb function, as represented by the
9088 P6_OV_BUILTIN_CMPB constant.
9089 (altivec_resolve_overloaded_builtin): Add special case handling
9090 for the __builtin_cmpb function, as represented by the
9091 P6_OV_BUILTIN_CMPB constant.
9092 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
9093 (BU_P6_64BIT_2): New macro.
9094 (BU_P6_OVERLOAD_2): New macro
9095 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
9096 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
9097 (CMPB): Add overload support to represent both 32-bit and 64-bit
9098 compare-bytes function.
9099 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
9100 support for TARGET_CMPB.
9101 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
9102 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
9103 documentation of the __builtin_cmpb overloaded built-in function.
9104
9105 2017-05-11 Richard Biener <rguenther@suse.de>
9106
9107 PR tree-optimization/80705
9108 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
9109 bases are not vectorizable.
9110
9111 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9112
9113 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
9114 when counting register pressure.
9115
9116 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9117
9118 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
9119 (iv_ca_more_deps): Renamed to ...
9120 (iv_ca_compare_deps): ... this.
9121 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
9122
9123 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9124
9125 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
9126 to ...
9127 (determine_group_iv_costs): ... here.
9128 (find_inv_vars_cb): Record inv var if it's not recorded before.
9129
9130 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9131
9132 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
9133 (get_shiftadd_cost): Ditto.
9134
9135 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9136
9137 * tree-ssa-address.c: Include header file.
9138 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
9139 address.
9140 (add_to_parts): Refactor.
9141 (addr_to_parts): New parameter. Update use of move_hint_to_base.
9142 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
9143 in new order.
9144
9145 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9146
9147 PR tree-optimization/53090
9148 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
9149 COMP_IV_EXPR_2.
9150 (extract_cond_operands): Detect condition with IV on both sides
9151 and return COMP_IV_EXPR_2.
9152 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
9153 (rewrite_use_compare): Simplify by removing call to function
9154 extract_cond_operands.
9155
9156 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9157
9158 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
9159 (extract_cond_operands): Detect condition comparing against non-
9160 invariant bound and return appropriate enum value.
9161 (find_interesting_uses_cond): Update use of extract_cond_operands.
9162 Handle its return value accordingly.
9163 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
9164
9165 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9166
9167 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
9168 nonlinear iv_use computation in loop invariant sensitive way.
9169
9170 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9171
9172 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
9173 (find_iv_candidates): Call relate_compare_use_with_all_cands.
9174
9175 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9176
9177 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
9178 (dump_cand): Support iv_cand.inv_exprs.
9179 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
9180 for candidates.
9181 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
9182 iv_cand.inv_exprs.
9183
9184 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9185
9186 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
9187 from ...
9188 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
9189 as local function. Include necessary header files.
9190 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
9191
9192 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9193
9194 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
9195
9196 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9197
9198 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
9199 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
9200 RSHIFT_EXPR and BIT_NOT_EXPR.
9201
9202 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9203
9204 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
9205 (adjust_setup_cost): New parameter supporting round up adjustment.
9206 (struct address_cost_data): Delete.
9207 (force_expr_to_var_cost): Don't bound cost with spill_cost.
9208 (split_address_cost, ptr_difference_cost): Delete.
9209 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
9210 (struct ainc_cost_data): New struct.
9211 (get_address_cost_ainc): New function.
9212 (get_address_cost, get_computation_cost): Reimplement.
9213 (determine_group_iv_cost_address): Record inv_expr for all uses of
9214 a group.
9215 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
9216 (iv_ca_has_deps): Reimplemented to ...
9217 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
9218 than OLD_CP.
9219 (iv_ca_extend): Call iv_ca_more_deps.
9220
9221 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9222
9223 * tree-ssa-address.c (struct mem_address): Move to header file.
9224 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
9225 * tree-ssa-address.h (struct mem_address): Move from C file.
9226 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
9227
9228 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9229
9230 * tree-affine.h (aff_combination_type): New interface.
9231 (aff_combination_zero_p): Remove static.
9232 (aff_combination_const_p): New interface.
9233 (aff_combination_singleton_var_p): New interfaces.
9234
9235 2017-05-11 Richard Biener <rguenther@suse.de>
9236
9237 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
9238 Skip unreachable blocks and destinations.
9239 (eliminate): Move stmt removal and fixup ...
9240 (fini_eliminate): ... here. Skip inserted exprs.
9241 (pass_pre::execute): Move fini_pre after fini_eliminate.
9242 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
9243 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
9244 PRE to get rid of dead code that has invalid SSA form and
9245 split critical edges again.
9246
9247 2017-05-11 Bin Cheng <bin.cheng@arm.com>
9248
9249 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
9250
9251 2017-05-11 Richard Biener <rguenther@suse.de>
9252
9253 * passes.c (execute_function_todo): Verify loops if they are
9254 said to be up-to-date.
9255 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
9256 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
9257
9258 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
9259
9260 PR target/80090
9261 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
9262 handle calling assemble_external ourself.
9263
9264 PR target/79027
9265 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
9266 modes with zero size. Enhance comment.
9267
9268 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9269
9270 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
9271 built-ins for vec_xl and vec_xst with short and char pointer
9272 arguments.
9273
9274 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
9275
9276 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
9277 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
9278 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
9279 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
9280 (_mm_maskz_min_round_ss): New intrinsics.
9281 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
9282 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
9283 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
9284 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
9285 (__builtin_ia32_minss_mask_round): New builtins.
9286 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
9287 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
9288 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
9289 Rename to ...
9290 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
9291 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
9292 Change to ...
9293 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
9294 ... this.
9295
9296 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
9297
9298 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
9299 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
9300 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
9301 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
9302 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
9303 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
9304 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
9305 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
9306 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
9307 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
9308 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
9309 (__builtin_ia32_mulss_mask_round): New builtins.
9310 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
9311 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
9312 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
9313 Rename to ...
9314 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
9315 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
9316 Change to ...
9317 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
9318 ... this.
9319
9320 2017-05-10 Julia Koval <julia.koval@intel.com>
9321
9322 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
9323 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
9324 (_mm256_setr_m128i): New intrinsics.
9325
9326 2017-05-10 Julia Koval <julia.koval@intel.com>
9327
9328 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
9329 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
9330 (_mm_maskz_rcp14_ss): New intrinsics.
9331 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
9332 (__builtin_ia32_rcp14ss_mask): New builtins.
9333 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
9334
9335 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
9336
9337 PR tree-optimization/51513
9338 * tree-cfg.c (gimple_seq_unreachable_p): New function.
9339 (assert_unreachable_fallthru_edge_p): Use it.
9340 (group_case_labels_stmt): Likewise.
9341 * tree-cfg.h: Prototype it.
9342 * stmt.c: Include cfghooks.h and tree-cfg.h.
9343 (emit_case_dispatch_table) <gap_label>: New local variable.
9344 Use it to fill dispatch table gaps.
9345 Test for default_label before updating probabilities.
9346 (expand_case) <default_label>: Remove unneeded initialization.
9347 Test for unreachable default case statement and remove its edge.
9348 Set default_label accordingly.
9349 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
9350
9351 2017-05-10 Carl Love <cel@us.ibm.com>
9352
9353 * config/rs6000/rs6000-c: Add support for built-in functions
9354 vector signed char vec_neg (vector signed char)
9355 vector signed short int vec_neg (vector short int)
9356 vector signed int vec_neg (vector signed int)
9357 vector signed long long vec_neg (vector signed long long)
9358 vector float vec_neg (vector float)
9359 vector double vec_neg (vector double)
9360 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
9361 overload.
9362 * config/rs6000/altivec.h: Add define for vec_neg
9363 * doc/extend.texi: Update the built-in documentation for the
9364 new built-in functions.
9365
9366 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9367
9368 PR tree-optimization/77644
9369 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
9370
9371 2017-05-10 Nathan Sidwell <nathan@acm.org>
9372
9373 * dumpfile.h (TDI_lang_all): New.
9374 (TDF_KIND): New. Renumber others
9375 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
9376 than bits.
9377 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
9378 lang-all.
9379 (get_dump_file_name): Adjust suffix generation.
9380 (dump_enable_all): Use TDF_KIND.
9381 * doc/invoke.texi (-fdump-lang-all): Document.
9382
9383 * dumpfile.h: Tabify.
9384
9385 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
9386
9387 PR target/80671
9388 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
9389 Move member access before delete.
9390
9391 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
9392
9393 * tree-inline.c (expand_call_inline): Split block at stmt
9394 before the call.
9395
9396 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9397
9398 PR target/68163
9399 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
9400 are now unused after splitting mov{sf,sd}_hardfloat.
9401 (f32_lr2): Likewise.
9402 (f32_lm): Likewise.
9403 (f32_lm2): Likewise.
9404 (f32_li): Likewise.
9405 (f32_li2): Likewise.
9406 (f32_lv): Likewise.
9407 (f32_sr): Likewise.
9408 (f32_sr2): Likewise.
9409 (f32_sm): Likewise.
9410 (f32_sm2): Likewise.
9411 (f32_si): Likewise.
9412 (f32_si2): Likewise.
9413 (f32_sv): Likewise.
9414 (f32_dm): Likewise.
9415 (f32_vsx): Likewise.
9416 (f32_av): Likewise.
9417 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
9418 For movsf, order stores so the VSX stores occur before the GPR
9419 store which encourages the register allocator to use a traditional
9420 FPR instead of a GPR. For movsd, order the stores so that the GPR
9421 store comes before the VSX stores to allow the power6 to work.
9422 This is due to the power6 not having a 32-bit integer store
9423 instruction from a FPR.
9424 (movsf_hardfloat): Likewise.
9425 (movsd_hardfloat): Likewise.
9426
9427 2017-05-09 Martin Sebor <msebor@redhat.com>
9428
9429 PR translation/80280
9430 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
9431 added in r247778.
9432
9433 PR translation/80280
9434 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
9435 data member added in r247778.
9436 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
9437
9438 2017-05-09 Nathan Sidwell <nathan@acm.org>
9439
9440 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
9441
9442 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
9443 typedefs.
9444
9445 2017-05-09 Marek Polacek <polacek@redhat.com>
9446
9447 * doc/invoke.texi: Fix typo.
9448
9449 2017-05-09 Richard Biener <rguenther@suse.de>
9450
9451 * tree-vrp.c (vrp_val_is_max): Adjust comment.
9452 (vrp_val_is_min): Likewise.
9453 (set_value_range_to_value): Likewise.
9454 (set_value_range_to_nonnegative): Likewise.
9455 (gimple_assign_nonzero_p): Likewise.
9456 (gimple_stmt_nonzero_p): Likewise.
9457 (vrp_int_const_binop): Likewise. Remove unreachable case.
9458 (adjust_range_with_scev): Adjust comments.
9459 (compare_range_with_value): Likewise.
9460 (extract_range_from_phi_node): Likewise.
9461 (test_for_singularity): Likewise.
9462
9463 2017-05-09 Richard Biener <rguenther@suse.de>
9464
9465 * tree-vrp.c (get_single_symbol): Add assert that we don't
9466 get overflowed constants as invariant part.
9467 (compare_values_warnv): Add comment before the TREE_NO_WARNING
9468 checks. Use wi::cmp instead of recursing for integer constants.
9469 (compare_values): Just ignore whether we assumed undefined
9470 overflow instead of failing the compare.
9471 (extract_range_for_var_from_comparison_expr): Add comment before the
9472 TREE_NO_WARNING sets.
9473 (test_for_singularity): Likewise.
9474 (extract_range_from_comparison): Do not disable optimization
9475 when we assumed undefined overflow.
9476 (extract_range_basic): Remove init of unused var.
9477
9478 2017-05-09 Richard Biener <rguenther@suse.de>
9479
9480 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
9481 (extract_range_from_multiplicative_op_1): Adjust.
9482 (extract_range_from_binary_expr_1): Use int_const_binop.
9483
9484 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
9485
9486 PR target/80101
9487 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
9488 rs6000_store_data_bypass_p in seven define_bypass directives and
9489 in several comments.
9490 * config/rs6000/rs6000-protos.h: Add prototype for
9491 rs6000_store_data_bypass_p function.
9492 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
9493 function implements slightly different (rs6000-specific) semantics
9494 than store_data_bypass_p, returning false rather than aborting
9495 with assertion error when arguments do not satisfy the
9496 requirements of store data bypass.
9497 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
9498 rs6000_store_data_bypass_p.
9499
9500 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
9501
9502 * config/xtensa/xtensa-protos.h
9503 (xtensa_initial_elimination_offset): New declaration.
9504 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
9505 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
9506 macro definition, add case for FRAME_POINTER_REGNUM when
9507 FRAME_GROWS_DOWNWARD.
9508 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
9509 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
9510 xtensa_initial_elimination_offset.
9511
9512 2017-05-08 Nathan Sidwell <nathan@acm.org>
9513
9514 * doc/invoke.texi: Alphabetize -fdump options.
9515
9516 2017-05-08 Martin Sebor <msebor@redhat.com>
9517
9518 PR translation/80280
9519 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
9520
9521 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
9522
9523 * target.def (compute_frame_layout): New optional target hook.
9524 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
9525 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
9526 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
9527 target hook.
9528 * reload1.c (verify_initial_elim_offsets): Likewise.
9529 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
9530 (use_simple_return_p): Call arm_compute_frame_layout if needed.
9531 (arm_get_frame_offsets): Split up into this ...
9532 (arm_compute_frame_layout): ... and this function.
9533
9534 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
9535
9536 * config/aarch64/constraints.md (Usa): New constraint.
9537 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
9538
9539 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
9540
9541 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
9542 with_multilib_list after it has been checked.
9543
9544 2017-05-08 Richard Biener <rguenther@suse.de>
9545
9546 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
9547 (bitmap_set_subtract_values): Likewise.
9548
9549 2017-05-08 Richard Biener <rguenther@suse.de>
9550
9551 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
9552 (gimple_assign_nonzero): ... this and remove strict_overflow_p
9553 argument.
9554 (gimple_stmt_nonzero_warnv_p): Rename to ...
9555 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
9556 argument.
9557 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
9558 (extract_range_basic): Adjust, do not disable propagation on
9559 strict overflow sensitive simplification.
9560 (vrp_visit_cond_stmt): Likewise.
9561
9562 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
9563
9564 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
9565 body size unconditionally.
9566
9567 2017-05-07 Jeff Law <law@redhat.com>
9568
9569 Revert:
9570 2017-05-06 Jeff Law <law@redhat.com>
9571 PR tree-optimization/78496
9572 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
9573 code.
9574
9575 PR tree-optimization/78496
9576 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
9577 (simplify_stmt_using_ranges): Call it.
9578 (vrp_dom_walker::before_dom_children): Extract equivalences
9579 from an ASSERT_EXPR with an equality comparison against a
9580 constant.
9581
9582 2017-05-06 Jeff Law <law@redhat.com>
9583
9584 PR tree-optimization/78496
9585 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
9586 code.
9587
9588 PR tree-optimization/78496
9589 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
9590 (simplify_stmt_using_ranges): Call it.
9591 (vrp_dom_walker::before_dom_children): Extract equivalences
9592 from an ASSERT_EXPR with an equality comparison against a
9593 constant.
9594
9595 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
9596
9597 * lra-constraints.c (lra_copy_reg_equiv): New function.
9598 (split_reg): Use it to copy equivalence information from the
9599 original register to the spill register.
9600
9601 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
9602
9603 PR rtl-optimization/75964
9604 * simplify-rtx.c (simplify_const_relational_operation): Remove
9605 invalid handling of comparisons of integer ABS.
9606
9607 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
9608
9609 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
9610 initialize to zero.
9611 (init_regs): Remove declaration.
9612 (function_arg_advance_32): Initialize error_p as boolean variable.
9613
9614 2017-05-05 Nathan Sidwell <nathan@acm.org>
9615
9616 * store-motion.c (remove_reachable_equiv_notes): Reformat long
9617 lines. Use for (;;).
9618
9619 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9620
9621 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
9622 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
9623 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
9624 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
9625 VF=2 that require versioning.
9626
9627 2017-05-05 David Malcolm <dmalcolm@redhat.com>
9628
9629 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
9630 int.
9631
9632 2017-05-05 David Malcolm <dmalcolm@redhat.com>
9633
9634 * diagnostic.h (diagnostic_override_option_index): Convert from
9635 macro to inline function.
9636
9637 2017-05-05 David Malcolm <dmalcolm@redhat.com>
9638
9639 * diagnostic.c (last_module_changed_p): New function.
9640 (set_last_module): New function.
9641 (diagnostic_report_current_module): Convert macro usage to
9642 the above functions.
9643 * diagnostic.h (diagnostic_context::last_module): Strengthen
9644 from const line_map * to const line_map_ordinary *.
9645 (diagnostic_last_module_changed): Delete macro.
9646 (diagnostic_set_last_module): Delete macro.
9647
9648 2017-05-05 David Malcolm <dmalcolm@redhat.com>
9649
9650 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
9651 with diagnostic_report_diagnostic.
9652 (diagnostic_n_impl_richloc): Likewise.
9653 * diagnostic.h (report_diagnostic): Delete macro.
9654 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
9655 with diagnostic_report_diagnostic.
9656 * substring-locations.c (format_warning_va): Likewise.
9657
9658 2017-05-05 David Malcolm <dmalcolm@redhat.com>
9659
9660 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
9661 save/restor of format_spec. Move option-printing code to...
9662 (print_option_information): ...this new function, and
9663 reimplement by simply printing to the pretty_printer,
9664 rather than appending to the format string.
9665
9666 2017-05-05 David Malcolm <dmalcolm@redhat.com>
9667
9668 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
9669 handling logic into...
9670 (update_effective_level_from_pragmas): ...this new function.
9671
9672 2017-05-04 Andrew Waterman <andrew@sifive.com>
9673
9674 * config/riscv/riscv.opt (mstrict-align): New option.
9675 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
9676 (SLOW_UNALIGNED_ACCESS): Define.
9677 (riscv_slow_unaligned_access): Declare.
9678 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
9679 field.
9680 (riscv_slow_unaligned_access): New variable.
9681 (rocket_tune_info): Set slow_unaligned_access to true.
9682 (optimize_size_tune_info): Set slow_unaligned_access to false.
9683 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
9684 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
9685 (riscv_option_override): Set riscv_slow_unaligned_access.
9686 * doc/invoke.texi: Add -mstrict-align to RISC-V.
9687
9688 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
9689
9690 * config/riscv/riscv.md: Unify indentation.
9691
9692 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
9693
9694 PR target/79038
9695 PR target/79202
9696 PR target/79203
9697 * config/rs6000/rs6000.md (u code attribute): Add FIX and
9698 UNSIGNED_FIX.
9699 (extendsi<mode>2): Add support for doing sign extension via
9700 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
9701 don't have ISA 3.0 instructions.
9702 (extendsi<mode>2 splitter): Likewise.
9703 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
9704 generate the normal insns since SImode can now go in vector
9705 registers. Disallow the special UNSPECs needed for previous
9706 machines to hide SImode being used. Add new insns
9707 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
9708 (fix_trunc<mode>si2_stfiwx): Likewise.
9709 (fix_trunc<mode>si2_internal): Likewise.
9710 (fixuns_trunc<mode>si2): Likewise.
9711 (fixuns_trunc<mode>si2_stfiwx): Likewise.
9712 (fctiw<u>z_<mode>_smallint): Likewise.
9713 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
9714 of floating point to 32-bit integer from doing a direct move to
9715 the GPR registers to do a store.
9716 (fctiwz_<mode>): Break long line.
9717
9718 2017-05-05 Bin Cheng <bin.cheng@arm.com>
9719
9720 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
9721 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
9722 (addr_list, addr_offset_valid_p): New.
9723 (split_address_groups): Check offset validity with above function.
9724 (gt-tree-ssa-loop-ivopts.h): Include header file.
9725
9726 2017-05-05 Nathan Sidwell <nathan@acm.org>
9727
9728 * config.gcc (arm*-*-*): Add missing 'fi'.
9729
9730 2017-05-05 Steve Ellcey <sellcey@cavium.com>
9731
9732 * doc/invoke.texi (-fopt-info): Explicitly say order of options
9733 included in -fopt-info does not matter.
9734 * doc/optinfo.texi (-fopt-info): Fix description of default
9735 behavour. Explicitly say order of options included in -fopt-info
9736 does not matter.
9737
9738 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
9739
9740 * config.gcc: Allow combinations of aprofile and rmprofile values for
9741 --with-multilib-list.
9742 * config/arm/t-multilib: New file.
9743 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
9744 variables. Remove setting of ISA and floating-point ABI in
9745 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
9746 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
9747 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
9748 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
9749 CPU options.
9750 * config/arm/t-rmprofile: Likewise except for the matches changes.
9751 * doc/install.texi (--with-multilib-list): Document the combination of
9752 aprofile and rmprofile values and warn about pitfalls in doing that.
9753
9754 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
9755
9756 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
9757 (movdi_aarch64): Likewise.
9758
9759 2017-05-05 Jakub Jelinek <jakub@redhat.com>
9760
9761 PR tree-optimization/80632
9762 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
9763 field.
9764 (build_arrays): Initialize it for virtual phis.
9765 (fix_phi_nodes): Use it for virtual phis.
9766
9767 PR tree-optimization/80558
9768 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
9769 [x, y] op z into [x op, y op z] for op & or | if conditions
9770 are met.
9771
9772 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
9773 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
9774
9775 PR target/71607
9776 * config/arm/arm.md (use_literal_pool): Remove.
9777 (64-bit immediate split): No longer takes cost into consideration
9778 if arm_disable_literal_pool is enabled.
9779 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
9780 used when arm_disable_literal_pool is enabled.
9781 (arm_max_const_double_inline_cost): Remove use of
9782 arm_disable_literal_pool.
9783 (push_minipool_fix): Add assert.
9784 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
9785 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
9786 (no_literal_pool_sf_immediate): New.
9787
9788 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9789
9790 PR tree-optimization/80613
9791 * tree-ssa-dce.c (propagate_necessity): Remove cases for
9792 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
9793
9794 2017-05-05 Richard Biener <rguenther@suse.de>
9795
9796 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
9797
9798 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
9799
9800 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
9801 of this flag from insn conditions due to removal from r247495.
9802
9803 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
9804
9805 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
9806 New function.
9807 (arm_early_store_addr_dep_ptr): Likewise.
9808 * config/arm/aarch-common-protos.h
9809 (arm_early_load_addr_dep_ptr): Add prototype.
9810 (arm_early_store_addr_dep_ptr): Likewise.
9811 * config/arm/cortex-a53.md: Add new bypasses.
9812
9813 2017-05-05 Jakub Jelinek <jakub@redhat.com>
9814
9815 * tree.c (next_type_uid): Change type to unsigned.
9816 (type_hash_canon): Decrement back next_type_uid if
9817 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
9818 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
9819 if possible.
9820
9821 2017-05-04 Martin Sebor <msebor@redhat.com>
9822
9823 * builtins.c: Fix a trivial typo in a comment.
9824
9825 PR middle-end/79234
9826 * builtins.c (check_sizes): Adjust to handle reading past the end.
9827 Avoid printing excessive upper bound of ranges. Use %E to print
9828 tree nodes instead of converting them to %wu.
9829 (expand_builtin_memchr): New function.
9830 (compute_dest_size): Rename...
9831 (compute_objsize): ...to this.
9832 (expand_builtin_memcpy): Adjust.
9833 (expand_builtin_mempcpy): Adjust.
9834 (expand_builtin_strcat): Adjust.
9835 (expand_builtin_strcpy): Adjust.
9836 (check_strncat_sizes): Adjust.
9837 (expand_builtin_strncat): Adjust.
9838 (expand_builtin_strncpy): Adjust and simplify.
9839 (expand_builtin_memset): Adjust.
9840 (expand_builtin_bzero): Adjust.
9841 (expand_builtin_memcmp): Adjust.
9842 (expand_builtin): Handle memcmp.
9843 (maybe_emit_chk_warning): Check strncat just once.
9844
9845 2017-05-04 Martin Sebor <msebor@redhat.com>
9846
9847 PR preprocessor/79214
9848 PR middle-end/79222
9849 PR middle-end/79223
9850 * builtins.c (check_sizes): Add inlining context and issue
9851 warnings even when -Wno-system-headers is set.
9852 (check_strncat_sizes): Same.
9853 (expand_builtin_strncat): Same.
9854 (expand_builtin_memmove): New function.
9855 (expand_builtin_stpncpy): Same.
9856 (expand_builtin): Handle memmove and stpncpy.
9857
9858 2017-05-04 Bin Cheng <bin.cheng@arm.com>
9859
9860 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
9861 which is not used any more.
9862
9863 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
9864
9865 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
9866
9867 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
9868
9869 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
9870 (cortexa53_tunings): Likewise.
9871 (cortexa57_tunings): Likewise.
9872 (cortexa72_tunings): Likewise.
9873 (cortexa73_tunings): Likewise.
9874
9875 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
9876
9877 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
9878 Set loop alignment to 8.
9879
9880 2017-05-04 Martin Sebor <msebor@redhat.com>
9881
9882 PR translation/80280
9883 * builtins.c (expand_builtin_object_size): Add missing quoting to
9884 %D and like directives.
9885 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
9886 (hsa_type_for_tree_type): Same.
9887 (verify_function_arguments): Same.
9888 * symtab.c (symbol_table::change_decl_assembler_name): Same.
9889 * varasm.c (get_section): Same.
9890 (mark_weak): Same.
9891
9892 2017-05-04 Martin Sebor <msebor@redhat.com>
9893
9894 PR translation/80280
9895 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
9896
9897 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
9898
9899 * config/aarch64/aarch64.c (generic_addrcost_table):
9900 Change HI/TI mode setting.
9901
9902 2017-05-04 Martin Jambor <mjambor@suse.cz>
9903
9904 PR tree-optimization/80622
9905 * tree-sra.c (comes_initialized_p): New function.
9906 (build_accesses_from_assign): Only set write lazily when
9907 comes_initialized_p is false.
9908 (analyze_access_subtree): Use comes_initialized_p.
9909 (propagate_subaccesses_across_link): Assert !comes_initialized_p
9910 instead of testing for PARM_DECL.
9911
9912 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9913
9914 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
9915 constraint on operand 0 to allow more general addressing modes.
9916 Adjust output template.
9917 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
9918 New function.
9919 * config/aarch64/aarch64-protos.h
9920 (aarch64_address_valid_for_prefetch_p): Declare prototype.
9921 * config/aarch64/constraints.md (Dp): New address constraint.
9922 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
9923 predicate.
9924
9925 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
9926
9927 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
9928 update use of estimate_ipcp_clone_size_and_time.
9929 (estimate_local_effects): Update use of
9930 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
9931 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
9932 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
9933 Return nonspecialized time.
9934
9935 2017-05-04 Richard Biener <rguenther@suse.de>
9936
9937 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
9938 for the last VUSE which def dominates the PHI. Directly call
9939 maybe_skip_until.
9940 (get_continuation_for_phi_1): Remove.
9941
9942 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
9943
9944 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
9945 to explain the use of truncating division. Cap the number of
9946 iterations to the maximum given by nb_iterations_upper_bound,
9947 if defined.
9948
9949 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
9950
9951 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
9952 * configure: Regenerate.
9953 * config.in: Regenerate.
9954 * config/i386/driver-mingw32.c: new file.
9955 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
9956 * config.host: Link driver-mingw32.o on MinGW host.
9957 * doc/install.texi: Document new --enable-mingw-wildcard configure
9958 option.
9959
9960 2017-05-04 Marek Polacek <polacek@redhat.com>
9961
9962 PR tree-optimization/80612
9963 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
9964
9965 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
9966 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
9967
9968 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
9969 (movt splitter): Likewise.
9970 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
9971 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
9972 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
9973 block for Thumb-1 with MOVT.
9974 (thumb2_legitimate_address_p): Move code block ...
9975 (can_avoid_literal_pool_for_label_p): ... into this new function.
9976 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
9977 literal pool.
9978 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
9979 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
9980 "M-profile targets with the MOVT instruction".
9981
9982 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
9983
9984 * config/arm/arm-builtins.c (arm_init_builtins): Rename
9985 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
9986 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
9987
9988 2017-05-04 Martin Liska <mliska@suse.cz>
9989
9990 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
9991 variable cond_code.
9992
9993 2017-05-04 Richard Biener <rguenther@suse.de>
9994
9995 * tree.c (array_at_struct_end_p): Handle arrays at struct
9996 end with flexarrays more conservatively. Refactor and treat
9997 arrays of arrays or aggregates more strict. Fix
9998 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
9999 * tree.c (array_at_struct_end_p): Adjust prototype.
10000 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
10001 * gimple-fold.c (get_range_strlen): Likewise.
10002 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
10003
10004 2017-05-04 Richard Biener <rguenther@suse.de>
10005
10006 PR tree-optimization/31130
10007 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
10008 false.
10009 (supports_overflow_infinity): Likewise.
10010 (is_negative_overflow_infinity): Likewise.
10011 (is_positive_overflow_infinity): Likewise.
10012 (is_overflow_infinity): Likewise.
10013 (stmt_overflow_infinity): Likewise.
10014 (overflow_infinity_range_p): Likewise.
10015 (usable_range_p): Remove as always returning true.
10016 (make_overflow_infinity): Remove.
10017 (negative_overflow_infinity): Likewise.
10018 (positive_overflow_infinity): Likewise.
10019 (avoid_overflow_infinity): Likewise.
10020 (set_value_range): Adjust accordingly.
10021 (set_value_range_to_nonnegative): Likewise, remove now unused
10022 overflow_infinity arg.
10023 (vrp_operand_equal_p): Adjust.
10024 (update_value_range): Likewise.
10025 (range_int_cst_singleton_p): Likewise.
10026 (operand_less_p): Likewise.
10027 (compare_values_warnv): Likewise.
10028 (extract_range_for_var_from_comparison_expr): Likewise.
10029 (vrp_int_const_binop): Likewise.
10030 (zero_nonzero_bits_from_vr): Likewise.
10031 (extract_range_from_multiplicative_op_1): Likewise.
10032 (extract_range_from_binary_expr_1): Likewise.
10033 (extract_range_from_unary_expr): Likewise.
10034 (extract_range_from_comparison): Likewise.
10035 (extract_range_basic): Likewise.
10036 (adjust_range_with_scev): Likewise.
10037 (compare_ranges): Likewise.
10038 (compare_range_with_value): Likewise.
10039 (dump_value_range): Likewise.
10040 (test_for_singularity): Likewise, remove strict_overflow_p parameter
10041 never used.
10042 (simplify_cond_using_ranges): Adjust.
10043
10044 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
10045
10046 * brig-builtins.def: Added a builtin for class_f64.
10047 * builtin-types.def: Added a builtin type needed by class_f64.
10048
10049 2017-05-03 Jason Merrill <jason@redhat.com>
10050
10051 * timevar.def: Add TV_CONSTEXPR.
10052
10053 2017-05-03 David Malcolm <dmalcolm@redhat.com>
10054
10055 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
10056
10057 2017-05-03 Martin Jambor <mjambor@suse.cz>
10058
10059 * ipa-prop.c (ipa_update_after_lto_read): Removed.
10060 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
10061 * ipa-cp.c (ipcp_propagate_stage): Do not call
10062 ipa_update_after_lto_read.
10063 * ipa-inline.c (ipa_inline): Likewise.
10064
10065 2017-05-03 Martin Jambor <mjambor@suse.cz>
10066
10067 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
10068 tag. Added a default constructor and a destructor.
10069 (ipa_edge_args_sum_t): New class;
10070 (ipa_edge_args_sum): Declare.
10071 (ipa_edge_args_vector): Remove declaration.
10072 (IPA_EDGE_REF): Use ipa_edge_args_sum.
10073 (ipa_free_edge_args_substructures): Remove declaration.
10074 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
10075 (ipa_edge_args_info_available_for_edge_p): Likewise.
10076 * ipa-prop.c (ipa_edge_args_vector): Removed.
10077 (edge_removal_hook_holder): Likewise.
10078 (edge_duplication_hook_holder): Likewise.
10079 (ipa_edge_args_sum): New variable.
10080 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
10081 ipa_edge_args_vector.
10082 (ipa_free_edge_args_substructures): Likewise.
10083 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
10084 ipa_edge_args_vector.
10085 (ipa_edge_removal_hook): Turned into method
10086 ipa_edge_args_sum_t::remove.
10087 (ipa_edge_duplication_hook): Turned into method
10088 ipa_edge_args_sum_t::duplicate.
10089 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
10090 registering edge hooks.
10091 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
10092 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
10093 ipa_edge_args_sum instead of ipa_edge_args_vector.
10094 * ipa-profile.c (ipa_profile): Likewise.
10095
10096 2017-05-03 Martin Jambor <mjambor@suse.cz>
10097
10098 * symbol-summary.h (function_summary): New method exists.
10099 (function_summary::symtab_removal): Deallocate through release.
10100 (call_summary): New class.
10101 (gt_ggc_mx): New overload.
10102 (gt_pch_nx): Likewise.
10103 (gt_pch_nx): Likewise.
10104
10105 2017-05-03 Jeff Law <law@redhat.com>
10106
10107 PR tree-optimization/78496
10108 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
10109 from simplify_cond_using_ranges. Split off code to walk
10110 backwards through casts into ...
10111 (simplify_cond_using_ranges_2): New function.
10112 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
10113 (execute_vrp): After identifying jump threads, call
10114 simplify_cond_using_ranges_2.
10115
10116 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
10117
10118 PR bootstrap/80609
10119 * ipa-inline.h (inline_summary): Add ctor.
10120 (create_ggc): Do not use ggc_cleared_alloc.
10121
10122 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
10123 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10124
10125 * gcc.c (handle_braces): Support escaping in switch matching
10126 text.
10127 * doc/invoke.texi (Spec Files): Document it.
10128 Remove superfluous @code markup in items.
10129
10130 2017-05-03 David Malcolm <dmalcolm@redhat.com>
10131
10132 * diagnostic-show-locus.c (struct column_range): New struct.
10133 (get_affected_columns): New function.
10134 (get_printed_columns): New function.
10135 (struct correction): New struct.
10136 (correction::ensure_capacity): New function.
10137 (correction::ensure_terminated): New function.
10138 (struct line_corrections): New struct.
10139 (line_corrections::~line_corrections): New dtor.
10140 (line_corrections::add_hint): New function.
10141 (layout::print_trailing_fixits): Reimplement in terms of the new
10142 classes.
10143 (selftest::test_overlapped_fixit_printing): New function.
10144 (selftest::diagnostic_show_locus_c_tests): Call it.
10145
10146 2017-05-03 Nathan Sidwell <nathan@acm.org>
10147
10148 Canonicalize canonical type hashing
10149 * tree.h (type_hash_canon_hash): Declare.
10150 * tree.c (type_hash_list, attribute_hash_list): Move into
10151 type_hash_canon_hash.
10152 (build_type_attribute_qual_variant): Break out hash code calc into
10153 type_hash_canon_hash.
10154 (type_hash_canon_hash): New. Generic type hash computation.
10155 (build_range_type_1, build_array_type_1, build_function_type,
10156 build_method_type_directly, build_offset_type, build_complex_type,
10157 make_vector_type): Call it.
10158
10159 2017-05-03 Richard Biener <rguenther@suse.de>
10160
10161 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
10162 When all DRs have unknown misaligned do not always peel
10163 when there is a store but apply the same costing model as if
10164 there were only loads.
10165
10166 2017-05-03 Richard Biener <rguenther@suse.de>
10167
10168 Revert
10169 PR tree-optimization/80492
10170 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
10171 compare_base_decls returning dont-know properly.
10172
10173 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
10174
10175 * config/arm/iterators.md (CCSI): New mode iterator.
10176 (arch): New mode attribute.
10177 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
10178 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
10179 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
10180 code iterator for success result mode.
10181 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
10182 the corresponding new insn generators.
10183
10184 2017-05-03 Bin Cheng <bin.cheng@arm.com>
10185
10186 Revert r247509
10187 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10188 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
10189
10190 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
10191
10192 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
10193 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
10194 (DDR_A): Wrap DDR argument in brackets.
10195 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
10196 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
10197 (DDR_REVERSED_P): Likewise.
10198
10199 2017-05-03 Jakub Jelinek <jakub@redhat.com>
10200
10201 PR tree-optimization/79472
10202 * tree-switch-conversion.c (struct switch_conv_info): Add
10203 contiguous_range and default_case_nonstandard fields.
10204 (collect_switch_conv_info): Compute contiguous_range and
10205 default_case_nonstandard fields, don't clear final_bb if
10206 contiguous_range and only the default case doesn't have the required
10207 structure.
10208 (check_all_empty_except_final): Set default_case_nonstandard instead
10209 of failing if contiguous_range and the default case doesn't have empty
10210 block.
10211 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
10212 and only the default case doesn't have the required constants. Skip
10213 virtual phis.
10214 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
10215 if default_case_nonstandard.
10216 (build_constructors): Build constant 1 just once. Assert that default
10217 values aren't inserted in between cases if contiguous_range. Skip
10218 virtual phis.
10219 (build_arrays): Skip virtual phis.
10220 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
10221 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
10222 Handle virtual phis.
10223 (gen_inbound_check): Handle default_case_nonstandard case.
10224 (process_switch): Adjust check_final_bb caller. Call
10225 gather_default_values with the first non-default case instead of
10226 default case if default_case_nonstandard.
10227
10228 2017-05-02 Nathan Sidwell <nathan@acm.org>
10229
10230 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
10231 check. Fix formatting.
10232
10233 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
10234
10235 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
10236 errors when comparing specialized and unspecialized times.
10237
10238 2017-05-02 David Malcolm <dmalcolm@redhat.com>
10239
10240 * diagnostic-show-locus.c
10241 (layout::should_print_annotation_line_p): Make private.
10242 (layout::print_annotation_line): Make private.
10243 (layout::annotation_line_showed_range_p): Make private.
10244 (layout::show_ruler): Make private.
10245 (layout::print_source_line): Make private. Pass in line and
10246 line_width, rather than calling location_get_source_line. Drop
10247 returned value.
10248 (layout::print_leading_fixits): New method.
10249 (layout::print_any_fixits): Rename to...
10250 (layout::print_trailing_fixits): ...this, and make private.
10251 Don't print newline fixits.
10252 (diagnostic_show_locus): Move logic for printing one row into...
10253 (layout::print_line): ...this new function. Move the
10254 location_get_source_line call and error-handling from
10255 print_source_line to here. Call print_leading_fixits, and rename
10256 print_any_fixits to print_trailing_fixits.
10257 (selftest::test_fixit_insert_containing_newline): Update now that
10258 newlines are partially supported.
10259 (selftest::test_fixit_insert_containing_newline_2): New test.
10260 (selftest::test_fixit_replace_containing_newline): Update comments.
10261 (selftest::diagnostic_show_locus_c_tests): Call the new test.
10262 * edit-context.c (class added_line): New class.
10263 (class edited_line): Describe newline handling in comment.
10264 (edited_line::actually_edited_p): New method.
10265 (edited_line::print_content): Delete redundant decl.
10266 (edited_line::m_predecessors): New field.
10267 (edited_file::print_content): Call edited_line::print_content.
10268 (edited_file::print_diff): Update to support newlines.
10269 (edited_file::print_diff_hunk): Likewise.
10270 (edited_file::print_run_of_changed_lines): New function.
10271 (edited_file::print_diff_line): Convert to...
10272 (print_diff_line): ...this.
10273 (edited_file::get_effective_line_count): New function.
10274 (edited_line::edited_line): Initialize new field m_predecessors.
10275 (edited_line::~edited_line): Clean up m_predecessors.
10276 (edited_line::apply_fixit): Handle newlines.
10277 (edited_line::get_effective_line_count): New function.
10278 (edited_line::print_content): New function.
10279 (edited_line::print_diff_lines): New function.
10280 (selftest::test_applying_fixits_insert_containing_newline): New
10281 test.
10282 (selftest::test_applying_fixits_replace_containing_newline): New
10283 test.
10284 (selftest::insert_line): New function.
10285 (selftest::test_applying_fixits_multiple_lines): Add example of
10286 inserting a line.
10287 (selftest::edit_context_c_tests): Call the new tests.
10288
10289 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10290
10291 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
10292 parameter cand. Update dump information.
10293 (get_computation_cost): Update uses.
10294
10295 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10296
10297 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
10298 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
10299 (get_computation_at, rewrite_use_address): Update use of
10300 get_computation_aff.
10301
10302 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10303
10304 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
10305 (get_computation): Delete.
10306 (get_computation_cost): Implement like get_computation_cost_at.
10307 Use get_computation_at.
10308 (get_computation_cost_at): Delete.
10309 (rewrite_use_nonlinear_expr): Use get_computation_at.
10310 (rewrite_use_compare, remove_unused_ivs): Ditto.
10311
10312 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10313
10314 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
10315
10316 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10317
10318 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
10319 (ivopts_global_cost_for_size): Rename parameter and update uses.
10320 (iv_ca_recount_cost): Update uses.
10321 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
10322 candidates seperately in n_invs and n_cands.
10323 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
10324
10325 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10326
10327 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
10328 (find_inv_vars_cb): New.
10329 (find_depends): Renamed to ...
10330 (find_inv_vars): ... this.
10331 (add_candidate_1, force_var_cost): Call find_inv_vars.
10332 (split_address_cost, determine_group_iv_cost_cond): Ditto.
10333
10334 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10335
10336 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
10337 inv_vars. Add inv_exprs.
10338 (struct iv_cand): Rename depends_on to inv_vars.
10339 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
10340 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
10341 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
10342 (dump_cand): Dump inv_vars.
10343 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
10344 (record_invariant, find_depends, add_candidate_1): Ditto.
10345 (set_group_iv_cost, force_var_cost): Ditto.
10346 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
10347 (get_computation_cost_at, get_computation_cost): Ditto.
10348 (determine_group_iv_cost_generic): Ditto.
10349 (determine_group_iv_cost_address): Ditto.
10350 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
10351 (determine_group_iv_costs): Ditto.
10352 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
10353 (iv_ca_set_remove_invariants): Renamed to ...
10354 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
10355 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
10356 (iv_ca_set_add_invariants): Renamed to ...
10357 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
10358 (iv_ca_set_cp): Use iv_ca_set_add_invs.
10359 (iv_ca_has_deps): Support inv_vars and inv_exprs.
10360 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
10361 (create_new_ivs): Remove useless dump.
10362
10363 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10364
10365 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
10366 iv_cand code.
10367 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
10368 (iv_ca_set_no_cp, create_new_iv): Ditto.
10369
10370 2017-05-02 Bin Cheng <bin.cheng@arm.com>
10371
10372 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
10373
10374 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
10375
10376 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
10377 function tree_check2.
10378
10379 2017-05-02 Martin Liska <mliska@suse.cz>
10380
10381 * doc/gcov.texi: Add missing preposition.
10382 * gcov.c (function_info::function_info): Properly fill up
10383 all member variables.
10384
10385 2017-05-02 Tamar Christina <tamar.christina@arm.com>
10386
10387 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
10388
10389 2017-05-02 Tamar Christina <tamar.christina@arm.com>
10390
10391 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
10392
10393 2017-05-02 Martin Liska <mliska@suse.cz>
10394
10395 PR lto/77954.
10396 * lto-streamer-in.c (lto_read_tree_1): Remove
10397 LTO_STREAMER_DEBUG.
10398 * lto-streamer.c (struct tree_hash_entry): Likewise.
10399 (struct tree_entry_hasher): Likewise.
10400 (tree_entry_hasher::hash): Likewise.
10401 (tree_entry_hasher::equal): Likewise.
10402 (lto_streamer_init): Likewise.
10403 (lto_orig_address_map): Likewise.
10404 (lto_orig_address_get): Likewise.
10405 (lto_orig_address_remove): Likewise.
10406 * lto-streamer.h: Likewise.
10407 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
10408 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
10409
10410 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
10411
10412 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
10413 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
10414 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
10415 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
10416 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
10417 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
10418 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
10419 (mm_maskz_sub_ss): New intrinsics.
10420 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
10421 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
10422 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
10423 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
10424 (__builtin_ia32_subss_mask_round): New builtins.
10425 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
10426 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
10427 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
10428 Renamed to ...
10429 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
10430 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
10431 Changed to ...
10432 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
10433 ... this.
10434
10435 2017-05-02 Martin Jambor <mjambor@suse.cz>
10436
10437 PR tree-optimization/78687
10438 * tree-sra.c (access): New field parent.
10439 (process_subtree_disqualification): New function.
10440 (disqualify_candidate): Call it.
10441 (build_accesses_from_assign): Reset write flag if creating an
10442 assighnment link.
10443 (build_access_subtree): Fill in parent field and also prpagate
10444 down grp_write flag.
10445 (create_artificial_child_access): New parameter set_grp_write, set
10446 grp_write to its value.
10447 (propagate_subaccesses_across_link): Also propagate grp_write flag
10448 values.
10449 (propagate_all_subaccesses): Push the closest parent back to work
10450 queue if add_access_to_work_queue returned true.
10451
10452 2017-05-02 Richard Biener <rguenther@suse.de>
10453
10454 * common.opt (fstrict-overflow): Alias negative to fwrapv.
10455 * doc/invoke.texi (fstrict-overflow): Remove all traces of
10456 -fstrict-overflow documentation.
10457 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
10458 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
10459 flag_strict_overflow.
10460 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
10461 * lto-opts.c (lto_write_options): Do not stream it.
10462 * lto-wrapper.c (merge_and_complain): Do not handle it.
10463 * opts.c (default_options_table): Do not set -fstrict-overflow.
10464 (finish_options): Likewise do not clear it when sanitizing.
10465 * simplify-rtx.c (simplify_const_relational_operation): Do not
10466 test flag_strict_overflow.
10467
10468 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
10469
10470 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
10471 using enabled attribute.
10472 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
10473 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
10474 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
10475 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
10476 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
10477 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
10478 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
10479 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
10480 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
10481 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
10482
10483 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
10484
10485 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
10486
10487 2017-05-02 Richard Biener <rguenther@suse.de>
10488
10489 PR tree-optimization/80591
10490 Revert
10491 2017-04-10 Richard Biener <rguenther@suse.de>
10492
10493 * tree-ssa-structalias.c (find_func_aliases): Properly handle
10494 asm inputs.
10495
10496 2017-05-02 Richard Biener <rguenther@suse.de>
10497
10498 PR tree-optimization/80549
10499 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
10500 (cleanup_tree_cfg_noloop): Create forwarders to known loop
10501 headers if they do not have a preheader.
10502
10503 2017-05-02 Martin Liska <mliska@suse.cz>
10504
10505 PR other/80589
10506 * common.opt: Fix typo.
10507 * doc/invoke.texi: Likewise.
10508
10509 2017-05-01 Jan Beulich <jbeulich@suse.com>
10510
10511 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
10512 swapping, add (x,x,m,x,n) alternative.
10513
10514 2017-05-01 Nathan Sidwell <nathan@acm.org>
10515
10516 * calls.c (combine_pending_stack_adjustment_and_call): Remove
10517 unnecessary unadjusted_alignment check.
10518
10519 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
10520
10521 PR c++/80038
10522 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
10523 operations here.
10524 * gimplify.c (gimplify_cilk_detach): New function.
10525 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
10526 * tree-core.h: Document EXPR_CILK_SPAWN.
10527 * tree.h (EXPR_CILK_SPAWN): Define.
10528
10529 2017-05-01 David Malcolm <dmalcolm@redhat.com>
10530
10531 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
10532 to use new fixit_hint representation, using the "replace" logic.
10533 (get_line_span_for_fixit_hint): Likewise.
10534 (layout::print_any_fixits): Likewise.
10535 (selftest::test_one_liner_many_fixits): Rename to...
10536 (selftest::test_one_liner_many_fixits_1): ...this, and update
10537 comment and expected output to reflect that the multiple fix-it
10538 hints are now consolidated into one insertion.
10539 (selftest::test_one_liner_many_fixits_2): New test.
10540 (selftest::test_diagnostic_show_locus_one_liner): Update for
10541 above.
10542 (selftest::test_fixit_consolidation): Update for fix-it API
10543 change.
10544 * diagnostic.c (print_parseable_fixits): Likewise.
10545 * edit-context.c (edited_line::m_line_events): Convert from
10546 auto_vec <line_event *> to auto_vec <line_event>.
10547 (class line_event): Convert from abstract base class to a concrete
10548 class, taking over the role of replace_event.
10549 (class insert_event): Delete.
10550 (class replace_event): Rename to class line_event. Convert to
10551 half-open range.
10552 (edit_context::add_fixits): Reimplement.
10553 (edit_context::apply_insert): Delete.
10554 (edit_context::apply_replace): Rename to...
10555 (edit_context::apply_fixit): ...this. Convert to half-open range.
10556 (edited_file::apply_insert): Delete.
10557 (edited_file::apply_replace): Rename to...
10558 (edited_file::apply_fixit): ...this.
10559 (edited_line::~edited_line): Drop deletion of events.
10560 (edited_line::apply_insert): Delete.
10561 (edited_line::apply_replace): Rename to...
10562 (edited_line::apply_fixit): ...this. Convert to half-open range.
10563 Update for change to type of m_line_events.
10564 * edit-context.h (edit_context::apply_insert): Delete.
10565 (edit_context::apply_replace): Rename to...
10566 (edit_context::apply_fixit): ...this.
10567
10568 2017-05-01 Martin Sebor <msebor@redhat.com>
10569
10570 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
10571 known.
10572
10573 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
10574
10575 PR target/68491
10576 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
10577 __get_cpuid_max returns 0.
10578 (__get_cpuid_count): Ditto.
10579
10580 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
10581
10582 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
10583 replacement expression is another instance of one of its arguments.
10584
10585 2017-05-01 Jakub Jelinek <jakub@redhat.com>
10586
10587 PR target/79430
10588 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
10589 check for stack push/pop autoinc.
10590 * config/i386/i386.c (ix86_agi_dependent): Return false
10591 if the only reason why modified_in_p returned true is that
10592 addr is SP based and set_insn is a push or pop.
10593
10594 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
10595
10596 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
10597 overflow check.
10598
10599 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
10600
10601 PR ipa/79224
10602 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
10603 (account_size_time): Use two predicates - exec_pred and
10604 nonconst_pred_ptr.
10605 (evaluate_conditions_for_known_args): Compute both clause and
10606 nonspec_clause.
10607 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
10608 (inline_summary_t::duplicate): Update.
10609 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
10610 separately.
10611 (compute_inline_parameters): Likewise.
10612 (estimate_edge_size_and_time): Update caluclation of time.
10613 (estimate_node_size_and_time): Compute both time and nonspecialized
10614 time.
10615 (estimate_ipcp_clone_size_and_time): Update.
10616 (inline_merge_summary): Update.
10617 (do_estimate_edge_time): Update.
10618 (do_estimate_edge_size): Update.
10619 (do_estimate_edge_hints): Update.
10620 (inline_read_section, inline_write_summary): Stream both new predicates.
10621 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
10622 as argument.
10623 (compute_inlined_call_time): Cleanup.
10624 (big_speedup_p): Update.
10625 (edge_badness): Update.
10626 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
10627 (size_time_entry): Replace predicate by exec_predicate and
10628 nonconst_predicate.
10629 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
10630 (estimate_edge_time): Return also nonspec_time.
10631 (reset_edge_growth_cache): Update.
10632
10633 2017-04-29 Jakub Jelinek <jakub@redhat.com>
10634
10635 PR rtl-optimization/80491
10636 * ifcvt.c (noce_process_if_block): When looking for x setter
10637 with missing else_bb, don't check only the insn right before
10638 cond_earliest, but look for the last insn that x is modified in
10639 within the same bb.
10640
10641 PR rtl-optimization/80491
10642 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
10643
10644 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
10645
10646 PR tree-optimization/80487
10647 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
10648
10649 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10650
10651 PR tree-optimization/79697
10652 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
10653 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
10654 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
10655 BUILT_IN_STRNDUP.
10656 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
10657 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
10658
10659 2017-04-28 Martin Sebor <msebor@redhat.com>
10660
10661 PR tree-optimization/80523
10662 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
10663 (init_target_to_host_charmap, target_to_host, target_strtol10): New
10664 functions.
10665 (maybe_warn, format_directive, parse_directive): Use new functions.
10666 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
10667
10668 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
10669
10670 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
10671
10672 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
10673
10674 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
10675 target_header_dir): Set correctly.
10676 * configure: Regenerated.
10677 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
10678 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
10679 instead of SYSTEM_HEADER_DIR.
10680
10681 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
10682
10683 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
10684 (estimate_local_effects): Likewise.
10685 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
10686 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
10687 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
10688 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
10689 do_estimate_edge_time, estimate_edge_time): Likewise.
10690 * ipa-inline-analysis.c (estimate_node_size_and_time,
10691 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
10692 (estimate_time_after_inlining): Remove.
10693
10694 2017-04-28 Martin Liska <mliska@suse.cz>
10695
10696 * doc/gcov.texi: Enhance documentation of gcov.
10697
10698 2017-04-28 Martin Liska <mliska@suse.cz>
10699
10700 * doc/gcov.texi: Sort options in alphabetic order.
10701 * doc/gcov-dump.texi: Likewise.
10702 * doc/gcov-tool.texi: Likewise.
10703 * gcov.c (print_usage): Likewise.
10704 * gcov-dump.c (print_usage): Likewise.
10705 * gcov-tool.c (print_merge_usage_message): Likewise.
10706 (print_rewrite_usage_message): Likewise.
10707 (print_overlap_usage_message): Likewise.
10708
10709 2017-04-28 Martin Liska <mliska@suse.cz>
10710
10711 PR gcov-profile/53915
10712 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
10713
10714 2017-04-28 Martin Liska <mliska@suse.cz>
10715
10716 PR gcov-profile/79891
10717 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
10718 is marked by compiler as living on a line.
10719 (get_cycles_count): Remove usage of the union.
10720 (output_intermediate_file): Likewise.
10721 (find_source): Fix GNU coding style.
10722 (accumulate_line_counts): Remove old non-all block mode.
10723 (output_lines): Remove usage of the union.
10724 * profile.c (output_location): Include all BBs, even if
10725 belonging to a same line (and file) as a previous BB.
10726
10727 2017-04-28 Martin Liska <mliska@suse.cz>
10728
10729 * gcov.c (process_args): Handle new argument 'w'.
10730 (read_graph_file): Assign ID to BBs.
10731 (output_branch_count): Display BB # if verbose flag is set.
10732 (output_lines): Likewise for arcs.
10733 (print_usage): Add '--verbose' option help.
10734 * doc/gcov.texi: Document --verbose (-w) option.
10735
10736 2017-04-28 Martin Liska <mliska@suse.cz>
10737
10738 * gcov.c (struct block_location_info): New struct.
10739 (process_file): Fill up the new structure.
10740 (read_graph_file): Replace usage of encoding by the newly added
10741 struct.
10742 (add_line_counts): Likewise.
10743 (accumulate_line_counts): Remove usage of the union.
10744 (function_info::function_info): New function.
10745 (function_info::~function_info): Likewise.
10746 (process_file): Call delete instead of release_function.
10747 (release_function): Release the function.
10748 (release_structures): Call delete instead of release_function.
10749 (solve_flow_graph): Replace usage of num_blocks.
10750 (find_exception_blocks): Likewise.
10751 (output_lines): Fix GNU coding style.
10752
10753 2017-04-28 Martin Liska <mliska@suse.cz>
10754
10755 PR driver/56469
10756 * coverage.c (coverage_remove_note_file): New function.
10757 * coverage.h: Declare the function.
10758 * toplev.c (finalize): Clean if an error has been seen.
10759
10760 2017-04-28 Martin Liska <mliska@suse.cz>
10761
10762 PR gcov-profile/80031
10763 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
10764 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
10765 * gcov.c (read_graph_file): Read just number of blocks.
10766 * profile.c (branch_prob): Do not stream 0 flags per a basic
10767 block.
10768
10769 2017-04-28 Martin Liska <mliska@suse.cz>
10770
10771 * gcov-dump.c (tag_*): Add new argument to declarations.
10772 (dump_gcov_file): Likewise.
10773 (tag_blocks): Add and use new argument depth.
10774 (tag_arcs): Likewise.
10775 (tag_lines): Likewise.
10776 (tag_counters): Likewise.
10777 (tag_summary): Likewise.
10778 (dump_working_sets): Use depth to do a proper indentation.
10779
10780 2017-04-28 Jakub Jelinek <jakub@redhat.com>
10781
10782 PR bootstrap/80531
10783 * cgraph.h (symtab_node::debug_symtab): No longer inline.
10784 * symtab.c (symtab_node::debug_symtab): Move definition here.
10785
10786 2017-04-28 Richard Biener <rguenther@suse.de>
10787
10788 * lto-streamer.h (LTO_major_version): Bump to 7.
10789
10790 2017-04-28 Richard Biener <rguenther@suse.de>
10791
10792 * tree-vrp.c (assert_info): New struct.
10793 (add_assert_info): New helper.
10794 (register_edge_assert_for_2): Refactor to add asserts to a vector
10795 of assert_info.
10796 (register_edge_assert_for_1): Likewise.
10797 (register_edge_assert_for): Likewise.
10798 (finish_register_edge_assert_for): New helper actually registering
10799 asserts where live on edge.
10800 (find_conditional_asserts): Adjust.
10801 (find_switch_asserts): Likewise.
10802 (evrp_dom_walker::try_find_new_range): Generalize.
10803 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
10804
10805 2017-04-27 Marek Polacek <polacek@redhat.com>
10806
10807 PR sanitizer/80349
10808 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
10809 arg10 and arg11 to itype.
10810
10811 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
10812
10813 * doc/extend.texi (Object Size Checking): Improve grammar.
10814
10815 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
10816
10817 PR target/80530
10818 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
10819 that the logic for permitting reciprocal estimates matches that
10820 in use_rsqrt_p.
10821
10822 2017-04-27 Jakub Jelinek <jakub@redhat.com>
10823
10824 PR c++/80534
10825 * tree.c (type_cache_hasher::equal): Only compare
10826 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
10827 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
10828 non-aggregate element types.
10829 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
10830 about the flag on ARRAY_TYPEs in the comment, formatting fix.
10831
10832 2017-04-27 Richard Biener <rguenther@suse.de>
10833
10834 PR middle-end/80533
10835 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
10836 stripping ARRAY_REFs from MEM_EXPR make sure we're not
10837 keeping a reference to a trailing array.
10838
10839 2017-04-27 Richard Biener <rguenther@suse.de>
10840
10841 PR middle-end/80539
10842 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
10843 being in loop-closed SSA form conservatively.
10844 (chrec_fold_multiply_poly_poly): Likewise.
10845
10846 2017-04-27 Tamar Christina <tamar.christina@arm.com>
10847
10848 PR middle-end/79665
10849 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
10850 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
10851
10852 2017-04-27 Jakub Jelinek <jakub@redhat.com>
10853
10854 PR target/77728
10855 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
10856 (aarch64_function_arg_alignment): Return unsigned int again, but still
10857 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
10858 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
10859 Don't emit -Wpsabi note.
10860 (aarch64_function_arg_boundary): Likewise.
10861 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
10862 caller.
10863
10864 2017-04-26 Nathan Sidwell <nathan@acm.org>
10865
10866 * tree.h (crc32_unsigned_n): Declare.
10867 (crc32_unsigned, crc32_unsigned): Make inline.
10868 * tree.c (crc32_unsigned_bits): Replace with ...
10869 (crc32_unsigned_n): ... this.
10870 (crc32_unsigned, crc32_byte): Remove.
10871 (crc32_string): Remove unnecessary braces.
10872
10873 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
10874
10875 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
10876 * ipa-inline-analysis.c (MAX_TIME): Remove.
10877 (account_size_time): Use sreal for time.
10878 (dump_inline_summary): Update.
10879 (estimate_function_body_sizes): Update.
10880 (estimate_edge_size_and_time): Update.
10881 (estimate_calls_size_and_time): Update.
10882 (estimate_node_size_and_time): Update.
10883 (inline_merge_summary): Update.
10884 (inline_update_overall_summary): Update.
10885 (estimate_time_after_inlining): Update.
10886 (inline_read_section): Update.
10887 (inline_write_summary): Update.
10888 * ipa-inline.c (compute_uninlined_call_time): Update.
10889 (compute_inlined_call_time): Update.
10890 (recursive_inlining): Update.
10891 (inline_small_functions): Update.
10892 (dump_overall_stats): Update.
10893 * ipa-inline.h: Include sreal.h.
10894 (size_time_entry): Turn time to sreal.
10895 (inline_summary): Turn self_time nad time to sreal.
10896
10897 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
10898
10899 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
10900 data-streamer.h
10901 (sreal::stream_out, sreal::stream_in): New.
10902 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
10903
10904 2017-04-25 Jakub Jelinek <jakub@redhat.com>
10905
10906 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
10907 environment.
10908
10909 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
10910
10911 PR target/70799
10912 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
10913 Handle ASHIFTRT.
10914 (dimode_scalar_chain::compute_convert_gain): Ditto.
10915 (dimode_scalar_chain::make_vector_copies): Ditto.
10916 (dimode_scalar_chain::convert_reg): Ditto.
10917 (dimode_scalar_chain::convert_insn): Ditto.
10918 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
10919 (VI248_AVX512BW_1): New mode iterator.
10920 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
10921 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
10922 mode iterator.
10923
10924 2017-04-25 Martin Sebor <msebor@redhat.com>
10925
10926 PR tree-optimization/80497
10927 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
10928 constants are representable in HOST_WIDE_INT.
10929 (parse_directive): Ditto.
10930
10931 2017-04-25 Martin Sebor <msebor@redhat.com>
10932
10933 PR bootstrap/80486
10934 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
10935 (new_zero_array): Adjust signature.
10936 (dom_info::dom_init): Used unsigned rather that size_t.
10937 (dom_info::dom_info): Same.
10938
10939 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10940 Jakub Jelinek <jakub@redhat.com>
10941
10942 PR target/77728
10943 * config/arm/arm.c: Include gimple.h.
10944 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
10945 returns negative, increment ncrn only if it returned positive.
10946 (arm_needs_doubleword_align): Return int instead of bool,
10947 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
10948 members, but if there is any such non-FIELD_DECL
10949 > PARM_BOUNDARY aligned decl, return -1 instead of false.
10950 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
10951 returns negative, increment nregs only if it returned positive.
10952 (arm_setup_incoming_varargs): Likewise.
10953 (arm_function_arg_boundary): Emit -Wpsabi note if
10954 arm_needs_doubleword_align returns negative, return
10955 DOUBLEWORD_ALIGNMENT only if it returned positive.
10956
10957 2017-04-25 Marek Polacek <polacek@redhat.com>
10958
10959 PR sanitizer/80349
10960 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
10961 first argument to type.
10962
10963 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
10964
10965 PR target/80482
10966 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
10967 type checks to test for compatibility instead of equality.
10968
10969 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10970 Jakub Jelinek <jakub@redhat.com>
10971
10972 PR target/77728
10973 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
10974 type.
10975 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
10976 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
10977 the alignment computation, but return their maximum in warn_alignment.
10978 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
10979 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
10980 is smaller.
10981 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
10982 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
10983 caller.
10984
10985 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
10986
10987 * config/arc/simdext.md (dmpyh): Fix typo.
10988
10989 2017-04-25 Richard Biener <rguenther@suse.de>
10990
10991 PR tree-optimization/80492
10992 * alias.c (compare_base_decls): Handle registers with asm
10993 specification conservatively.
10994 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
10995 compare_base_decls returning dont-know properly.
10996
10997 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
10998
10999 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
11000 (legitimate_offset_address_p): New function.
11001 (arc_legitimate_address_p): Use above function.
11002
11003 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
11004
11005 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
11006
11007 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
11008
11009 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
11010 ACCH registers whenever they are available.
11011
11012 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
11013
11014 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
11015 double regs fix when not used.
11016
11017 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
11018
11019 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
11020 core registers.
11021 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
11022 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
11023
11024 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
11025
11026 * config/arc/arc.c (arc_output_addsi): Check for h-register class
11027 when emitting short ADD instructions.
11028
11029 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
11030
11031 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
11032 constraint.
11033 (cmpsi_cc_c_insn): Likewise.
11034 (cbranchsi4_scratch): Compute proper instruction length using
11035 compact_hreg_operand.
11036 * config/arc/predicates.md (compact_hreg_operand): New predicate.
11037
11038 2017-04-25 Richard Biener <rguenther@suse.de>
11039
11040 PR middle-end/80509
11041 * passes.c (pass_manager::pass_manager): Initialize
11042 m_name_to_pass_map.
11043
11044 2017-04-25 Richard Biener <rguenther@suse.de>
11045
11046 PR tree-optimization/79201
11047 * tree-ssa-sink.c (statement_sink_location): Handle calls.
11048
11049 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11050
11051 PR target/80464
11052 * config/s390/vector.md: Split MEM->GPR vector moves for
11053 non-s_operand addresses.
11054
11055 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11056
11057 PR target/79895
11058 * config/s390/predicates.md (reload_const_wide_int_operand): New
11059 predicate.
11060 * config/s390/s390.md ("movti"): Remove d/P alternative.
11061 ("movti_bigconst"): New pattern definition.
11062
11063 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
11064
11065 PR target/80080
11066 * s390-protos.h (s390_expand_cs_hqi): Removed.
11067 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
11068 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
11069 modes as well as CCZ1mode and CCZmode.
11070 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
11071 signature of s390_emit_compare_and_swap.
11072 (s390_expand_cs_hqi): Likewise, make static.
11073 (s390_expand_cs_tdsi): Generate an explicit compare before trying
11074 compare-and-swap, in some cases.
11075 (s390_expand_cs): Wrapper function.
11076 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
11077 atomic_exchange.
11078 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
11079 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
11080 patterns for small and large integers. Forbid symref memory operands.
11081 Move expander to s390.c. Require cc register.
11082 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
11083 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
11084 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
11085 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
11086 symref memory operands. Remove CC mode and call s390_match_ccmode
11087 instead.
11088 ("atomic_exchange<mode>"): Allow and implement all integer modes.
11089
11090 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
11091
11092 * config/s390/s390.md (define_peephole2): New peephole to help
11093 combining the load-and-test pattern with volatile memory.
11094
11095 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
11096
11097 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
11098 with CCZmode for TARGET_Z196.
11099
11100 2017-04-25 Jakub Jelinek <jakub@redhat.com>
11101
11102 PR rtl-optimization/80501
11103 * combine.c (make_compound_operation_int): Set subreg_code to SET
11104 even for AND with mask of the sign bit of mode.
11105
11106 PR rtl-optimization/80500
11107 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
11108 sum's initial value.
11109
11110 2017-04-25 Julian Brown <julian@codesourcery.com>
11111 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
11112
11113 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
11114
11115 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
11116
11117 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
11118
11119 2017-04-25 Julian Brown <julian@codesourcery.com>
11120 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
11121
11122 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
11123 (thunderx2t99_sha): New Reservation.
11124
11125 2017-04-25 Julian Brown <julian@codesourcery.com>
11126 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
11127
11128 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
11129 type for 1-element load.
11130
11131 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
11132
11133 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
11134
11135 2017-04-24 Martin Jambor <mjambor@suse.cz>
11136
11137 PR tree-optimization/80293
11138 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
11139 char arrays not totally scalarizable if it is false.
11140 (analyze_all_variable_accesses): Pass correct value in the new
11141 parameter. Add a statistics counter.
11142
11143 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
11144
11145 PR middle-end/79931
11146 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
11147
11148 2017-04-24 Richard Biener <rguenther@suse.de>
11149
11150 PR tree-optimization/80494
11151 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
11152 out for complex types.
11153
11154 2017-04-24 Richard Biener <rguenther@suse.de>
11155
11156 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
11157 * tree-ssa-sccvn.c (print_scc): Print SCC size.
11158 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
11159 (DFS): Adjust and never fail.
11160 (sccvn_dom_walker::fail): Remove.
11161 (sccvn_dom_walker::before_dom_children): Adjust.
11162 (run_scc_vn): Likewise and never fail.
11163 * tree-ssa-pre.c (pass_pre::execute): Adjust.
11164 (pass_fre::execute): Likewise.
11165
11166 2017-04-24 Richard Biener <rguenther@suse.de>
11167
11168 PR tree-optimization/79725
11169 * tree-ssa-sink.c (statement_sink_location): Return whether
11170 failure reason was zero uses. Move that check later.
11171 (sink_code_in_bb): Deal with zero uses by removing the stmt
11172 if possible.
11173
11174 2017-04-24 Richard Biener <rguenther@suse.de>
11175
11176 PR c++/2972
11177 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
11178 pointer-based references.
11179
11180 2017-04-24 Richard Biener <rguenther@suse.de>
11181
11182 PR bootstrap/79814
11183 * pass_manager.h (pass_manager::operator new): Remove.
11184 (pass_manager::operator delete): Likewise.
11185 * passes.c (pass_manager::operator new): Remove.
11186 (pass_manager::operator delete): Likewise.
11187 (pass_manager::pass_manager): Zero individual pass members.
11188
11189 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
11190
11191 PR target/70799
11192 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
11193 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
11194 Check "XEXP (src, 1)" operand here.
11195 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
11196 Check "XEXP (src, 1)" operand here.
11197 (dimode_scalar_chain::make_vector_copies): Detect count register
11198 of a shift instruction. Zero extend count register from QImode
11199 to DImode to satisfy vector shift pattern count operand predicate.
11200 Substitute vector shift count operand with a DImode copy.
11201 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
11202 vector register.
11203
11204 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
11205
11206 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
11207 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
11208 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
11209 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
11210 (UNSPEC_NOREX_MEM): Remove definition.
11211
11212 2017-04-21 Richard Biener <rguenther@suse.de>
11213
11214 PR tree-optimization/79547
11215 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
11216 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
11217 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
11218 without any constraints.
11219
11220 2017-04-21 Richard Biener <rguenther@suse.de>
11221
11222 PR tree-optimization/78847
11223 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
11224
11225 2017-04-21 Richard Biener <rguenther@suse.de>
11226
11227 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
11228 (build_distinct_type_copy): Likewise.
11229 (build_variant_type_copy): Likewise.
11230 * tree.c (build_qualified_type): Pass down mem-stat info.
11231 (build_distinct_type_copy): Likewise.
11232 (build_variant_type_copy): Likewise.
11233
11234 2017-04-21 Richard Biener <rguenther@suse.de>
11235
11236 PR tree-optimization/80237
11237 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
11238 defaulted to NULL.
11239 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
11240 for a simplified result.
11241
11242 2016-04-21 Richard Biener <rguenther@suse.de>
11243
11244 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
11245 sth as strict as a simple_iv but a chrec without symbols and an
11246 operand defined in the loop we are peeling (and not some subloop).
11247 (propagate_constants_for_unrolling): Propagate all constants.
11248
11249 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
11250
11251 PR target/79804
11252 * config/i386/i386.c (print_reg): Remove assert for disalowed
11253 regno values, call output_operand_lossage instead.
11254
11255 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
11256
11257 PR target/78090
11258 * config/i386/constraints.md (Yc): New register constraint.
11259 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
11260 Use Yc constraint for alternative 2 of operand 0. Remove
11261 preferred_for_speed attribute.
11262
11263 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
11264
11265 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
11266 lastprivate clauses in SIMT case.
11267
11268 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
11269
11270 * doc/invoke.texi (-Wextra-semi): Document new warning option.
11271
11272 2017-04-20 Richard Biener <rguenther@suse.de>
11273
11274 PR tree-optimization/57796
11275 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
11276 as N scalar stores.
11277 (vect_model_load_cost): Cost gathers as N scalar loads.
11278
11279 2017-04-20 Richard Biener <rguenther@suse.de>
11280
11281 * ggc-page.c (ggc_allocated_p): Rename to ...
11282 (safe_lookup_page_table_entry): ... this and return the lookup
11283 result.
11284 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
11285
11286 2017-04-20 Richard Biener <rguenther@suse.de>
11287
11288 PR tree-optimization/80453
11289 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
11290 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
11291 from the conditions.
11292 (vn_phi_eq): Pass them down.
11293 (vn_phi_lookup): Record them.
11294 (vn_phi_insert): Likewise.
11295
11296 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
11297
11298 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
11299 uninitialized variable warning to avoid buffer overrun.
11300
11301 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
11302
11303 PR other/71250
11304 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
11305 is suppressed for '{ 0 }' in C.
11306
11307 2017-04-20 Jakub Jelinek <jakub@redhat.com>
11308
11309 * BASE-VER: Set to 8.0.0.
11310
11311 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
11312
11313 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
11314 priority .init_array and .fini_array section with SECTION_NOTYPE
11315 flag.
11316
11317 2017-04-20 Jakub Jelinek <jakub@redhat.com>
11318
11319 PR middle-end/80423
11320 * tree.h (build_array_type): Add typeless_storage default argument.
11321 * tree.c (type_cache_hasher::equal): Also compare
11322 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
11323 (build_array_type): Add typeless_storage argument, set
11324 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
11325 recursive call.
11326 (build_nonshared_array_type): Adjust build_array_type_1 caller.
11327 (build_array_type): Likewise. Add typeless_storage argument.
11328
11329 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
11330 Jakub Jelinek <jakub@redhat.com>
11331
11332 PR tree-optimization/80426
11333 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
11334 operation on symbolic operands, also compute the overflow for the
11335 invariant part when the operation degenerates into a negation.
11336
11337 2017-04-19 Jakub Jelinek <jakub@redhat.com>
11338
11339 PR debug/80461
11340 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
11341 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
11342
11343 PR debug/80436
11344 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
11345
11346 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
11347
11348 PR target/80462
11349 * config/avr/avr.c (tree.h): Include it.
11350 (cgraph.h): Include it.
11351 (avr_encode_section_info): Don't warn for uninitialized progmem
11352 variable if it's just an alias.
11353
11354 2017-04-19 Richard Biener <rguenther@suse.de>
11355
11356 PR ipa/65972
11357 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
11358 when needed by AutoPGO.
11359
11360 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
11361
11362 PR lto/50345
11363 * doc/lto.texi: Remove an extra 'that'.
11364
11365 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
11366
11367 PR rtl-optimization/80429
11368 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
11369 are only used in debug insns.
11370
11371 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
11372 Vladimir Makarov <vmakarov@redhat.com>
11373
11374 * config/sparc/predicates.md (input_operand): Add comment. Return
11375 true for any memory operand when LRA is in progress.
11376 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
11377
11378 2017-04-18 Jeff Law <law@redhat.com>
11379
11380 PR target/74563
11381 * mips.md ({return,simple_return}_internal): Do not overwrite
11382 operands[0].
11383
11384 2017-04-18 Jakub Jelinek <jakub@redhat.com>
11385
11386 PR tree-optimization/80443
11387 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
11388 instead of adding 1, subtract -1 and similarly instead of subtracting
11389 1 add -1.
11390
11391 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
11392
11393 PR rtl-optimization/80357
11394 * haifa-sched.c (tmp_bitmap): New variable.
11395 (model_recompute): Handle duplicate use records.
11396 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
11397 (free_global_sched_pressure_data): Free it.
11398
11399 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
11400
11401 Revert:
11402 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
11403 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
11404 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
11405 instead of SYSTEM_HEADER_DIR.
11406
11407 2017-04-18 Jeff Law <law@redhat.com>
11408
11409 PR middle-end/80422
11410 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
11411 predecessors after walking up the insn chain.
11412
11413 2017-04-18 Jakub Jelinek <jakub@redhat.com>
11414
11415 PR debug/80263
11416 * dwarf2out.c (modified_type_die): Try harder not to emit internal
11417 sizetype type into debug info.
11418
11419 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
11420
11421 PR target/80099
11422 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
11423 unneeded test for TARGET_UPPER_REGS_SF.
11424 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
11425
11426 2017-04-18 Jakub Jelinek <jakub@redhat.com>
11427
11428 PR sanitizer/80444
11429 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
11430 instead of gsi_after_labels.
11431
11432 2017-04-18 Jeff Law <law@redhat.com>
11433
11434 * regcprop.c (maybe_mode_change): Avoid creating copies of the
11435 stack pointer.
11436
11437 Revert:
11438 2017-04-13 Jeff Law <law@redhat.com>
11439 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
11440 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
11441
11442 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
11443
11444 PR target/79453
11445 * config/avr/avr.c (intl.h): Include it.
11446 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
11447
11448 2017-04-18 Martin Liska <mliska@suse.cz>
11449
11450 PR gcov-profile/78783
11451 * gcov-tool.c (gcov_output_files): Validate that destination
11452 file is either removed by the tool or by a user.
11453
11454 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
11455 Guy Benyei <guybe@mellanox.com>
11456
11457 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
11458 block, and do not negate it, the stored id is already negative.
11459
11460 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
11461
11462 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
11463
11464 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11465
11466 PR target/80098
11467 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
11468 masks of options that should be turned off if the VSX vector
11469 options are turned off.
11470 (OTHER_P8_VECTOR_MASKS): Likewise.
11471 (OTHER_VSX_VECTOR_MASKS): Likewise.
11472 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
11473 rs6000_disable_incompatible_switches to validate no type switches
11474 like -mvsx.
11475 (rs6000_incompatible_switch): New function to disallow turning on
11476 other vector options if -mno-vsx, -mno-power8-vector, or
11477 -mno-power9-vector are specified.
11478
11479 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
11480
11481 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
11482
11483 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
11484
11485 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
11486 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
11487 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
11488 (ARG_POINTER_CFA_OFFSET): Likewise.
11489
11490 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
11491
11492 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
11493 conditions to take advantage of various optimizations.
11494
11495 2017-04-13 Jeff Law <law@redhat.com>
11496
11497 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
11498 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
11499 (zero_extendsidi2_dext): Likewise.
11500
11501 2017-04-13 Jakub Jelinek <jakub@redhat.com>
11502
11503 PR sanitizer/80403
11504 * fold-const.c (fold_ternary_loc): Revert
11505 use op0 instead of fold_convert_loc (loc, type, arg0) part of
11506 2017-04-12 change.
11507
11508 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
11509
11510 PR rtl-optimization/80343
11511 * lra-remat.c (update_scratch_ops): Assign original hard reg to
11512 new scratch pseudo.
11513
11514 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
11515
11516 PR sanitizer/80414
11517 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
11518 to ubsan_encode_value.
11519
11520 2017-04-13 Jeff Law <law@redhat.com>
11521
11522 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
11523 appearing in DEBUG_INSNs.
11524
11525 2017-04-13 Martin Liska <mliska@suse.cz>
11526
11527 PR gcov-profile/80413
11528 * gcov-io.c (gcov_write_string): Copy to buffer just when
11529 allocated size is greater than zero.
11530
11531 2017-04-13 Jakub Jelinek <jakub@redhat.com>
11532
11533 PR debug/80321
11534 * dwarf2out.c (decls_for_scope): Ignore declarations of
11535 current_function_decl in BLOCK_NONLOCALIZED_VARS.
11536
11537 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
11538
11539 PR lto/69953
11540 * ipa-visibility.c (non_local_p): Fix typos.
11541 (localize_node): When localizing symbol in same comdat group,
11542 dissolve the group only when we know external symbols are going
11543 to be privatized.
11544 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
11545
11546 2017-04-12 Jakub Jelinek <jakub@redhat.com>
11547
11548 PR tree-optimization/79390
11549 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
11550 order does not result in usable sequence, retry with reversed operand
11551 order.
11552
11553 PR sanitizer/80403
11554 PR sanitizer/80404
11555 PR sanitizer/80405
11556 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
11557 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
11558 op0 instead of fold_convert_loc (loc, type, arg0).
11559
11560 2017-04-12 Jeff Law <law@redhat.com>
11561
11562 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
11563 has a delay slot in the generated code.
11564
11565 * config/cris/cris.md (cris_preferred_reload_class): Return
11566 GENNONACR_REGS rather than GENERAL_REGS.
11567
11568 2017-04-12 Jakub Jelinek <jakub@redhat.com>
11569
11570 PR c/80163
11571 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
11572 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
11573 signedness of the result type.
11574
11575 2017-04-12 Richard Biener <rguenther@suse.de>
11576 Jeff Law <law@redhat.com>
11577
11578 PR tree-optimization/80359
11579 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
11580 trim stores to TARGET_MEM_REFs.
11581
11582 2017-04-12 Richard Biener <rguenther@suse.de>
11583
11584 PR tree-optimization/79390
11585 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
11586 threading case even more.
11587
11588 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
11589
11590 PR target/80382
11591 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
11592 for quad_address_p for TImode, instead of just not indexed_address.
11593
11594 2017-04-12 Richard Biener <rguenther@suse.de>
11595 Bernd Edlinger <bernd.edlinger@hotmail.de>
11596
11597 PR middle-end/79671
11598 * alias.c (component_uses_parent_alias_set_from): Handle
11599 TYPE_TYPELESS_STORAGE.
11600 (get_alias_set): Likewise.
11601 * tree-core.h (tree_type_common): Add typeless_storage flag.
11602 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
11603 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
11604 for types containing members with TYPE_TYPELESS_STORAGE.
11605 (place_field): Likewise.
11606 (layout_type): Likewise for ARRAY_TYPE.
11607 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
11608 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
11609 TYPE_TYPELESS_STORAGE.
11610 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
11611
11612 2017-04-12 Jakub Jelinek <jakub@redhat.com>
11613
11614 PR sanitizer/80349
11615 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
11616 first argument to type.
11617
11618 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11619
11620 PR target/80376
11621 PR target/80315
11622 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
11623 CONST0_RTX (mode) rather than const0_rtx where appropriate.
11624 (rs6000_expand_binop_builtin): Likewise.
11625 (rs6000_expand_ternop_builtin): Likewise; also add missing
11626 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
11627 vshasigma built-ins.
11628 * doc/extend.texi: Document that vec_xxpermdi's third argument
11629 must be a constant.
11630
11631 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
11632
11633 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
11634 Use shift_const cost parameter when calculating gain of STV shifts.
11635
11636 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
11637
11638 PR rtl-optimization/70478
11639 * lra-constraints.c (process_alt_operands): Check memory for
11640 disfavoring memory insn operand.
11641
11642 2017-04-11 Jakub Jelinek <jakub@redhat.com>
11643
11644 PR middle-end/80100
11645 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
11646 left shift in unsigned HOST_WIDE_INT type.
11647
11648 PR rtl-optimization/80385
11649 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
11650 (not (neg X)) into (plus X -1) for complex or non-integral modes.
11651
11652 PR libgomp/80394
11653 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
11654 if they have any depend clauses.
11655
11656 2017-04-11 Martin Liska <mliska@suse.cz>
11657
11658 PR ipa/80212
11659 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
11660 * ipa-split.c (split_function): Create a local comdat symbol
11661 if caller is in a comdat group.
11662
11663 2017-04-11 Martin Liska <mliska@suse.cz>
11664
11665 PR ipa/80212
11666 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
11667 flags.
11668
11669 2017-04-11 Martin Sebor <msebor@redhat.com>
11670
11671 PR middle-end/80364
11672 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
11673 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
11674 for INTEGER_TYPE.
11675 (directive::set_width, directive::set_precision, format_character):
11676 Adjust.
11677 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
11678 INTEGER_TYPE.
11679
11680 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
11681
11682 PR target/80389
11683 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
11684 conflict, set target->arch_name instead of target->cpu_name.
11685
11686 2017-04-11 Richard Biener <rguenther@suse.de>
11687
11688 PR tree-optimization/80374
11689 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
11690 build_zero_cst, remove fold_convertible_p check again.
11691
11692 2017-04-11 Martin Liska <mliska@suse.cz>
11693
11694 PR sanitizer/70878
11695 * ubsan.c (instrument_object_size): Do not instrument register
11696 variables.
11697
11698 2017-04-11 Jakub Jelinek <jakub@redhat.com>
11699
11700 PR target/80381
11701 * config/i386/i386-builtin-types.def
11702 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
11703 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
11704 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
11705 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
11706 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
11707 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
11708 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
11709 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
11710 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
11711 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
11712 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
11713 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
11714 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
11715 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
11716 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
11717 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
11718 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
11719 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
11720 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
11721 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
11722 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
11723 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
11724 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
11725 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
11726 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
11727 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
11728 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
11729 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
11730 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
11731 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
11732 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
11733 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
11734 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
11735 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
11736 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
11737 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
11738 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
11739 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
11740 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
11741 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
11742 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
11743 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
11744 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
11745 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
11746 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
11747 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
11748 aliases.
11749 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
11750 flag to second_arg_count, handle 4 argument function type _COUNT
11751 aliases, handle second_arg_count on second argument rather than last.
11752
11753 2017-04-10 Jeff Law <law@redhat.com>
11754
11755 PR tree-optimization/80374
11756 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
11757 record anything if we can not convert integer_zero_node to the
11758 desired type.
11759
11760 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
11761
11762 PR target/80108
11763 * config/rs6000/rs6000.c (rs6000_option_override_internal):
11764 Enhance special handling given to the TARGET_P9_MINMAX option in
11765 relation to certain other options.
11766
11767 2017-04-10 Bin Cheng <bin.cheng@arm.com>
11768
11769 PR tree-optimization/80153
11770 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
11771 remove POINTER_PLUS_EXPR's base part directly, rather than through
11772 aff_tree.
11773
11774 2017-04-10 Richard Biener <rguenther@suse.de>
11775 Bin Cheng <bin.cheng@arm.com>
11776
11777 PR tree-optimization/80153
11778 * tree-affine.c (aff_combination_to_tree): Get base pointer from
11779 the first element of pointer type aff_tree. Build result expr in
11780 aff_tree's type.
11781 (add_elt_to_tree): Convert to type unconditionally. Remove other
11782 fold_convert calls.
11783 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
11784 (rewrite_use_nonlinear_expr): Check invariant using iv information.
11785
11786 2017-04-10 Richard Biener <rguenther@suse.de>
11787
11788 * tree-ssa-structalias.c (find_func_aliases): Properly handle
11789 asm inputs.
11790
11791 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
11792
11793 PR rtl-optimization/70478
11794 * lra-constraints.c (curr_small_class_check): New.
11795 (update_and_check_small_class_inputs): New.
11796 (process_alt_operands): Update curr_small_class_check. Disfavor
11797 alternative insn memory operands. Check available regs for small
11798 class operands.
11799
11800 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
11801
11802 PR target/80057
11803 * config/mips/mips.opt (-mvirt): Update description.
11804 * doc/invoke.texi (-mvirt): Likewise.
11805
11806 2017-04-10 Richard Biener <rguenther@suse.de>
11807
11808 PR middle-end/80362
11809 * fold-const.c (fold_binary_loc): Look at unstripped ops when
11810 looking for NEGATE_EXPR in -A / -B to A / B folding.
11811
11812 2017-04-10 Martin Liska <mliska@suse.cz>
11813
11814 PR gcov-profile/80224
11815 * gcov.c (print_usage): Fix usage string.
11816 (get_gcov_intermediate_filename): Remove.
11817 (output_gcov_file): Use both for normal and intermediate format.
11818 (generate_results): Do not initialize special file for
11819 intermediate format.
11820
11821 2017-04-10 Richard Biener <rguenther@suse.de>
11822
11823 PR tree-optimization/80304
11824 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
11825 for safelen.
11826
11827 2017-04-10 Nathan Sidwell <nathan@acm.org>
11828
11829 PR target/79905
11830 * config/rs6000/rs6000.c (rs6000_vector_type): New.
11831 (rs6000_init_builtins): Use it.
11832
11833 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11834
11835 * config/arm/arm.md (<mrc>): Add mode to SET source.
11836 (<mrrc>): Likewise.
11837
11838 2017-04-10 Richard Biener <rguenther@suse.de>
11839
11840 PR middle-end/80344
11841 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
11842
11843 2017-04-10 Jakub Jelinek <jakub@redhat.com>
11844
11845 PR target/80324
11846 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
11847 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
11848 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
11849 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
11850 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
11851 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
11852 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
11853 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
11854 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
11855 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
11856 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
11857 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
11858 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
11859 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
11860 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
11861 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
11862 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
11863 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
11864 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
11865 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
11866 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
11867 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
11868 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
11869
11870 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
11871
11872 PR rtl-optimization/70478
11873 * lra-constraints.c: Reverse the last patch.
11874
11875 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
11876
11877 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
11878 Add comment for WCHAR_T.
11879
11880 2017-04-08 Martin Liska <mliska@suse.cz>
11881
11882 Revert:
11883 2017-04-07 Martin Liska <mliska@suse.cz>
11884
11885 PR ipa/80212
11886 * ipa-split.c (split_function): Add function part to a same comdat
11887 group.
11888
11889 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11890
11891 PR target/80358
11892 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
11893
11894 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
11895
11896 * rs6000/rs6000.c (vec_load_pendulum): Rename...
11897 (vec_pairing): ...to this.
11898 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
11899 (rs6000_sched_init): Adjust for name change.
11900 (struct rs6000_sched_context): Likewise.
11901 (rs6000_init_sched_context): Likewise.
11902 (rs6000_set_sched_context): Likewise.
11903
11904 2017-04-07 Jakub Jelinek <jakub@redhat.com>
11905
11906 PR target/80322
11907 PR target/80323
11908 PR target/80325
11909 PR target/80326
11910 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
11911 intrinsics.
11912 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
11913 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
11914 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
11915
11916 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
11917
11918 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
11919
11920 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
11921
11922 PR rtl-optimization/70703
11923 * ira-color.c (update_conflict_hard_regno_costs): Use
11924 int64_t instead of HOST_WIDE_INT.
11925
11926 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
11927
11928 PR rtl-optimization/70478
11929 * lra-constraints.c (process_alt_operands): Disfavor alternative
11930 insn memory operands.
11931
11932 2017-04-07 Jeff Law <law@redhat.com>
11933
11934 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
11935 CALL and NOTE_INSN_CALL_ARG_LOCATION.
11936
11937 2017-04-07 Martin Liska <mliska@suse.cz>
11938
11939 PR target/79889
11940 * config/aarch64/aarch64.c (aarch64_process_target_attr):
11941 Show error message instead of an ICE.
11942
11943 2017-04-07 Martin Liska <mliska@suse.cz>
11944
11945 PR ipa/80212
11946 * ipa-split.c (split_function): Add function part to a same comdat
11947 group.
11948
11949 2017-04-07 Richard Biener <rguenther@suse.de>
11950
11951 PR middle-end/80341
11952 * tree.c (get_unwidened): Also handle ! for_type case for
11953 INTEGER_CSTs.
11954 * convert.c (do_narrow): Split out from ...
11955 (convert_to_integer_1): ... here. Do not pass final truncation
11956 type to get_unwidened for TRUNC_DIV_EXPR.
11957
11958 2017-04-07 Richard Biener <rguenther@suse.de>
11959
11960 * tree-affine.c (wide_int_ext_for_comb): Take type rather
11961 than aff_tree.
11962 (aff_combination_const): Adjust.
11963 (aff_combination_scale): Likewise.
11964 (aff_combination_add_elt): Likewise.
11965 (aff_combination_add_cst): Likewise.
11966 (aff_combination_convert): Likewise.
11967 (add_elt_to_tree): Likewise. Remove unused argument.
11968 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
11969
11970 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
11971
11972 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
11973 definition.
11974 * config/arm/arm.c (arm_default_short_enums): Use
11975 ARM_DEFAULT_SHORT_ENUMS.
11976 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
11977
11978 2017-04-06 Jakub Jelinek <jakub@redhat.com>
11979
11980 PR debug/80234
11981 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
11982 members with redundant out-of-class redeclaration.
11983
11984 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
11985
11986 PR target/80286
11987 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
11988 * config/i386/i386.md (*zero_extendsidi2):
11989 Add (?*x,*x) and (?*v,*v) alternatives.
11990
11991 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
11992
11993 PR target/79733
11994 * config/i386/i386.c (ix86_expand_builtin)
11995 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
11996 mode from insn data. Convert operands to insn operand mode.
11997 Copy operands that don't satisfy insn predicate to a register.
11998
11999 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
12000
12001 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
12002 Update comments.
12003
12004 2017-04-06 Richard Biener <rguenther@suse.de>
12005
12006 PR tree-optimization/80334
12007 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
12008 preserve alignment of accesses.
12009
12010 2017-04-06 Richard Biener <rguenther@suse.de>
12011
12012 PR tree-optimization/80262
12013 * tree-sra.c (build_ref_for_offset): Preserve address-space
12014 information.
12015 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
12016 Drop useless address-space information on MEM_REF offsets.
12017
12018 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
12019
12020 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
12021
12022 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
12023
12024 PR rtl-optimization/70703
12025 * ira-color.c (update_conflict_hard_regno_costs): Use
12026 HOST_WIDE_INT instead of long.
12027
12028 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
12029
12030 PR target/80298
12031 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
12032 not defined for x86_64 target. Add -mmmx target option when __SSE2__
12033 is not defined.
12034 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
12035 for x86_64 target. Handle -m3dnowa option.
12036
12037 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
12038
12039 PR rtl-optimization/70703
12040 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
12041 (update_conflict_hard_regno_costs): Use long instead of unsigned
12042 arithmetic for cost calculation.
12043
12044 2017-04-05 Jakub Jelinek <jakub@redhat.com>
12045 Bernd Edlinger <bernd.edlinger@hotmail.de>
12046
12047 PR sanitizer/80308
12048 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
12049 for big endian.
12050
12051 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
12052
12053 PR target/78002
12054 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
12055 ptr_mode with Pmode throughout.
12056 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
12057 into probe_stack_range and use DImode.
12058
12059 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
12060
12061 PR target/79890
12062 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
12063 call_eh_return is true.
12064
12065 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12066
12067 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
12068 Initialize last_match_fntype_index.
12069
12070 2017-04-05 Jakub Jelinek <jakub@redhat.com>
12071
12072 PR target/80310
12073 * tree-nvr.c: Include internal-fn.h.
12074 (pass_return_slot::execute): Ignore internal calls without
12075 direct optab.
12076
12077 2017-04-04 Jakub Jelinek <jakub@redhat.com>
12078 Richard Biener <rguenther@suse.de>
12079
12080 PR c++/80297
12081 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
12082 captures used multiple times, except for the last use.
12083 * generic-match-head.c: Include gimplify.h.
12084
12085 2017-04-04 Jakub Jelinek <jakub@redhat.com>
12086
12087 PR tree-optimization/79390
12088 * target.h (struct noce_if_info): Declare.
12089 * targhooks.h (default_noce_conversion_profitable_p): Declare.
12090 * target.def (noce_conversion_profitable_p): New target hook.
12091 * ifcvt.h (struct noce_if_info): New type, moved from ...
12092 * ifcvt.c (struct noce_if_info): ... here.
12093 (noce_conversion_profitable_p): Renamed to ...
12094 (default_noce_conversion_profitable_p): ... this. No longer
12095 static nor inline.
12096 (noce_try_store_flag_constants, noce_try_addcc,
12097 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
12098 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
12099 instead of noce_conversion_profitable_p.
12100 * config/i386/i386.c: Include ifcvt.h.
12101 (ix86_option_override_internal): Don't override
12102 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
12103 (ix86_noce_conversion_profitable_p): New function.
12104 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
12105 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
12106 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
12107 * doc/tm.texi: Regenerated.
12108
12109 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12110
12111 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
12112 correction.
12113
12114 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
12115
12116 PR target/80307
12117 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
12118 instructions for small multiply cores.
12119
12120 2017-04-04 Jeff Law <law@redhat.com>
12121
12122 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
12123 added member.
12124 (mips_expand_vec_perm_const): Initialize elements in orig_perm
12125 that are not set by the loop over the elements.
12126
12127 2017-04-04 Jakub Jelinek <jakub@redhat.com>
12128
12129 PR target/80286
12130 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
12131 int mode, convert_modes it to mode as unsigned, otherwise use
12132 lowpart_subreg to mode rather than SImode.
12133 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
12134 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
12135 Use DImode instead of SImode for the shift count operand.
12136 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
12137 Likewise.
12138
12139 2017-04-04 Richard Biener <rguenther@suse.de>
12140
12141 PR middle-end/80281
12142 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
12143 arithmetic done for the negate or the plus. Simplify.
12144 (A - (-B) -> A + B): Likewise.
12145 * fold-const.c (split_tree): Make sure to not negate pointers.
12146
12147 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
12148
12149 PR rtl-optimization/60818
12150 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
12151 a compare of comparisons with the thing compared if this results
12152 in a different machine mode.
12153
12154 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
12155
12156 * alias.c (base_alias_check): Fix typo in comment.
12157 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
12158 * cgraphunit.c (symbol_table::compile): Likewise.
12159 * collect2.c (maybe_run_lto_and_relink): Likewise.
12160 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
12161 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
12162 * config/avr/avr.c (avr_map_op_t): Likewise.
12163 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
12164 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
12165 * config/epiphany/epiphany.md (movcc): Likewise.
12166 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
12167 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
12168 Likewise.
12169 * config/mips/mips.c (mips_save_restore_reg): Likewise.
12170 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
12171 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
12172 * config/sh/sh.c (sh_rtx_costs): Likewise.
12173 * fold-const.c (fold_truth_andor): Likewise.
12174 * genautomata.c (collapse_flag): Likewise.
12175 * gengtype.h (struct type::u::s): Likewise.
12176 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
12177 * input.c (FORMAT_AMOUNT): Likewise.
12178 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
12179 (known_aggs_to_agg_replacement_list): Likewise.
12180 * ipa-inline-analysis.c: Likewise.
12181 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
12182 * ipa-polymorphic-call.c
12183 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
12184 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
12185 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
12186 Likewise.
12187 * modulo-sched.c (apply_reg_moves): Likewise.
12188 * omp-expand.c (build_omp_regions_1): Likewise.
12189 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
12190 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
12191 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
12192 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
12193 * value-prof.c: Likewise.
12194 * var-tracking.c (val_reset): Likewise.
12195
12196 2017-04-03 Richard Biener <rguenther@suse.de>
12197
12198 PR tree-optimization/80275
12199 * fold-const.c (split_address_to_core_and_offset): Handle
12200 POINTER_PLUS_EXPR.
12201
12202 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
12203
12204 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
12205 descriptors is at least equal to that of functions.
12206
12207 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
12208
12209 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
12210
12211 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
12212
12213 PR target/80250
12214 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
12215 (mov<IMOD4:mode>): New expander.
12216 (*mov<IMOD4:mode>_internal): New insn and split pattern.
12217
12218 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
12219
12220 PR rtl-optimization/79405
12221 * fwprop.c (propagations_left): New variable.
12222 (forward_propagate_into): Decrement it.
12223 (fwprop_init): Initialize it.
12224 (fw_prop): If the variable has reached zero, stop propagating.
12225 (fwprop_addr): Ditto.
12226
12227 2017-03-31 Jakub Jelinek <jakub@redhat.com>
12228
12229 PR debug/79255
12230 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
12231 a FUNCTION_DECL, pass it as decl instead of origin to
12232 process_scope_var.
12233
12234 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
12235
12236 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
12237 string.
12238
12239 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
12240
12241 PR target/80107
12242 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
12243 TARGET_VSX_SMALL_INTEGER.
12244
12245 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12246
12247 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
12248 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
12249
12250 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
12251
12252 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
12253 extraction from odd-numbered MSA register.
12254
12255 2017-03-31 Jakub Jelinek <jakub@redhat.com>
12256
12257 PR middle-end/80173
12258 * expmed.c (store_bit_field_1): Don't attempt to create
12259 a word subreg out of hard registers wider than word if they
12260 have HARD_REGNO_NREGS of 1 for their mode.
12261
12262 PR middle-end/80163
12263 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
12264 conversions to integer types wider than word and pointer.
12265
12266 PR debug/80025
12267 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
12268 (rtx_equal_for_cselib_p): Pass 0 to it.
12269 * cselib.c (cselib_hasher::equal): Likewise.
12270 (rtx_equal_for_cselib_1): Add depth argument. If depth
12271 is 128, don't look up VALUE locs and punt. Increment
12272 depth in recursive calls when walking VALUE locs.
12273
12274 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
12275
12276 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
12277 (make_gcov_file_name): Use the canonical path name for generating
12278 the MD5 value.
12279 (read_line): Fix handling of files with ascii null bytes.
12280
12281 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
12282
12283 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
12284 to initialise a vector register instead
12285 of using a const_int.
12286
12287 2017-03-30 Jakub Jelinek <jakub@redhat.com>
12288
12289 PR translation/80189
12290 * gimplify.c (omp_default_clause): Use %qs instead of %s in
12291 diagnostic messages.
12292
12293 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
12294
12295 PR target/80246
12296 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
12297 (dfp_diex_<mode>): Update mode of operand 1.
12298 * doc/extend.texi (dxex, dxexq): Document change to return type.
12299 (diex, diexq): Document change to argument type.
12300
12301 2017-03-30 Martin Jambor <mjambor@suse.cz>
12302
12303 PR ipa/77333
12304 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
12305 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
12306 it reflects the signature changes performed at the callee side.
12307 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
12308 to cgraph_build_function_type_skip_args.
12309 (build_function_decl_skip_args): Adjust call to the above function.
12310
12311 2017-03-30 Jakub Jelinek <jakub@redhat.com>
12312
12313 PR target/80206
12314 * config/i386/sse.md
12315 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
12316 register as dest whenever it is a MEM not rtx_equal_p to the
12317 corresponding dup operand, and when forcing into reg move the
12318 reg into the memory afterwards.
12319 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
12320 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
12321 for the force_reg mode.
12322 (avx512vl_vextractf128<mode>): Use register as dest either
12323 always when a MEM, or when it is a MEM not rtx_equal_p to the
12324 corresponding dup operand, or even not when it is a CONST_VECTOR
12325 depending on the mode and lo vs. hi.
12326 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
12327 parens.
12328 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
12329 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
12330 Likewise. Require that operands[2] is even.
12331 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
12332 Remove extraneous parens. Require that operands[2] is a multiple
12333 of 4.
12334 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
12335 operands[0] is a MEM if <mask_applied>, the predicates/constraints
12336 disallow memory then.
12337
12338 2017-03-30 Richard Biener <rguenther@suse.de>
12339
12340 PR tree-optimization/77498
12341 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
12342 to non-constants over backedges.
12343
12344 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
12345
12346 PR rtl-optimization/80233
12347 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
12348 as last_combined_insn. Do not test for BARRIER_P separately.
12349
12350 2017-03-29 Andreas Schwab <schwab@suse.de>
12351
12352 PR ada/80146
12353 * calls.c (prepare_call_address): Convert funexp to Pmode before
12354 copying to temp reg.
12355
12356 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12357
12358 PR tree-optimization/80158
12359 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
12360 Handle possible future case of more than one alternate
12361 interpretation.
12362 (replace_rhs_if_not_dup): Likewise.
12363 (replace_one_candidate): Likewise.
12364
12365 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
12366
12367 PR rtl-optimization/80193
12368 * ira.c (ira): Do not check allocation for LRA.
12369
12370 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
12371
12372 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
12373 (nvptx_output_simt_exit): Declare.
12374 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
12375 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
12376 (init_softstack_frame): Move initialization of crtl->is_leaf to...
12377 (nvptx_declare_function_name): ...here. Emit declaration of local
12378 memory space buffer for omp_simt_enter insn.
12379 (nvptx_output_unisimt_switch): New.
12380 (nvptx_output_softstack_switch): New.
12381 (nvptx_output_simt_enter): New.
12382 (nvptx_output_simt_exit): New.
12383 * config/nvptx/nvptx.h (struct machine_function): New fields
12384 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
12385 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
12386 (UNSPECV_SIMT_EXIT): Ditto.
12387 (omp_simt_enter_insn): New insn.
12388 (omp_simt_enter): New expansion.
12389 (omp_simt_exit): New insn.
12390 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
12391
12392 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
12393 (expand_GOMP_SIMT_ENTER_ALLOC): New.
12394 (expand_GOMP_SIMT_EXIT): New.
12395 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
12396 (GOMP_SIMT_ENTER_ALLOC): Ditto.
12397 (GOMP_SIMT_EXIT): Ditto.
12398 * target-insns.def (omp_simt_enter): New insn.
12399 (omp_simt_exit): Ditto.
12400 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
12401 simt_dlist.
12402 (lower_rec_simd_input_clauses): Implement SIMT privatization.
12403 (lower_rec_input_clauses): Likewise.
12404 (lower_lastprivate_clauses): Handle SIMT privatization.
12405
12406 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
12407 (ompdevlow_adjust_simt_enter): New.
12408 (find_simtpriv_var_op): New.
12409 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
12410 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
12411
12412 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
12413 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
12414 (copy_decl_for_dup_finish): Ditto.
12415
12416 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
12417
12418 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
12419
12420 PR target/53383
12421 * config/i386/i386.c (ix86_option_override_internal): Always
12422 allow -mpreferred-stack-boundary=3 for 64-bit targets.
12423
12424 2017-03-28 Bin Cheng <bin.cheng@arm.com>
12425
12426 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
12427
12428 2017-03-28 Bin Cheng <bin.cheng@arm.com>
12429
12430 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
12431 mark new edge's irreducible flag accordign to it.
12432 (vect_do_peeling): Check loop preheader edge's irreducible flag
12433 and pass it to function slpeel_add_loop_guard.
12434
12435 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
12436
12437 PR tree-optimization/80218
12438 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
12439 Update block frequencies and counts.
12440
12441 2017-03-28 Richard Biener <rguenther@suse.de>
12442
12443 PR tree-optimization/78644
12444 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
12445 of a simplification result we may not use it at all.
12446
12447 2017-03-28 Richard Biener <rguenther@suse.de>
12448
12449 PR ipa/80205
12450 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
12451 without arguments, generate default definition of a SSA name.
12452
12453 2017-03-28 Richard Biener <rguenther@suse.de>
12454
12455 PR middle-end/80222
12456 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
12457 TYPE_REF_CAN_ALIAS_ALL references.
12458 * fold-const.c (fold_indirect_ref_1): Likewise.
12459
12460 2017-03-28 Martin Liska <mliska@suse.cz>
12461
12462 PR ipa/80104
12463 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
12464 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
12465
12466 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
12467 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
12468
12469 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
12470 (EXTRA_SPECS): Define.
12471 (SUBTARGET_EXTRA_SPECS): Likewise.
12472 (SUBTARGET_CPP_SPEC): Likewise.
12473 * config/arc/elf.h (EXTRA_SPECS): Renamed to
12474 SUBTARGET_EXTRA_SPECS.
12475 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
12476
12477 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
12478
12479 * config/arc/simdext.md (vst64_insn): Update pattern.
12480 (vld32wh_insn): Likewise.
12481 (vld32wl_insn): Likewise.
12482 (vld64_insn): Likewise.
12483 (vld32_insn): Likewise.
12484
12485 2017-03-28 Marek Polacek <polacek@redhat.com>
12486
12487 PR sanitizer/80067
12488 * fold-const.c (fold_comparison): Use protected_set_expr_location
12489 instead of SET_EXPR_LOCATION.
12490
12491 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
12492
12493 * tree.c (add_expr): Avoid name lookup warning.
12494
12495 2017-03-27 Jeff Law <law@redhat.com>
12496
12497 PR tree-optimization/80216
12498 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
12499 function name. Limit recursion depth.
12500 (record_temporary_equivalences): Corresponding changes.
12501
12502 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
12503
12504 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
12505 covered first.
12506
12507 2017-03-27 Jakub Jelinek <jakub@redhat.com>
12508
12509 PR target/80102
12510 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
12511 notes.
12512 * cfgcleanup.c (reg_note_cfa_p): New array.
12513 (insns_have_identical_cfa_notes): New function.
12514 (old_insns_match_p): Don't cross-jump in between /f
12515 and non-/f instructions. If both i1 and i2 are frame related,
12516 verify all CFA notes, their order and content.
12517
12518 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
12519
12520 PR target/78543
12521 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
12522 HImode and SImode with zero extend to DImode to one insn.
12523 (bswap<mode>2_extenddi): Likewise.
12524 (bswapsi2_extenddi): Likewise.
12525 (bswaphi2_extendsi): Likewise.
12526 (bswaphi2): Combine bswap HImode and SImode into one insn.
12527 Separate memory insns from swapping register.
12528 (bswapsi2): Likewise.
12529 (bswap<mode>2): Likewise.
12530 (bswaphi2_internal): Delete, no longer used.
12531 (bswapsi2_internal): Likewise.
12532 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
12533 store, and gpr<-gpr swap insns.
12534 (bswap<mode>2_store): Likewise.
12535 (bswaphi2_reg): Register only splitter, combine with the splitter.
12536 (bswaphi2 splitter): Likewise.
12537 (bswapsi2_reg): Likewise.
12538 (bswapsi2 splitter): Likewise.
12539 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
12540 the insns into load, store, and register/register insns.
12541 (bswapdi2_ldbrx): Likewise.
12542 (bswapdi2_load): Likewise.
12543 (bswapdi2_store): Likewise.
12544 (bswapdi2_reg): Likewise.
12545
12546 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
12547
12548 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
12549 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
12550
12551 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
12552
12553 PR target/80103
12554 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
12555 add comments.
12556 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
12557 special handling for target option conflicts between dform
12558 options (-mpower9-dform, -mpower9-dform-vector,
12559 -mpower9-dform-scalar) and -mno-direct-move.
12560
12561 2017-03-27 Richard Biener <rguenther@suse.de>
12562
12563 PR tree-optimization/80181
12564 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
12565
12566 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
12567
12568 * config/arc/predicates.md (move_double_src_operand): Replace the
12569 call to move_double_src_operand with a call to address_operand.
12570
12571 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
12572
12573 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
12574 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
12575 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
12576
12577 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
12578
12579 * config/arc/predicates.md (long_immediate_loadstore_operand):
12580 Consider scaled addresses cases.
12581
12582 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
12583
12584 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
12585 restored when in interrupt.
12586 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
12587 doesn't have delay slot.
12588
12589 2017-03-27 Richard Biener <rguenther@suse.de>
12590
12591 PR ipa/79776
12592 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
12593 inlined thunk clones.
12594
12595 2017-03-27 Jakub Jelinek <jakub@redhat.com>
12596
12597 PR sanitizer/80168
12598 * asan.c (instrument_derefs): Copy over last operand from
12599 original COMPONENT_REF to the new COMPONENT_REF with
12600 DECL_BIT_FIELD_REPRESENTATIVE.
12601 * ubsan.c (instrument_object_size): Likewise.
12602
12603 2017-03-27 Richard Biener <rguenther@suse.de>
12604
12605 PR tree-optimization/80170
12606 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
12607 sure DR/SCEV didnt fold in constants we do not see when looking
12608 at the reference base alignment.
12609
12610 2017-03-27 Richard Biener <rguenther@suse.de>
12611
12612 PR middle-end/80171
12613 * gimple-fold.c (fold_ctor_reference): Properly guard against
12614 NULL return value from canonicalize_constructor_val.
12615
12616 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
12617
12618 PR target/80180
12619 * config/i386/i386.c (ix86_expand_builtin)
12620 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
12621 flags reg setting and flags reg using instructions.
12622 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
12623 clobbering instructions to zero extend op2.
12624
12625 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
12626
12627 * doc/install.texi (Configuration) <--with-aix-soname>:
12628 Update link to AIX ld.
12629
12630 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
12631
12632 PR rtl-optimization/80160
12633 PR rtl-optimization/80159
12634 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
12635 reg_alternate_class into account.
12636
12637 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
12638
12639 PR target/80148
12640 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
12641 to consider in curr_insn_transform.
12642
12643 2017-03-24 Jakub Jelinek <jakub@redhat.com>
12644
12645 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
12646 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
12647 and emit_mode_inner.
12648
12649 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12650
12651 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
12652 argument to the overloaded builtin variants. Use the new flag to
12653 deprecate certain builtin variants.
12654 * config/s390/s390-builtin-types.def: Add new builtin types.
12655 * config/s390/s390-builtins.h: Support new flags field for
12656 overloaded builtins.
12657 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
12658 (s390_macro_to_expand): Enable vector float data type.
12659 (s390_cpu_cpp_builtins_internal): Indicate support of the new
12660 builtins by incrementing the __VEC__ version number.
12661 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
12662 vec_xst.
12663 (s390_resolve_overloaded_builtin): Emit error messages depending
12664 on the builtin flags.
12665 * config/s390/s390.c (s390_expand_builtin): Support additional
12666 flags argument. Change error message to match the messages
12667 emitted in s390-c.c.
12668 * config/s390/s390.md: New UNSPEC_* constants.
12669 (op_type): Add new instruction types.
12670 * config/s390/vecintrin.h: Add new builtins and test data class
12671 constants.
12672 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
12673 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
12674 (VEC_INEXACT, VEC_NOINEXACT): New constants.
12675 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
12676 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
12677 ("vec_mergel<mode>"): V_HW -> VEC_HW.
12678
12679 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
12680 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
12681 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
12682 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
12683
12684 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
12685 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
12686 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
12687 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
12688
12689 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
12690 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
12691 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
12692 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
12693 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
12694 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
12695 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
12696
12697 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
12698 ("vec_scatter_element<V_HW_4:mode>_DI")
12699 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
12700 ("vec_fpint<mode>", "vflls")
12701 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
12702 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
12703 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
12704 ("*vec_cmphe<mode>_cc"): ... these.
12705
12706 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
12707 mode constant instead of magic value.
12708
12709 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12710
12711 * config/s390/s390.c (s390_expand_vec_compare): Support other
12712 vector floating point modes than just V2DF.
12713 (s390_expand_vcond): Likewise.
12714 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
12715 (s390_cannot_change_mode_class): Prevent mode changes between TF
12716 and V1TF in vector registers.
12717 * config/s390/s390.md (DF, SF): New mode attributes.
12718 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
12719 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
12720 SFmode support for VRs.
12721 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
12722 vector fp modes.
12723 (VFT, VF_HW): New mode iterators.
12724 (vw, sdx): New mode attributes.
12725 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
12726 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
12727 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
12728 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
12729 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
12730 also the new vector floating point modes. Renaming to ...
12731
12732 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
12733 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
12734 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
12735 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
12736 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
12737 ("vec_unordered<mode>"): ... these.
12738
12739 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
12740 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
12741 ("*vec_extendv2df"): New insn definitions.
12742
12743 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12744
12745 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
12746 ("mulditi3_2", "*muldi3_sign"): New patterns.
12747 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
12748 rename the pattern definition.
12749
12750 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12751
12752 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
12753 expander.
12754 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
12755
12756 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12757
12758 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
12759 instruction if possible.
12760 * config/s390/vector.md (vec_halfnumelts): New mode
12761 attribute.
12762 ("*vec_vllezlf<mode>"): New pattern.
12763
12764 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12765
12766 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
12767 ("popcountv4si2", "popcountv2di2"): Rename to ...
12768 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
12769 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
12770 condition.
12771 ("popcount<mode>2_vxe"): New pattern.
12772
12773 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12774
12775 * common/config/s390/s390-common.c (processor_flags_table): Add
12776 arch12.
12777 * config.gcc: Add arch12.
12778 * config/s390/driver-native.c (s390_host_detect_local_cpu):
12779 Default to arch12 for unknown CPU model numbers.
12780 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
12781 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
12782 PROCESSOR_max sanity check.
12783 * config/s390/s390-opts.h (enum processor_type): Add
12784 PROCESSOR_ARCH12.
12785 * config/s390/s390.c (processor_table): Add arch12.
12786 (s390_expand_builtin): Add check for B_VXE flag.
12787 (s390_issue_rate): Add PROCESSOR_ARCH12.
12788 (s390_get_sched_attrmask): Likewise.
12789 (s390_get_unit_mask): Likewise.
12790 (s390_sched_score): Enable z13 scheduling for arch12.
12791 (s390_sched_reorder): Likewise.
12792 (s390_sched_variable_issue): Likewise.
12793 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
12794 PF_VXE.
12795 (s390_tune_attr): Use z13 scheduling also for arch12.
12796 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
12797 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
12798 (TARGET_VXE_P): New macros.
12799 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
12800 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
12801 * config/s390/s390.opt: Add arch12 as processor_type.
12802
12803 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12804
12805 * config/s390/s390.md
12806 ("fixuns_truncdddi2", "fixuns_trunctddi2")
12807 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
12808 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
12809
12810 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
12811 Rename expanders to ...
12812
12813 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
12814 ("fixuns_truncdddi2_emu"): ... these.
12815
12816 ("fixuns_trunc<mode>si2_emu"): New expander.
12817
12818 ("*fixuns_truncdfdi2_z13"): Rename to ...
12819 ("*fixuns_truncdfdi2_vx"): ... this.
12820
12821 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12822
12823 * config/s390/2964.md: Remove the single element vector compare
12824 instructions which are no longer used.
12825 * config/s390/s390.c (s390_select_ccmode): Remove handling of
12826 vector CCmodes.
12827 (s390_canonicalize_comparison): Remove handling of DFmode
12828 compares.
12829 (s390_expand_vec_compare_scalar): Remove function.
12830 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
12831 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
12832 pattern.
12833 ("*cmp<mode>_ccs"): Add wfcdb instruction.
12834
12835 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12836
12837 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
12838 FP zero.
12839 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
12840 will anyway by matched by mov<mode>_64dfp.
12841
12842 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12843
12844 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
12845 vlef/vstef. Add missing operand to vleif.
12846
12847 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12848
12849 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
12850 pair for all vector types with 64 bit elements.
12851 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
12852 * config/s390/vector.md (V_HW_64): ... here.
12853 (V_128_NOSINGLE): New mode iterator.
12854 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
12855 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
12856 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
12857 ("*vec_load_pairv2di"): Change to ...
12858 ("*vec_load_pair<mode>"): ... this one.
12859
12860 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12861
12862 * config/s390/constraints.md: Add comments.
12863 (jKK): Reject element sizes > 8 bytes.
12864 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
12865 s_operands.
12866 * config/s390/s390.md: Add the s_operand checks formerly in
12867 s390_split_ok_p to various splitters where they are still
12868 required.
12869 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
12870 for 128 bit vectors. Plus two splitters.
12871
12872 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12873
12874 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
12875 the file.
12876
12877 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12878
12879 PR target/79893
12880 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
12881 error if the boundary argument is not constant.
12882
12883 2017-03-24 Jakub Jelinek <jakub@redhat.com>
12884
12885 PR rtl-optimization/80112
12886 * loop-doloop.c (doloop_condition_get): Don't check condition
12887 if cmp isn't SET with IF_THEN_ELSE src.
12888
12889 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12890
12891 PR tree-optimization/80158
12892 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
12893 replacing a candidate statement, also replace it for the
12894 candidate's alternate interpretation.
12895 (replace_rhs_if_not_dup): Likewise.
12896 (replace_one_candidate): Likewise.
12897
12898 2017-03-24 Richard Biener <rguenther@suse.de>
12899
12900 PR tree-optimization/80167
12901 * graphite-isl-ast-to-gimple.c
12902 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
12903 properly.
12904 (translate_isl_ast_to_gimple::get_rename): Likewise.
12905
12906 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
12907
12908 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
12909 handling of certain combinations of target options, including the
12910 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
12911 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
12912
12913 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12914
12915 PR target/71436
12916 * config/arm/arm.md (*load_multiple): Add reload_completed to
12917 matching condition.
12918
12919 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12920 Richard Biener <rguenth@suse.de>
12921
12922 PR tree-optimization/79908
12923 PR tree-optimization/80136
12924 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
12925 been cast away, gimplify_and_add suffices.
12926
12927 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
12928
12929 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
12930
12931 2017-03-23 Richard Biener <rguenther@suse.de>
12932
12933 PR tree-optimization/80032
12934 * gimplify.c (gimple_push_cleanup): Forced unconditional
12935 cleanups still have to go to the conditional_cleanups
12936 sequence.
12937
12938 2017-03-22 Jakub Jelinek <jakub@redhat.com>
12939
12940 PR tree-optimization/80072
12941 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
12942 to unsigned int.
12943 (next_operand_entry_id): Change type to unsigned int.
12944 (sort_by_operand_rank): Make sure to return the right return value
12945 even if unsigned fields are bigger than INT_MAX.
12946 (struct oecount): Change cnt and id type to unsigned int.
12947 (oecount_hasher::equal): Formatting fix.
12948 (oecount_cmp): Make sure to return the right return value
12949 even if unsigned fields are bigger than INT_MAX.
12950 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
12951
12952 PR c++/80129
12953 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
12954 TREE_READONLY on result if writing it more than once.
12955
12956 PR sanitizer/80110
12957 * doc/invoke.texi (-fsanitize=thread): Document that with
12958 -fnon-call-exceptions atomics are not able to throw
12959 exceptions.
12960
12961 PR sanitizer/80110
12962 * tsan.c: Include tree-eh.h.
12963 (instrument_builtin_call): Call maybe_clean_eh_stmt or
12964 maybe_clean_or_replace_eh_stmt where needed.
12965 (instrument_memory_accesses): Add cfg_changed argument.
12966 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
12967 if it returned true.
12968 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
12969
12970 PR rtl-optimization/63191
12971 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
12972 wrapper function, moved the whole old content into ...
12973 (ix86_delegitimize_address_1): ... this. New inline function.
12974 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
12975 true as last argument instead of ix86_delegitimize_address.
12976
12977 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
12978
12979 * config/aarch64/aarch64.c (generic_branch_cost): Copy
12980 cortexa57_branch_cost.
12981
12982 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
12983
12984 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
12985
12986 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12987
12988 PR target/80123
12989 * doc/md.texi (Constraints): Document wA constraint.
12990 * config/rs6000/constraints.md (wA): New.
12991 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
12992 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
12993 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
12994 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
12995
12996 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
12997
12998 PR c++/80029
12999 * gimplify.c (is_oacc_declared): New function.
13000 (oacc_default_clause): Use it to set default flags for acc declared
13001 variables inside parallel regions.
13002 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
13003 declared variables.
13004 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
13005 declare attribute to any decl as necessary.
13006
13007 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
13008
13009 PR target/80082
13010 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
13011 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
13012 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
13013 (arm_arch_lpae): This.
13014 * config/arm/arm.c (arm_arch7ve): Rename into ...
13015 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
13016 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
13017 arm_arch_lpae.
13018
13019 2017-03-22 Martin Liska <mliska@suse.cz>
13020
13021 PR target/79906
13022 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
13023 error message instead of an ICE.
13024
13025 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13026
13027 * doc/extend.texi (6.11 Additional Floating Types): Revise.
13028
13029 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
13030
13031 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
13032 comments.
13033 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
13034 comments.
13035
13036 2017-03-21 Martin Sebor <msebor@redhat.com>
13037
13038 * doc/extend.texi: Use "cannot" instead of "can't."
13039 * doc/hostconfig.texi: Same.
13040 * doc/install.texi: Same.
13041 * doc/invoke.texi: Same.
13042 * doc/loop.texi: Same.
13043 * doc/md.texi: Same.
13044 * doc/objc.texi: Same.
13045 * doc/rtl.texi: Same.
13046 * doc/tm.texi: Same.
13047 * doc/tm.texi.in: Same.
13048 * doc/trouble.texi: Same.
13049
13050 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
13051
13052 PR debug/63238
13053 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
13054 (collect_checksum_attributes): Set it.
13055 (die_checksum_ordered): Use it.
13056
13057 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13058
13059 PR tree-optimization/79908
13060 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
13061 change: For a VA_ARG whose LHS has been cast away, use
13062 force_gimple_operand to construct the side effects.
13063
13064 2017-03-21 David Malcolm <dmalcolm@redhat.com>
13065
13066 PR translation/80001
13067 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
13068 more amenable to translation.
13069 (oacc_loop_auto_partitions): Likewise.
13070
13071 2017-03-21 Marek Polacek <polacek@redhat.com>
13072 Martin Sebor <msebor@redhat.com>
13073
13074 PR tree-optimization/80109
13075 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
13076 on INTEGRAL_TYPE_P.
13077
13078 2017-03-21 Jakub Jelinek <jakub@redhat.com>
13079 Segher Boessenkool <segher@kernel.crashing.org>
13080
13081 PR target/80125
13082 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
13083 check reg_used_between_p between insn and one of succ or succ2
13084 depending on if succ is artificial insn not inserted into insn
13085 stream.
13086
13087 2017-03-21 Martin Liska <mliska@suse.cz>
13088
13089 PR gcov-profile/80081
13090 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
13091 * doc/gcc.texi: Include gcov-dump stuff.
13092 * doc/gcov-dump.texi: New file.
13093
13094 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
13095
13096 PR rtl-optimization/79150
13097 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
13098 conditional jump, if the jump is the last insn of the loop.
13099
13100 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13101 Richard Biener <rguenth@suse.de>
13102
13103 PR tree-optimization/79908
13104 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
13105 been cast away, use force_gimple_operand to construct the side
13106 effects.
13107
13108 2017-03-21 Martin Liska <mliska@suse.cz>
13109
13110 PR libfortran/79956
13111 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
13112 to NULL.
13113
13114 2017-03-21 Brad Spengler <spender@grsecurity.net>
13115
13116 PR plugins/80094
13117 * plugin.c (htab_hash_plugin): New function.
13118 (add_new_plugin): Use it and adjust.
13119 (parse_plugin_arg_opt): Adjust.
13120 (init_one_plugin): Likewise.
13121
13122 2017-03-21 Richard Biener <rguenther@suse.de>
13123
13124 PR tree-optimization/80032
13125 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
13126 if set force the cleanup to happen unconditionally.
13127 (gimplify_target_expr): Push inserted clobbers with force_uncond
13128 to avoid them being removed by control-dependent DCE.
13129
13130 2017-03-21 Richard Biener <rguenther@suse.de>
13131
13132 PR tree-optimization/80122
13133 * tree-inline.c (copy_bb): Do not expans va-arg packs or
13134 va_arg_pack_len when the inlined call stmt requires pack
13135 expansion itself.
13136 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
13137
13138 2017-03-21 Jakub Jelinek <jakub@redhat.com>
13139
13140 PR sanitizer/78158
13141 * tsan.c (instrument_builtin_call): If the memory model argument
13142 is not a constant, assume it is valid.
13143
13144 PR c/67338
13145 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
13146 avoid UB.
13147
13148 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
13149
13150 PR rtl-optimization/79910
13151 * combine.c (can_combine_p): Do not allow combining an I0 or I1
13152 if its dest is used by an insn before I2 (other than the combined
13153 insns themselves, which are properly handled already).
13154
13155 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
13156
13157 Revert:
13158 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
13159
13160 * combine.c (record_used_regs): New static function.
13161 (try_combine): Handle situations where there is an additional
13162 instruction between I2 and I3 which needs to have a LOG_LINK
13163 updated.
13164
13165 Revert:
13166 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
13167
13168 * combine.c (try_combine): Delete redundant i1 test. Call
13169 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
13170
13171 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13172
13173 PR target/80083
13174 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
13175 alternatives 13/14.
13176
13177 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13178
13179 PR tree-optimization/80054
13180 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
13181 the optimization if a PHI or any of its arguments is not dominated
13182 by the candidate's basis. Use gphi* rather than gimple* as
13183 appropriate.
13184 (replace_profitable_candidates): Clean up a gimple* variable that
13185 should be a gphi* variable.
13186
13187 2017-03-20 Martin Sebor <msebor@redhat.com>
13188
13189 PR c++/52477
13190 * doc/extend.texi (attribute constructor): Document present limitation.
13191
13192 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
13193
13194 PR target/79963
13195 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
13196 __POWER9_VECTOR__ #ifdef control, change template definition to
13197 use Power9-specific built-in function.
13198 (vec_any_eq): Likewise.
13199 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
13200 to control outcomes from this test.
13201 (vector_ae_<mode>p): For VEC_F modes, likewise.
13202
13203 2017-03-20 Ian Lance Taylor <iant@google.com>
13204
13205 * config/i386/i386.c (ix86_function_regparm): Save an extra
13206 register for -fsplit-stack with DECL_STATIC_CHAIN.
13207
13208 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
13209
13210 PR target/79912
13211 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
13212 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
13213
13214 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
13215
13216 * config/riscv/riscv.c (riscv_print_operand): Use "fence
13217 iorw,ow".
13218 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
13219 iorw,iorw".
13220
13221 2017-03-20 Marek Polacek <polacek@redhat.com>
13222
13223 PR sanitizer/80063
13224 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
13225
13226 2017-03-20 Richard Biener <rguenther@suse.de>
13227
13228 PR tree-optimization/80113
13229 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
13230 allocate extra SSA name for PHI def.
13231 (add_close_phis_to_outer_loops): Likewise.
13232 (add_close_phis_to_merge_points): Likewise.
13233 (copy_loop_close_phi_args): Likewise.
13234 (copy_cond_phi_nodes): Likewise.
13235
13236 2017-03-20 Martin Liska <mliska@suse.cz>
13237
13238 PR middle-end/79753
13239 * tree-chkp.c (chkp_build_returned_bound): Do not build
13240 returned bounds for a LHS that's not a BOUNDED_P type.
13241
13242 2017-03-20 Martin Liska <mliska@suse.cz>
13243
13244 PR target/79769
13245 PR target/79770
13246 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
13247 COMPLEX_CST and VECTOR_CST.
13248
13249 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13250
13251 PR target/78857
13252 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
13253 target operand. A new splitter adds the clobber statement in case
13254 the target operand is dead anyway.
13255
13256 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
13257
13258 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
13259 to age-old versions of binutils and glibc.
13260
13261 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
13262
13263 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
13264
13265 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
13266
13267 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
13268
13269 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
13270
13271 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
13272 requirement for binutils 2.13.
13273
13274 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
13275
13276 * combine.c (try_combine): Delete redundant i1 test. Call
13277 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
13278
13279 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
13280
13281 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
13282 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
13283 contents.
13284 <riscv64-*-elf>: Re-arrange section
13285 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
13286 <riscv32-*-linux>: Likewise.
13287 <riscv64-*-elf>: Likewise
13288 <riscv64-*-linux>: Likewise.
13289
13290 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
13291
13292 PR target/80052
13293 * aarch64.opt(verbose-cost-dump): Fix typo.
13294
13295 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
13296
13297 PR target/79951
13298 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
13299 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
13300
13301 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
13302
13303 * reload.c (find_reloads): When reloading a nonoffsettable address,
13304 use RELOAD_OTHER for it and its address reloads.
13305
13306 PR rtl-optimization/79910
13307 * combine.c (record_used_regs): New static function.
13308 (try_combine): Handle situations where there is an additional
13309 instruction between I2 and I3 which needs to have a LOG_LINK
13310 updated.
13311
13312 2017-03-17 Jeff Law <law@redhat.com>
13313
13314 PR tree-optimization/71437
13315 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
13316 conditional in the hash table first.
13317 (vrp_dom_walker::before_dom_children): Extract condition from
13318 ASSERT_EXPR. Record condition, its inverion and any implied
13319 conditions as well.
13320
13321 2017-03-17 Marek Polacek <polacek@redhat.com>
13322 Markus Trippelsdorf <markus@trippelsdorf.de>
13323
13324 PR tree-optimization/80079
13325 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
13326 m_stores_head.
13327
13328 2017-03-17 Richard Biener <rguenther@suse.de>
13329
13330 PR middle-end/80075
13331 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
13332 Properly verify the LHS before the RHS possibly claims to be
13333 handled.
13334 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
13335 do not throw.
13336
13337 2017-03-17 Martin Jambor <mjambor@suse.cz>
13338
13339 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
13340 (List of -O2 options): Likewise.
13341 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
13342 (-fipa-vrp) New.
13343
13344 2017-03-17 Tom de Vries <tom@codesourcery.com>
13345
13346 * gcov-dump.c (print_usage): Print bug_report_url.
13347
13348 2017-03-17 Richard Biener <rguenther@suse.de>
13349
13350 PR middle-end/80050
13351 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
13352 (parser::peek): Likewise.
13353
13354 2017-03-17 Richard Biener <rguenther@suse.de>
13355
13356 PR tree-optimization/80048
13357 * sese.c (free_sese_info): Properly release rename_map and
13358 copied_bb_map elements.
13359
13360 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
13361
13362 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
13363 Add linked-list forward and backlinks. Insert on
13364 construction, remove on destruction.
13365 (class pass_store_merging): Add m_stores_head field.
13366 (pass_store_merging::terminate_and_process_all_chains):
13367 Iterate over m_stores_head list.
13368 (pass_store_merging::terminate_all_aliasing_chains):
13369 Likewise.
13370 (pass_store_merging::execute): Check for debug stmts first.
13371 Push new chains onto the m_stores_head stack.
13372
13373 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
13374
13375 PR target/71294
13376 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
13377 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
13378 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
13379
13380 2017-03-16 Jeff Law <law@redhat.com>
13381
13382 PR tree-optimization/71437
13383 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
13384 member function. Implementation moved into after_dom_children
13385 member function and into the threader's thread_outgoing_edges
13386 function.
13387 (dom_opt_dom_walker::after_dom_children): Simplify by moving
13388 some code into new thread_outgoing_edges.
13389 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
13390 definition. Simplify marker handling (do it here). Assume we always
13391 have the available expression and the const/copies tables.
13392 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
13393 and tree-vrp.c
13394 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
13395 * tree-vrp.c (equiv_stack): No longer file scoped.
13396 (vrp_dom_walker): New class.
13397 (vrp_dom_walker::before_dom_children): New member function.
13398 (vrp_dom_walker::after_dom_children): Likewise.
13399 (identify_jump_threads): Setup domwalker. Use it rather than
13400 walking edges in a random order by hand. Simplify setup/finalization.
13401 (finalize_jump_threads): Remove.
13402 (vrp_finalize): Do not call identify_jump_threads here.
13403 (execute_vrp): Do it here instead and call thread_through_all_blocks
13404 here too.
13405
13406 PR tree-optimization/71437
13407 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
13408 callers changed.
13409 (simplify_stmt_for_jump_threading): Add basic_block argument. All
13410 callers changed.
13411 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
13412 (dom_opt_dom_walker::thread_across_edge): Remove
13413 handle_dominating_asserts argument. All callers changed.
13414 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
13415 changes. Remove calls to lhs_of_dominating_assert. Other
13416 uses of handle_dominating_asserts turn into unconditional code
13417 (simplify_control_stmt_condition_1): Likewise.
13418 (simplify_control_stmt_condition): Likewise.
13419 (thread_through_normal_block, thread_across_edge): Likewise.
13420 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
13421 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
13422 object if it is not an SSA_NAME.
13423 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
13424 before calling into the VRP specific simplifiers.
13425 (identify_jump_threads): Remove handle_dominating_asserts
13426 argument.
13427
13428 2017-03-16 Jakub Jelinek <jakub@redhat.com>
13429
13430 PR fortran/79886
13431 * tree-diagnostic.c (default_tree_printer): No longer static.
13432 * tree-diagnostic.h (default_tree_printer): New prototype.
13433
13434 2017-03-16 Tamar Christina <tamar.christina@arm.com>
13435
13436 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
13437 Change ins into fmov.
13438
13439 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13440
13441 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
13442 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
13443 Use h_con constraint for operand 1.
13444 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
13445 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
13446
13447 2017-03-15 Jeff Law <law@redhat.com>
13448
13449 PR tree-optimization/71437
13450 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
13451 (record_temporary_equivalences): Use it.
13452
13453 PR tree-optimization/71437
13454 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
13455 tree-ssa-scopedtables.
13456 (lookup_avail_expr, build_and_record_new_cond): Likewise.
13457 (record_conditions, record_cond, vuse_eq): Likewise.
13458 (record_edge_info): Adjust to API tweak of record_conditions.
13459 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
13460 (record_temporary_equivalences, optimize_stmt): Likewise.
13461 (eliminate_redundant_computations): Likewise.
13462 (record_equivalences_from_stmt): Likewise.
13463 * tree-ssa-scopedtables.c: Include options.h and params.h.
13464 (vuse_eq): New function, moved from tree-ssa-dom.c
13465 (build_and_record_new_cond): Likewise.
13466 (record_conditions): Likewise. Accept vector of conditions rather
13467 than edge_equivalence structure for first argument.
13468 for the first argument.
13469 (avail_exprs_stack::lookup_avail_expr): New member function, moved
13470 from tree-ssa-dom.c.
13471 (avail_exprs_stack::record_cond): Likewise.
13472 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
13473 from tree-ssa-dom.c.
13474 (avail_exprs_stack): Add new member functions lookup_avail_expr
13475 and record_cond.
13476 (record_conditions): Declare.
13477
13478 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
13479
13480 PR target/80017
13481 * lra-constraints.c (process_alt_operands): Increase reject for
13482 reloading an input/output operand.
13483
13484 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
13485
13486 PR target/79038
13487 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
13488 insns to convert from signed/unsigned char/short to IEEE 128-bit
13489 floating point.
13490 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
13491
13492 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
13493
13494 PR target/80019
13495 * config/i386/i386.c (ix86_vector_duplicate_value): Create
13496 subreg of inner mode for values already in registers.
13497
13498 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
13499
13500 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
13501 iteration reg is used after the loop.
13502
13503 2017-03-14 Martin Sebor <msebor@redhat.com>
13504
13505 PR tree-optimization/79800
13506 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
13507 precision in negative-positive range.
13508 (format_floating): Call non-const overload with adjusted precision.
13509
13510 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
13511
13512 PR target/79947
13513 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
13514 -mpowerpc-gfxopt.
13515
13516 2017-03-14 Martin Sebor <msebor@redhat.com>
13517
13518 PR middle-end/80020
13519 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
13520 * builtins.def (aligned_alloc): Use it.
13521
13522 PR c/79936
13523 * Makefile.in (GTFILES): Add calls.c.
13524 * calls.c: Include "gt-calls.h".
13525
13526 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
13527
13528 PR rtl-optimization/79728
13529 * regs.h (struct target_regs): New field
13530 x_contains_allocatable_regs_of_mode.
13531 (contains_allocatable_regs_of_mode): New macro.
13532 * reginfo.c (init_reg_sets_1): Initialize it, and change
13533 contains_reg_of_mode so it includes global regs as well.
13534 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
13535 rather than contains_regs_of_mode.
13536
13537 2017-03-14 Martin Liska <mliska@suse.cz>
13538
13539 * doc/invoke.texi: Document options that can't be combined with
13540 -fcheck-pointer-bounds.
13541
13542 2017-03-14 Martin Liska <mliska@suse.cz>
13543
13544 PR middle-end/79831
13545 * doc/invoke.texi (-Wchkp): Document the option.
13546
13547 2017-03-14 Martin Liska <mliska@suse.cz>
13548
13549 * Makefile.in: Install gcov-dump.
13550
13551 2017-03-14 Martin Liska <mliska@suse.cz>
13552
13553 * multiple_target.c (expand_target_clones): Bail out for
13554 an invalid attribute.
13555
13556 2017-03-14 Richard Biener <rguenther@suse.de>
13557
13558 * alias.c (struct alias_set_entry): Pack properly.
13559 * cfgloop.h (struct loop): Likewise.
13560 * cse.c (struct set): Likewise.
13561 * ipa-utils.c (struct searchc_env): Likewise.
13562 * loop-invariant.c (struct invariant): Likewise.
13563 * lra-remat.c (struct cand): Likewise.
13564 * recog.c (struct change_t): Likewise.
13565 * rtl.h (struct address_info): Likewise.
13566 * symbol-summary.h (function_summary): Likewise.
13567 * tree-loop-distribution.c (struct partition): Likewise.
13568 * tree-object-size.c (struct object_size_info): Likewise.
13569 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
13570 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
13571 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
13572 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
13573 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
13574 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
13575 (struct _stmt_vec_info): Likewise.
13576
13577 2017-03-14 Martin Liska <mliska@suse.cz>
13578
13579 PR target/79892
13580 * multiple_target.c (create_dispatcher_calls): Check that
13581 a target can create a function dispatcher.
13582
13583 2017-03-14 Martin Liska <mliska@suse.cz>
13584
13585 PR lto/66295
13586 * multiple_target.c (expand_target_clones): Drop local.local
13587 flag for default implementation.
13588
13589 2017-03-14 Richard Biener <rguenther@suse.de>
13590
13591 PR tree-optimization/80030
13592 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
13593
13594 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
13595
13596 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
13597 gcc_fallthrough() instead of __attribute__((fallthrough));
13598
13599 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
13600
13601 * doc/gcc.texi: Remove "up" link to (DIR).
13602 * doc/gccint.texi: Ditto.
13603
13604 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
13605
13606 * doc/install.texi (Specific) <avr>: Remove reference to
13607 binutils 2.13.
13608
13609 2017-03-13 Jeff Law <law@redhat.com>
13610
13611 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
13612 attribute rather than comments.
13613
13614 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
13615 match_scratch operand is highest.
13616
13617 2017-03-13 Martin Liska <mliska@suse.cz>
13618
13619 PR middle-end/78339
13620 * ipa-pure-const.c (warn_function_noreturn): If the declarations
13621 is a CHKP clone, use original declaration.
13622
13623 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
13624
13625 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
13626 (arc_conditional_register_usage): Use a different allocation order
13627 when optimizing for size.
13628 * common/config/arc/arc-common.c (arc_option_optimization_table):
13629 Section anchors default on when optimizing for size.
13630
13631 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
13632
13633 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
13634
13635 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
13636
13637 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
13638 * config/arc/arc.md (cpu_facility): Add cd variant.
13639 (*movqi_insn): Add code density variant.
13640 (*movhi_insn): Likewise.
13641 (*movqi_insn): Likewise.
13642 (*addsi3_mixed): Likewise.
13643 (subsi3_insn): Likewise.
13644
13645 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
13646
13647 * config/arc/arc.md (movsi_cond_exec): Update constraint.
13648
13649 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
13650
13651 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
13652 expressions with MINUS and UNARY ops.
13653
13654 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13655
13656 PR target/79911
13657 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
13658 Rename to...
13659 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
13660 between vec_select and vector argument.
13661 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
13662 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
13663 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
13664 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
13665 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
13666 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
13667
13668 2017-03-13 Richard Biener <rguenther@suse.de>
13669
13670 PR other/79991
13671 * params.def (vect-max-peeling-for-alignment): Fix typo.
13672
13673 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
13674
13675 * doc/install.texi (Specific) <mips-*-*>: Remove description of
13676 issue that only occurred with binutils below 2.18.
13677
13678 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
13679
13680 * doc/install.texi (Specific) <cris-axis-elf>: No longer
13681 refer to binutils 2.11/2.12 minimum.
13682
13683 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
13684
13685 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
13686 ftp.kernel.org and simplify binutils requirement.
13687
13688 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
13689
13690 * doc/invoke.texi (Warning Options): Fix spelling of link-time
13691 optimization.
13692 (Optimize Options): Ditto. Also remove redundancy.
13693
13694 2017-03-10 David Malcolm <dmalcolm@redhat.com>
13695
13696 PR translation/79848
13697 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
13698 "%qs".
13699 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
13700 to G_ to avoid double translation.
13701
13702 2017-03-10 David Malcolm <dmalcolm@redhat.com>
13703
13704 PR translation/79923
13705 * auto-profile.c (get_combined_location): Convert leading
13706 character of diagnostics to lower case and remove trailing period.
13707 (read_profile): Likewise for various diagnostics.
13708 * config/arm/arm.c (arm_option_override): Remove trailing period
13709 from various diagnostics.
13710 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
13711 (msp430_expand_delay_cycles): Likewise.
13712
13713 2017-03-10 David Malcolm <dmalcolm@redhat.com>
13714
13715 PR target/79925
13716 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
13717 full command-line argument, rather than just "str".
13718 (aarch64_validate_march): Likewise.
13719 (aarch64_validate_mtune): Likewise.
13720
13721 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
13722
13723 PR rtl-optimization/78911
13724 * lra-assigns.c (must_not_spill_p): New function.
13725 (spill_for): Use it.
13726
13727 2017-03-10 Jakub Jelinek <jakub@redhat.com>
13728
13729 PR tree-optimization/79981
13730 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
13731 ATOMIC_COMPARE_EXCHANGE ifn result.
13732 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
13733 IFN_ATOMIC_COMPARE_EXCHANGE.
13734
13735 2017-03-10 David Malcolm <dmalcolm@redhat.com>
13736
13737 PR driver/79875
13738 * opts.c (parse_sanitizer_options): Add missing question mark to
13739 "did you mean" message.
13740
13741 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13742
13743 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
13744 built-in.
13745 (VMULEUH_UNS): Likewise.
13746 (VMULOUB_UNS): Likewise.
13747 (VMULOUH_UNS): Likewise.
13748 * config/rs6000/rs6000.c (builtin_function_type): Remove
13749 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
13750
13751 2017-03-10 David Malcolm <dmalcolm@redhat.com>
13752
13753 PR bootstrap/79952
13754 * read-rtl-function.c (function_reader::read_rtx_operand): Update
13755 x with result of extra_parsing_for_operand_code_0.
13756 (function_reader::extra_parsing_for_operand_code_0): Convert
13757 return type from void to rtx, returning x. When reading
13758 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
13759 larger size containing struct block_symbol.
13760
13761 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
13762
13763 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
13764 -mfloat128-hardware without -m64.
13765
13766 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
13767
13768 PR target/79941
13769 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
13770 entries to the case statement that marks unsigned arguments to
13771 overloaded functions.
13772
13773 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
13774
13775 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
13776 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
13777
13778 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
13779
13780 PR target/79907
13781 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
13782 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
13783
13784 2017-03-10 Martin Liska <mliska@suse.cz>
13785
13786 PR target/65705
13787 PR target/69804
13788 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
13789 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
13790 FIELD != NULL.
13791
13792 2017-03-10 Olivier Hainque <hainque@adacore.com>
13793
13794 * tree-switch-conversion (array_value_type): Start by resetting
13795 candidate type to it's main variant.
13796
13797 2017-03-10 Jakub Jelinek <jakub@redhat.com>
13798
13799 PR rtl-optimization/79909
13800 * combine.c (try_combine): Use simplify_replace_rtx on individual
13801 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
13802 of the whole CALL_INSN_FUNCTION_USAGE.
13803
13804 PR tree-optimization/79972
13805 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
13806 get_range_info on SSA_NAMEs. Formatting fixes.
13807
13808 2017-03-10 Richard Biener <rguenther@suse.de>
13809 Jakub Jelinek <jakub@redhat.com>
13810
13811 PR tree-optimization/77975
13812 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
13813 edge to be constant.
13814 (get_val_for): For constant x return it. Formatting fix.
13815 (loop_niter_by_eval): Avoid pointless looping if the next iteration
13816 would use the same bases as the current one.
13817
13818 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13819
13820 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
13821 instead of vec_select for V1TImode.
13822 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
13823 longer needed.
13824 (VSX_LE_128): Add V1TI to this mode iterator.
13825 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
13826 (*vsx_le_perm_store_<mode>): Likewise.
13827 (pre-reload splitter for VSX stores): Likewise.
13828 (post-reload splitter for VSX stores): Likewise.
13829 (*vsx_xxpermdi2_le_<mode>): Likewise.
13830 (*vsx_lxvd2x2_le_<mode>): Likewise.
13831 (*vsx_stxvd2x2_le_<mode>): Likewise.
13832
13833 2017-03-09 Michael Eager <eager@eagercon.com>
13834
13835 Correct failures with --enable-checking=yes,rtl.
13836
13837 * config/microblaze/microblaze.c (microblaze_expand_shift):
13838 Replace GET_CODE test with CONST_INT_P and INTVAL test with
13839 test for const0_rtx.
13840 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
13841 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
13842
13843 2017-03-09 Richard Biener <rguenther@suse.de>
13844
13845 PR tree-optimization/79977
13846 * graphite-scop-detection.c (scop_detection::merge_sese):
13847 Handle the case of extra exits to blocks dominating the entry.
13848
13849 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
13850
13851 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
13852 Document rdynamic.
13853
13854 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
13855
13856 PR rtl-optimization/79949
13857 * lra-constraints.c (process_alt_operands): Check memory when
13858 trying to predict a cycle. Print about the overall increase.
13859
13860 2017-03-09 Richard Biener <rguenther@suse.de>
13861
13862 PR middle-end/79971
13863 * gimple-expr.c (useless_type_conversion_p): Preserve
13864 TYPE_SATURATING for fixed-point types.
13865
13866 2017-03-09 Richard Biener <rguenther@suse.de>
13867
13868 PR ipa/79970
13869 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
13870 alignment of BLKmode params.
13871
13872 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13873
13874 PR target/79913
13875 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
13876 (VALL_NO_V2Q): Likewise.
13877 (VDQF_DF): Delete.
13878 * config/aarch64/aarch64-simd.md
13879 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
13880 iterator.
13881 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
13882 VALL_NO_V2Q mode iterator.
13883 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
13884
13885 2017-03-09 Martin Liska <mliska@suse.cz>
13886
13887 PR tree-optimization/79631
13888 * tree-chkp-opt.c (chkp_is_constant_addr): Call
13889 tree_int_cst_sign_bit just for INTEGER constants.
13890
13891 2017-03-09 Martin Liska <mliska@suse.cz>
13892
13893 PR target/65705
13894 PR target/69804
13895 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
13896 sanitizers.
13897
13898 2017-03-09 Marek Polacek <polacek@redhat.com>
13899
13900 PR c++/79672
13901 * tree.c (inchash::add_expr): Handle TREE_VEC.
13902
13903 2017-03-09 Martin Liska <mliska@suse.cz>
13904
13905 PR ipa/79764
13906 (chkp_narrow_size_and_offset): New function.
13907 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
13908 (void chkp_parse_bit_field_ref): New function.
13909 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
13910 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
13911
13912 2017-03-09 Martin Liska <mliska@suse.cz>
13913
13914 PR ipa/79761
13915 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
13916 (chkp_find_bounds_1): Remove gcc_unreachable.
13917
13918 2017-03-09 Jakub Jelinek <jakub@redhat.com>
13919
13920 PR sanitizer/79944
13921 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
13922 BUILT_IN_SYNC*, determine the access type from the size suffix and
13923 always build a MEM_REF with that type. Handle forgotten
13924 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
13925
13926 PR target/79932
13927 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
13928 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
13929 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
13930 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
13931 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
13932 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
13933 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
13934 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
13935 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
13936 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
13937 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
13938 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
13939 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
13940 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
13941 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
13942 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
13943 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
13944 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
13945 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
13946 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
13947 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
13948 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
13949 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
13950 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
13951 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
13952 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
13953 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
13954 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
13955 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
13956 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
13957 definitions outside of __OPTIMIZE__ guarded section.
13958
13959 PR target/79932
13960 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
13961 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
13962 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
13963 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
13964 guarded section.
13965
13966 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13967
13968 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
13969 ("vfenez<mode>"): Add missing constraints.
13970
13971 2017-03-08 Martin Sebor <msebor@redhat.com>
13972
13973 PR target/79928
13974 * config/nds32/nds32.c (nds32_option_override):
13975 Fix misspelled diagnostic.
13976
13977 2017-03-08 Jakub Jelinek <jakub@redhat.com>
13978
13979 PR c/79940
13980 * gimplify.c (gimplify_omp_for): Replace index var in outer
13981 taskloop statement with an artificial variable and add
13982 OMP_CLAUSE_PRIVATE clause for it.
13983
13984 2017-03-08 Richard Biener <rguenther@suse.de>
13985
13986 PR tree-optimization/79955
13987 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
13988 for accesses that are completely outside of the variable.
13989
13990 2017-03-08 Andrew Haley <aph@redhat.com>
13991
13992 PR tree-optimization/79943
13993 * tree-ssa-loop-split.c (compute_new_first_bound): When
13994 calculating the new upper bound, (END-BEG) should be added, not
13995 subtracted.
13996
13997 2017-03-08 Jakub Jelinek <jakub@redhat.com>
13998
13999 * config/avr/avr.md (setmemhi): Make sure match_dup
14000 operand number comes before match_scratch.
14001
14002 2017-03-08 Richard Biener <rguenther@suse.de>
14003
14004 PR tree-optimization/79920
14005 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
14006 with ncopies == 1 to ...
14007 (vect_transform_slp_perm_load): ... here. Properly compute
14008 all element loads by iterating VF times over the group. Do
14009 not handle ncopies (computed in a broken way) in
14010 vect_create_mask_and_perm.
14011
14012 2017-03-08 Jakub Jelinek <jakub@redhat.com>
14013
14014 PR sanitizer/79904
14015 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
14016 is a uniform vector, use uniform_vector_p return value instead of
14017 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
14018
14019 2017-03-07 Marek Polacek <polacek@redhat.com>
14020
14021 PR middle-end/79809
14022 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
14023 (alloca_call_type): Likewise.
14024
14025 2017-03-07 Martin Liska <mliska@suse.cz>
14026
14027 * gcov.c (process_args): Put comment to correct location.
14028
14029 2017-03-07 Martin Liska <mliska@suse.cz>
14030
14031 PR middle-end/68270
14032 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
14033 Use array_at_struct_end_p instead of DECL_CHAIN (field).
14034 (chkp_narrow_bounds_for_field): Likewise.
14035 (chkp_parse_array_and_component_ref): Pass one more argument to
14036 call.
14037
14038 2017-03-07 Richard Biener <rguenther@suse.de>
14039
14040 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
14041 preheaders.
14042
14043 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
14044
14045 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
14046 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
14047
14048 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14049
14050 PR c/79855
14051 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
14052 to end of description.
14053 (PARAM_MAX_STORES_TO_MERGE): Likewise.
14054
14055 2017-03-07 Jakub Jelinek <jakub@redhat.com>
14056
14057 PR rtl-optimization/79901
14058 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
14059 ...
14060 (*avx512f_<code><mode>3<mask_name>): ... this.
14061 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
14062 iterator instead of VI8_AVX2_AVX512BW.
14063
14064 PR rtl-optimization/79901
14065 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
14066 min/max expander, expand it using expand_vec_cond_expr.
14067
14068 PR sanitizer/79897
14069 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
14070 temporary.
14071
14072 2017-03-06 Jakub Jelinek <jakub@redhat.com>
14073
14074 PR c++/79821
14075 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
14076 to void * for PCH reasons.
14077 * dwarf2out.c (output_loc_operands, output_die): Cast
14078 v.val_vec.array to unsigned char *.
14079
14080 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
14081
14082 PR target/77850
14083 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
14084 vector types.
14085
14086 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
14087
14088 PR rtl-optimization/79571
14089 * lra-constraints.c (process_alt_operands): Calculate static
14090 reject and subtract it from overall when only addresses will be
14091 reloaded.
14092
14093 2017-03-06 Julia Koval <julia.koval@intel.com>
14094
14095 PR target/79793
14096 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
14097 incoming stack boundary to 128 for 64-bit targets.
14098
14099 2017-03-06 Richard Biener <rguenther@suse.de>
14100
14101 PR tree-optimization/79894
14102 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
14103 to NULL after folding it.
14104
14105 2017-03-06 Richard Biener <rguenther@suse.de>
14106
14107 PR tree-optimization/79824
14108 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
14109 check disabling peeling for gaps.
14110
14111 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
14112
14113 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
14114 attributes): Document gettimeofday.
14115
14116 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
14117
14118 * config/s390/s390.c (s390_option_override_internal): Set
14119 PARAM_MIN_VECT_LOOP_BOUND
14120
14121 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
14122
14123 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
14124 * config/s390/s390.md: Likewise.
14125
14126 2017-03-06 Jakub Jelinek <jakub@redhat.com>
14127
14128 PR target/79812
14129 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
14130 (<avx2_avx512>_perm<mode>): Rename to ...
14131 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
14132 of VI8F_256_512.
14133 (<avx512>_perm<mode>_mask): Rename to ...
14134 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
14135 of VI8F_256_512.
14136 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
14137 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
14138 instead of VI8F_256_512.
14139 (avx512f_perm<mode>): New define_expand.
14140 (avx512f_perm<mode>_mask): Likewise.
14141 (avx512f_perm<mode>_1<mask_name>): New define_insn.
14142 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
14143
14144 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
14145
14146 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
14147 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
14148 if_then_else.
14149 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
14150
14151 2017-03-06 Martin Liska <mliska@suse.cz>
14152
14153 PR sanitize/79783
14154 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
14155 when having a SSA NAME w/o VAR_DECL assigned to it.
14156
14157 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
14158
14159 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
14160 msa_dpsub_<su>_d): Fix MODE for vec_select.
14161
14162 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
14163
14164 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
14165 argument.
14166 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
14167
14168 2017-03-06 Richard Biener <rguenther@suse.de>
14169
14170 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
14171 * plugin.c (register_plugin_info): Likewise.
14172 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
14173
14174 2017-03-05 Jakub Jelinek <jakub@redhat.com>
14175
14176 * config/i386/sse.md (sse_storehps, sse_storelps,
14177 avx_<castmode><avxsizesuffix>_<castmode>,
14178 avx512f_<castmode><avxsizesuffix>_<castmode>,
14179 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
14180 in condition that at least one operand is not a MEM.
14181
14182 2017-03-03 Jakub Jelinek <jakub@redhat.com>
14183
14184 PR middle-end/79805
14185 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
14186 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
14187 ECF_NOTHROW.
14188 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
14189 gimple_call_nothrow_p flag based on whether original builtin can throw.
14190 If it can, emit following stmts on the fallthrough edge.
14191 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
14192 don't create new bb if inserting just debug stmts on the edge, try to
14193 insert them on the fallthru bb or just reset debug stmts.
14194
14195 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
14196
14197 PR target/43763
14198 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
14199 restore recog_data (including the operand rtxes inside it) around
14200 the call to get_insn_template.
14201
14202 2017-03-03 Martin Sebor <msebor@redhat.com>
14203
14204 PR tree-optimization/79699
14205 * context.c (context::~context): Free MPFR caches to avoid
14206 a memory leak on program exit.
14207
14208 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14209
14210 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
14211 Use wide_int::ulow () instead of .elt (0).
14212
14213 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
14214
14215 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
14216 (*pushxf): Limit oF constraint to 32bit targets and add oC
14217 constraint for 64bit targets.
14218 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
14219 (*pushdf): Change rmF constraint to rmC.
14220
14221 2017-03-03 Martin Liska <mliska@suse.cz>
14222
14223 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
14224 Remove unused variable.
14225
14226 2017-03-03 Jakub Jelinek <jakub@redhat.com>
14227
14228 PR target/79807
14229 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
14230 is a memory operand, increase num_memory.
14231 (ix86_expand_args_builtin): Likewise.
14232
14233 2017-03-03 Jan Hubicka <jh@suse.cz>
14234
14235 PR lto/79760
14236 * ipa-devirt.c (maybe_record_node): Properly handle
14237 __cxa_pure_virtual visibility.
14238
14239 2017-03-03 Martin Liska <mliska@suse.cz>
14240
14241 PR tree-optimization/79803
14242 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
14243 assert.
14244 (pass_loop_prefetch::execute): Disabled optimization if an
14245 assumption about L1 cache size is not met.
14246
14247 2017-03-03 Martin Liska <mliska@suse.cz>
14248
14249 PR rtl-optimization/79574
14250 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
14251 (hash_scan_set): Likewise.
14252 (dump_hash_table): Likewise.
14253 (hoist_code): Likewise.
14254
14255 2017-03-03 Richard Biener <rguenther@suse.de>
14256
14257 * fixed-value.c (fixed_from_string): Restore use of elt (1)
14258 in place of uhigh ().
14259 (fixed_convert_from_real): Likewise.
14260
14261 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
14262
14263 PR target/79514
14264 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
14265
14266 2017-03-03 Richard Biener <rguenther@suse.de>
14267
14268 PR middle-end/79818
14269 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
14270 TYPE_OVERFLOW_UNDEFINED check.
14271
14272 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14273
14274 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
14275 numbers.
14276 (vector_ae_<mode>_p): Likewise.
14277 (vector_nez_<mode>_p): Likewise.
14278 (vector_ne_v2di_p): Likewise.
14279 (vector_ae_v2di_p): Likewise.
14280 (vector_ne_<mode>_p): Likewise.
14281 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
14282 numbers.
14283 (vsx_tsqrt<mode>2_fe): Likewise.
14284
14285 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
14286
14287 PR target/79514
14288 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
14289
14290 2017-03-02 Jakub Jelinek <jakub@redhat.com>
14291
14292 PR rtl-optimization/79780
14293 * cprop.c (one_cprop_pass): When second and further conditional trap
14294 in a single basic block is turned into an unconditional trap, turn it
14295 into a deleted note to avoid RTL verification failures.
14296
14297 2017-03-02 Richard Biener <rguenther@suse.de>
14298
14299 * fold-const.c (const_binop): Use ulow () instead of elt (0).
14300
14301 2017-03-02 Richard Biener <rguenther@suse.de>
14302
14303 PR tree-optimization/79345
14304 PR c++/42000
14305 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
14306 param and abort the walk, returning -1 if it is hit.
14307 (walk_aliased_vdefs): Take a limit param and pass it on.
14308 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
14309 defaulting to 0 and return a signed int.
14310 * tree-ssa-uninit.c (struct check_defs_data): New struct.
14311 (check_defs): New helper.
14312 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
14313 about uninitialized memory.
14314 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
14315 bogus uninitialized warning.
14316 (fixed_convert_from_real): Likewise.
14317
14318 2017-03-02 Bin Cheng <bin.cheng@arm.com>
14319
14320 PR tree-optimization/66768
14321 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
14322 iv_use if base object can't be determined.
14323
14324 2017-03-02 Jakub Jelinek <jakub@redhat.com>
14325
14326 PR tree-optimization/79345
14327 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
14328 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
14329 (get_pattern_stats): Initialize it.
14330 * genemit.c (gen_expand): Verify match_scratch numbers come after
14331 match_operand/match_dup numbers.
14332 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
14333 match_scratch numbers.
14334 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
14335 Likewise.
14336 * config/s390/s390.md (trunctdsd2): Likewise.
14337
14338 2017-03-02 Richard Biener <rguenther@suse.de>
14339
14340 * wide-int.h (wide_int_storage::operator=): Implement in terms
14341 of wi::copy.
14342
14343 2017-03-02 Richard Biener <rguenther@suse.de>
14344
14345 PR tree-optimization/79777
14346 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
14347 the to insert expression to sth existing.
14348
14349 2017-03-01 Martin Sebor <msebor@redhat.com>
14350
14351 PR middle-end/79692
14352 * gimple-ssa-sprintf.c
14353 (directive::known_width_and_precision): New function.
14354 (format_integer): Use it.
14355 (get_mpfr_format_length): Consider the full range of precision
14356 when computing %g output with the # flag. Set the likely byte
14357 count to 3 rather than 1 when precision is indeterminate.
14358 (format_floating): Correct the lower bound of precision.
14359
14360 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14361
14362 * doc/invoke.texi: Document default code model for 64-bit Linux.
14363
14364 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14365
14366 PR target/79752
14367 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
14368 udiv rather than div since input pattern is unsigned.
14369
14370 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
14371
14372 * config/i386/i386.c (print_reg): Warn for values of
14373 unsupported size in integer register.
14374
14375 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
14376
14377 PR target/79439
14378 * config/rs6000/predicates.md (current_file_function_operand): Do
14379 not allow self calls to be local if the function is replaceable.
14380
14381 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
14382
14383 PR target/79395
14384 * config/rs6000/altivec.h (vec_ctz and others): Change the
14385 preprocessor macro that controls conditional compilation from
14386 _ARCH_PWR9 to __POWER9_VECTOR__.
14387 (vec_all_ne): Change parameterization of __altivec_scalar_pred
14388 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
14389 control (instead of _ARCH_PWR9 control) so that template
14390 definition uses power9-specific function.
14391 (vec_any_eq): Likewise.
14392 (vec_all_ne): Change macro definition to use a power9-specific
14393 expansion under #ifdef __POWER9_VECTOR__ control (instead of
14394 _ARCH_PWR9 control).
14395 (vec_any_eq) Likewise.
14396 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
14397 expansion for CMPNEF to remove support for xvcmpnesp instruction.
14398 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
14399 support for xvcmpnedp instruction.
14400 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
14401 macro expansion so that Power9 implementation of vec_all_ne does
14402 not use the AltiVec predicate framework.
14403 (VCMPNEH_P): Likewise.
14404 (VCMPNEW_P): Likewise.
14405 (VCMPNED_P): Likewise.
14406 (VCMPNEFP_P): Likewise.
14407 (VCMPNEDP_P): Likewise.
14408 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
14409 implementation of vec_any_eq to not use AltiVec predicate
14410 framework.
14411 (VCMPAEH_P): Likewise.
14412 (VCMPAEW_P): Likewise.
14413 (VCMPAED_P): Likewise.
14414 (VCMPAEFP_P): Likewise.
14415 (VCMPAEDP_P): Likewise.
14416 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
14417 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
14418 not use the AltiVec predicate framework.
14419 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
14420 of vec_any_eq to not use AltiVec predicate framework.
14421 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
14422 support for predefined __POWER9_VECTOR__ macro to indicate that
14423 Power9 instruction selection is enabled.
14424 (altivec_overloaded_builtins): Remove extraneous
14425 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
14426 function argument types RS6000_BTI_bool_V16QI and
14427 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
14428 entry for overloaded function argument types RS6000_BTI_bool_V4SI
14429 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
14430 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
14431 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
14432 Power9 for implementations of vec_cmpne. Change the signature for
14433 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
14434 (representing vec_all_ne) to remove the previously described first
14435 argument of type RS6000_BTI_INTSI, as this was an artifact of
14436 reliance on the AltiVec predicate framework, which is no longer
14437 used in the implementation of these functions. Add
14438 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
14439 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
14440 since, unlike the AltiVec predicate framework implementation, we
14441 do not share function descriptors between vec_alle and vec_anyeq.
14442 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
14443 set of modes that receive special treatment even when
14444 TARGET_P9_VECTOR is true. The special treatment emits code that
14445 does not depend on Power9 instructions.
14446 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
14447 define_expand to not rely on AltiVec predicate framework.
14448 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
14449 function.
14450 (vector_ne_v2di_p): Change this define_expand to not rely on
14451 AltiVec predicate framework.
14452 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
14453 function.
14454 (vector_ne_<mode>_p): Change this define_expand to not rely on
14455 AltiVec predicate framework.
14456 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
14457 function.
14458 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
14459 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
14460 define_insn pattern.
14461 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
14462 define_insn pattern because the xvcmpne<VSs>. instruction is not
14463 supported.
14464 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
14465 instruction is not supported.
14466
14467 2017-03-01 Jakub Jelinek <jakub@redhat.com>
14468
14469 * config/nvptx/nvptx.c: Include intl.h.
14470
14471 2017-03-01 Martin Jambor <mjambor@suse.cz>
14472
14473 PR lto/78140
14474 * ipa-prop.h (ipa_bits): Removed field known.
14475 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
14476 to pointers. Adjusted their comments to warn about their sharing.
14477 (ipcp_transformation_summary): Change bits to a vector of pointers.
14478 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
14479 (ipa_get_ipa_bits_for_value): Declare.
14480 * tree-vrp.h (value_range): Mark as GTY((for_user)).
14481 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
14482 (ipa_bits_hash_table): Likewise.
14483 (ipa_vr_ggc_hash_traits): Likewise.
14484 (ipa_vr_hash_table): Likewise.
14485 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
14486 being pointers and vr_known being removed.
14487 (ipa_set_jf_unknown): Likewise.
14488 (ipa_get_ipa_bits_for_value): New function.
14489 (ipa_set_jfunc_bits): Likewise.
14490 (ipa_get_value_range): New overloaded functions.
14491 (ipa_set_jfunc_vr): Likewise.
14492 (ipa_compute_jump_functions_for_edge): Use the above functions to
14493 construct bits and vr parts of jump functions.
14494 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
14495 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
14496 exist.
14497 (ipcp_grow_transformations_if_necessary): Also allocate
14498 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
14499 exist.
14500 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
14501 them. Fix too long lines.
14502 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
14503 vr_known being removed.
14504 (ipa_read_jump_function): Use new setter functions to construct bits
14505 and vr parts of jump functions or set them to NULL.
14506 (write_ipcp_transformation_info): Adjust for bits being pointers.
14507 (read_ipcp_transformation_info): Likewise.
14508 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
14509 space.
14510 Include gt-ipa-prop.h.
14511 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
14512 being pointers.
14513 (ipcp_store_bits_results): Likewise.
14514 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
14515 Do not write to existing jump functions but use a temporary instead.
14516
14517 2017-03-01 Jakub Jelinek <jakub@redhat.com>
14518
14519 PR c++/79681
14520 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
14521 attempt to use its first operand as BIT_FIELD_REF base.
14522
14523 2017-03-01 Richard Biener <rguenther@suse.de>
14524
14525 PR middle-end/79721
14526 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
14527 interpolating formula in wrapping arithmetic.
14528 (chrec_apply): Convert chrec_evaluate return value to wanted type.
14529
14530 2017-03-01 Jakub Jelinek <jakub@redhat.com>
14531
14532 PR tree-optimization/79734
14533 * tree-vect-generic.c (expand_vector_condition): Optimize
14534 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
14535 Handle VEC_COND_EXPR where comparison has different inner width from
14536 type's inner width.
14537
14538 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
14539
14540 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
14541 markup, and similar issues. Remove @opindex entries for things
14542 that aren't options. Add missing -mmpy-option entries.
14543
14544 2017-02-28 Jakub Jelinek <jakub@redhat.com>
14545
14546 PR tree-optimization/79737
14547 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
14548 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
14549 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
14550 instead of byte_size. Formatting fix.
14551 (shift_bytes_in_array_right): Formatting fix.
14552
14553 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
14554
14555 PR target/79749
14556 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
14557 condition on optimize for the leaf function test.
14558
14559 2017-02-28 Martin Liska <mliska@suse.cz>
14560
14561 PR lto/79625
14562 * read-rtl-function.c (function_reader::handle_unknown_directive):
14563 Bail out when one uses -flto.
14564
14565 2017-02-28 Martin Liska <mliska@suse.cz>
14566
14567 * common.opt: Replace space with tabular for options of <number>
14568 type.
14569 * config/i386/i386.opt: Show <number> value for
14570 -mlarge-data-threshold.
14571 * opts.c (print_filtered_help): Do not display number in hexadecimal
14572 format.
14573
14574 2017-02-28 Martin Liska <mliska@suse.cz>
14575
14576 * common.opt: Fix --help=option -Q for options which are of
14577 an enum type.
14578
14579 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
14580
14581 * config/i386/i386.c (print_reg): Error out for values
14582 of 8-bit size in invalid integer register.
14583
14584 2017-02-28 Martin Sebor <msebor@redhat.com>
14585
14586 PR tree-optimization/79691
14587 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
14588
14589 2017-02-28 Jakub Jelinek <jakub@redhat.com>
14590
14591 PR target/79729
14592 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
14593 gcc_unreachable with output_operand_lossage.
14594
14595 2017-02-28 Richard Biener <rguenther@suse.de>
14596
14597 PR tree-optimization/79740
14598 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
14599 inserts.
14600 (visit_nary_op): Insert the nary into the hashtable if we
14601 pattern-matched sth.
14602 * tree-ssa-pre.c (eliminate_insert): Robustify.
14603
14604 2017-02-28 Richard Biener <rguenther@suse.de>
14605
14606 PR middle-end/79731
14607 * fold-const.c (decode_field_reference): Reject out-of-bound
14608 accesses.
14609
14610 2017-02-28 Jakub Jelinek <jakub@redhat.com>
14611
14612 * config/i386/i386.c: Include intl.h.
14613 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
14614 instead of just cond ? "..." : "...".
14615 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
14616 * coverage.c (read_counts_file): Likewise.
14617 * omp-offload.c: Include intl.h.
14618 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
14619 of just cond ? "..." : "...".
14620 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
14621 of just cond ? "..." : "...".
14622
14623 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
14624
14625 PR target/79742
14626 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
14627 entry, if present.
14628 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
14629 'tune for' CPU name.
14630 * config/arm/arm-cpu-data.h: Regenerated.
14631
14632 2017-02-28 Richard Biener <rguenther@suse.de>
14633
14634 PR tree-optimization/79732
14635 * tree-inline.c (expand_call_inline): Do not shadow var.
14636
14637 2017-02-28 Richard Biener <rguenther@suse.de>
14638
14639 PR tree-optimization/79723
14640 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
14641 address-space properly.
14642
14643 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
14644
14645 * doc/optinfo.texi (Optimization groups): Fix option used for
14646 OPTGROUP_ALL.
14647 * doc/invoke.texi (-fopt-info): Document "omp".
14648 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
14649 (OPTGROUP_ALL): Add OPTGROUP_OMP.
14650 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
14651 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
14652 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
14653
14654 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
14655 all users.
14656 * dumpfile.c (optgroup_options): Instead of "openmp", associate
14657 OPTGROUP_OMP with "omp".
14658
14659 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
14660
14661 PR target/79544
14662 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
14663 for arithmetic shift of unsigned V2DI.
14664
14665 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
14666
14667 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
14668 arc/linux.h headers.
14669 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
14670 (LINK_SPEC): Likewise.
14671 (ARC_TLS_EXTRA_START_SPEC): Likewise.
14672 (EXTRA_SPECS): Likewise.
14673 (STARTFILE_SPEC): Likewise.
14674 (ENDFILE_SPEC): Likewise.
14675 (LIB_SPEC): Likewise.
14676 (TARGET_SDATA_DEFAULT): Likewise.
14677 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
14678 (MULTILIB_DEFAULTS): Likewise.
14679 (DWARF2_UNWIND_INFO): Likewise.
14680 * config/arc/big.h: New file.
14681 * config/arc/elf.h: Likewise.
14682 * config/arc/linux.h: Likewise.
14683 * config/arc/t-uClibc: Remove.
14684
14685 2017-02-27 Bin Cheng <bin.cheng@arm.com>
14686
14687 PR tree-optimization/77536
14688 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
14689 (tree_transform_and_unroll_loop): Use above function to compute the
14690 estimated niter of unrolled loop and use it when scaling profile.
14691 Also use count info rather than frequency if it's non-zero.
14692 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
14693 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
14694 (vect_transform_loop): Call above function.
14695
14696 2017-02-27 Richard Biener <rguenther@suse.de>
14697
14698 PR tree-optimization/45397
14699 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
14700 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
14701 (visit_nary_op): Add pattern matching for CSEing sign-changed
14702 or truncated operations with wider ones.
14703
14704 2017-02-27 Richard Biener <rguenther@suse.de>
14705
14706 PR tree-optimization/79690
14707 * tree-vect-stmts.c (vectorizable_store): Use vector type
14708 built from the DR with address-space.
14709
14710 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
14711
14712 * doc/invoke.texi (Optimize Options): Refine the description
14713 of asan-use-after-return.
14714
14715 2017-02-25 Alan Modra <amodra@gmail.com>
14716
14717 PR rtl-optimization/79584
14718 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
14719 base, not ad->base_term, the reg within base. Remove assertion
14720 that ad->base == ad->base_term. Replace gen_int_mode using
14721 bogus mode with const0_rtx.
14722
14723 2017-02-25 Jakub Jelinek <jakub@redhat.com>
14724
14725 PR middle-end/79396
14726 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
14727 FMA_EXPR like tcc_binary or tcc_unary.
14728
14729 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
14730
14731 PR debug/77589
14732 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
14733 bitfield.
14734 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
14735 (output_loc_operands): Handle DW_OP_call_ref and
14736 DW_OP_GNU_variable_value.
14737 (struct variable_value_struct): New type.
14738 (struct variable_value_hasher): Likewise.
14739 (variable_value_hash): New variable.
14740 (string_types): Remove.
14741 (copy_loc_descr): New function.
14742 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
14743 (prepend_loc_descr_to_each): New function.
14744 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
14745 instead of add_loc_descr_to_each if the first argument is single
14746 location list and the second has multiple.
14747 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
14748 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
14749 when looking for variable value which doesn't have other location info.
14750 (loc_list_from_tree): Formatting fix.
14751 (gen_array_type_die): Simplify DW_AT_string_length handling.
14752 (adjust_string_types): Remove.
14753 (gen_subprogram_die): Don't call adjust_string_types nor test/set
14754 string_types. Call resolve_variable_values.
14755 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
14756 (resolve_addr_in_expr): Likewise. Add A argument.
14757 (copy_deref_exprloc): Remove deref argument. Adjust for the
14758 original expression being DW_OP_GNU_variable_value with optionally
14759 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
14760 optionally after it.
14761 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
14762 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
14763 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
14764 (variable_value_hasher::hash, variable_value_hasher::equal): New
14765 methods.
14766 (resolve_variable_value_in_expr, resolve_variable_value,
14767 resolve_variable_values, note_variable_value_in_expr,
14768 note_variable_value): New functions.
14769 (dwarf2out_early_finish): Call note_variable_value on all toplevel
14770 DIEs.
14771
14772 2017-02-24 Jakub Jelinek <jakub@redhat.com>
14773
14774 PR c/79677
14775 * opts.h (handle_generated_option): Add GENERATED_P argument.
14776 * opts-common.c (handle_option): Adjust function comment.
14777 (handle_generated_option): Add GENERATED_P argument, pass it to
14778 handle_option.
14779 (control_warning_option): Pass false to handle_generated_option
14780 GENERATED_P.
14781 * opts.c (maybe_default_option): Pass true to handle_generated_option
14782 GENERATED_P.
14783 * optc-gen.awk: Likewise.
14784
14785 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
14786
14787 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
14788 a REG, look at the REG it is a SUBREG of.
14789 (splitter for cmpeqsi_t): Ditto.
14790
14791 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
14792
14793 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
14794 the special USEs with the pattern of the insn, not the insn itself.
14795
14796 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
14797
14798 PR target/79473
14799 * doc/invoke.texi: Document -mload-store-pairs.
14800
14801 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
14802 Sandra Loosemore <sandra@codesourcery.com>
14803
14804 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
14805 argument isn't a CONST_INT.
14806 (nios2_alternate_compare_const): Assert op is a CONST_INT.
14807 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
14808 (nios2_validate_compare): Bypass alternate compare logic if *op2
14809 is not a CONST_INT.
14810 (ldstwm_operation_p): Return false if first_base is not a REG or
14811 if first_offset is not a CONST_INT.
14812
14813 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
14814
14815 * config/cris/cris.md: Use correct operand in a define_peephole2.
14816
14817 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
14818
14819 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
14820
14821 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
14822
14823 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
14824 this_insn if it is an INSN or JUMP_INSN.
14825 (force_offsettable): Look at base, not at addr.
14826 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
14827 on things that aren't necessarily CONST_INTs.
14828
14829 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
14830
14831 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
14832 -mfpmath=sse is the default also for x86-32 targets with SSE2
14833 instruction set when @option{-ffast-math} is enabled
14834
14835 2017-02-24 Jeff Law <law@redhat.com>
14836
14837 PR rtl-optimizatoin/79286
14838 * ira.c (update_equiv_regs): Drop may_trap_p exception to
14839 dominance test.
14840
14841 2017-02-24 Richard Biener <rguenther@suse.de>
14842
14843 PR tree-optimization/79389
14844 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
14845 debug insns.
14846
14847 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
14848
14849 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
14850 function comment to reflect reality.
14851 (loop_exits_before_overflow): Fix typo in function description.
14852
14853 2017-02-24 Richard Biener <rguenther@suse.de>
14854
14855 PR tree-optimization/79389
14856 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
14857 properly that a threading opportunity exists. Detect conditional
14858 copy/constant propagation opportunities.
14859
14860 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
14861
14862 * config/visium/visium.md (type): Add trap.
14863 (b): New mode attribute.
14864 (*btst): Rename into...
14865 (*btst<mode>): ...this and adjust.
14866 (*cbranchsi4_btst_insn): Rename into...
14867 (*cbranch<mode>4_btst_insn): ...this and adjust.
14868 (trap): New define_insn.
14869
14870 2017-02-23 Jakub Jelinek <jakub@redhat.com>
14871
14872 PR tree-optimization/79389
14873 * ifcvt.c (struct noce_if_info): Add rev_cond field.
14874 (noce_reversed_cond_code): New function.
14875 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
14876 reversed_comparison_code. Formatting fix.
14877 (noce_try_store_flag): Test rev_cond != NULL in addition to
14878 reversed_comparison_code.
14879 (noce_try_store_flag_constants): Likewise.
14880 (noce_try_store_flag_mask): Likewise.
14881 (noce_try_addcc): Use rev_cond if non-NULL instead of
14882 reversed_comparison_code.
14883 (noce_try_cmove_arith): Likewise. Formatting fixes.
14884 (noce_try_minmax, noce_try_abs): Clear rev_cond.
14885 (noce_find_if_block): Initialize rev_cond.
14886 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
14887 instead of false as last argument never attempt to reverse it
14888 afterwards.
14889
14890 2017-02-23 Bin Cheng <bin.cheng@arm.com>
14891
14892 PR tree-optimization/79663
14893 * tree-predcom.c (combine_chains): Process refs in reverse order
14894 only for ZERO length chains, and add explaining comment.
14895
14896 2017-02-23 Jeff Law <law@redhat.com>
14897
14898 PR tree-optimization/79578
14899 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
14900 in call to operand_equal_p.
14901
14902 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
14903
14904 PR target/71017
14905 * config/i386/cpuid.h: Fix another undefined behavior.
14906
14907 2017-02-23 Richard Biener <rguenther@suse.de>
14908
14909 PR tree-optimization/79683
14910 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
14911 vector types for data-refs.
14912
14913 2017-02-23 Martin Liska <mliska@suse.cz>
14914
14915 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
14916
14917 2017-02-23 Jakub Jelinek <jakub@redhat.com>
14918
14919 PR middle-end/79665
14920 * internal-fn.c (get_range_pos_neg): Moved to ...
14921 * tree.c (get_range_pos_neg): ... here. No longer static.
14922 * tree.h (get_range_pos_neg): New prototype.
14923 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
14924 are known to be in between 0 and signed maximum inclusive, try to
14925 expand both unsigned and signed divmod and use the cheaper one from
14926 those.
14927
14928 2017-02-22 Jeff Law <law@redhat.com>
14929
14930 PR tree-optimization/79578
14931 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
14932 to compare base operands.
14933
14934 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
14935
14936 PR target/79211
14937 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
14938 gpc_reg_operand instead of fpr_reg_operand.
14939
14940 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
14941
14942 * config/mips/mips.c (mips_return_in_memory): Force FP
14943 vector types to be returned in memory for o32 ABI.
14944
14945 2017-02-22 Jakub Jelinek <jakub@redhat.com>
14946
14947 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
14948 instead of DW_TAG_member for static data member declarations and don't
14949 set no_linkage_name for static inline data members.
14950 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
14951 to DW_TAG_member.
14952
14953 2017-02-22 Martin Liska <mliska@suse.cz>
14954
14955 * doc/invoke.texi: Replace inequality signs with square brackets
14956 for -Wnormalized.
14957
14958 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14959
14960 PR tree-optimization/68644
14961 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
14962
14963 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
14964
14965 PR target/78660
14966 * lra-constraints.c (simplify_operand_subreg): Handle
14967 WORD_REGISTER_OPERATIONS targets.
14968
14969 2017-02-22 Jakub Jelinek <jakub@redhat.com>
14970
14971 PR target/70465
14972 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
14973 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
14974 elimination by swapping fld*.
14975
14976 2017-02-22 Richard Biener <rguenther@suse.de>
14977
14978 PR tree-optimization/79673
14979 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
14980 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
14981 irrelevant address-space qualifiers and avoiding a
14982 ADDR_SPACE_CONVERT_EXPR from fold_convert.
14983
14984 2017-02-22 Richard Biener <rguenther@suse.de>
14985
14986 PR tree-optimization/79666
14987 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
14988 to not symbolically negate if that may introduce undefined
14989 overflow.
14990
14991 2017-02-22 Martin Liska <mliska@suse.cz>
14992
14993 PR lto/79587
14994 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
14995 * data-streamer-out.c (streamer_write_gcov_count_stream):
14996 Likewise.
14997 * value-prof.c (stream_out_histogram_value): Make assert more
14998 precise based on type of counter.
14999
15000 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
15001
15002 PR target/79593
15003 * config/i386/i386.md (standard_x87sse_constant_load splitter):
15004 Use nonimmediate_operand instead of memory_operand for operand 1.
15005 (float-extend standard_x87sse_constant_load splitter): Ditto.
15006
15007 2017-02-21 Jeff Law <law@redhat.com>
15008
15009 PR tree-optimization/79621
15010 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
15011 blocks with edges to themselves.
15012
15013 2017-02-21 Jakub Jelinek <jakub@redhat.com>
15014
15015 PR target/79633
15016 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
15017 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
15018 Use gimple_call_builtin_p.
15019
15020 PR target/79570
15021 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
15022 on temporarily removed DEBUG_INSNs.
15023
15024 PR tree-optimization/79649
15025 * tree-loop-distribution.c (classify_partition): Give up on
15026 non-generic address space loads/stores.
15027
15028 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
15029
15030 * doc/loop.texi (Loop manipulation): Remove nonexistent
15031 tree_ssa_loop_version from the documentation.
15032 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
15033
15034 2017-02-21 Jakub Jelinek <jakub@redhat.com>
15035
15036 PR target/79494
15037 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
15038 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
15039 * config/rs6000/rs6000.c: Include except.h.
15040 (rs6000_expand_split_stack_prologue): Call
15041 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
15042
15043 2017-02-21 Martin Jambor <mjambor@suse.cz>
15044
15045 PR lto/79579
15046 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
15047 have been analyzed.
15048
15049 2017-02-21 Martin Jambor <mjambor@suse.cz>
15050
15051 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
15052 for backward compatibility only.
15053 * doc/invoke.texi (Option Summary): Remove all references to
15054 -fipa-cp-alignment.
15055
15056 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
15057
15058 PR target/78660
15059 Revert:
15060 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
15061
15062 * lra-constraints.c (curr_insn_transform): Handle
15063 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
15064
15065 2017-02-21 Martin Liska <mliska@suse.cz>
15066
15067 * config/i386/i386.opt: Replace -masm-dialect with -masm.
15068
15069 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
15070
15071 PR translation/79638
15072 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
15073
15074 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
15075
15076 PR ada/67205
15077 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
15078 (arm_function_ok_for_sibcall): Return false for an indirect call by
15079 descriptor if all the argument registers are used.
15080 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
15081 alignment of the function.
15082
15083 2017-02-21 Jakub Jelinek <jakub@redhat.com>
15084
15085 PR tree-optimization/61441
15086 * simplify-rtx.c (simplify_const_unary_operation): For
15087 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
15088 the sNaN unmodified.
15089
15090 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
15091
15092 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
15093 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
15094 instead of SYSTEM_HEADER_DIR.
15095
15096 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
15097 Martin Liška <mliska@suse.cz>
15098
15099 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
15100 Fix typos and grammar, use active voice, and clarify.
15101
15102 2017-02-20 Marek Polacek <polacek@redhat.com>
15103
15104 PR middle-end/79537
15105 * gimplify.c (gimplify_expr): Handle unused *&&L;.
15106
15107 PR sanitizer/79558
15108 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
15109
15110 2017-02-20 Jakub Jelinek <jakub@redhat.com>
15111
15112 PR target/79568
15113 * config/i386/i386.c (ix86_expand_builtin): Handle
15114 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
15115 ix86_builtins_isa[fcode].isa as a requirement of those
15116 flags and any other flag in the bitmask.
15117 (ix86_init_mmx_sse_builtins): Use 0 instead of
15118 ~OPTION_MASK_ISA_64BIT as mask.
15119 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
15120 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
15121 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
15122 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
15123
15124 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
15125
15126 PR target/78012
15127 * lra-constraints.c (split_reg): Check requested split mode
15128 is supported by the register.
15129
15130 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
15131
15132 * lra-constraints.c (simplify_operand_subreg): Remove early
15133 return false.
15134
15135 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
15136
15137 PR target/78660
15138 * lra-constraints.c (curr_insn_transform): Tighten condition
15139 for converting SUBREG reloads from OP_OUT to OP_INOUT.
15140
15141 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
15142
15143 PR target/78660
15144 * lra-constraints.c (curr_insn_transform): Handle
15145 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
15146
15147 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
15148
15149 Revert:
15150 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
15151
15152 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
15153
15154 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
15155
15156 PR c++/69523
15157 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
15158 description.
15159
15160 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15161
15162 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
15163 for FMA_EXPR.
15164
15165 2017-02-18 Jakub Jelinek <jakub@redhat.com>
15166
15167 * final.c (last_columnnum, override_columnnum): New variables.
15168 (final_start_function): Set last_columnnum, pass it to begin_prologue
15169 hook and pass 0 to dwarf2out_begin_prologue.
15170 (final_scan_insn): Update override_columnnum. Pass last_columnnum
15171 to source_line debug hook.
15172 (notice_source_line): Compute last_columnnum and for debug_column_info
15173 return true on column changes.
15174 * debug.h (struct gcc_debug_hooks): Add column argument to
15175 source_line and begin_prologue hooks.
15176 (debug_nothing_int_charstar_int_bool): Remove prototype.
15177 (debug_nothing_int_int_charstar,
15178 debug_nothing_int_int_charstar_int_bool): New prototypes.
15179 (dwarf2out_begin_prologue): Add column argument.
15180 * debug.c (do_nothing_debug_hooks): Adjust source_line and
15181 begin_prologue hooks.
15182 (debug_nothing_int_charstar_int_bool): Remove.
15183 (debug_nothing_int_int_charstar,
15184 debug_nothing_int_int_charstar_int_bool): New functions.
15185 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
15186 through to dwarf2out_source_line.
15187 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
15188 (dwarf2out_source_line): Add column argument, emit it if requested.
15189 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
15190 arguments.
15191 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
15192 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
15193 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
15194 through to dwarf2out_begin_prologue.
15195 (vmsdbgout_source_line): Add column argument, pass it through to
15196 dwarf2out_source_line.
15197 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
15198 dbxout_source_line caller.
15199 (dbxout_source_line): Add column argument.
15200
15201 * common.opt (gno-column-info, gcolumn-info): New options.
15202 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
15203 (check_die): Also test for multiple DW_AT_decl_column attributes.
15204 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
15205 DW_AT_decl_column if requested.
15206 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
15207 if requested.
15208 (gen_variable_die): Likewise.
15209 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
15210 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
15211
15212 PR target/79569
15213 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
15214 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
15215 (ix86_handle_option): Handle OPT_m3dnowa.
15216 * doc/invoke.texi (-m3dnowa): Document.
15217 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
15218 -m3dnowa instead of -m3dnow -march=athlon.
15219
15220 PR target/79559
15221 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
15222 instead of gcc_assert for K, r and R code checks. Formatting fixes.
15223
15224 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15225
15226 PR target/79261
15227 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
15228 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
15229 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
15230 generator for vsx_xxpermdi_<mode>_be.
15231 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
15232 force big-endian semantics.
15233 (vsx_xxpermdi_<mode>_be): New define_expand with same
15234 implementation as previous version of vsx_xxpermdi_<mode>.
15235
15236 2017-02-17 Jakub Jelinek <jakub@redhat.com>
15237
15238 PR tree-optimization/79327
15239 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
15240 variable, its initialization and use.
15241
15242 2017-02-17 Julia Koval <julia.koval@intel.com>
15243
15244 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
15245 (OPTION_MASK_ISA_PKU_UNSET): New.
15246 (ix86_handle_option): Handle -mrdpid.
15247 * config/i386/cpuid.h (bit_RDPID): New.
15248 * config/i386/driver-i386.c (host_detect_local_cpu):
15249 Detect RDPID feature.
15250 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
15251 * config/i386/i386-c.c (ix86_target_macros_internal):
15252 Handle RDPID flag.
15253 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
15254 (ix86_valid_target_attribute_inner_p): Add "rdpid".
15255 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
15256 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
15257 * config/i386/i386.md (define_insn "rdpid"): New.
15258 * config/i386/i386.opt Add -mrdpid.
15259 * config/i386/immintrin.h (_rdpid_u32): New.
15260
15261 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
15262
15263 PR rtl-optimization/79541
15264 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
15265 instead of transforming it into USE.
15266
15267 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
15268
15269 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
15270 If HONOR_SNANS (SFmode) force the input to a register.
15271 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
15272 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
15273 an frsp or similar insn.
15274
15275 2017-02-17 Martin Liska <mliska@suse.cz>
15276
15277 PR rtl-optimization/79577
15278 * params.def (selsched-max-sched-times): Increase minimum to 1.
15279
15280 2017-02-17 Martin Liska <mliska@suse.cz>
15281
15282 PR rtl-optimization/79574
15283 * gcse.c (want_to_gcse_p): Prevent integer overflow.
15284
15285 2017-02-17 Martin Liska <mliska@suse.cz>
15286
15287 PR tree-optimization/79529
15288 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
15289 ssa_defined_default_def_p to handle cases which are implicitly
15290 defined.
15291 * tree-ssa.c (ssa_defined_default_def_p): New function.
15292 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
15293 which are implicitly defined.
15294 * tree-ssa.h (ssa_defined_default_def_p): Declare.
15295
15296 2017-02-17 Richard Biener <rguenther@suse.de>
15297
15298 PR middle-end/79576
15299 * params.def (max-ssa-name-query-depth): Limit to 10.
15300
15301 2017-02-17 Richard Biener <rguenther@suse.de>
15302
15303 PR tree-optimization/79552
15304 * tree-ssa-structalias.c (visit_loadstore): Properly verify
15305 default defs.
15306
15307 2017-02-17 Richard Biener <rguenther@suse.de>
15308
15309 PR bootstrap/79567
15310 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
15311
15312 2017-02-17 Marek Polacek <polacek@redhat.com>
15313
15314 PR middle-end/79536
15315 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
15316 (fold_negate_expr): New wrapper.
15317
15318 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
15319
15320 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
15321 Correct terminology and de-emphasize pre-standard behavior.
15322
15323 2017-02-16 Alan Modra <amodra@gmail.com>
15324
15325 PR rtl-optimization/79286
15326 * ira.c (def_dominates_uses): New function.
15327 (update_equiv_regs): Don't create an equivalence for insns that
15328 may trap where the register def does not dominate the use.
15329
15330 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
15331
15332 PR rtl-optimization/78127
15333 * lra.c (lra): Call lra_eliminate before finish the loop after
15334 lra_constraint.
15335
15336 2017-02-16 Richard Biener <rguenther@suse.de>
15337
15338 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
15339 isl/isl_val.h.
15340 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
15341 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
15342 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
15343 (isl_val_int_from_wi): New function.
15344 (extract_affine_gmp): Rename to ...
15345 (extract_affine_wi): ... this, take a widest_int.
15346 (extract_affine_int): Just wrap extract_affine_wi.
15347 (add_param_constraints): Use isl_val_int_from_wi.
15348 (add_loop_constraints): Likewise, and extract_affine_wi.
15349
15350 2017-02-15 Jeff Law <law@redhat.com>
15351
15352 PR middle-end/79521
15353 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
15354 ira_init_register_move_cost_if_necessary.
15355
15356 2017-02-15 Martin Sebor <msebor@redhat.com>
15357
15358 PR middle-end/32003
15359 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
15360 removed in a prior commit.
15361
15362 2017-02-15 Bin Cheng <bin.cheng@arm.com>
15363
15364 PR tree-optimization/79347
15365 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
15366 counters during peeling.
15367
15368 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
15369
15370 * Makefile.in (site.exp): Remove "set ISLVER".
15371
15372 2017-02-15 Jakub Jelinek <jakub@redhat.com>
15373
15374 PR target/79487
15375 * real.c (real_from_integer): Call real_convert even for decimal.
15376
15377 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
15378
15379 PR target/79421
15380 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
15381
15382 2017-02-14 Andrew Pinski <apinski@cavium.com>
15383
15384 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
15385 cores and change the partno/implementer to be correct.
15386 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
15387 the 'B" as the implementer.
15388 * config/aarch64/aarch64-tune.md: Regenerate.
15389
15390 2017-02-14 Carl Love <cel@us.ibm.com>
15391
15392 * config/rs6000/rs6000.c: Add case statement entry to make the
15393 xvcvuxdsp built-in argument unsigned.
15394 * config/rs6000/vsx.md: Fix the source and return operand types so they
15395 match the instruction definitions from the ISA document. Fix typo
15396 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
15397 statement.
15398
15399 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
15400
15401 PR target/79282
15402 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
15403 member early_clobber_alts.
15404 * lra-lives.c (reg_early_clobber_p): New.
15405 (process_bb_lives): Use it.
15406 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
15407 (debug_operand_data): Initialize early_clobber_alts.
15408 (setup_operand_alternative): Set up early_clobber_alts.
15409 (collect_non_operand_hard_regs): Ditto. Pass early clobber
15410 alternatives to new_insn_reg.
15411 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
15412 it.
15413 (lra_update_insn_regno_info): Pass the new arg.
15414
15415 2017-02-14 Jakub Jelinek <jakub@redhat.com>
15416
15417 PR middle-end/79505
15418 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
15419 (new_oacc_loop_raw): Don't clear already cleared fields.
15420
15421 PR target/79481
15422 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
15423 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
15424 _mm512_prefetch_i64gather_ps): New inline functions and macros.
15425
15426 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
15427
15428 PR target/79495
15429 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
15430
15431 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
15432
15433 PR target/79498
15434 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
15435 the extra instruction to the right place to store 128-bit constant
15436 when needed.
15437
15438 2017-02-14 Martin Sebor <msebor@redhat.com>
15439
15440 PR middle-end/79448
15441 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
15442 warning for strings of unknown length.
15443
15444 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
15445
15446 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
15447
15448 2017-02-14 Jeff Law <law@redhat.com>
15449
15450 PR target/79404
15451 * ira-costs.c (scan_one_insn): Initialize register move costs
15452 for pseudos seen in USE/CLOBBER insns.
15453
15454 PR tree-optimization/79095
15455 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
15456 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
15457 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
15458 if the operands are known to be not equal, then the resulting range
15459 is ~[0,0].
15460 (intersect_ranges): If the new range is ~[0,0] and the old range is
15461 wide, then prefer ~[0,0].
15462 * tree-vrp.c (overflow_comparison_p_1): New function.
15463 (overflow_comparison_p): New function.
15464 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
15465 if NAME is used in an overflow test.
15466 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
15467 overflow check that can be expressed as an equality test, then adjust
15468 ops to be that equality test.
15469
15470 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15471
15472 * config/s390/s390-builtin-types.def: Remove flags argument.
15473 * config/s390/s390.c (s390_init_builtins): Likewise.
15474
15475 2017-02-14 Martin Liska <mliska@suse.cz>
15476
15477 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
15478 vector. Fix trailing white spaces.
15479
15480 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
15481
15482 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
15483 HFmode.
15484
15485 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15486
15487 PR rtl-optimization/68664
15488 * config/arm/arm.c (arm_sched_can_speculate_insn):
15489 New function. Declare prototype.
15490 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
15491
15492 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15493
15494 PR rtl-optimization/68664
15495 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
15496 New function.
15497 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
15498
15499 2017-02-14 Amit Pawar <amit.pawar@amd.com>
15500
15501 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
15502 max skip bytes for function, loop and jump.
15503
15504 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
15505
15506 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
15507 ABS_EXPR for gimple dump.
15508
15509 2017-02-14 Jakub Jelinek <jakub@redhat.com>
15510
15511 PR target/79462
15512 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
15513
15514 PR tree-optimization/79408
15515 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
15516 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
15517 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
15518 also if rhs1 is INTEGER_CST.
15519
15520 2017-02-14 Richard Biener <rguenther@suse.de>
15521
15522 PR middle-end/79432
15523 * tree-into-ssa.c (insert_phi_nodes): When the function can
15524 have abnormal edges rewrite SSA names with broken use-def
15525 dominance out of SSA and register them for PHI insertion.
15526
15527 2017-02-13 Martin Sebor <msebor@redhat.com>
15528
15529 PR middle-end/79496
15530 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
15531 clearing info.nowrite flag when snprintf size argument is a range.
15532
15533 2017-02-13 Jakub Jelinek <jakub@redhat.com>
15534
15535 * cprop.c (cprop_jump): Add missing space in string literal.
15536 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
15537 (get_constraint_for_component_ref): Likewise.
15538 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
15539 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
15540 * lra-constraints.c (process_alt_operands): Likewise.
15541 * ipa-inline.c (inline_small_functions): Likewise.
15542 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
15543 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
15544 * trans-mem.c (diagnose_tm_1_op): Likewise.
15545 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
15546 (grid_parallel_clauses_gridifiable): Likewise.
15547
15548 * config/nvptx/mkoffload.c (process): Add space in between
15549 , and %d.
15550
15551 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
15552 "MOD4_SSE_REGS" and "ALL_REGS".
15553
15554 * spellcheck.c (test_data): Add , in between "foo" and "food".
15555
15556 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15557
15558 PR target/79449
15559 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
15560 boundary crossing check and subsequent code generation agree.
15561
15562 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15563
15564 * config/aarch64/aarch64.c (has_memory_op): Delete.
15565 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
15566 has_memory_op.
15567
15568 2017-02-13 Jakub Jelinek <jakub@redhat.com>
15569
15570 PR rtl-optimization/79388
15571 PR rtl-optimization/79450
15572 * combine.c (distribute_notes): When removing TEM_INSN for which
15573 corresponding dest has last value recorded, invalidate that last
15574 value.
15575
15576 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15577
15578 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
15579 of explicit '@'. Add missing assembly comment marker on branch costs
15580 printout.
15581
15582 2017-02-13 Nathan Sidwell <nathan@acm.org>
15583
15584 * gengtype-lex.l (<in_struct>): Add '/'.
15585
15586 2017-02-13 Martin Liska <mliska@suse.cz>
15587
15588 PR c/79471
15589 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
15590
15591 2017-02-13 Richard Biener <rguenther@suse.de>
15592
15593 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
15594 Remove.
15595 * configure: Re-generate.
15596 * config.in: Likewise.
15597 * graphite-dependences.c: Simplify as if
15598 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
15599 * graphite-isl-ast-to-gimple.c: Likewise.
15600 * graphite-optimize-isl.c: Likewise.
15601 * graphite-poly.c: Likewise.
15602 * graphite-sese-to-poly.c: Likewise.
15603 * graphite.h: Likewise.
15604 * toplev.c: Include isl/version.h and use isl_version () for
15605 printing the ISL version.
15606 * doc/install.texi: Update ISL requirement.
15607
15608 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
15609
15610 * doc/standards.texi (Standards): Update reference to
15611 Objective-C 2.0.
15612
15613 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
15614
15615 * doc/extend.texi (Named Address Spaces): sourceware.org now
15616 defaults to https.
15617 * doc/install.texi (Binaries): Ditto.
15618 (Specific): Ditto.
15619
15620 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
15621
15622 * doc/cpp.texi: Replace "stringify"/"stringification" with C
15623 standard terminology "stringize"/"stringizing" throughout.
15624 * doc/cppinternals.texi: Likewise.
15625
15626 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
15627
15628 * doc/extend.texi: Fix some spelling mistakes and typos.
15629 * doc/invoke.texi: Likewise.
15630
15631 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
15632
15633 PR ipa/79224
15634 * params.def (inline-min-speedup) Change from 10 to 8.
15635
15636 2017-02-11 Jakub Jelinek <jakub@redhat.com>
15637
15638 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
15639 4.5.
15640
15641 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
15642
15643 PR ipa/79224
15644 * ipa-inline-analysis.c (get_minimal_bb): New function.
15645 (record_modified): Use it.
15646 (remap_edge_change_prob): Handle also ancestor functions.
15647
15648 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
15649
15650 * doc/contrib.texi (Contributors): Remove broken link into
15651 the Mauve CVS repository.
15652
15653 2017-02-11 Jakub Jelinek <jakub@redhat.com>
15654
15655 PR middle-end/79454
15656 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
15657 result computation whenever lhs doesn't have vector mode, not
15658 just when it has BLKmode.
15659
15660 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
15661
15662 * doc/makefile.texi (profiledbootstrap): Refer to the
15663 installation instructions only in textual form.
15664
15665 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
15666
15667 PR target/79295
15668 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
15669
15670 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
15671
15672 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
15673 (Specific): Update mingw-w64 reference.
15674 (Binaries): Ditto.
15675 (Specific): Remove broken link to Renesas RX processor.
15676
15677 2017-02-10 Richard Biener <rguenther@suse.de>
15678
15679 * toplev.c (process_options): Do not mention obsolete graphite
15680 options when printing sorry message about missing graphite support.
15681 Mention -floop-nest-optimize.
15682
15683 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
15684
15685 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
15686 (vtst_p16): Likewise.
15687 (vtstq_p8): Likewise.
15688 (vtstq_p16): Likewise.
15689 (vtst_p64): New.
15690 (vtstq_p64): Likewise.
15691 * config/arm/arm_neon.h (vgetq_lane_p64): New.
15692 (vset_lane_p64): New.
15693 (vsetq_lane_p64): New.
15694
15695 2017-02-10 Jakub Jelinek <jakub@redhat.com>
15696
15697 PR tree-optimization/79411
15698 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
15699 stmt operands are SSA_NAMEs used in abnormal phis.
15700 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
15701 phis.
15702
15703 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
15704
15705 PR ipa/70795
15706 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
15707 flag if needed.
15708
15709 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
15710
15711 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
15712
15713 2017-02-09 Jakub Jelinek <jakub@redhat.com>
15714
15715 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
15716 to avoid warning.
15717
15718 PR c/79413
15719 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
15720 not arbitrary TREE_CONSTANT.
15721
15722 PR c/79431
15723 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
15724 "omp declare target link" attribute unless is_global_var.
15725 * omp-offload.c (find_link_var_op): Likewise.
15726
15727 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
15728 Chung-Lin Tang <cltang@codesourcery.com>
15729
15730 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
15731 OMP_CLAUSE_TILE.
15732 (gimplify_adjust_omp_clauses): Don't delete TILE.
15733 (gimplify_omp_for): Deal with TILE.
15734 * internal-fn.c (expand_GOACC_TILE): New function.
15735 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
15736 (GOACC_TILE): New.
15737 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
15738 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
15739 element fields.
15740 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
15741 avoid DIV for outermost collapse var.
15742 (expand_oacc_for): Insert tile element loop as needed. Adjust.
15743 Remove out of date comments, fix whitespace.
15744 * omp-general.c (omp_extract_for_data): Deal with tiling.
15745 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
15746 adjust OLF_DIM_BASE value.
15747 (struct omp_for_data): Add tiling field.
15748 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
15749 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
15750 for auto loops. Remove default auto determining, moved to
15751 oacc_loop_fixed_partitions.
15752 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
15753 stmts, add e_mask field.
15754 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
15755 (oacc_thread_numbers): Use oacc_dim_call.
15756 (oacc_xform_tile): New.
15757 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
15758 (finish_oacc_loop): Adjust for ifns vector.
15759 (oacc_loop_discover_walk): Append loop abstraction sites to list,
15760 add case for GOACC_TILE fns.
15761 (oacc_loop_xform_loop): Delete.
15762 (oacc_loop_process): Iterate over call list directly, and add
15763 handling for GOACC_TILE fns.
15764 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
15765 dump partitioning.
15766 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
15767 vector partitioning to outer loops. Assign 2 partitions to loops
15768 when available. Add TILE handling.
15769 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
15770 (execite_oacc_device_lower): Process GOACC_TILE fns,
15771 ignore unknown specs.
15772 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
15773 * tree.c (omp_clause_num_ops): Adjust TILE ops.
15774 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
15775
15776 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
15777
15778 * configure.ac (ACX_BUGURL): Update.
15779 * configure: Regenerate.
15780
15781 2017-02-09 Richard Biener <rguenther@suse.de>
15782
15783 PR tree-optimization/69823
15784 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
15785 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
15786
15787 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
15788
15789 * config/arc/arc-c.def: Add __NPS400__ definition.
15790 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
15791 (TARGET_NPS400): Define.
15792
15793 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
15794
15795 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
15796 file.
15797 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
15798 pointer, arch_info.
15799 (arc_cpu_types): Fill the arch_info field with a pointer into the
15800 arc_arch_types table.
15801 (arc_selected_cpu): Declare.
15802 * config/arc/arc.c (arc_selected_cpu): Make global.
15803 (arc_selected_arch): Delete.
15804 (arc_base_cpu): Delete.
15805 (arc_override_options): Remove references to deleted variables,
15806 update access to arch information.
15807 (ARC_OPT): Update access to arch information.
15808 (ARC_OPTX): Likewise.
15809 * config/arc/arc.h (arc_base_cpu): Remove declaration.
15810 (TARGET_ARC600): Update access to arch information.
15811 (TARGET_ARC601): Likewise.
15812 (TARGET_ARC700): Likewise.
15813 (TARGET_EM): Likewise.
15814 (TARGET_HS): Likewise.
15815 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
15816 information.
15817
15818 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
15819
15820 PR target/78604
15821 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
15822 condition/operands for integer GE/LE/GEU/LEU operations.
15823
15824 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
15825
15826 PR translation/79397
15827 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
15828 of AltiVec.
15829
15830 2017-02-08 Martin Jambor <mjambor@suse.cz>
15831
15832 PR ipa/79375
15833 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
15834 whether allocation happened.
15835 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
15836 nothing was allocated.
15837
15838 2017-02-08 Jakub Jelinek <jakub@redhat.com>
15839
15840 PR tree-optimization/79408
15841 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
15842 constant, but SSA_NAME with a known integer range, use the minimum
15843 of that range instead of op1 to determine if modulo can be replaced
15844 with its first operand.
15845
15846 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15847
15848 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
15849
15850 2017-02-08 Richard Biener <rguenther@suse.de>
15851
15852 PR tree-optimization/71824
15853 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
15854 Check all loops contained in the merged region.
15855
15856 2017-02-07 Andrew Pinski <apinski@cavium.com>
15857
15858 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
15859
15860 2017-02-07 Andrew Pinski <apinski@cavium.com>
15861
15862 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
15863 (thunderxt88): Likewise.
15864 (thunderxt81): Disable LSE and change v8.1 to v8.
15865 (thunderxt83): Likewise.
15866
15867 2017-02-07 Jakub Jelinek <jakub@redhat.com>
15868 Richard Biener <rguenther@suse.de>
15869
15870 PR middle-end/79399
15871 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
15872 type from int to size_t.
15873 * ira-costs.c (struct_costs_size): Change type from int to size_t.
15874
15875 2017-02-07 Jakub Jelinek <jakub@redhat.com>
15876
15877 PR rtl-optimization/79386
15878 * cprop.c (bypass_conditional_jumps): Initialize
15879 bypass_last_basic_block already before splitting bbs after
15880 unconditional traps...
15881 (bypass_conditional_jumps): ... rather than here.
15882
15883 PR target/79299
15884 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
15885 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
15886 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
15887 fix -masm=intel patterns.
15888
15889 2017-02-07 Richard Biener <rguenther@suse.de>
15890
15891 PR tree-optimization/79256
15892 PR middle-end/79278
15893 * builtins.c (get_object_alignment_2): Use min_align_of_type
15894 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
15895 and ADJUST_FIELD_ALIGN.
15896
15897 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
15898 type parameter.
15899 * doc/tm.texi: Regenerate.
15900 * stor-layout.c (layout_decl): Adjust.
15901 (update_alignment_for_field): Likewise.
15902 (place_field): Likewise.
15903 (min_align_of_type): Likewise.
15904 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
15905 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
15906 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
15907 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
15908 * config/frv/frv.c (frv_adjust_field_align): Likewise.
15909 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
15910 * config/i386/i386.c (x86_field_alignment): Likewise.
15911 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
15912 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
15913 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
15914 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
15915 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
15916 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
15917 Likewise.
15918
15919 Revert
15920 2017-01-30 Richard Biener <rguenther@suse.de>
15921
15922 PR tree-optimization/79256
15923 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
15924 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
15925 alignment on TYPE.
15926
15927 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
15928
15929 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
15930 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
15931 builtins to SImode and emit a zero-extend, if necessary.
15932
15933 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
15934
15935 * docs/invoke.texi (RISC-V Options): Alphabetize.
15936
15937 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
15938
15939 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
15940 options.
15941
15942 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
15943
15944 * config/riscv/riscv.c: New file.
15945 * common/config/riscv/riscv-common.c: Likewise.
15946 * config.gcc: Likewise.
15947 * config/riscv/constraints.md: Likewise.
15948 * config/riscv/elf.h: Likewise.
15949 * config/riscv/generic.md: Likewise.
15950 * config/riscv/linux.h: Likewise.
15951 * config/riscv/multilib-generator: Likewise.
15952 * config/riscv/peephole.md: Likewise.
15953 * config/riscv/pic.md: Likewise.
15954 * config/riscv/predicates.md: Likewise.
15955 * config/riscv/riscv-builtins.c: Likewise.
15956 * config/riscv/riscv-c.c: Likewise.
15957 * config/riscv/riscv-ftypes.def: Likewise.
15958 * config/riscv/riscv-modes.def: Likewise.
15959 * config/riscv/riscv-opts.h: Likewise.
15960 * config/riscv/riscv-protos.h: Likewise.
15961 * config/riscv/riscv.h: Likewise.
15962 * config/riscv/riscv.md: Likewise.
15963 * config/riscv/riscv.opt: Likewise.
15964 * config/riscv/sync.md: Likewise.
15965 * config/riscv/t-elf-multilib: Likewise.
15966 * config/riscv/t-linux: Likewise.
15967 * config/riscv/t-linux-multilib: Likewise.
15968 * config/riscv/t-riscv: Likewise.
15969 * configure.ac: Likewise.
15970 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
15971 Waterman as RISC-V maintainers.
15972 * doc/install.texi: Add RISC-V entries.
15973 * doc/invoke.texi: Add RISC-V options section.
15974 * doc/md.texi: Add RISC-V constraints section.
15975 * configure: Regenerated.
15976
15977 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
15978
15979 PR target/66144
15980 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
15981 false values to be constant vectors with all 0 or all 1 bits set.
15982 (vcondu<mode><mode>): Likewise.
15983 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
15984 predicate.
15985 (fpmask_comparison_operator): Update comment.
15986 (vecint_comparison_operator): New predicate.
15987 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
15988 vector conditionals when the true and false values are constant
15989 vectors with all 0 bits or all 1 bits set.
15990
15991 2017-02-06 Martin Sebor <msebor@redhat.com>
15992
15993 PR tree-optimization/79376
15994 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
15995
15996 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
15997
15998 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
15999 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
16000 to simplify split condition.
16001
16002 2017-02-06 Jakub Jelinek <jakub@redhat.com>
16003
16004 * omp-expand.c (oxpand_omp_atomic_fetch_op,
16005 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
16006 false.
16007
16008 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
16009
16010 PR rtl-optimization/68664
16011 * target.def (can_speculate_insn): New hook.
16012 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
16013 * doc/tm.texi: Regenerate.
16014 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
16015 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
16016 (rs6000_sched_can_speculate_insn): New function.
16017
16018 2017-02-06 Jakub Jelinek <jakub@redhat.com>
16019
16020 PR tree-optimization/79284
16021 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
16022 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
16023 vectorizable_mask_load_store, vectorizable_operation,
16024 vect_is_simple_cond, get_same_sized_vectype): Use it instead
16025 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
16026 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
16027 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
16028 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
16029 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
16030 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
16031 is_gimple_assign (stmt). Replace another such test with
16032 is_gimple_assign (stmt).
16033
16034 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
16035
16036 PR target/78883
16037 * config/avr/avr.c (rtl-iter.h): Include it.
16038 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
16039 (avr_legitimate_combined_insn): ...and implementation.
16040
16041 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
16042
16043 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
16044 * config/s390/s390.c (s390_const_operand_ok)
16045 (s390_canonicalize_comparison, s390_extract_part)
16046 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
16047 (s390_contiguous_bitmask_p, s390_rtx_costs)
16048 (legitimize_pic_address): Likewise.
16049 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
16050 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
16051 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
16052 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
16053 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
16054
16055 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
16056
16057 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
16058 REGNO($0) == REGNO($1).
16059
16060 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16061
16062 * config/s390/linux.h(SIZE_TYPE): Add comment.
16063
16064 2017-02-06 Julian Brown <julian@codesourcery.com>
16065 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16066 Virendra Pathak <virendra.pathak@broadcom.com>
16067
16068 * config/aarch64/aarch64-cores.def: Change the scheduler
16069 to Thunderx2t99.
16070 * config/aarch64/aarch64.md: Include thunderx2t99.md.
16071 * config/aarch64/thunderx2t99.md: New file.
16072
16073 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
16074
16075 * doc/standards.texi (Go Language): Update link to language
16076 standard.
16077
16078 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
16079
16080 * tree-eh.c (lower_resx): Sanitize profile.
16081 (cleanup_empty_eh_move_lp): Likewise.
16082
16083 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
16084
16085 PR tree-ssa/79347
16086 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
16087 ELSE_PROB.
16088 * cfgloopmanip.h (loop_version): Update prototype.
16089 * modulo-sched.c (sms_schedule): Update call of loop_version.
16090 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
16091 * tree-parloops.c (gen_parallel_loop): Likewise.
16092 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
16093 * tree-ssa-loop-split.c (split_loop): Likewise.
16094 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
16095 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
16096
16097 2017-02-05 Martin Liska <mliska@suse.cz>
16098
16099 PR bootstrap/78985
16100 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
16101 variable to NULL.
16102 (print_operand_address): Initialize a struct to zero.
16103
16104 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
16105
16106 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
16107 garbage collector only in textual form.
16108
16109 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
16110
16111 * doc/extend.texi (x86 specific memory model extensions for
16112 transactional memory): Simplify a phrase.
16113
16114 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
16115
16116 PR target/79353
16117 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
16118 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
16119 (atomic_storedi_1): Likewise.
16120
16121 2017-02-04 Jakub Jelinek <jakub@redhat.com>
16122
16123 PR tree-optimization/79338
16124 * tree-parloops.c (gather_scalar_reductions): Don't call
16125 vect_analyze_loop_form for loop->inner before destroying loop's
16126 loop_vinfo.
16127
16128 2017-02-03 Martin Sebor <msebor@redhat.com>
16129
16130 PR tree-optimization/79327
16131 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
16132 when precision has resulted in leading zeros.
16133 (format_integer): Adjust the likely counter to assume an unknown
16134 argument that may be zero is non-zero.
16135
16136 2017-02-03 Jason Merrill <jason@redhat.com>
16137
16138 PR c++/78689
16139 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
16140 avoid copying non-taken branch.
16141
16142 2017-02-03 Jakub Jelinek <jakub@redhat.com>
16143
16144 PR tree-optimization/79340
16145 * tree-vect-loop.c (vectorizable_reduction): Release
16146 vec_defs elements after safe_splicing them into other vectors.
16147 Formatting fixes.
16148
16149 PR tree-optimization/79327
16150 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
16151 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
16152 dirtype.
16153 (format_integer): Use wide_int_to_tree instead of build_int_cst
16154 + to_?hwi. If argmin is NULL, just set argmin and argmax to
16155 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
16156 of shortest and longest sequence.
16157
16158 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
16159
16160 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
16161 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
16162
16163 2017-02-03 Walter Lee <walt@tilera.com>
16164
16165 PR target/78862
16166 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
16167 after initial stackframe link reg save.
16168 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
16169
16170 2017-02-03 Jakub Jelinek <jakub@redhat.com>
16171
16172 PR target/79354
16173 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
16174 wu for stxssp alternative.
16175
16176 2017-02-03 Martin Sebor <msebor@redhat.com>
16177
16178 PR tree-optimization/79352
16179 * gimple-fold.c (get_range_strlen): Add argument.
16180 (get_range_strlen): Change return type to bool.
16181 (get_maxval_strlen): Pass in a dummy argument.
16182 * gimple-fold.h (get_range_strlen): Change return type to bool.
16183 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
16184 * tree.h (array_at_struct_end_p): Add argument.
16185 * tree.c (array_at_struct_end_p): Handle it.
16186
16187 2017-02-03 Martin Liska <mliska@suse.cz>
16188
16189 PR lto/66295
16190 * multiple_target.c (create_dispatcher_calls): Redirect edge
16191 from a caller of a dispatcher.
16192 (expand_target_clones): Make the clones local.
16193 (ipa_target_clone): Do both target clones and resolvers.
16194 (ipa_dispatcher_calls): Remove the pass.
16195 (pass_dispatcher_calls::gate): Likewise.
16196 (make_pass_dispatcher_calls): Likewise.
16197 * passes.def (pass_target_clone): Put as very first IPA early
16198 pass.
16199
16200 2017-02-03 Martin Liska <mliska@suse.cz>
16201
16202 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
16203 in case of a function with ifunc attribute.
16204
16205 2017-02-03 Martin Liska <mliska@suse.cz>
16206
16207 * cgraph.c (cgraph_node::dump): Dump function version info.
16208 * symtab.c (symtab_node::dump_base): Add missing new line.
16209
16210 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
16211
16212 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
16213 (ifcombine_ifandif): Use it.
16214
16215 2017-02-03 Martin Liska <mliska@suse.cz>
16216
16217 * doc/invoke.texi: Document default value for
16218 use-after-scope-direct-emission-threshold.
16219
16220 2017-02-03 Martin Liska <mliska@suse.cz>
16221
16222 PR tree-optimization/79339
16223 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
16224 (format_floating): Likewise.
16225
16226 2017-02-03 Martin Liska <mliska@suse.cz>
16227
16228 PR ipa/79337
16229 * ipa-prop.c (ipa_node_params_t::insert): Remove current
16230 implementation.
16231 (ipa_node_params_t::remove): Likewise.
16232 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
16233 initialization from removed ipa_node_params_t::insert.
16234 (ipa_node_params::~ipa_node_params): Move from removed
16235 ipa_node_params_t::release.
16236 * symbol-summary.h (symbol_summary::m_released): New member.
16237 Do not release a summary twice. Do not allow to call finalizer
16238 for types of a summary that live in GGC memory.
16239
16240 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
16241
16242 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
16243 cmp_branch fusion.
16244
16245 2017-02-02 Martin Sebor <msebor@redhat.com>
16246
16247 PR middle-end/79275
16248 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
16249 (format_string): Tighten up the range of output for non-constant
16250 strings and correct the expected range for wide non-constant strings.
16251
16252 2017-02-02 Martin Sebor <msebor@redhat.com>
16253
16254 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
16255
16256 PR middle-end/32003
16257 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
16258 index.
16259 (-fdump-tree-@var): Add to index and document how to come up
16260 with pass-specific option and dump file names.
16261 (-fdump-passes): Clarify where to look for output.
16262
16263 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
16264
16265 PR middle-end/77445
16266 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
16267 statistics of the analyzed path; allow threading for speed when
16268 any of BBs along the path are optimized for speed.
16269
16270 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
16271
16272 PR middle-end/78468
16273 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
16274 settings of the virtual registers.
16275
16276 Revert again
16277 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
16278
16279 * explow.c (get_dynamic_stack_size): Take known alignment of stack
16280 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
16281 needed.
16282
16283 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16284
16285 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
16286 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
16287
16288 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16289
16290 * config/s390/s390.md: Add missing comments with the expanded
16291 mnemonics.
16292 * config/s390/vector.md: Likewise.
16293 * config/s390/vx-builtins.md: Likewise.
16294
16295 2017-02-02 Jakub Jelinek <jakub@redhat.com>
16296
16297 PR target/79197
16298 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
16299 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
16300 conditions on a single line.
16301
16302 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16303
16304 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
16305 __S390_VX__ to __VX__.
16306
16307 2017-02-01 Andrew Pinski <apinski@cavium.com>
16308
16309 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
16310 stmt_info to record_stmt_cost.
16311 (vect_get_known_peeling_cost): Pass stmt_info if known to
16312 record_stmt_cost.
16313 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
16314 cpu_vector_cost field into
16315 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
16316 field into vec_int_stmt_cost and vec_fp_stmt_cost.
16317 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
16318 splitting of scalar_stmt_cost and vec_stmt_cost.
16319 (thunderx_vector_cost): Likewise.
16320 (cortexa57_vector_cost): LIkewise.
16321 (exynosm1_vector_cost): Likewise.
16322 (xgene1_vector_cost): Likewise.
16323 (thunderx2t99_vector_cost): Improve after the splitting of the two
16324 fields.
16325 (aarch64_builtin_vectorization_cost): Update for the splitting of
16326 scalar_stmt_cost and vec_stmt_cost.
16327
16328 2017-02-01 Torvald Riegel <triegel@redhat.com>
16329 Richard Henderson <rth@redhat.com>
16330
16331 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
16332 conditional on existance of a fast atomic load.
16333 * optabs-query.c (can_atomic_load_p): New function.
16334 * optabs-query.h (can_atomic_load_p): Declare it.
16335 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
16336 no fast atomic load is available for the particular size of access.
16337 (expand_atomic_compare_and_swap): Likewise.
16338 (expand_atomic_load): Likewise.
16339 (expand_atomic_store): Likewise.
16340 (expand_atomic_fetch_op): Likewise.
16341 * testsuite/lib/target-supports.exp
16342 (check_effective_target_sync_int_128): Remove x86 because it provides
16343 no fast atomic load.
16344 (check_effective_target_sync_int_128_runtime): Likewise.
16345
16346 2017-02-01 Richard Biener <rguenther@suse.de>
16347
16348 * graphite.c: Include tree-vectorizer.h for find_loop_location.
16349 (graphite_transform_loops): Provide opt-info for optimized nests.
16350 * tree-parloop.c (parallelize_loops): Provide opt-info for
16351 parallelized loops.
16352
16353 2017-02-01 Richard Biener <rguenther@suse.de>
16354
16355 PR middle-end/79315
16356 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
16357 was not set before.
16358
16359 2017-02-01 Richard Biener <rguenther@suse.de>
16360
16361 PR tree-optimization/71824
16362 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
16363 Verify the loops are valid in the merged SESE region.
16364 (scop_detection::can_represent_loop_1): Check analyzing the
16365 evolution of the number of iterations in the region succeeds.
16366
16367 2017-01-31 Ian Lance Taylor <iant@golang.org>
16368
16369 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
16370 REG_ARGS_SIZE note to 32-bit push insns and call insn.
16371
16372 2017-01-31 David Malcolm <dmalcolm@redhat.com>
16373
16374 PR preprocessor/79210
16375 * input.c (get_substring_ranges_for_loc): Replace line_width
16376 assertion with error-handling.
16377
16378 2017-01-31 Richard Biener <rguenther@suse.de>
16379
16380 PR tree-optimization/77318
16381 * graphite-sese-to-poly.c (extract_affine): Fix assert.
16382 (create_pw_aff_from_tree): Take loop parameter.
16383 (add_condition_to_pbb): Pass loop of the condition to
16384 create_pw_aff_from_tree.
16385
16386 2017-01-31 Jakub Jelinek <jakub@redhat.com>
16387
16388 * config/s390/s390.c (s390_asan_shadow_offset): New function.
16389 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
16390
16391 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
16392
16393 PR target/78597
16394 PR target/79038
16395 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
16396 no longer used.
16397 (convert_int_to_float128): Likewise.
16398 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
16399 (convert_int_to_float128): Likewise.
16400 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
16401 (UNSPEC_IEEE128_CONVERT): Likewise.
16402 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
16403 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
16404 Use local variables for IBM extended format.
16405 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
16406 (fix_trunc<mode>si2_fprs): Likewise.
16407 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
16408 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
16409 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
16410 to know that we can now have integers of all sizes in vector
16411 registers.
16412 (fix<uns>_<mode>di2_hw): Likewise.
16413 (float<uns>_<mode>si2_hw): Likewise.
16414 (fix_<mode>si2_hw): Likewise.
16415 (fixuns_<mode>si2_hw): Likewise.
16416 (float<uns>_<mode>di2_hw): Likewise.
16417 (float_<mode>di2_hw): Likewise.
16418 (float_<mode>si2_hw): Likewise.
16419 (floatuns_<mode>di2_hw): Likewise.
16420 (floatuns_<mode>si2_hw): Likewise.
16421 (xscvqp<su>wz_<mode>): Delete, no longer used.
16422 (xscvqp<su>dz_<mode>): Likewise.
16423 (xscv<su>dqp_<mode>): Likewise.
16424 (ieee128_mfvsrd_64bit): Likewise.
16425 (ieee128_mfvsrd_32bit): Likewise.
16426 (ieee128_mfvsrwz): Likewise.
16427 (ieee128_mtvsrw): Likewise.
16428 (ieee128_mtvsrd_64bit): Likewise.
16429 (ieee128_mtvsrd_32bit): Likewise.
16430
16431 2017-01-31 Martin Liska <mliska@suse.cz>
16432
16433 PR ipa/79285
16434 * ipa-prop.c (ipa_free_all_node_params): Call release method
16435 instead of ~sumbol_summary to not to trigger double times
16436 dtor of hash_map.
16437
16438 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
16439
16440 PR tree-optimization/71691
16441 * bitmap.h (class auto_bitmap): New.
16442 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
16443 is_maybe_undefined instead of ssa_undefined_value_p.
16444
16445 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16446
16447 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
16448 __S390_ARCH_LEVEL__ to __ARCH__.
16449
16450 2017-01-31 Jakub Jelinek <jakub@redhat.com>
16451
16452 PR tree-optimization/79267
16453 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
16454 if should_remove_lhs_p is true.
16455
16456 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
16457
16458 PR debug/63238
16459 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
16460 (add_alignment_attribute): New.
16461 (base_type_die): Add alignment attribute.
16462 (subrange_type_die): Likewise.
16463 (modified_type_die): Likewise.
16464 (gen_array_type_die): Likewise.
16465 (gen_descr_array_type_die: Likewise.
16466 (gen_enumeration_type_die): Likewise.
16467 (gen_subprogram_die): Likewise.
16468 (gen_variable_die): Likewise.
16469 (gen_field_die): Likewise.
16470 (gen_ptr_to_mbr_type_die): Likewise.
16471 (gen_struct_or_union_type_die): Likewise.
16472 (gen_subroutine_type_die): Likewise.
16473 (gen_typedef_die): Likewise.
16474 (base_type_cmp): Compare alignment attribute.
16475
16476 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
16477
16478 PR target/79170
16479 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
16480 (setb_unsigned) New pattern for setb with CCUNS.
16481 * config/rs6000/rs6000.c (expand_block_compare): Use a different
16482 subfc./subfe sequence to avoid overflow problems. Generate a
16483 shorter sequence with cmpld/setb for power9.
16484 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
16485 for generating subfc. instruction.
16486 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
16487 now uses this instruction.
16488
16489 2017-01-30 Ian Lance Taylor <iant@google.com>
16490
16491 PR debug/79289
16492 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
16493 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
16494
16495 2017-01-30 Martin Sebor <msebor@redhat.com>
16496
16497 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
16498 Move constant to the right of a relational operator.
16499 (get_mpfr_format_length, format_character, format_string): Ditto.
16500 (should_warn_p, maybe_warn): Same.
16501
16502 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
16503
16504 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
16505
16506 PR lto/79061
16507 * asan.c (get_translation_unit_decl): Remove function.
16508 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
16509
16510 2017-01-30 Martin Liska <mliska@suse.cz>
16511
16512 PR gcov-profile/79259
16513 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
16514 -fprofile-generate.
16515
16516 2017-01-30 Martin Liska <mliska@suse.cz>
16517
16518 PR bootstrap/78985
16519 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
16520 Initialize variables with NULL value.
16521
16522 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
16523
16524 PR target/79260
16525 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
16526 tm_p_file.
16527 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
16528
16529 2017-01-30 Richard Biener <rguenther@suse.de>
16530
16531 PR tree-optimization/79276
16532 * tree-vrp.c (process_assert_insertions): Properly adjust common
16533 when removing a duplicate.
16534
16535 * gcc.dg/torture/pr79276.c: New testcase.
16536
16537 2017-01-30 Richard Biener <rguenther@suse.de>
16538
16539 PR tree-optimization/79256
16540 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
16541 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
16542 alignment on TYPE.
16543 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
16544
16545 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
16546
16547 PR target/79240
16548 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
16549 ("*r<noxa>sbg_<mode>_sll_bitmask")
16550 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
16551 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
16552 Use contiguous_bitmask_nowrap_operand.
16553
16554 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16555
16556 PR target/79268
16557 * config/rs6000/altivec.h (vec_xl): Revise #define.
16558 (vec_xst): Likewise.
16559
16560 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
16561
16562 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
16563
16564 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
16565
16566 PR rtl-optimization/79194
16567 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
16568 traps before call to bypass_conditional_jumps.
16569
16570 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
16571
16572 PR tree-optimization/71374
16573 * lra-constraints.c (check_conflict_input_operands): New.
16574 (match_reload): Use it.
16575
16576 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
16577
16578 PR target/79131
16579 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
16580 account to calculate conflict_set.
16581
16582 2017-01-27 Bin Cheng <bin.cheng@arm.com>
16583
16584 PR rtl-optimization/78559
16585 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
16586 other_insn in combine.
16587
16588 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
16589
16590 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
16591 uint16_type_node for BT_UINT16.
16592
16593 2017-01-27 David Malcolm <dmalcolm@redhat.com>
16594
16595 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
16596 "RTL Tests" to menu.
16597 (GIMPLE Tests): New node.
16598 (RTL Tests): New node.
16599
16600 2017-01-27 Richard Biener <rguenther@suse.de>
16601
16602 PR tree-optimization/79245
16603 * tree-loop-distribution.c (distribute_loop): Apply cost
16604 modeling also to detected patterns.
16605
16606 2017-01-27 Richard Biener <rguenther@suse.de>
16607
16608 PR tree-optimization/71433
16609 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
16610 (compare_assert_loc): New function.
16611 (process_assert_insertions): Sort and optimize assert locations
16612 to remove duplicates and push down identical assertions on
16613 edges to their destination block.
16614
16615 2017-01-27 Richard Biener <rguenther@suse.de>
16616
16617 PR tree-optimization/79244
16618 * tree-vrp.c (remove_range_assertions): Forcefully propagate
16619 out SSA names even if abnormal.
16620
16621 2017-01-27 Jakub Jelinek <jakub@redhat.com>
16622
16623 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
16624 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
16625 instead of MPFR_RNDN.
16626
16627 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
16628
16629 PR target/79239
16630 * arm.c (arm_option_override): Don't call build_target_option_node
16631 until after doing all option overrides.
16632 (arm_valid_target_attribute_tree): Likewise.
16633
16634 2017-01-27 Martin Liska <mliska@suse.cz>
16635
16636 * doc/invoke.texi (-fprofile-arcs): Document profiling support
16637 for {cd}tors and C++ {cd}tors.
16638
16639 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
16640
16641 * config/s390/s390.md ("*setmem_long_and")
16642 ("*setmem_long_and_31z"): Use zero_extend instead of and.
16643
16644 2017-01-26 Martin Sebor <msebor@redhat.com>
16645
16646 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
16647 of precision.
16648
16649 2017-01-26 Martin Sebor <msebor@redhat.com>
16650
16651 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
16652 HAVE_DFmode before using XFmode or DFmode.
16653 (parse_directive): Avoid using the z length modifier to avoid
16654 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
16655
16656 PR middle-end/78703
16657 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
16658 to accept adjustment as an array.
16659 (get_int_range): New function.
16660 (struct directive): Make width and prec arrays.
16661 (directive::set_width, directive::set_precision): Call get_int_range.
16662 (format_integer, format_floating): Handle width and precision ranges.
16663 (format_string, parse_directive): Same.
16664
16665 2017-01-26 Jakub Jelinek <jakub@redhat.com>
16666
16667 PR debug/79129
16668 * dwarf2out.c (generate_skeleton_bottom_up): For children with
16669 comdat_type_p set, just clone them, but keep the children in the
16670 original DIE.
16671
16672 PR debug/78835
16673 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
16674 which have direct callers with -fvar-tracking-assignments enabled
16675 in the current TU.
16676 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
16677 inside of type units.
16678
16679 2017-01-26 Martin Sebor <msebor@redhat.com>
16680
16681 PR middle-end/78703
16682 * gimple-ssa-sprintf.c (struct result_range): Add likely and
16683 unlikely counters.
16684 (struct format_result): Replace number_chars, number_chars_min,
16685 and number_chars_max with a single member of struct result_range.
16686 Remove bounded.
16687 (format_result::operator+=): Adjust.
16688 (struct fmtresult): Remove bounded. Handle likely and unlikely
16689 counters.
16690 (fmtresult::adjust_for_width_or_precision): New function.
16691 (fmtresult:type_max_digits): New function.
16692 (bytes_remaining): Handle likely and unlikely counters.
16693 (min_bytes_remaining): Remove.
16694 (format_percent): Simplify.
16695 (format_integer, format_floating): Set likely and unlikely counters.
16696 (get_string_length, format_character, format_string): Same.
16697 (format_plain, should_warn_p): New function.
16698 (maybe_warn): Call should_warn_p. Update diagnostic messages
16699 and handle those for all directives, including plain strings.
16700 (format_directive): Handle likely and unlikely counters.
16701 Remove unnecessary quoting from diagnostics. Add an informational
16702 note.
16703 (add_bytes): Remove.
16704 (pass_sprintf_length::compute_format_length): Simplify.
16705 (try_substitute_return_value): Handle likely and unlikely counters.
16706
16707 2017-01-26 Carl Love <cel@us.ibm.com>
16708
16709 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
16710 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
16711
16712 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
16713
16714 PR target/79131
16715 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
16716 endianess for subregs into account.
16717 * lra-constraints.c (lra_constraints): Do risky transformations
16718 always on the first iteration.
16719 * lra-lives.c (check_pseudos_live_through_calls): Add arg
16720 last_call_used_reg_set.
16721 (process_bb_lives): Define and use last_call_used_reg_set.
16722 * lra.c (lra): Always continue after lra_constraints on the first
16723 iteration.
16724
16725 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
16726
16727 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
16728 constant.
16729 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
16730
16731 2017-01-26 Jakub Jelinek <jakub@redhat.com>
16732
16733 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
16734 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
16735 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
16736 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
16737 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
16738 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
16739 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
16740 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
16741 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
16742
16743 2017-01-26 Marek Polacek <polacek@redhat.com>
16744
16745 PR c/79199
16746 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
16747 for the third operand.
16748
16749 2017-01-26 Jakub Jelinek <jakub@redhat.com>
16750
16751 PR middle-end/79236
16752 * omp-low.c (struct omp_context): Add simt_stmt field.
16753 (scan_omp_for): Return omp_context *.
16754 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
16755 context to the _simt_ SIMD stmt.
16756 (lower_omp_for): For combined SIMD with sibling _simt_
16757 SIMD, make sure to use the same decls in _looptemp_
16758 clauses as in the sibling.
16759
16760 2017-01-26 David Sherwood <david.sherwood@arm.com>
16761
16762 PR middle-end/79212
16763 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
16764 all contexts.
16765
16766 2017-01-26 Jakub Jelinek <jakub@redhat.com>
16767
16768 PR target/70465
16769 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
16770 emit fld b; fld a; if possible.
16771
16772 * brig-builtins.def: Update copyright years.
16773 * config/arm/arm_acle_builtins.def: Update copyright years.
16774
16775 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
16776
16777 PR target/79179
16778 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
16779 constraint instead of o for the stxsd instruction.
16780
16781 2017-01-25 Carl Love <cel@us.ibm.com>
16782
16783 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
16784 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
16785
16786 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
16787
16788 * doc/invoke.texi (C++ Dialect Options): Fix typo.
16789
16790 2017-01-25 Richard Biener <rguenther@suse.de>
16791
16792 PR tree-optimization/69264
16793 * target.def (vector_alignment_reachable): Improve documentation.
16794 * doc/tm.texi: Regenerate.
16795 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
16796 and add a comment.
16797 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
16798 earlier changes with respect to TYPE_USER_ALIGN.
16799 (vector_alignment_reachable_p): Likewise. Improve dumping.
16800
16801 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16802
16803 PR target/79145
16804 * config/arm/arm.md (xordi3): Force constant operand into a register
16805 for TARGET_IWMMXT.
16806
16807 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16808
16809 * doc/invoke.texi (-fstore-merging): Correct default optimization
16810 levels at which it is enabled.
16811 (-O): Move -fstore-merging from list to...
16812 (-O2): ... Here.
16813
16814 2017-01-25 Richard Biener <rguenther@suse.de>
16815
16816 PR debug/78363
16817 * omp-expand.c: Include debug.h.
16818 (expand_omp_taskreg): Make sure to generate early debug before
16819 outlining anything from a function.
16820 (expand_omp_target): Likewise.
16821 (grid_expand_target_grid_body): Likewise.
16822
16823 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
16824
16825 PR lto/79061
16826 * asan.c (get_translation_unit_decl): New function.
16827 (asan_add_global): Extract modules file name from globals
16828 TRANSLATION_UNIT_DECL name.
16829
16830 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
16831
16832 PR target/77439
16833 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
16834 for long calls with APCS frame and VFP.
16835
16836 2017-01-24 David Malcolm <dmalcolm@redhat.com>
16837
16838 * cfg.c (original_copy_tables_initialized_p): New function.
16839 * cfg.h (original_copy_tables_initialized_p): New decl.
16840 * cfgrtl.c (relink_block_chain): Guard the call to
16841 free_original_copy_tables with a call to
16842 original_copy_tables_initialized_p.
16843 * cgraph.h (symtab_node::native_rtl_p): New decl.
16844 * cgraphunit.c (symtab_node::native_rtl_p): New function.
16845 (symtab_node::needed_p): Don't assert for early assembly output
16846 for __RTL functions.
16847 (cgraph_node::finalize_function): Set "force_output" for __RTL
16848 functions.
16849 (cgraph_node::analyze): Bail out early for __RTL functions.
16850 (analyze_functions): Update assertion to support __RTL functions.
16851 (cgraph_node::expand): Bail out early for __RTL functions.
16852 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
16853 __RTL functions.
16854 * function.h (struct function): Update comment for field
16855 "pass_startwith".
16856 * gimple-expr.c: Include "tree-pass.h".
16857 (gimple_has_body_p): Return false for __RTL functions.
16858 * Makefile.in (OBJS): Add run-rtl-passes.o.
16859 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
16860 accessor.
16861 (gcc::pass_manager::get_clean_slate): New accessor.
16862 * passes.c: Include "insn-addr.h".
16863 (should_skip_pass_p): Add logging. Update logic for running
16864 "expand" to be compatible with both __GIMPLE and __RTL. Guard
16865 property-provider override so it is only done for gimple passes.
16866 Don't skip dfinit.
16867 (skip_pass): New function.
16868 (execute_one_pass): Call skip_pass when skipping passes.
16869 * read-md.c (md_reader::read_char): Support filtering
16870 the input to a subset of line numbers.
16871 (md_reader::md_reader): Initialize fields
16872 m_first_line and m_last_line.
16873 (md_reader::read_file_fragment): New function.
16874 * read-md.h (md_reader::read_file_fragment): New decl.
16875 (md_reader::m_first_line): New field.
16876 (md_reader::m_last_line): New field.
16877 * read-rtl-function.c (function_reader::create_function): Only
16878 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
16879 curr_properties. Set DECL_INITIAL to a dummy block.
16880 (read_rtl_function_body_from_file_range): New function.
16881 * read-rtl-function.h (read_rtl_function_body_from_file_range):
16882 New decl.
16883 * run-rtl-passes.c: New file.
16884 * run-rtl-passes.h: New file.
16885
16886 2017-01-24 Jeff Law <law@redhat.com>
16887
16888 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
16889 buffer size.
16890
16891 2017-01-24 Bin Cheng <bin.cheng@arm.com>
16892
16893 PR tree-optimization/79159
16894 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
16895 (record_nonwrapping_iv): Improve boundary using above function if no
16896 value range information.
16897
16898 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
16899 Martin Jambor <mjambor@suse.cz>
16900
16901 * brig-builtins.def: New file.
16902 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
16903 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
16904 (DEF_HSAIL_SAT_BUILTIN): Likewise.
16905 (DEF_HSAIL_INTR_BUILTIN): Likewise.
16906 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
16907 * builtin-types.def (BT_INT8): New.
16908 (BT_INT16): Likewise.
16909 (BT_UINT8): Likewise.
16910 (BT_UINT16): Likewise.
16911 (BT_FN_ULONG): Likewise.
16912 (BT_FN_UINT_INT): Likewise.
16913 (BT_FN_UINT_ULONG): Likewise.
16914 (BT_FN_UINT_LONG): Likewise.
16915 (BT_FN_UINT_PTR): Likewise.
16916 (BT_FN_ULONG_PTR): Likewise.
16917 (BT_FN_INT8_FLOAT): Likewise.
16918 (BT_FN_INT16_FLOAT): Likewise.
16919 (BT_FN_UINT32_FLOAT): Likewise.
16920 (BT_FN_UINT16_FLOAT): Likewise.
16921 (BT_FN_UINT8_FLOAT): Likewise.
16922 (BT_FN_UINT64_FLOAT): Likewise.
16923 (BT_FN_UINT16_UINT32): Likewise.
16924 (BT_FN_UINT32_UINT16): Likewise.
16925 (BT_FN_UINT16_UINT16_UINT16): Likewise.
16926 (BT_FN_INT_PTR_INT): Likewise.
16927 (BT_FN_UINT_PTR_UINT): Likewise.
16928 (BT_FN_LONG_PTR_LONG): Likewise.
16929 (BT_FN_ULONG_PTR_ULONG): Likewise.
16930 (BT_FN_VOID_UINT64_UINT64): Likewise.
16931 (BT_FN_UINT8_UINT8_UINT8): Likewise.
16932 (BT_FN_INT8_INT8_INT8): Likewise.
16933 (BT_FN_INT16_INT16_INT16): Likewise.
16934 (BT_FN_INT_INT_INT): Likewise.
16935 (BT_FN_UINT_FLOAT_UINT): Likewise.
16936 (BT_FN_FLOAT_UINT_UINT): Likewise.
16937 (BT_FN_ULONG_UINT_UINT): Likewise.
16938 (BT_FN_ULONG_UINT_PTR): Likewise.
16939 (BT_FN_ULONG_ULONG_ULONG): Likewise.
16940 (BT_FN_UINT_UINT_UINT): Likewise.
16941 (BT_FN_VOID_UINT_PTR): Likewise.
16942 (BT_FN_UINT_UINT_PTR: Likewise.
16943 (BT_FN_UINT32_UINT64_PTR): Likewise.
16944 (BT_FN_INT_INT_UINT_UINT): Likewise.
16945 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
16946 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
16947 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
16948 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
16949 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
16950 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
16951 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
16952 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
16953 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
16954 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
16955 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
16956 * doc/frontends.texi: List BRIG FE.
16957 * doc/install.texi (Testing): Add BRIG tesring requirements.
16958 * doc/invoke.texi (Overall Options): Mention BRIG.
16959 * doc/standards.texi (Standards): Doucment BRIG HSA version.
16960
16961 2017-01-24 Richard Biener <rguenther@suse.de>
16962
16963 PR translation/79208
16964 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
16965
16966 2017-01-24 Martin Jambor <mjambor@suse.cz>
16967
16968 PR bootstrap/79198
16969 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
16970 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
16971 and known_contexts.
16972
16973 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
16974
16975 PR middle-end/79123
16976 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
16977 casts from signed to unsigned really don't have a range.
16978
16979 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
16980
16981 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
16982 GMP_RNDx for compatiblity.
16983
16984 2017-01-24 Martin Liska <mliska@suse.cz>
16985
16986 PR bootstrap/79132
16987 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
16988 that would prevent us to call alloca with -1 as argument.
16989
16990 2017-01-24 Jakub Jelinek <jakub@redhat.com>
16991
16992 * dwarf2out.c (output_compilation_unit_header, output_file_names):
16993 Avoid -Wformat-security warning.
16994
16995 2017-01-23 Andrew Pinski <apinski@cavium.com>
16996
16997 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
16998 cost table.
16999
17000 2017-01-23 Martin Sebor <msebor@redhat.com>
17001
17002 PR middle-end/78703
17003 * gimple-ssa-sprintf.c (warn_level): New global.
17004 (format_integer): Use it here and throughout the rest of the file.
17005 Use the same switch to compute sign as base.
17006 (maybe_warn): New function.
17007 (format_directive): Factor out warnings into maybe_warn.
17008 Add debugging output. Use warn_level.
17009 (add_bytes): Use warn_level.
17010 (pass_sprintf_length::compute_format_length): Add debugging output.
17011 (try_substitute_return_value): Same.
17012 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
17013
17014 PR middle-end/78703
17015 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
17016 (struct fmtresult, format_integer, format_floating): Adjust.
17017 (fmtresult::fmtresult): Set max correctly in two argument ctor.
17018 (get_string_length, format_string,format_directive): Same.
17019 (pass_sprintf_length::compute_format_length): Same.
17020 (try_substitute_return_value): Simplify slightly.
17021
17022 PR middle-end/78703
17023 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
17024 (fmtresult::operator+=): Outlined.
17025 (struct fmtresult): Add ctors.
17026 (struct conversion_spec): Rename...
17027 (struct directive): ...to this. Add and remove data members.
17028 (directive::set_width, directive::set_precision): New functions.
17029 (format_percent): Use fmtresult ctor.
17030 (get_width_and_precision): Remove.
17031 (format_integer): Make naming changes. Avoid computing width and
17032 precision.
17033 (format_floating): Same. Adjust indentation.
17034 (format_character, format_none): New functions.
17035 (format_string): Moved character handling to format_character.
17036 (format_directive): Remove arguments, change return type.
17037 (parse_directive): New function.
17038 (pass_sprintf_length::compute_format_length): Move directive
17039 parsing to parse_directive.
17040
17041 2017-01-23 Jakub Jelinek <jakub@redhat.com>
17042
17043 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
17044 (assign_assembler_name_if_needed): ... this.
17045 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
17046 (assign_assembler_name_if_needed): ... this.
17047 (free_lang_data_in_cgraph): Adjust callers.
17048 * cgraphunit.c (cgraph_node::analyze): Likewise.
17049 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
17050 Likewise.
17051
17052 2017-01-23 Richard Biener <rguenther@suse.de>
17053
17054 PR tree-optimization/79088
17055 PR tree-optimization/79188
17056 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
17057 resetting loop bounds after last path deletion. Reset loop
17058 bounds of the target loop, make code match the comments.
17059 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
17060 Make sure loops need no fixups.
17061
17062 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
17063
17064 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
17065 exponent support with double type for first argument.
17066 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
17067 type returned by __builtin_vec_extract_sig,
17068 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
17069 functions from "vector int" to "vector unsigned int" or from
17070 "vector long long int" to "vector unsigned long long int".
17071 Changed type returned by __builtin_vec_extract_exp,
17072 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
17073 functions from "vector int" to "vector unsigned int" or from
17074 "vector long long int" to "vector unsigned long long int".
17075 Changed return type of __builtin_vec_test_data_class,
17076 __builtin_vec_test_data_class_sp, and
17077 __builtin_vec_test_data_class_dp from "vector int" to
17078 "vector bool int" or from "vector long long int" to "vector bool
17079 long long int" and changed second argument type from "unsigned
17080 int" to "int". Added new overloaded function forms "vector float
17081 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
17082 "vector float __builtin_vec_insert_exp_sp (vector float, vector
17083 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
17084 double, vector unsigned long long int)" and "vector double
17085 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
17086 long int)". Changed return type of
17087 __builtin_scalar_test_data_class and
17088 __builtin_scalar_test_data_class_sp and
17089 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
17090 int" and changed second argument from "unsigned int" to "int".
17091 Changed type returned by __builtin_scalar_test_neg,
17092 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
17093 from "int" to "bool int". Added new overloaded function form
17094 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
17095 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
17096 exponent double-precision with floating point first argument.
17097 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
17098 documentation of scalar_test_data_class, scalar_test_neg,
17099 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
17100 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
17101 vec_test_data_class built-in functions to reflect refinements in
17102 their type signatures.
17103
17104 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
17105
17106 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
17107 size of buf.
17108 (aarch64_elf_asm_destructor): Likewise.
17109
17110 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
17111
17112 PR rtl-optimization/78634
17113 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
17114 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
17115 * ifcvt.c (noce_try_cmove): Add missing cost check.
17116
17117 PR rtl-optimization/71724
17118 * combine.c (if_then_else_cond): Look for situations where it is
17119 beneficial to undo the work of one of the recursive calls.
17120
17121 2017-01-23 Bin Cheng <bin.cheng@arm.com>
17122
17123 PR tree-optimization/70754
17124 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
17125 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
17126 combined stmt before it if not NULL.
17127 (combine_chains): Process refs reversely and compute dominance point
17128 for root ref.
17129
17130 2017-01-23 Martin Liska <mliska@suse.cz>
17131
17132 PR tree-optimization/79196
17133 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
17134 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
17135 instead of memcmp.
17136 (strlen_optimize_stmt): Call the renamed function.
17137
17138 2017-01-23 Michael Matz <matz@suse.de>
17139
17140 PR tree-optimization/78384
17141 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
17142
17143 2017-01-23 Richard Biener <rguenther@suse.de>
17144
17145 PR tree-optimization/79186
17146 * tree-vrp.c (register_new_assert_for): Make sure we've seen
17147 both incoming edges before moving an assert.
17148
17149 2017-01-23 Martin Jambor <mjambor@suse.cz>
17150
17151 * ipa-prop.c (load_from_param_1): Removed.
17152 (load_from_unmodified_param): Bits from load_from_param_1 put back
17153 here.
17154 (load_from_param): Removed.
17155 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
17156 with stmt. Reverted back to use of load_from_unmodified_param.
17157
17158 2017-01-23 Martin Jambor <mjambor@suse.cz>
17159
17160 PR ipa/79108
17161 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
17162 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
17163 field a pointer to garbage collected vector, mark lattices and
17164 ipcp_orig_node with GTY((skip)).
17165 (ipa_get_param_count): Adjust to descriptors being a pointer.
17166 (ipa_get_param): Likewise.
17167 (ipa_get_type): Likewise.
17168 (ipa_get_param_move_cost): Likewise.
17169 (ipa_set_param_used): Likewise.
17170 (ipa_get_controlled_uses): Likewise.
17171 (ipa_set_controlled_uses): Likewise.
17172 (ipa_is_param_used): Likewise.
17173 (ipa_node_params_t): Move into garbage collector. New methods insert
17174 and remove.
17175 (ipa_node_params_sum): Annotate wth GTY(()).
17176 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
17177 garbage collected.
17178 (ipa_load_from_parm_agg): Adjust declaration.
17179 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
17180 * ipa-profile.c (ipa_profile): Likewise.
17181 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
17182 (ipa_populate_param_decls): Make descriptors parameter garbage
17183 collected.
17184 (ipa_dump_param): Adjust to descriptors being a pointer.
17185 (ipa_alloc_node_params): Likewise.
17186 (ipa_initialize_node_params): Likewise.
17187 (load_from_param_1): Make descriptors parameter garbage collected.
17188 (load_from_unmodified_param): Likewise.
17189 (load_from_param): Likewise.
17190 (ipa_load_from_parm_agg): Likewise.
17191 (ipa_node_params::~ipa_node_params): Removed.
17192 (ipa_free_all_node_params): Remove call to delete operator.
17193 (ipa_node_params_t::insert): New.
17194 (ipa_node_params_t::remove): Likewise.
17195 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
17196 copy known_csts and known_contexts vectors.
17197 (ipa_read_node_info): Adjust to descriptors being a pointer.
17198 (ipcp_modif_dom_walker): Make m_descriptors field garbage
17199 collected.
17200 (ipcp_transform_function): Make descriptors variable garbage
17201 collected.
17202
17203 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
17204
17205 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
17206 * config/i386/avx512dqintrin.h: Ditto.
17207 * config/i386/avx512fintrin.h: Ditto.
17208 * config/i386/i386.c: Handle new builtins.
17209 * config/i386/i386-builtin.def: Add new builtins.
17210 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
17211 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
17212
17213 2017-01-23 Jakub Jelinek <jakub@redhat.com>
17214 Martin Liska <mliska@suse.cz>
17215
17216 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
17217 * asan.c (asan_expand_poison_ifn): Support stores and use
17218 appropriate ASAN report function.
17219 * internal-fn.c (expand_ASAN_POISON_USE): New function.
17220 * internal-fn.def (ASAN_POISON_USE): Declare.
17221 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
17222 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
17223 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
17224 ASAN_POISON calls w/o LHS.
17225 * tree-ssa.c (execute_update_addresses_taken): Create clobber
17226 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
17227 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
17228 * gimplify.c (asan_poison_variables): Add attribute
17229 use_after_scope_memory to variables that really needs to live
17230 in memory.
17231 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
17232 having the attribute.
17233
17234 2017-01-23 Martin Liska <mliska@suse.cz>
17235
17236 * asan.c (create_asan_shadow_var): New function.
17237 (asan_expand_poison_ifn): Likewise.
17238 * asan.h (asan_expand_poison_ifn): New declaration.
17239 * internal-fn.c (expand_ASAN_POISON): Likewise.
17240 * internal-fn.def (ASAN_POISON): New builtin.
17241 * sanopt.c (pass_sanopt::execute): Expand
17242 asan_expand_poison_ifn.
17243 * tree-inline.c (copy_decl_for_dup_finish): Make function
17244 external.
17245 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
17246 * tree-ssa.c (is_asan_mark_p): New function.
17247 (execute_update_addresses_taken): Rewrite local variables
17248 (identified just by use-after-scope as addressable) into SSA.
17249
17250 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
17251
17252 * doc/install.texi (Specific): opensource.apple.com uses https
17253 now. Remove trailing slash.
17254
17255 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
17256
17257 * README.Portability: Remove note on an Irix compatibility issue.
17258
17259 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
17260
17261 * gcov.c (INCLUDE_ALGORITHM): Define.
17262 (INCLUDE_VECTOR): Define.
17263 No longer include <vector> and <algorithm> directly.
17264
17265 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
17266
17267 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
17268 to https.
17269 * doc/invoke.texi (Code Gen Options): Ditto.
17270
17271 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
17272
17273 PR lto/78407
17274 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
17275
17276 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
17277
17278 rtl-optimization/79125
17279 * cprop.c (local_cprop_pass): Handle cases where we make an
17280 unconditional trap.
17281
17282 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
17283
17284 PR target/61729
17285 PR target/77850
17286 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
17287 read from, for big endian.
17288
17289 2017-01-20 Jiong Wang <jiong.wang@arm.com>
17290
17291 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
17292 register pauth builtins for LP64 only.
17293
17294 2017-01-20 Marek Polacek <polacek@redhat.com>
17295
17296 PR c/79152
17297 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
17298 non-case labels.
17299
17300 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
17301
17302 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
17303 of safelen status.
17304 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
17305 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
17306 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
17307
17308 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17309
17310 PR target/71270
17311 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
17312 in big-endian mode when they are not a single duplicated value.
17313
17314 2017-01-20 Richard Biener <rguenther@suse.de>
17315
17316 * BASE-VER: Bump to 7.0.1.
17317
17318 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
17319
17320 * omp-low.c (omplow_simd_context): New struct. Use it...
17321 (lower_rec_simd_input_clauses): ...here and...
17322 (lower_rec_input_clauses): ...here to hold common data. Adjust all
17323 references to idx, lane, max_vf, is_simt.
17324
17325 2017-01-20 Graham Markall <graham.markall@embecosm.com>
17326
17327 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
17328 mcpu=nps400.
17329
17330 2017-01-20 Martin Jambor <mjambor@suse.cz>
17331
17332 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
17333 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
17334 gt-hsa-common.h.
17335 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
17336 (GTFILES): Rename hsa.c to hsa-common.c.
17337 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
17338 * hsa-dump.c: Likewise.
17339 * hsa-gen.c: Likewise.
17340 * hsa-regalloc.c: Likewise.
17341 * ipa-hsa.c: Likewise.
17342 * omp-expand.c: Likewise.
17343 * omp-low.c: Likewise.
17344 * toplev.c: Likewise.
17345
17346 2017-01-20 Marek Polacek <polacek@redhat.com>
17347
17348 PR c/64279
17349 * doc/invoke.texi: Document -Wduplicated-branches.
17350 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
17351 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
17352 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
17353 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
17354 return 0 only when not OEP_LEXICOGRAPHIC.
17355 (fold_build_cleanup_point_expr): Use the expression
17356 location when building CLEANUP_POINT_EXPR.
17357 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
17358 * tree.c (add_expr): Handle error_mark_node.
17359
17360 2017-01-20 Martin Liska <mliska@suse.cz>
17361
17362 PR lto/69188
17363 * tree-profile.c (init_ic_make_global_vars): Do not call
17364 finalize_decl.
17365 (gimple_init_gcov_profiler): Likewise.
17366
17367 2017-01-20 Martin Liska <mliska@suse.cz>
17368
17369 PR ipa/71190
17370 * cgraph.h (maybe_create_reference): Remove argument and
17371 update comment.
17372 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
17373 argument.
17374 * ipa-cp.c (create_specialized_node): Likewise.
17375 * symtab.c (symtab_node::maybe_create_reference): Handle
17376 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
17377
17378 2017-01-20 Martin Liska <mliska@suse.cz>
17379
17380 * read-rtl-function.c (function_reader::create_function): Use
17381 build_decl instread of build_decl_stat.
17382
17383 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
17384
17385 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
17386 * config/i386/avx512dqintrin.h: Ditto.
17387 * config/i386/avx512fintrin.h: Ditto.
17388 * config/i386/i386-builtin-types.def: Add new types.
17389 * config/i386/i386.c: Handle new types.
17390 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
17391 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
17392 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
17393 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
17394 (__builtin_ia32_kshiftridi): New.
17395 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
17396
17397 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
17398
17399 PR target/78875
17400 PR target/79140
17401 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
17402 define to rs6000_init_stack_protect_guard.
17403 (rs6000_init_stack_protect_guard): New function.
17404
17405 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
17406 Yunqiang Su <yunqiang.su@imgtec.com>
17407
17408 * config.gcc (supported_defaults): Add madd4.
17409 (with_madd4): Add validation.
17410 (all_defaults): Add madd4.
17411 * config/mips/mips.opt (mmadd4): New option.
17412 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
17413 mmadd4.
17414 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
17415 __mips_no_madd4.
17416 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
17417 (ISA_HAS_FUSED_MADD4): Likewise.
17418 * doc/invoke.texi (-mmadd4): Document the new option.
17419 * doc/install.texi (--with-madd4): Document the new option.
17420
17421 2017-01-19 Jiong Wang <jiong.wang@arm.com>
17422
17423 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
17424 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
17425 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
17426 (aarch64_init_pauth_hint_builtins): New.
17427 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
17428 (aarch64_expand_builtin): Expand new builtins.
17429
17430 2017-01-19 Jiong Wang <jiong.wang@arm.com>
17431
17432 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
17433 * combine-stack-adj.c (no_unhandled_cfa): Handle
17434 REG_CFA_TOGGLE_RA_MANGLE.
17435 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
17436 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
17437 info for return address signing.
17438 (aarch64_expand_epilogue): Likewise.
17439
17440 2017-01-19 Jiong Wang <jiong.wang@arm.com>
17441
17442 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
17443 * config/aarch64/aarch64-protos.h
17444 (aarch64_return_address_signing_enabled): New declaration.
17445 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
17446 New function.
17447 (aarch64_expand_prologue): Sign return address before it's pushed onto
17448 stack.
17449 (aarch64_expand_epilogue): Authenticate return address fetched from
17450 stack.
17451 (aarch64_override_options): Sanity check for ILP32 and ISA level.
17452 (aarch64_attributes): New function attributes for "sign-return-address".
17453 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
17454 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
17455 ("*do_return"): Generate combined instructions according to key index.
17456 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
17457 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
17458 iterators.
17459 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
17460 * config/aarch64/aarch64.opt (msign-return-address=): New.
17461 * doc/extend.texi (AArch64 Function Attributes): Documents
17462 "sign-return-address=".
17463 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
17464
17465 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
17466
17467 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
17468 overall option summary.
17469
17470 2017-01-19 Jiong Wang <jiong.wang@arm.com>
17471
17472 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
17473 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
17474 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
17475 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
17476
17477 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
17478
17479 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
17480 -mpower9-minmax by default for -mcpu=power9.
17481 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
17482 128-bit floating point.
17483
17484 2017-01-20 Alan Modra <amodra@gmail.com>
17485
17486 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
17487 optimizing for size.
17488
17489 2017-01-20 Alan Modra <amodra@gmail.com>
17490
17491 PR target/79144
17492 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
17493 for strcmp and strncmp from corresponding builtin decl.
17494
17495 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
17496
17497 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
17498 instead of i386/rtems-64.h.
17499 * config/i386/rtems-64.h: Remove.
17500
17501 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
17502
17503 PR target/78478
17504 Revert:
17505 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
17506
17507 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
17508
17509 2017-01-19 Tamar Christina <tamar.christina@arm.com>
17510
17511 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
17512 Change int to HOST_WIDE_INT.
17513 * config/aarch64/aarch64-protos.h
17514 (aarch64_simd_gen_const_vector_dup): Likewise.
17515 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
17516
17517 2017-01-19 David Malcolm <dmalcolm@redhat.com>
17518
17519 * langhooks-def.h (lhd_type_for_size): New decl.
17520 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
17521 * langhooks.c (lhd_type_for_size): New function, taken from
17522 lto_type_for_size.
17523
17524 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
17525
17526 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
17527 define_bypass for CR latency.
17528 (power9-cracked-alu): Update bypass latency and remove power9-branch.
17529 (power9-alu2): Add define_bypass for CR latency.
17530 (power9-cmp): New.
17531 (power9-mul): Update insn latency.
17532 (power9-mul-compare): Update insn latency, bypass latency and remove
17533 power9-branch.
17534
17535 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17536
17537 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
17538 Delete.
17539 * config/aarch64/aarch64.md
17540 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
17541 aarch64_nopcrelative_literal_loads.
17542 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
17543
17544 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
17545
17546 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
17547 TARGET_LOONGSON_3A.
17548 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
17549
17550 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
17551
17552 PR target/78176
17553 * config.gcc (supported_defaults): Add lxc1-sxc1.
17554 (with_lxc1_sxc1): Add validation.
17555 (all_defaults): Add lxc1-sxc1.
17556 * config/mips/mips.opt (mlxc1-sxc1): New option.
17557 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
17558 mlxc1-sxc1.
17559 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
17560 __mips_no_lxc1_sxc1.
17561 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
17562 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
17563 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
17564
17565 2017-01-19 Richard Biener <rguenther@suse.de>
17566
17567 PR tree-optimization/72488
17568 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
17569 sure to restore SSA info.
17570 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
17571
17572 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
17573
17574 PR rtl-optimization/79121
17575 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
17576 of the inner type when shifting an extended value.
17577
17578 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
17579
17580 PR lto/78407
17581 * symtab.c (symtab_node::equal_address_to): Fix comparing of
17582 interposable aliases.
17583
17584 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
17585
17586 PR target/78516
17587 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
17588 Use the evmergelohi instruction.
17589 (mov_si<mode>_e500_subreg4_2_le): Likewise.
17590 (mov_sitf_e500_subreg8_2_be): Likewise.
17591 (mov_sitf_e500_subreg12_2_le): Likewise.
17592 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
17593 (mov_si<mode>_e500_subreg4_2_be): Likewise.
17594 (mov_sitf_e500_subreg8_2_le): Likewise.
17595 (mov_sitf_e500_subreg12_2_be): Likewise.
17596
17597 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17598
17599 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
17600 attribute from vecsimple to vecperm.
17601 (altivec_vbpermq2): Likewise.
17602
17603 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17604
17605 PR target/79040
17606 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
17607
17608 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
17609 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
17610 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
17611 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
17612 case where N arg is SIZE_MAX.
17613 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
17614 (cmpstrsi): Add pattern.
17615
17616 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
17617
17618 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17619 __builtin_vec_revb builtins.
17620 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
17621 built-in functions to support generation of the ISA 3.0 XXBR<x>
17622 vector byte reverse instructions.
17623 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
17624 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
17625 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
17626 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
17627 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
17628 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
17629 (P9V_BUILTIN_VEC_REVB): Likewise.
17630 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
17631 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
17632 (p9_xxbrq_v16qi): Likewise.
17633 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
17634 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
17635 (p9_xxbrh_v8hi): Likewise.
17636 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
17637 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
17638 vec_revb built-in functions.
17639
17640 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
17641
17642 PR rtl-optimization/78952
17643 * config/i386/i386.md (any_extract): New code iterator.
17644 (*insvqi_2): Use any_extract for source operand.
17645 (*insvqi_3): Use any_shiftrt for source operand.
17646
17647 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
17648
17649 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
17650 New function.
17651 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
17652
17653 2017-01-18 Matthias Klose <doko@ubuntu.com>
17654
17655 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
17656
17657 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17658
17659 * config/rs6000/altivec.h (vec_bperm): Change #define.
17660 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
17661 (altivec_vbpermq2): New define_insn.
17662 (altivec_vbpermd): Likewise.
17663 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
17664 function interface.
17665 (VBPERMD): Likewise.
17666 (VBPERM): New polymorphic function interface.
17667 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
17668 Add entries for P9V_BUILTIN_VEC_VBPERM.
17669 * doc/extend.texi: Add interfaces for vec_bperm.
17670
17671 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17672
17673 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
17674 first letter of error messages.
17675 (s390_resolve_overloaded_builtin): Likewise.
17676 * config/s390/s390.c (s390_expand_builtin): Likewise.
17677 (s390_invalid_arg_for_unprototyped_fn): Likewise.
17678 (s390_valid_target_attribute_inner_p): Likewise.
17679 * config/s390/s390.md ("tabort"): Likewise.
17680
17681 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
17682
17683 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
17684 (ISA_AVOID_DIV_HILO): New macro.
17685 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
17686 (ISA_HAS_DDIV): Likewise.
17687
17688 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
17689
17690 * doc/invoke.texi (fabi-version): Correct number of occurrences.
17691
17692 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
17693
17694 * doc/invoke.texi (fabi-version): Spelling fix.
17695
17696 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
17697
17698 PR c++/70182
17699 * doc/invoke.texi (fabi-version): Mention mangling fix for
17700 operator names.
17701
17702 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
17703
17704 PR c++/77489
17705 * doc/invoke.texi (fabi-version): Document discriminator mangling.
17706
17707 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
17708
17709 PR target/78875
17710 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
17711 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
17712 the new options.
17713 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
17714 flexible settings.
17715 (stack_protect_test): Ditto.
17716 * config/rs6000/rs6000.opt (mstack-protector-guard=,
17717 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
17718 options.
17719 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
17720 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
17721 -mstack-protector-guard-offset=.
17722 (RS/6000 and PowerPC Options): Ditto.
17723
17724 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
17725
17726 * config/i386/i386.h (MASK_CLASS_P): New define.
17727 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
17728 there are no registers from different register sets also when
17729 mask registers are used. Update function comment.
17730 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
17731 to (*k/*r) and (*k/*km) alternatives.
17732
17733 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
17734
17735 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
17736 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
17737 (EH_RETURN_HANDLER_RTX): New define.
17738 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
17739 Force frame pointer in EH return functions.
17740 (aarch64_expand_epilogue): Add barrier for eh_return.
17741 (aarch64_final_eh_return_addr): Remove.
17742 (aarch64_eh_return_handler_rtx): New function.
17743 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
17744 Remove.
17745 (aarch64_eh_return_handler_rtx): New prototype.
17746
17747 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17748
17749 * config/rs6000/altivec.h (vec_rlmi): New #define.
17750 (vec_vrlnm): Likewise.
17751 (vec_rlnm): Likewise.
17752 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
17753 (UNSPEC_VRLNM): Likewise.
17754 (VIlong): New mode iterator.
17755 (altivec_vrl<VI_char>mi): New define_insn.
17756 (altivec_vrl<VI_char>nm): Likewise.
17757 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
17758 function entry.
17759 (VRLDNM): Likewise.
17760 (RLNM): New polymorphic function entry.
17761 (VRLWMI): New monomorphic function entry.
17762 (VRLDMI): Likewise.
17763 (RLMI): New polymorphic function entry.
17764 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
17765 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
17766 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
17767 vec_vrlnm.
17768
17769 2017-01-17 Jakub Jelinek <jakub@redhat.com>
17770
17771 PR debug/78839
17772 * dwarf2out.c (field_byte_offset): Restore the
17773 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
17774 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
17775 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
17776 of build2 + fold.
17777
17778 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
17779
17780 PR ada/67205
17781 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
17782
17783 2017-01-17 Jakub Jelinek <jakub@redhat.com>
17784
17785 PR debug/71669
17786 * dwarf2out.c (add_data_member_location_attribute): For constant
17787 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
17788 instead of DW_AT_data_member_location, DW_AT_bit_offset and
17789 DW_AT_byte_size attributes.
17790
17791 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
17792
17793 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
17794 after forcing to constant memory when the code model is medium.
17795
17796 2017-01-17 Julia Koval <julia.koval@intel.com>
17797
17798 PR target/76731
17799 * config/i386/avx512fintrin.h
17800 (_mm512_i32gather_ps): Change __addr type to void const*.
17801 (_mm512_mask_i32gather_ps): Ditto.
17802 (_mm512_i32gather_pd): Ditto.
17803 (_mm512_mask_i32gather_pd): Ditto.
17804 (_mm512_i64gather_ps): Ditto.
17805 (_mm512_mask_i64gather_ps): Ditto.
17806 (_mm512_i64gather_pd): Ditto.
17807 (_mm512_mask_i64gather_pd): Ditto.
17808 (_mm512_i32gather_epi32): Ditto.
17809 (_mm512_mask_i32gather_epi32): Ditto.
17810 (_mm512_i32gather_epi64): Ditto.
17811 (_mm512_mask_i32gather_epi64): Ditto.
17812 (_mm512_i64gather_epi32): Ditto.
17813 (_mm512_mask_i64gather_epi32): Ditto.
17814 (_mm512_i64gather_epi64): Ditto.
17815 (_mm512_mask_i64gather_epi64): Ditto.
17816 (_mm512_i32scatter_ps): Change __addr type to void*.
17817 (_mm512_mask_i32scatter_ps): Ditto.
17818 (_mm512_i32scatter_pd): Ditto.
17819 (_mm512_mask_i32scatter_pd): Ditto.
17820 (_mm512_i64scatter_ps): Ditto.
17821 (_mm512_mask_i64scatter_ps): Ditto.
17822 (_mm512_i64scatter_pd): Ditto.
17823 (_mm512_mask_i64scatter_pd): Ditto.
17824 (_mm512_i32scatter_epi32): Ditto.
17825 (_mm512_mask_i32scatter_epi32): Ditto.
17826 (_mm512_i32scatter_epi64): Ditto.
17827 (_mm512_mask_i32scatter_epi64): Ditto.
17828 (_mm512_i64scatter_epi32): Ditto.
17829 (_mm512_mask_i64scatter_epi32): Ditto.
17830 (_mm512_i64scatter_epi64): Ditto.
17831 (_mm512_mask_i64scatter_epi64): Ditto.
17832 * config/i386/avx512pfintrin.h
17833 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
17834 (_mm512_mask_prefetch_i32gather_ps): Ditto.
17835 (_mm512_mask_prefetch_i64gather_pd): Ditto.
17836 (_mm512_mask_prefetch_i64gather_ps): Ditto.
17837 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
17838 (_mm512_prefetch_i32scatter_ps): Ditto.
17839 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
17840 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
17841 (_mm512_prefetch_i64scatter_pd): Ditto.
17842 (_mm512_prefetch_i64scatter_ps): Ditto.
17843 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
17844 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
17845 * config/i386/avx512vlintrin.h
17846 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
17847 (_mm_mmask_i32gather_ps): Ditto.
17848 (_mm256_mmask_i32gather_pd): Ditto.
17849 (_mm_mmask_i32gather_pd): Ditto.
17850 (_mm256_mmask_i64gather_ps): Ditto.
17851 (_mm_mmask_i64gather_ps): Ditto.
17852 (_mm256_mmask_i64gather_pd): Ditto.
17853 (_mm_mmask_i64gather_pd): Ditto.
17854 (_mm256_mmask_i32gather_epi32): Ditto.
17855 (_mm_mmask_i32gather_epi32): Ditto.
17856 (_mm256_mmask_i32gather_epi64): Ditto.
17857 (_mm_mmask_i32gather_epi64): Ditto.
17858 (_mm256_mmask_i64gather_epi32): Ditto.
17859 (_mm_mmask_i64gather_epi32): Ditto.
17860 (_mm256_mmask_i64gather_epi64): Ditto.
17861 (_mm_mmask_i64gather_epi64): Ditto.
17862 (_mm256_i32scatter_ps): Change __addr type to void*.
17863 (_mm256_mask_i32scatter_ps): Ditto.
17864 (_mm_i32scatter_ps): Ditto.
17865 (_mm_mask_i32scatter_ps): Ditto.
17866 (_mm256_i32scatter_pd): Ditto.
17867 (_mm256_mask_i32scatter_pd): Ditto.
17868 (_mm_i32scatter_pd): Ditto.
17869 (_mm_mask_i32scatter_pd): Ditto.
17870 (_mm256_i64scatter_ps): Ditto.
17871 (_mm256_mask_i64scatter_ps): Ditto.
17872 (_mm_i64scatter_ps): Ditto.
17873 (_mm_mask_i64scatter_ps): Ditto.
17874 (_mm256_i64scatter_pd): Ditto.
17875 (_mm256_mask_i64scatter_pd): Ditto.
17876 (_mm_i64scatter_pd): Ditto.
17877 (_mm_mask_i64scatter_pd): Ditto.
17878 (_mm256_i32scatter_epi32): Ditto.
17879 (_mm256_mask_i32scatter_epi32): Ditto.
17880 (_mm_i32scatter_epi32): Ditto.
17881 (_mm_mask_i32scatter_epi32): Ditto.
17882 (_mm256_i32scatter_epi64): Ditto.
17883 (_mm256_mask_i32scatter_epi64): Ditto.
17884 (_mm_i32scatter_epi64): Ditto.
17885 (_mm_mask_i32scatter_epi64): Ditto.
17886 (_mm256_i64scatter_epi32): Ditto.
17887 (_mm256_mask_i64scatter_epi32): Ditto.
17888 (_mm_i64scatter_epi32): Ditto.
17889 (_mm_mask_i64scatter_epi32): Ditto.
17890 (_mm256_i64scatter_epi64): Ditto.
17891 (_mm256_mask_i64scatter_epi64): Ditto.
17892 (_mm_i64scatter_epi64): Ditto.
17893 (_mm_mask_i64scatter_epi64): Ditto.
17894 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
17895 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
17896 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
17897 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
17898 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
17899 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
17900 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
17901 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
17902 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
17903 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
17904 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
17905 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
17906 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
17907 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
17908 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
17909 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
17910 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
17911 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
17912 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
17913 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
17914 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
17915 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
17916 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
17917 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
17918 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
17919 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
17920 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
17921 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
17922 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
17923 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
17924 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
17925 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
17926 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
17927 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
17928 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
17929 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
17930 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
17931 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
17932 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
17933 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
17934 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
17935 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
17936 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
17937 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
17938 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
17939 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
17940 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
17941 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
17942 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
17943 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
17944 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
17945 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
17946 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
17947 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
17948 definitions accordingly.
17949
17950 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
17951 Kuan-Lin Chen <kuanlinchentw@gmail.com>
17952
17953 PR target/79079
17954 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
17955 gen_lowpart.
17956
17957 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
17958
17959 PR target/79058
17960 * ira-conflicts.c (ira_build_conflicts): Update total conflict
17961 hard regs for inner regno.
17962
17963 2017-01-17 Martin Liska <mliska@suse.cz>
17964
17965 PR ipa/71207
17966 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
17967 assumption and add comment.
17968
17969 2017-01-17 Nathan Sidwell <nathan@acm.org>
17970
17971 * ipa-visibility.c (localize_node): New function, broken out of ...
17972 (function_and_variable_visibility): ... here. Call it.
17973
17974 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
17975
17976 PR middle-end/77445
17977 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
17978 correctly set frequency of oudgoing edge.
17979 (duplicate_thread_path): Fix profile updating.
17980
17981 2017-01-17 Jakub Jelinek <jakub@redhat.com>
17982
17983 PR other/79046
17984 * configure.ac: Add GCC_BASE_VER.
17985 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
17986 version from BASE-VER file.
17987 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
17988 (gcc.o): Depend on $(BASEVER).
17989 * common.opt (dumpfullversion): New option.
17990 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
17991 * doc/invoke.texi: Document -dumpfullversion.
17992 * doc/install.texi: Document --with-gcc-major-version-only.
17993 * configure: Regenerated.
17994
17995 2017-01-17 Richard Biener <rguenther@suse.de>
17996
17997 PR tree-optimization/71433
17998 * tree-vrp.c (register_new_assert_for): Merge same asserts
17999 on all incoming edges.
18000 (process_assert_insertions_for): Handle insertions at the
18001 beginning of BBs.
18002
18003 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
18004
18005 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
18006 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
18007
18008 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
18009
18010 PR target/78633
18011 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
18012 RTL sharing.
18013
18014 2017-01-17 Alan Modra <amodra@gmail.com>
18015
18016 PR target/79066
18017 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
18018 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
18019 symbolic stack limit when pic.
18020
18021 2017-01-16 Martin Sebor <msebor@redhat.com>
18022
18023 PR tree-optimization/78608
18024 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
18025
18026 2017-01-16 Jeff Law <law@redhat.com>
18027
18028 Revert:
18029 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
18030 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
18031 for several include directories that may be relative to sysroot.
18032 * config/i386/x-mingw32 (gplus_includedir): Define.
18033 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
18034 (native_system_includedir): Likewise.
18035 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
18036 override if TARGET_SYSTEM_ROOT is defined.
18037 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
18038
18039 PR tree-optimization/79090
18040 PR tree-optimization/33562
18041 PR tree-optimization/61912
18042 PR tree-optimization/77485
18043 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
18044 and computed trims into the dump file.
18045
18046 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
18047
18048 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
18049
18050 2017-01-16 Jakub Jelinek <jakub@redhat.com>
18051
18052 PR c/79089
18053 * gimplify.c (gimplify_init_constructor): If want_value and
18054 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
18055 fix.
18056
18057 PR target/79080
18058 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
18059 sequence. Formatting fixes.
18060 (doloop_optimize): Formatting fixes.
18061
18062 PR driver/49726
18063 * gcc.c (debug_level_greater_than_spec_func): New function.
18064 (static_spec_functions): Add debug-level-gt spec function.
18065 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
18066 !g0.
18067 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
18068 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
18069 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
18070 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
18071 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
18072 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
18073
18074 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
18075
18076 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
18077 QImode fixups to general and mask registers only.
18078
18079 2017-01-16 Carl Love <cel@us.ibm.com>
18080
18081 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
18082 for built-in functions
18083 vector signed char vec_nabs (vector signed char)
18084 vector signed short vec_nabs (vector signed short)
18085 vector signed int vec_nabs (vector signed int)
18086 vector signed long long vec_nabs (vector signed long long)
18087 vector float vec_nabs (vector float)
18088 vector double vec_nabs (vector double)
18089 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
18090 and NABS overload.
18091 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
18092 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
18093 * doc/extend.texi: Update the documentation file for the new built-in
18094 functions.
18095
18096 2017-01-16 Martin Sebor <msebor@redhat.com>
18097
18098 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
18099 message.
18100
18101 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18102
18103 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
18104 UNSPEC_VSX__XXSPLTD to require special splat handling.
18105
18106 2017-01-16 David Malcolm <dmalcolm@redhat.com>
18107
18108 PR bootstrap/78616
18109 * system.h: Poison strndup.
18110
18111 2017-01-16 Alan Modra <amodra@gmail.com>
18112
18113 PR target/79098
18114 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
18115 use a switch.
18116
18117 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
18118
18119 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
18120
18121 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
18122
18123 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
18124 call recog here. Assert that INSN_CODE (insn) is non-negative.
18125
18126 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
18127
18128 PR target/72749
18129 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
18130 fallthrough.
18131 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
18132 in the currently scheduled RTL fragment.
18133
18134 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
18135
18136 PR rtl-optimization/78751
18137 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
18138 give up.
18139
18140 2017-01-14 Jeff Law <law@redhat.com>
18141
18142 PR tree-optimization/79090
18143 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
18144 variable length stores.
18145 (compute_trims): Delete dead assignment to *trim_tail.
18146 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
18147 zero length.
18148
18149 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
18150
18151 PR rtl-optimization/78626
18152 PR rtl-optimization/78727
18153 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
18154 of a block, and split such blocks after everything else is finished.
18155
18156 2017-01-14 Alan Modra <amodra@gmail.com>
18157
18158 PR target/72749
18159 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
18160 target legitimate_combined_insn.
18161 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
18162 (rs6000_legitimate_combined_insn): New function.
18163 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
18164 all uses.
18165 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
18166 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
18167 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
18168
18169 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
18170
18171 * doc/frontends.texi (G++ and GCC): Remove references to Java.
18172
18173 2017-01-13 Jeff Law <law@redhat.com>
18174
18175 PR tree-optimization/33562
18176 PR tree-optimization/61912
18177 PR tree-optimization/77485
18178 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
18179 a statement.
18180 (delete_dead_assignment): Likewise.
18181 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
18182 statement to delete_dead_call and delete_dead_assignment.
18183
18184 2017-01-13 David Malcolm <dmalcolm@redhat.com>
18185
18186 PR c/78304
18187 * substring-locations.c (format_warning_va): Strengthen case 1 so
18188 that both endpoints of the substring must be within the format
18189 range for just the substring to be printed.
18190
18191 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
18192
18193 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
18194 * config/i386/i386.c (ix86_target_string): Add missing options
18195 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
18196 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
18197 flags_other and ix86_target_other to flags2_other. Display unknown
18198 isa2 options.
18199 (ix86_valid_target_attribute_inner_p): Add missing options and
18200 reorder options by implied ISAs, as in ix86_target_string.
18201
18202 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
18203
18204 * hash-table.h (hash_table::too_empty_p): New function.
18205 (hash_table::expand): Use it.
18206 (hash_table::traverse): Likewise.
18207 (hash_table::empty_slot): Use sizeof (value_type) instead of
18208 sizeof (PTR) to convert bytes to elements. Shrink the table
18209 if the current size is excessive for the current number of
18210 elements.
18211
18212 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
18213
18214 * ira-costs.c (record_reg_classes): Break from the inner loop
18215 early once alt_fail is known to be true. Update outer loop
18216 handling accordingly.
18217
18218 2017-01-13 Jeff Law <law@redhat.com>
18219
18220 * tree-ssa-dse.c (decrement_count): New function.
18221 (increment_start_addr, maybe_trim_memstar_call): Likewise.
18222 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
18223 when we know the partially dead statement is a mem* function.
18224
18225 PR tree-optimization/61912
18226 PR tree-optimization/77485
18227 * tree-ssa-dse.c: Include expr.h.
18228 (maybe_trim_constructor_store): New function.
18229 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
18230
18231 PR tree-optimization/33562
18232 PR tree-optimization/61912
18233 PR tree-optimization/77485
18234 * doc/invoke.texi: Document new dse-max-object-size param.
18235 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
18236 * tree-ssa-dse.c: Include params.h.
18237 (dse_store_status): New enum.
18238 (initialize_ao_ref_for_dse): New, partially extracted from
18239 dse_optimize_stmt.
18240 (valid_ao_ref_for_dse, normalize_ref): New.
18241 (setup_live_bytes_from_ref, compute_trims): Likewise.
18242 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
18243 (maybe_trim_partially_dead_store): Likewise.
18244 (maybe_trim_complex_store): Likewise.
18245 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
18246 Track what bytes live from the original store. Return tri-state
18247 for dead, partially dead or live.
18248 (dse_dom_walker): Add constructor, destructor and new private members.
18249 (delete_dead_call, delete_dead_assignment): New extracted from
18250 dse_optimize_stmt.
18251 (dse_optimize_stmt): Make a member of dse_dom_walker.
18252 Use initialize_ao_ref_for_dse.
18253
18254 PR tree-optimization/33562
18255 PR tree-optimization/61912
18256 PR tree-optimization/77485
18257 * sbitmap.h (bitmap_count_bits): Prototype.
18258 (bitmap_clear_range, bitmap_set_range): Likewise.
18259 * sbitmap.c (bitmap_clear_range): New function.
18260 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
18261
18262 2017-01-13 Martin Liska <mliska@suse.cz>
18263
18264 PR ipa/79043
18265 * function.c (set_cfun): Add new argument force.
18266 * function.h (set_cfun): Likewise.
18267 * ipa-inline-transform.c (inline_call): Use the function when
18268 strict alising from is dropped for function we inline to.
18269
18270 2017-01-13 Richard Biener <rguenther@suse.de>
18271
18272 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
18273 for dumping GIMPLE INTEGER_CSTs.
18274
18275 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18276
18277 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
18278 to 201112L since C++17.
18279
18280 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
18281
18282 PR sanitizer/78887
18283 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
18284 if -fsanitize=kernel-address is present.
18285
18286 2017-01-13 Richard Biener <rguenther@suse.de>
18287
18288 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
18289 as _Literal ( type ) number in case usual suffixes do not
18290 preserve all information.
18291
18292 2017-01-13 Richard Biener <rguenther@suse.de>
18293
18294 PR tree-optimization/77283
18295 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
18296 and ssa-iterators.h.
18297 (is_feasible_trace): Implement a cost model based on joiner
18298 PHI node uses.
18299
18300 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
18301
18302 PR target/79004
18303 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
18304 char or short to __float128/_Float128 directly.
18305
18306 2017-01-12 Martin Sebor <msebor@redhat.com>
18307
18308 to -Wformat-overflow.
18309 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
18310 (min_bytes_remaining): Same.
18311 (get_string_length): Same.
18312 (format_string): Same.
18313 (format_directive): Same.
18314 (add_bytes): Same.
18315 (pass_sprintf_length::handle_gimple_call): Same.
18316
18317 2017-01-12 Jakub Jelinek <jakub@redhat.com>
18318
18319 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
18320 info.nowrite calls with no lhs that can't throw. Return bool
18321 whether gsi_remove has been called or not.
18322 (pass_sprintf_length::handle_gimple_call): Return bool whether
18323 try_substitute_return_value called gsi_remove. Formatting fix.
18324 (pass_sprintf_length::execute): Don't use gsi_remove if
18325 handle_gimple_call returned true.
18326
18327 PR bootstrap/79069
18328 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
18329 be removed due to side-effects, don't remove following barrier nor
18330 turn the successor edge into fallthru edge.
18331
18332 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18333
18334 PR target/79044
18335 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
18336 element-reversing loads and stores as not swappable.
18337
18338 2017-01-12 Nathan Sidwell <nathan@acm.org>
18339 Nicolai Stange <nicstange@gmail.com>
18340
18341 * combine.c (try_combine): Don't ignore result of overlap checking
18342 loop. Combine overlap & asm check into single loop.
18343
18344 2017-01-12 Richard Biener <rguenther@suse.de>
18345
18346 * tree-pretty-print.c (dump_generic_node): Provide -gimple
18347 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
18348
18349 2017-01-12 Richard Biener <rguenther@suse.de>
18350
18351 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
18352 and TS_TARGET_OPTION directly derive from TS_BASE.
18353 * tree-core.h (tree_optimization_option): Derive from tree_base.
18354 (tree_target_option): Likewise.
18355
18356 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
18357
18358 * config/i386/i386.c (memory_address_length): Increase len
18359 only when rip_relative_addr_p returns false.
18360
18361 2017-01-11 Julia Koval <julia.koval@intel.com>
18362
18363 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
18364 (OPTION_MASK_ISA_SGX_SET): New.
18365 (ix86_handle_option): Handle OPT_msgx.
18366 * config.gcc: Added sgxintrin.h.
18367 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
18368 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
18369 * config/i386/i386.c (ix86_target_string): Add -msgx.
18370 (PTA_SGX): New.
18371 (ix86_option_override_internal): Handle new options.
18372 (ix86_valid_target_attribute_inner_p): Add sgx.
18373 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
18374 * config/i386/i386.opt: Add msgx.
18375 * config/i386/sgxintrin.h: New file.
18376 * config/i386/x86intrin.h: Add sgxintrin.h.
18377
18378 2017-01-11 Jakub Jelinek <jakub@redhat.com>
18379
18380 PR c++/71537
18381 * fold-const.c (maybe_nonzero_address): Return 1 for function
18382 local objects.
18383 (tree_single_nonzero_warnv_p): Don't handle function local objects
18384 here.
18385
18386 PR c++/72813
18387 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
18388 of c-header.
18389
18390 2017-01-11 David Malcolm <dmalcolm@redhat.com>
18391
18392 PR driver/78877
18393 * opts.c: Include "spellcheck.h"
18394 (struct string_fragment): New struct.
18395 (struct edit_distance_traits<const string_fragment &>): New
18396 struct.
18397 (get_closest_sanitizer_option): New function.
18398 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
18399
18400 2017-01-11 Jakub Jelinek <jakub@redhat.com>
18401
18402 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
18403 by 12.
18404 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
18405 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
18406 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
18407 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
18408 for initial die_offset if dwarf_split_debug_info.
18409 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
18410 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
18411 fields.
18412 (output_skeleton_debug_sections): Formatting fix. Use
18413 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
18414 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
18415
18416 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
18417
18418 * config/arm/cortex-a53.md: Add bypasses for
18419 cortex_a53_r2f_cvt.
18420 (cortex_a53_r2f): Only use for transfers.
18421 (cortex_a53_f2r): Likewise.
18422 (cortex_a53_r2f_cvt): Add reservation for conversions.
18423 (cortex_a53_f2r_cvt): Likewise.
18424
18425 2017-01-11 Tamar Christina <tamar.christina@arm.com>
18426
18427 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
18428 to all inlined functions, change static to extern.
18429
18430 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
18431
18432 PR target/78253
18433 * config/arm/arm.c (legitimize_pic_address): Handle reference to
18434 weak symbol.
18435 (arm_assemble_integer): Likewise.
18436
18437 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
18438
18439 * config.gcc: Use new awk script to check CPU, FPU and architecture
18440 parameters for --with-... options.
18441 * config/arm/parsecpu.awk: New file
18442 * config/arm/arm-cpus.in: New file.
18443 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
18444 files.
18445 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
18446 files.
18447 * config/arm/t-arm: Update dependency rules.
18448 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
18449 of processing .def files.
18450 * config/arm/genopt.sh: Deleted.
18451 * config/arm/gentune.sh: Deleted.
18452 * config/arm/arm-cores.def: Deleted.
18453 * config/arm/arm-arches.def: Deleted.
18454 * config/arm/arm-fpus.def: Deleted.
18455 * config/arm/arm-tune.md: Regenerated.
18456 * config/arm/arm-tables.opt: Regenerated.
18457 * config/arm/arm-cpu.h: New generated file.
18458 * config/arm/arm-cpu-data.h: New generated file.
18459 * config/arm/arm-cpu-cdata.h: New generated file.
18460
18461 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
18462
18463 PR lto/79042
18464 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
18465 bit.
18466 (input_varpool_node): Unpack dynamically_initialized bit.
18467
18468 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
18469
18470 PR rtl-optimization/79032
18471 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
18472 the alignment of the adjusted memory reference against that of MODE,
18473 instead of the alignment of the original memory reference.
18474
18475 2017-01-11 Martin Jambor <mjambor@suse.cz>
18476
18477 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
18478 test.
18479 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
18480 decorated functions.
18481
18482 2017-01-11 Richard Biener <rguenther@suse.de>
18483
18484 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
18485 set range/nonnull info for PHI results. Do not set it on
18486 stmts marked for removal.
18487
18488 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
18489
18490 * expr.c (store_field): In the bitfield case, fetch the return value
18491 from the registers before applying a single big-endian adjustment.
18492 Always do a final load for a BLKmode value not larger than a word.
18493
18494 2017-01-10 David Malcolm <dmalcolm@redhat.com>
18495
18496 PR c++/77949
18497 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
18498 that we correctly handle column numbers greater than
18499 LINE_MAP_MAX_COLUMN_NUMBER.
18500
18501 2017-01-10 Martin Sebor <msebor@redhat.com>
18502
18503 PR middle-end/78245
18504 * gimple-ssa-sprintf.c (get_destination_size): Call
18505 {init,fini}object_sizes.
18506 * tree-object-size.c (addr_object_size): Adjust.
18507 (pass_through_call): Adjust.
18508 (pass_object_sizes::execute): Adjust.
18509 * tree-object-size.h (fini_object_sizes): Declare.
18510
18511 2017-01-10 Martin Sebor <msebor@redhat.com>
18512
18513 PR tree-optimization/78775
18514 * builtins.c (get_size_range): Move...
18515 * calls.c: ...to here.
18516 (alloc_max_size): Accept zero argument.
18517 (operand_signed_p): Remove.
18518 (maybe_warn_alloc_args_overflow): Call get_size_range.
18519 * calls.h (get_size_range): Declare.
18520
18521 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
18522
18523 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
18524 from TI's devices.csv file as of September 2016.
18525 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
18526
18527 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
18528
18529 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
18530 * doc/invoke.texi: Likewise.
18531 * doc/md.texi: Likewise.
18532 * doc/objc.texi: Likewise.
18533
18534 2017-01-10 Joshua Conner <joshconner@google.com>
18535
18536 * config/arm/fuchsia-elf.h: New file.
18537 * config/fuchsia.h: New file.
18538 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
18539 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
18540 targets.
18541 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
18542
18543 2016-01-10 Richard Biener <rguenther@suse.de>
18544
18545 PR tree-optimization/79034
18546 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
18547 Propagate out degenerate PHIs in the joiner.
18548
18549 2017-01-10 Martin Liska <mliska@suse.cz>
18550
18551 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
18552 (sort_congruence_classes_by_decl_uid): Likewise.
18553 (sort_congruence_class_groups_by_decl_uid): Likewise.
18554 (sem_item_optimizer::merge_classes): Sort class, groups in these
18555 classes and members in the groups by DECL_UID of declarations.
18556 This would make merge operations stable.
18557
18558 2017-01-10 Martin Liska <mliska@suse.cz>
18559
18560 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
18561 usage of m_classes_vec.
18562 (sem_item_optimizer::~sem_item_optimizer): Likewise.
18563 (sem_item_optimizer::get_group_by_hash): Likewise.
18564 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
18565 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
18566 (sem_item_optimizer::verify_classes): Likewise.
18567 (sem_item_optimizer::process_cong_reduction): Likewise.
18568 (sem_item_optimizer::dump_cong_classes): Likewise.
18569 (sem_item_optimizer::merge_classes): Likewise.
18570 * ipa-icf.h (congruence_class_hash): Rename from
18571 congruence_class_group_hash. Remove declaration of m_classes_vec.
18572
18573 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
18574
18575 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
18576 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
18577 * config.gcc: Add avx512vpopcntdqintrin.h.
18578 * config/i386/avx512vpopcntdqintrin.h: New.
18579 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
18580 * config/i386/i386-builtin-types.def: Add new types.
18581 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
18582 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
18583 __builtin_ia32_vpopcountq_v8di_mask): New.
18584 * config/i386/i386-c.c (ix86_target_macros_internal): Define
18585 __AVX512VPOPCNTDQ__.
18586 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
18587 (PTA_AVX512VPOPCNTDQ): Define.
18588 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
18589 TARGET_AVX512VPOPCNTDQ_P): Define.
18590 * config/i386/i386.opt: Add mavx512vpopcntdq.
18591 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
18592 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
18593
18594 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
18595
18596 PR middle-end/77484
18597 * predict.def (PRED_CALL): Set to 67.
18598
18599 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
18600
18601 * expr.c (store_field): In the bitfield case, if the value comes from
18602 a function call and is of an aggregate type returned in registers, do
18603 not modify the field mode; extract the value in all cases if the mode
18604 is BLKmode and the size is not larger than a word.
18605
18606 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
18607
18608 PR target/71017
18609 * config/i386/cpuid.h: Fix undefined behavior.
18610
18611 2017-01-04 Jeff Law <law@redhat.com>
18612
18613 PR tree-optimization/79007
18614 PR tree-optimization/67955
18615 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
18616 conservative for pt.null when flag_non_call_exceptions is on.
18617
18618 2017-01-09 Jakub Jelinek <jakub@redhat.com>
18619
18620 PR translation/79019
18621 PR translation/79020
18622 * params.def (PARAM_INLINE_MIN_SPEEDUP,
18623 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
18624 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
18625 in descriptions.
18626 * config/avr/avr.opt (maccumulate-args): Likewise.
18627 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
18628 * common.opt (freport-bug): Likewise.
18629 * cif-code.def (CIF_FINAL_ERROR): Likewise.
18630 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
18631 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
18632 translatable string.
18633 * config/i386/i386.c (function_value_32): Likewise.
18634 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
18635 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
18636 Likewise.
18637 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
18638 * common/config/msp430/msp430-common.c (msp430_handle_option):
18639 Likewise.
18640 * symtab.c (symtab_node::verify_base): Likewise.
18641 * opts.c (set_debug_level): Likewise.
18642 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
18643 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
18644 missing whitespace to translatable strings.
18645 * config/avr/avr.md (bswapsi2): Fix typo in comment.
18646 * config/sh/superh.h: Likewise.
18647 * config/i386/xopintrin.h: Likewise.
18648 * config/i386/znver1.md: Likewise.
18649 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
18650 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
18651 * double-int.h (struct double_int): Likewise.
18652 * double-int.c (div_and_round_double): Likewise.
18653 * wide-int.cc: Likewise.
18654 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
18655 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
18656 * cfgcleanup.c (crossjumps_occured): Renamed to ...
18657 (crossjumps_occurred): ... this.
18658 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
18659 Adjust all uses.
18660
18661 PR tree-optimization/78899
18662 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
18663 returning bool return struct loop *, NULL for failure and the new
18664 loop on success.
18665 (versionable_outer_loop_p): Don't version outer loop if it has
18666 dont_vectorized bit set.
18667 (tree_if_conversion): When versioning outer loop, ensure
18668 tree_if_conversion is performed also on the inner loop of the
18669 non-vectorizable outer loop copy.
18670 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
18671 LOOP_VECTORIZED in inner loop of the scalar outer loop and
18672 prevent vectorization of it.
18673 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
18674 the outer loop vectorization of the non-scalar version is attempted
18675 before vectorization of the inner loop in scalar version. If
18676 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
18677 vectorization of its inner loop.
18678 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
18679 has 2 inner loops, rename also on edges from bb whose single pred
18680 is outer_loop->header. Fix typo in function comment.
18681
18682 2017-01-09 Martin Sebor <msebor@redhat.com>
18683
18684 PR bootstrap/79033
18685 * asan.c (asan_emit_stack_protection): Increase local buffer size
18686 to avoid snprintf truncation warning.
18687
18688 2017-01-09 Andrew Pinski <apinski@cavium.com>
18689
18690 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
18691 to reference thunderx2t99 for the tuning structure
18692 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
18693 Rename to ...
18694 (thunderx2t99_extra_costs): This.
18695 * config/aarch64/aarch64-tune.md: Regenerate.
18696 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
18697 (vulcan_addrcost_table): This.
18698 (vulcan_regmove_cost): Rename to ...
18699 (thunderx2t99_regmove_cost): This.
18700 (vulcan_vector_cost): Rename to ...
18701 (thunderx2t99_vector_cost): this.
18702 (vulcan_branch_cost): Rename to ...
18703 (thunderx2t99_branch_cost): This.
18704 (vulcan_tunings): Rename to ...
18705 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
18706 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
18707
18708 2017-01-09 Martin Jambor <mjambor@suse.cz>
18709
18710 PR ipa/78365
18711 PR ipa/78599
18712 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
18713 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
18714 (propagate_vr_accross_jump_function): Use the above function for all
18715 value range computations for pass-through jump functions and type
18716 converasion from explicit value range values.
18717 (ipcp_propagate_stage): Do not attempt to deduce types of formal
18718 parameters from TYPE_ARG_TYPES.
18719 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
18720 (ipa_write_node_info): Stream type of the actual argument.
18721 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
18722
18723 2017-01-09 Martin Liska <mliska@suse.cz>
18724
18725 PR pch/78970
18726 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
18727 (lookup_compiler): Do not show error message with have_E.
18728
18729 2017-01-09 Jakub Jelinek <jakub@redhat.com>
18730
18731 PR tree-optimization/78938
18732 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
18733 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
18734 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
18735 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
18736 fixes.
18737
18738 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18739
18740 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
18741 is const0_rtx.
18742
18743 2017-01-09 Richard Biener <rguenther@suse.de>
18744
18745 PR tree-optimization/78997
18746 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
18747 name condition properly.
18748
18749 2017-01-09 Richard Biener <rguenther@suse.de>
18750
18751 PR debug/79000
18752 * dwarf2out.c (is_cxx): New overload with context.
18753 (is_naming_typedef_decl): Use it.
18754
18755 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
18756
18757 * invoke.texi (Option Summary): Correct spacing in option lists
18758 and add line breaks to fix over-long lines.
18759
18760 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
18761
18762 PR middle-end/17660
18763
18764 * extend.texi (Common Variable Attributes): Add xref to GCC
18765 Internals manual to explain mode attribute keywords.
18766
18767 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
18768
18769 PR other/16519
18770 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
18771 and Preprocessor Options.
18772 (Options for Linking): Document -pthread here....
18773 (RS/6000 and PowerPC Options): ...not here.
18774 (Solaris 2 Options): ...or here.
18775 * doc/cppopts.texi: Document -pthread.
18776
18777 2017-01-08 Martin Sebor <msebor@redhat.com>
18778
18779 PR middle-end/77708
18780 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
18781 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
18782 New member functions.
18783 (format_directive): Used them.
18784 (add_bytes): Same.
18785 (pass_sprintf_length::handle_gimple_call): Same.
18786 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
18787 to avoid truncation for any argument.
18788 (extract_affine_mul): Same.
18789 * tree.c (get_file_function_name): Same.
18790
18791 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
18792
18793 PR middle-end/77484
18794 * predict.def (PRED_INDIR_CALL): Set to 86.
18795
18796 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
18797
18798 PR preprocessor/54124
18799 * doc/cppopts.texi: Reformat -d subtable to list the full name
18800 of the options. Add cross-reference to the docs for the general
18801 compiler -d options.
18802 * doc/invoke.texi (Developer Options): Add cross-reference to the
18803 preprocessor-specific -d option documentation.
18804
18805 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
18806
18807 PR preprocessor/13498
18808 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
18809 redudant material, and reflect new command-line options.
18810 (System Headers): Likewise.
18811
18812 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
18813
18814 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
18815 -isystem, and -idirafter. Copy-edit.
18816 * doc/cppopts.texi: Copy-edit. Remove contradiction about
18817 default for -ftrack-macro-expansion. Delete obsolete and
18818 badly-formatted implementation details about -fdebug-cpp output.
18819 * doc/cppwarnopts.texi: Copy-edit.
18820
18821 2017-01-07 David Malcolm <dmalcolm@redhat.com>
18822
18823 PR c++/72803
18824 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
18825 that the transition from a max line width >= 1<<10 to narrower
18826 lines works correctly.
18827
18828 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
18829
18830 * doc/options.texi (PerFunction): New.
18831 * opt-functions.awk (switch_flags): Map both Optimization and
18832 PerFunction to CL_OPTIMIZATION.
18833 * opth-gen.awk: Test for PerFunction flag along with
18834 Optimization.
18835 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
18836 it only when the latter is present. Skip those that don't in
18837 the hash function generator.
18838 * common.opt (fvar-tracking): Mark as PerFunction instead of
18839 Optimization.
18840 (fvar-tracking-assignments): Likewise.
18841 (fvar-tracking-assignments-toggle): Likewise.
18842 (fvar-tracking-uninit): Likewise.
18843
18844 2017-01-07 Jakub Jelinek <jakub@redhat.com>
18845
18846 PR translation/79018
18847 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
18848 the and store.
18849
18850 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
18851
18852 PR target/57583
18853 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
18854 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
18855 TARGET_LONG_JUMP_TABLE_OFFSETS.
18856 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
18857 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
18858 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
18859 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
18860 * config/m68k/m68k.md (tablejump expander): Likewise.
18861 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
18862 TARGET_LONG_JUMP_TABLE_OFFSETS.
18863 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
18864 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
18865
18866 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18867 David Holsgrove <david.holsgrove@xilinx.com>
18868
18869 * common/config/microblaze/microblaze-common.c
18870 (TARGET_EXCEPT_UNWIND_INFO): Remove.
18871 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
18872 New prototype.
18873 * config/microblaze/microblaze.c (microblaze_must_save_register)
18874 (microblaze_expand_epilogue, microblaze_return_addr): Handle
18875 calls_eh_return.
18876 (microblaze_eh_return): New function.
18877 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
18878 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
18879 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
18880 * config/microblaze/microblaze.md (eh_return): New pattern.
18881
18882 2017-01-06 Jakub Jelinek <jakub@redhat.com>
18883
18884 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
18885 GCC_DIAGNOSTIC_STRINGIFY): Define.
18886
18887 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
18888
18889 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
18890
18891 * config/arm/arm.md (<mcrr>): New.
18892 (<mrrc>): New.
18893 * config/arm/arm.c (arm_arch5te): New.
18894 (arm_option_override): Set arm_arch5te.
18895 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
18896 and mrrc2.
18897 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
18898 (arm_mcrr_qualifiers): ... this. New.
18899 (MRRC_QUALIFIERS): Define to...
18900 (arm_mrrc_qualifiers): ... this. New.
18901 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
18902 __arm_mrrc2): New.
18903 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
18904 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
18905 (MRRCI, mrrc, MRRC): New.
18906 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
18907 VUNSPEC_MRRC2): New.
18908
18909 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
18910
18911 * config/arm/arm.md (<mcr>): New.
18912 (<mrc>): New.
18913 * config/arm/arm.c (arm_coproc_builtin_available): Add
18914 support for mcr, mrc, mcr2 and mrc2.
18915 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
18916 (arm_mcr_qualifiers): ... this. New.
18917 (MRC_QUALIFIERS): Define to ...
18918 (arm_mrc_qualifiers): ... this. New.
18919 (MCR_QUALIFIERS): Define to ...
18920 (arm_mcr_qualifiers): ... this. New.
18921 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
18922 __arm_mrc2): New.
18923 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
18924 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
18925 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
18926 VUNSPEC_MRC2): New.
18927
18928 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
18929
18930 * config/arm/arm.md (*ldc): New.
18931 (*stc): New.
18932 (<ldc>): New.
18933 (<stc>): New.
18934 * config/arm/arm.c (arm_coproc_builtin_available): Add
18935 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
18936 (arm_coproc_ldc_stc_legitimate_address): New.
18937 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
18938 'qualifier_const_pointer'.
18939 (LDC_QUALIFIERS): Define to...
18940 (arm_ldc_qualifiers): ... this. New.
18941 (STC_QUALIFIERS): Define to...
18942 (arm_stc_qualifiers): ... this. New.
18943 * config/arm/arm-protos.h
18944 (arm_coproc_ldc_stc_legitimate_address): New.
18945 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
18946 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
18947 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
18948 stc2, stcl, stc2l): New.
18949 * config/arm/constraints.md (Uz): New.
18950 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
18951 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
18952 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
18953 VUNSPEC_STC2L): New.
18954
18955 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
18956
18957 * config/arm/arm.md (<cdp>): New.
18958 * config/arm/arm.c (neon_const_bounds): Rename this ...
18959 (arm_const_bounds): ... this.
18960 (arm_coproc_builtin_available): New.
18961 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
18962 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
18963 (CDP_QUALIFIERS): Define to...
18964 (arm_cdp_qualifiers): ... this. New.
18965 (void_UP): Define.
18966 (arm_expand_builtin_args): Add case for 6 arguments.
18967 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
18968 (arm_const_bounds): ... this.
18969 (arm_coproc_builtin_available): New.
18970 * config/arm/arm_acle.h (__arm_cdp): New.
18971 (__arm_cdp2): New.
18972 * config/arm/arm_acle_builtins.def (cdp): New.
18973 (cdp2): New.
18974 * config/arm/iterators.md (CDPI,CDP,cdp): New.
18975 * config/arm/neon.md: Rename all 'neon_const_bounds' to
18976 'arm_const_bounds'.
18977 * config/arm/types.md (coproc): New.
18978 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
18979 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
18980 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
18981 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
18982
18983 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
18984
18985 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
18986 (UBINOP_QUALIFIERS): New.
18987 (si_UP): Define.
18988 (acle_builtin_data): New. Change comment.
18989 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
18990 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
18991 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
18992 arm_acle_builtins.def.
18993 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
18994 (arm_init_acle_builtins): New.
18995 (CRC32_BUILTIN): Remove.
18996 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
18997 crc32cb, crc32ch and crc32cw.
18998 (arm_init_crc32_builtins): Remove.
18999 (arm_init_builtins): Use arm_init_acle_builtins rather
19000 than arm_init_crc32_builtins.
19001 (arm_expand_acle_builtin): New.
19002 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
19003 * config/arm/arm_acle_builtins.def: New.
19004
19005 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
19006
19007 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
19008 (arm_builtin_datum): ... this.
19009 (arm_init_neon_builtin): Rename to ...
19010 (arm_init_builtin): ... this. Add a new parameters PREFIX
19011 and USE_SIG_IN_NAME.
19012 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
19013 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
19014 'arm_builtin_datum'.
19015 (arm_init_vfp_builtins): Likewise.
19016 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
19017 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
19018 (arm_expand_neon_args): Rename to ...
19019 (arm_expand_builtin_args): ... this. Rename builtin_arg
19020 enum values and differentiate between ARG_BUILTIN_MEMORY
19021 and ARG_BUILTIN_NEON_MEMORY.
19022 (arm_expand_neon_builtin_1): Rename to ...
19023 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
19024 values, arm_expand_builtin_args and add bool parameter NEON.
19025 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
19026 (arm_expand_vfp_builtin): Likewise.
19027 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
19028
19029 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
19030
19031 PR middle-end/77484
19032 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
19033 * predict.c (tree_estimate_probability_bb): Reverse direction of
19034 polymorphic call predictor.
19035
19036 2017-01-06 David Malcolm <dmalcolm@redhat.com>
19037
19038 * passes.c (execute_one_pass): Split out pass-skipping logic into...
19039 (determine_pass_name_match): ...this new function and...
19040 (should_skip_pass_p): ...this new function.
19041
19042 2017-01-06 Nathan Sidwell <nathan@acm.org>
19043
19044 * ipa-visibility.c (function_and_variable_visibility): Reformat
19045 comments and long lines. Remove extrneous if.
19046 * symtab.c (symtab_node::make_decl_local): Fix code format.
19047 (symtab_node::set_section_for_node): Fix comment typo.
19048
19049 2017-01-06 Martin Liska <mliska@suse.cz>
19050
19051 PR bootstrap/79003
19052 * lra-constraints.c: Rename invariant to lra_invariant.
19053 * predict.c (set_even_probabilities): Initialize e to NULL.
19054
19055 2017-01-05 Martin Sebor <msebor@redhat.com>
19056
19057 PR tree-optimization/78910
19058 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
19059 (format_integer): Correct off-by-one error in the handling
19060 of precision with negative numbers in signed conversions..
19061
19062 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
19063
19064 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
19065
19066 2017-01-05 Jakub Jelinek <jakub@redhat.com>
19067
19068 PR tree-optimization/71016
19069 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
19070 factor_out_conditional_conversion. Formatting fix.
19071 (factor_out_conditional_conversion): Add cond_stmt argument.
19072 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
19073 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
19074 Formatting fix.
19075
19076 2017-01-05 David Malcolm <dmalcolm@redhat.com>
19077
19078 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
19079 read-rtl-function.o, and selftest-rtl.o.
19080 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
19081 (selftest::aarch64_test_loading_full_dump): New function.
19082 (selftest::aarch64_run_selftests): New function.
19083 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
19084 selftest::aarch64_run_selftests.
19085 * config/i386/i386.c
19086 (selftest::ix86_test_loading_dump_fragment_1): New function.
19087 (selftest::ix86_test_loading_call_insn): New function.
19088 (selftest::ix86_test_loading_full_dump): New function.
19089 (selftest::ix86_test_loading_unspec): New function.
19090 (selftest::ix86_run_selftests): Call the new functions.
19091 * emit-rtl.c (maybe_set_max_label_num): New function.
19092 * emit-rtl.h (maybe_set_max_label_num): New decl.
19093 * function.c (instantiate_decls): Guard call to
19094 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
19095 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
19096 "static".
19097 * gensupport.c (gen_reader::gen_reader): Pass "false"
19098 for new "compact" param of rtx_reader.
19099 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
19100 rather than an empty string for NULL strings.
19101 * read-md.c: Potentially include config.h rather than bconfig.h.
19102 Wrap include of errors.h with #ifdef GENERATOR_FILE.
19103 (have_error): New global, copied from errors.c.
19104 (md_reader::read_name): Rename to...
19105 (md_reader::read_name_1): ...this, adding "out_loc" param,
19106 and converting "missing name or number" to returning false, rather
19107 than failing.
19108 (md_reader::read_name): Reimplement in terms of read_name_1.
19109 (md_reader::read_name_or_nil): New function.
19110 (md_reader::read_string): Handle "(nil)" by returning NULL.
19111 (md_reader::md_reader): Add new param "compact".
19112 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
19113 (md_reader::read_file): New method.
19114 * read-md.h (md_reader::md_reader): Add new param "compact".
19115 (md_reader::read_file): New method.
19116 (md_reader::is_compact): New accessor.
19117 (md_reader::read_name): Convert return type from void to file_location.
19118 (md_reader::read_name_or_nil): New decl.
19119 (md_reader::read_name_1): New decl.
19120 (md_reader::m_compact): New field.
19121 (noop_reader::noop_reader): Pass "false" for new "compact" param
19122 of rtx_reader.
19123 (rtx_reader::rtx_reader): Add new "compact" param.
19124 (rtx_reader::read_rtx_operand): Make virtual and convert return
19125 type from void to rtx.
19126 (rtx_reader::read_until): New decl.
19127 (rtx_reader::handle_any_trailing_information): New virtual function.
19128 (rtx_reader::postprocess): New virtual function.
19129 (rtx_reader::finalize_string): New virtual function.
19130 (rtx_reader::m_in_call_function_usage): New field.
19131 (rtx_reader::m_reuse_rtx_by_id): New field.
19132 * read-rtl-function.c: New file.
19133 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
19134 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
19135 (selftest::verify_three_block_rtl_cfg): New decl.
19136 * read-rtl-function.h: New file.
19137 * read-rtl.c: Potentially include config.h rather than bconfig.h.
19138 For host, include function.h, memmodel.h, and emit-rtl.h.
19139 (one_time_initialization): New function.
19140 (struct compact_insn_name): New struct.
19141 (compact_insn_names): New array.
19142 (find_code): Handle insn codes in compact dumps.
19143 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
19144 (bind_subst_iter_and_attr): Likewise.
19145 (add_condition_to_string): Likewise.
19146 (add_condition_to_rtx): Likewise.
19147 (apply_attribute_uses): Likewise.
19148 (add_current_iterators): Likewise.
19149 (apply_iterators): Likewise.
19150 (initialize_iterators): Guard usage of apply_subst_iterator with
19151 #ifdef GENERATOR_FILE.
19152 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
19153 (md_reader::read_mapping): Likewise.
19154 (add_define_attr_for_define_subst): Likewise.
19155 (add_define_subst_attr): Likewise.
19156 (read_subst_mapping): Likewise.
19157 (check_code_iterator): Likewise.
19158 (rtx_reader::read_rtx): Likewise. Move one-time initialization
19159 logic to...
19160 (one_time_initialization): New function.
19161 (rtx_reader::read_until): New method.
19162 (read_flags): New function.
19163 (parse_reg_note_name): New function.
19164 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
19165 Handle reuse_rtx ids.
19166 Wrap iterator lookup within #ifdef GENERATOR_FILE.
19167 Add parsing support for RTL dumps, mirroring the special-cases in
19168 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
19169 values, and calling handle_any_trailing_information.
19170 (rtx_reader::read_rtx_operand): Convert return type from void
19171 to rtx, returning return_rtx. Handle case 'e'. Call
19172 finalize_string on XSTR and XTMPL fields.
19173 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
19174 "(nil)" values were omitted. Call the postprocess vfunc on the
19175 return_rtx.
19176 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
19177 class ctor. Initialize m_in_call_function_usage. Call
19178 one_time_initialization.
19179 * rtl-tests.c (selftest::test_uncond_jump): Call
19180 set_new_first_and_last_insn.
19181 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
19182 * selftest-rtl.c: New file.
19183 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
19184 (selftest::get_insn_by_uid): New decl.
19185 * selftest-run-tests.c (selftest::run_tests): Call
19186 read_rtl_function_c_tests.
19187 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
19188 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
19189 dumps.
19190
19191 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
19192
19193 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
19194 operands in a special way. Assert that pos+len <= mode precision.
19195
19196 2017-01-05 Jakub Jelinek <jakub@redhat.com>
19197
19198 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
19199 3 argument Alias with unlimited for the negative form.
19200 (fno-vect-cost-model): Removed.
19201
19202 2017-01-05 Martin Liska <mliska@suse.cz>
19203
19204 * hsa-gen.c (gen_hsa_divmod): New function.
19205 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
19206
19207 2017-01-05 Martin Liska <mliska@suse.cz>
19208
19209 PR pch/78970
19210 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
19211 header.
19212
19213 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19214
19215 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
19216 small constant length operands.
19217
19218 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19219
19220 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
19221 between loop iterations.
19222
19223 2017-01-05 Martin Liska <mliska@suse.cz>
19224
19225 PR sanitizer/78815
19226 * gimplify.c (gimplify_decl_expr): Compare to
19227 asan_poisoned_variables instread of checking flags.
19228 (gimplify_target_expr): Likewise.
19229 (gimplify_expr): Likewise.
19230 (gimplify_function_tree): Conditionally initialize
19231 asan_poisoned_variables.
19232
19233 2017-01-04 Jeff Law <law@redhat.com>
19234
19235 PR tree-optimizatin/78812
19236 * rtl.h (contains_mem_rtx_p): Prototype.
19237 * ifcvt.c (containts_mem_rtx_p): Move from here to...
19238 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
19239 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
19240 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
19241 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
19242
19243 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
19244
19245 * input.c (assert_char_at_range): Default-initialize actual_range.
19246
19247 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
19248
19249 * df-scan.c (df_ref_create_structure): Make regno unsigned,
19250 to match the caller.
19251
19252 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
19253
19254 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
19255 insns after final jump in test to emit dummy move.
19256
19257 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
19258
19259 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
19260 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
19261
19262 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
19263
19264 * multiple_target.c (create_dispatcher_calls): Init e_next.
19265 * tree-ssa-loop-split.c (split_loop): Init border.
19266 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
19267 scalar_type.
19268
19269 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
19270
19271 PR target/71977
19272 PR target/70568
19273 PR target/78823
19274 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
19275 (altivec_register_operand): Do not return true if the operand
19276 contains a SUBREG mixing SImode and SFmode.
19277 (vsx_register_operand): Likewise.
19278 (vsx_reg_sfsubreg_ok): New predicate.
19279 (vfloat_operand): Do not return true if the operand contains a
19280 SUBREG mixing SImode and SFmode.
19281 (vint_operand): Likewise.
19282 (vlogical_operand): Likewise.
19283 (gpc_reg_operand): Likewise.
19284 (int_reg_operand): Likewise.
19285 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
19286 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
19287 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
19288 SImode and SFmode.
19289 (rs6000_emit_move_si_sf_subreg): New helper function.
19290 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
19291 fixup SUBREGs involving SImode and SFmode.
19292 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
19293 numbers for the new peephole2 optimization.
19294 (peephole2 for SFmode unions): New peephole2 to optimize cases in
19295 the GLIBC math library that do AND/IOR/XOR operations on single
19296 precision floating point.
19297 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
19298 target macros to say whether we need to avoid SUBREGs mixing
19299 SImode and SFmode.
19300 (TARGET_ALLOW_SF_SUBREG): Likewise.
19301 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
19302 (UNSPEC_SI_FROM_SF): Likewise.
19303 (iorxor): Change spacing.
19304 (and_ior_xor): New iterator for AND, IOR, and XOR.
19305 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
19306 (movdi_from_sf_zero_ext): Likewise.
19307 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
19308 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
19309 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
19310 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
19311 (fms<mode>4): Likewise.
19312 (fnma<mode>4): Likewise.
19313 (fnms<mode>4): Likewise.
19314 (nfma<mode>4): Likewise.
19315 (nfms<mode>4): Likewise.
19316
19317 2017-01-04 Marek Polacek <polacek@redhat.com>
19318
19319 PR c++/64767
19320 * doc/invoke.texi: Document -Wpointer-compare.
19321
19322 2017-01-04 Jakub Jelinek <jakub@redhat.com>
19323
19324 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
19325 RejectNegative.
19326
19327 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
19328 descriptions for -gdwarf-5 and emit them as uleb128 instead of
19329 2-byte data.
19330
19331 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
19332
19333 PR target/78056
19334 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
19335 documentation of the powerpc_popcntb_ok attribute.
19336 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
19337 code to issue warning messages if a requested CPU configuration is
19338 not supported by the binary (assembler and loader) toolchain.
19339 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
19340 made to define a built-in function that has been disabled.
19341 (paired_init_builtins): Add assertion to prevent ICE if attempt is
19342 made to define a built-in function that has been disabled.
19343 (altivec_init_builtins): Add comment explaining why definition
19344 of the DST built-in functions is not preceded by an assertion
19345 check. Add assertions to prevent ICE if attempts are made to
19346 define an altivec predicate or an abs* built-in function that has
19347 been disabled.
19348 (htm_init_builtins): Add comment explaining why definition of the
19349 htm built-in functions is not preceded by an assertion check.
19350
19351 2017-01-04 Jeff Law <law@redhat.com>
19352
19353 PR tree-optimizatin/67955
19354 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
19355 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
19356 the points-to solution does not include pt_null. Use DECL_PT_UID
19357 unconditionally.
19358
19359 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
19360
19361 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
19362 Use gen_int_mode instead of gen_lopwart for const_int operands.
19363
19364 2017-01-04 Jakub Jelinek <jakub@redhat.com>
19365
19366 PR tree-optimization/71563
19367 * match.pd: Simplify X << Y into X if Y is known to be 0 or
19368 out of range value - has low bits known to be zero.
19369
19370 2017-01-04 Alan Modra <amodra@gmail.com>
19371
19372 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
19373 * configure: Regenerate.
19374 * config.in: Regenerate.
19375
19376 2017-01-04 Jakub Jelinek <jakub@redhat.com>
19377
19378 PR bootstrap/77569
19379 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
19380 a substring of the message, but strcmp with the whole message. Ifdef
19381 ENABLE_NLS, translate the message first using dgettext.
19382
19383 2017-01-03 Jeff Law <law@redhat.com>
19384
19385 PR tree-optimizatin/78856
19386 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
19387 (mark_threaded_blocks): Remove code to truncate thread paths that
19388 cross multiple loop headers. Instead invalidate the cached loop
19389 iteration information and handle case of a thread path walking
19390 into an irreducible region.
19391
19392 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
19393
19394 PR target/78900
19395 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
19396 assertions. Add support for doing the signbit if the IEEE 128-bit
19397 floating point value is in a GPR.
19398 * config/rs6000/rs6000.md (Fsignbit): Delete.
19399 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
19400 Update the length attribute if the value is in a GPR.
19401 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
19402 the sign or zero extension instruction, since the value is always 0/1.
19403 (signbit<mode>2_dm2): Delete using <Fsignbit>.
19404
19405 PR target/78953
19406 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
19407 extracting SImode to a GPR register so that we can generate a
19408 store, limit the vector to be in a traditional Altivec register
19409 for the vextuwrx instruction.
19410
19411 2017-01-03 Ian Lance Taylor <iant@google.com>
19412
19413 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
19414
19415 2017-01-03 Martin Sebor <msebor@redhat.com>
19416
19417 PR tree-optimization/78696
19418 * gimple-ssa-sprintf.c (format_floating): Correct handling of
19419 precision. Use MPFR for %f for greater fidelity. Correct handling
19420 of %g.
19421 (pass_sprintf_length::compute_format_length): Set width and precision
19422 specified by asrerisk to void_node for vararg functions.
19423 (try_substitute_return_value): Adjust dump output.
19424
19425 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
19426
19427 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
19428
19429 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
19430
19431 * doc/invoke.texi (SPARC options): Document -mlra as the default.
19432 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
19433 -mlra/-mno-lra was passed to the compiler.
19434
19435 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
19436
19437 PR rtl-optimization/65618
19438 * emit-rtl.c (try_split): Move initialization of "before" and
19439 "after" to just before the call to emit_insn_after_setloc.
19440
19441 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
19442
19443 * doc/md.texi (Standard Names): Remove reference to Java frontend.
19444
19445 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
19446
19447 * dwarf2out.c (gen_enumeration_type_die): When
19448 -gno-strict-dwarf, add a DW_AT_encoding attribute.
19449
19450 2017-01-03 Jakub Jelinek <jakub@redhat.com>
19451
19452 PR tree-optimization/78965
19453 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
19454 Change first argument from const call_info & to call_info &. For %n
19455 set info.nowrite to false.
19456
19457 PR middle-end/78901
19458 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
19459 possibly throwing calls.
19460
19461 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
19462 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
19463 and fns handling, rather than in a separate case SSA_NAME.
19464
19465 2017-01-02 Jeff Law <law@redhat.com>
19466
19467 * config/darwin-driver.c (darwin_driver_init): Const-correctness
19468 fixes for first_period and second_period variables.
19469
19470 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
19471
19472 PR target/78967
19473 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
19474 (*insvqi_1): New insn pattern.
19475 (*insvqi_1_mem_rex64): Ditto.
19476 (*insvqi_2): Ditto.
19477 (*insvqi_3): Rename from *insvqi.
19478
19479 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
19480
19481 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
19482
19483 * doc/cfg.texi (Edges): Remove reference to Java.
19484 (Maintaining the CFG): Ditto.
19485
19486 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
19487
19488 PR middle-end/77674
19489 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
19490 transparent aliases.
19491
19492 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
19493
19494 PR middle-end/77484
19495 * predict.def (PRED_CALL): Update hitrate.
19496 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
19497 * predict.c (tree_estimate_probability_bb): Split CALL predictor
19498 into direct/indirect/polymorphic variants.
19499
19500 2017-01-01 Jakub Jelinek <jakub@redhat.com>
19501
19502 Update copyright years.
19503
19504 * gcc.c (process_command): Update copyright notice dates.
19505 * gcov-dump.c (print_version): Ditto.
19506 * gcov.c (print_version): Ditto.
19507 * gcov-tool.c (print_version): Ditto.
19508 * gengtype.c (create_file): Ditto.
19509 * doc/cpp.texi: Bump @copying's copyright year.
19510 * doc/cppinternals.texi: Ditto.
19511 * doc/gcc.texi: Ditto.
19512 * doc/gccint.texi: Ditto.
19513 * doc/gcov.texi: Ditto.
19514 * doc/install.texi: Ditto.
19515 * doc/invoke.texi: Ditto.
19516 \f
19517 Copyright (C) 2017 Free Software Foundation, Inc.
19518
19519 Copying and distribution of this file, with or without modification,
19520 are permitted in any medium without royalty provided the copyright
19521 notice and this notice are preserved.