[SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers
[gcc.git] / gcc / ChangeLog
1 2017-12-12 Alexandre Oliva <aoliva@redhat.com>
2
3 * cfgcleanup.c (delete_unreachable_blocks): Use alternate
4 block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
5 * cfgexpand.c (label_rtx_for_bb): Skip debug insns.
6 * cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
7 (rtl_tidy_fallthru_edge): Likewise.
8 (rtl_verify_fallthru): Likewise.
9 (rtl_verify_bb_layout): Likewise.
10 (skip_insns_after_block): Likewise.
11 (duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
12 * dwarf2out.c: Include print-rtl.h.
13 (dwarf2out_next_real_insn): New.
14 (dwarf2out_var_location): Call it. Disregard begin stmt markers.
15 Dump debug binds in asm comments.
16 * gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
17 * gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
18 callers to use gsi_start_nondebug_bb instead.
19 (gsi_after_labels): Skip gimple debug stmts.
20 (gsi_start_nondebug): New.
21 * gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
22 (proper_loop_form_for_interchange): Adjust.
23 * gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
24 * gimple.h (gimple_seq_last_nondebug_stmt): New.
25 * gimplify.c (last_stmt_in_scope): Skip debug stmts.
26 (collect_fallthrough_labels): Likewise.
27 (should_warn_for_implicit_fallthrough): Likewise.
28 (warn_implicit_fallthrough_r): Likewise.
29 (expand_FALLTHROUGH_r): Likewise.
30 * graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
31 (graphite_copy_stmts_from_block): Skip nonbind markers.
32 * haifa-sched.c (sched_extend_bb): Skip debug insns.
33 * ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
34 * jump.c (clean_barriers): Skip debug insns.
35 * omp-expand.c (expand_parallel_call): Skip debug insns.
36 (expand_task_call): Likewise.
37 (remove_exit_barrier): Likewise.
38 (expand_omp_taskreg): Likewise.
39 (expand_omp_for_init_counts): Likewise.
40 (expand_omp_for_generic): Likewise.
41 (expand_omp_for_static_nochunk): Likewise.
42 (expand_omp_for_static_chunk): Likewise.
43 (expand_omp_simd): Likewise.
44 (expand_omp_taskloop_for_outer): Likewise.
45 (expand_omp_taskloop_for_inner): Likewise.
46 (expand_oacc_for): Likewise.
47 (expand_omp_sections): Likewise.
48 (expand_omp_single): Likewise.
49 (expand_omp_synch): Likewise.
50 (expand_omp_atomic_load): Likewise.
51 (expand_omp_atomic_store): Likewise.
52 (expand_omp_atomic_fetch_op): Likewise.
53 (expand_omp_atomic_pipeline): Likewise.
54 (expand_omp_atomic_mutex): Likewise.
55 (expand_omp_target): Likewise.
56 (grid_expand_omp_for_loop): Likewise.
57 (grid_expand_target_grid_body): Likewise.
58 (build_omp_regions_1): Likewise.
59 * omp-low.c (check_combined_parallel): Skip debug stmts.
60 * postreload.c (fixup_debug_insns): Skip nonbind debug insns.
61 * regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
62 * sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
63 test.
64 * tree-cfg.c (make_blobs_1): Skip debug stmts.
65 (make_edges): Likewise.
66 (cleanup_dead_labels): Likewise.
67 (gimple_can_merge_blocks_p): Likewise.
68 (stmt_starts_bb_p): Likewise.
69 (gimple_block_label): Likewise.
70 (gimple_redirect_edge_and_branch): Likewise.
71 * tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
72 of debug stmts.
73 (execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
74 TDF_SLIM.
75 * tree-pretty-print (print_declaration): Omit initializer in slim
76 dumps.
77 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
78 markers.
79 (eliminate_unnecessary_stmts): Stabilize block removal order.
80 * tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
81 * var-tracking.c (get_first_insn): New.
82 (vt_emit_notes): Call it.
83 (vt_initialize): Walk any insns before the first BB.
84 (delete_debug_insns): Likewise.
85
86 * gimple.h (enum gimple_debug_subcode): Add
87 GIMPLE_DEBUG_BEGIN_STMT.
88 (gimple_debug_begin_stmt_p): New.
89 (gimple_debug_nonbind_marker_p): New.
90 * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): New.
91 (MAY_HAVE_DEBUG_BIND_STMTS): Renamed from....
92 (MAY_HAVE_DEBUG_STMTS): ... this. Check both.
93 * insn-notes.def (BEGIN_STMT): New.
94 * rtl.h (MAY_HAVE_DEBUG_MARKER_INSNS): New.
95 (MAY_HAVE_DEBUG_BIND_INSNS): Renamed from....
96 (MAY_HAVE_DEBUG_INSNS): ... this. Check both.
97 (NOTE_MARKER_LOCATION, NOTE_MARKER_P): New.
98 (DEBUG_BIND_INSN_P, DEBUG_MARKER_INSN_P): New.
99 (INSN_DEBUG_MARKER_KIND): New.
100 (GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT): New.
101 (INSN_VAR_LOCATION): Check for VAR_LOCATION.
102 (INSN_VAR_LOCATION_PTR): New.
103 * cfgexpand.c (expand_debug_locations): Handle debug bind insns
104 only.
105 (expand_gimple_basic_block): Likewise. Emit debug temps for TER
106 deps only if debug bind insns are enabled.
107 (pass_expand::execute): Avoid deep TER and expand
108 debug locations for debug bind insns only.
109 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Narrow
110 debug stmts special handling down to debug bind stmts.
111 * combine.c (try_combine): Narrow debug insns special handling
112 down to debug bind insns.
113 * cse.c (delete_trivially_dead_insns): Handle debug bindings.
114 Narrow debug insns preexisting special handling down to debug
115 bind insns.
116 * dce.c (rest_of_handle_ud_dce): Narrow debug insns special
117 handling down to debug bind insns.
118 * function.c (instantiate_virtual_regs): Skip debug markers,
119 adjust handling of debug binds.
120 * gimple-ssa-backprop.c (backprop::prepare_change): Try debug
121 temp insertion iff MAY_HAVE_DEBUG_BIND_STMTS.
122 * haifa-sched.c (schedule_insn): Narrow special handling of debug
123 insns to debug bind insns.
124 * ipa-param-manipulation.c (ipa_modify_call_arguments): Narrow
125 special handling of debug stmts to debug bind stmts.
126 * ipa-split.c (split_function): Likewise.
127 * ira.c (combine_and_move_insns): Adjust debug bind insns only.
128 * loop-unroll.c (apply_opt_in_copies): Adjust tests on bind
129 debug insns.
130 * reg-stack.c (convert_regs_1): Use DEBUG_BIND_INSN_P.
131 * regrename.c (build_def_use): Likewise.
132 * regcprop.c (copyprop_hardreg_forward_1): Likewise.
133 (pass_cprop_hardreg): Narrow special casing of debug insns to
134 debug bind insns.
135 * regstat.c (regstat_init_n_sets_and_refs): Likewise.
136 * reload1.c (reload): Likewise.
137 * sese.c (sese_insert_phis_for_liveouts): Narrow special
138 casing of debug stmts to debug bind stmts.
139 * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise.
140 * ssa-iterators.h (num_imm_uses): Likewise.
141 * tree-cfg.c (gimple_merge_blocks): Narrow special casing of
142 debug stmts to debug bind stmts.
143 * tree-inline.c (tree_function_versioning): Narrow special casing
144 of debug stmts to debug bind stmts.
145 * tree-loop-distribution.c (generate_loops_for_partition):
146 Narrow special casing of debug stmts to debug bind stmts.
147 * tree-sra.c (analyze_access_subtree): Narrow special casing
148 of debug stmts to debug bind stmts.
149 * tree-ssa-dce.c (remove_dead_stmt): Narrow special casing of debug
150 stmts to debug bind stmts.
151 * tree-ssa-loop-ivopt.c (remove_unused_ivs): Narrow special
152 casing of debug stmts to debug bind stmts.
153 * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise.
154 * tree-ssa-tail-merge.c (tail_merge_optimize): Narrow special
155 casing of debug stmts to debug bind stmts.
156 * tree-ssa-threadedge.c (propagate_threaded_block_debug_info):
157 Likewise.
158 * tree-ssa.c (flush_pending_stmts): Narrow special casing of
159 debug stmts to debug bind stmts.
160 (gimple_replace_ssa_lhs): Likewise.
161 (insert_debug_temp_for_var_def): Likewise.
162 (insert_debug_temps_for_defs): Likewise.
163 (reset_debug_uses): Likewise.
164 * tree-ssanames.c (release_ssa_name_fn): Likewise.
165 * tree-vect-loop-manip.c (adjust_debug_stmts_now): Likewise.
166 (adjust_debug_stmts): Likewise.
167 (adjust_phi_and_debug_stmts): Likewise.
168 (vect_do_peeling): Likewise.
169 * tree-vect-loop.c (vect_transform_loop): Likewise.
170 * valtrack.c (propagate_for_debug): Use BIND_DEBUG_INSN_P.
171 * var-tracking.c (adjust_mems): Narrow special casing of debug
172 insns to debug bind insns.
173 (dv_onepart_p, dataflow_set_clar_at_call, use_type): Likewise.
174 (compute_bb_dataflow, vt_find_locations): Likewise.
175 (vt_expand_loc, emit_notes_for_changes): Likewise.
176 (vt_init_cfa_base): Likewise.
177 (vt_emit_notes): Likewise.
178 (vt_initialize): Likewise.
179 (vt_finalize): Likewise.
180
181 * emit-rtl.c (next_nondebug_insn, prev_nondebug_insn): Reorder.
182 (next_nonnote_nondebug_insn, prev_nonnote_nondebug_insn): Reorder.
183 (next_nonnote_nondebug_insn_bb): New.
184 (prev_nonnote_nondebug_insn_bb): New.
185 (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove.
186 * rtl.h (prev_nonnote_insn_bb, next_nonnote_insn_bb): Remove decls.
187 (prev_nonnote_nondebug_insn_bb): Declare.
188 (next_nonnote_nondebug_insn_bb): Declare.
189 * cfgbuild.c (find_bb_boundaries): Adjust to skip debug insns.
190 * cfgrtl.c (get_last_bb_insn): Likewise.
191 * lra.c (push_insns): Likewise.
192
193 2017-12-11 David Malcolm <dmalcolm@redhat.com>
194
195 PR c/82050
196 * selftest-run-tests.c (selftest::run_tests): Move start/finish code
197 to...
198 * selftest.c (selftest::test_runner::test_runner): New ctor.
199 (selftest::test_runner::~test_runner): New dtor.
200 * selftest.h (class selftest::test_runner): New class.
201
202 2017-12-11 Carl Love <cel@us.ibm.com>
203
204 * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
205 vec_extract_fp32_from_shortl]): Add #defines.
206 * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
207 * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
208 ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
209 ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
210 ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
211 ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
212 * doc/extend.texi: Add documentation for the added builtins.
213
214 2017-12-11 Alexandre Oliva <aoliva@redhat.com>
215
216 PR rtl-optimization/80693
217 PR rtl-optimization/81019
218 PR rtl-optimization/81020
219 * combine.c (distribute_notes): Reset any REG_UNUSED REGs that
220 are not mentioned in i3. Place the REG_UNUSED note on i2,
221 possibly modified to REG_DEAD, if it did not originate in i3.
222
223 2017-12-11 Jakub Jelinek <jakub@redhat.com>
224
225 * recog.c (store_data_bypass_p_1): New function.
226 (store_data_bypass_p): Handle USE in a PARALLEL like CLOBBER. Use
227 store_data_bypass_p_1 to avoid code duplication. Formatting fixes.
228
229 2017-12-11 Segher Boessenkool <segher@kernel.crashing.org>
230
231 PR rtl-optimization/83361
232 * ifcvt.c (if_convert): Call fixup_partitions.
233
234 2017-12-11 Will Schmidt <will_schmidt@vnet.ibm.com>
235
236 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
237 early folding of splat_u{8,16,32}.
238
239 2017-12-11 Jakub Jelinek <jakub@redhat.com>
240
241 * config/aarch64/aarch64.c (aarch64_print_operand): Don't start
242 output_operand_lossage first argument with capital letter.
243 (aarch64_override_options): Don't start error and sorry first argument
244 with capital letter.
245
246 2017-12-11 Andi Kleen <ak@linux.intel.com>
247
248 PR gcov-profile/83355
249 * auto-profile.c (string_table::get_index_by_decl): Don't
250 recurse when abstract origin points to itself.
251
252 2017-12-11 Bin Cheng <bin.cheng@arm.com>
253
254 PR tree-optimization/83320
255 * gimple-loop-interchange.cc (free_data_refs_with_aux): Use delete.
256 (prune_datarefs_not_in_loop): Ditto.
257
258 2017-12-10 Gerald Pfeifer <gerald@pfeifer.com>
259
260 * doc/install.texi (Specific): Tweak link to mkssoftware.com.
261
262 2017-12-10 Jakub Jelinek <jakub@redhat.com>
263
264 PR tree-optimization/83337
265 * gimple-loop-interchange.cc (compute_access_stride): Handle
266 bitfield DRs properly.
267
268 2017-12-09 Jakub Jelinek <jakub@redhat.com>
269
270 PR tree-optimization/83338
271 * tree-vect-stmts.c (vectorizable_operation): Handle POINTER_DIFF_EXPR
272 vectorization as MINUS_EXPR with a subsequent VIEW_CONVERT_EXPR from
273 vector of unsigned integers to vector of signed integers.
274
275 2017-12-08 Vladimir Makarov <vmakarov@redhat.com>
276
277 PR rtl-optimization/83317
278 * lra-constraints.c (process_address_1): Add insn code check.
279
280 2017-12-08 Michael Matz <matz@suse.de>
281
282 Fix PR tree-optimization/83323
283 * gimple-loop-jam (unroll_jam_possible_p): Correct test for
284 head-controlled loops and loop BBs.
285 * common.opt (funroll-and-jam): Remove, instead ...
286 (floop-unroll-and-jam): ... reuse this option.
287 * opts.c (default_options_table): Use OPT_floop_unroll_and_jam.
288 * doc/invoke.texi (-funroll-and-jam): Move docu to ...
289 (-floop-unroll-and-jam): ... this option.
290
291 2017-12-08 Jakub Jelinek <jakub@redhat.com>
292
293 * ipa-polymorphic-call.c (noncall_stmt_may_be_vtbl_ptr_store): Fix
294 a comment typo, get_base_ref_and_offset -> get_ref_base_and_extent.
295 * ipa-prop.c (stmt_may_be_vtbl_ptr_store): Likewise.
296
297 2017-12-08 Richard Biener <rguenther@suse.de>
298
299 PR middle-end/81782
300 * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
301 handle accesses outside of zero-sized vars.
302
303 2017-12-08 Martin Jambor <mjambor@suse.cz>
304
305 PR tree-optimization/83141
306 * tree-sra.c (contains_vce_or_bfcref_p): Move up in the file, also
307 test for MEM_REFs implicitely changing types with padding. Remove
308 inline keyword.
309 (build_accesses_from_assign): Added contains_vce_or_bfcref_p checks.
310
311 2017-12-08 Jakub Jelinek <jakub@redhat.com>
312
313 * config/arc/arc.c (arc_attribute_table): Add exclusions to
314 the comment.
315 * config/avr/avr.c (avr_attribute_table): Likewise.
316 * config/msp430/msp430.c (msp430_attribute_table): Likewise.
317 * config/rl78/rl78.c (rl78_attribute_table): Likewise.
318 * config/nds32/nds32.c (nds32_attribute_table): Likewise.
319 * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
320 of struct attribute_spec.
321 * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
322
323 2017-12-08 Ulrich Weigand <uweigand@de.ibm.com>
324
325 PR target/82960
326 * config/spu/spu.c (pad_bb): Only check INSN_CODE when INSN_P is true.
327
328 2017-12-08 Jan Hubicka <hubicka@ucw.cz>
329
330 PR middle-end/83609
331 * profile-count.c (profile_count::from_gcov_type): Move from
332 profile-count.h; handle overflow.
333 * profile-count.h (profile_count::from_gcov_type): Move offline.
334
335 2017-12-08 Segher Boessenkool <segher@kernel.crashing.org>
336
337 PR rtl-optimization/83304
338 * combine.c (move_deaths): If we do not know where a register died,
339 search for it.
340
341 2017-12-08 Richard Biener <rguenther@suse.de>
342
343 * gimple-loop-interchange.cc (tree_loop_interchange::interchange):
344 Provide -fopt-info-loop feedback when we interchange in a nest.
345
346 2017-06-08 Richard Earnshaw <rearnsha@arm.com>
347
348 * config/arm/driver-arm.c (arm_cpu_table): Use fp-capable product names
349 for armv6 ARM CPU IDs.
350
351 2017-06-08 Richard Earnshaw <rearnsha@arm.com>
352
353 * common/config/arm/arm-common.c: Include <algorithm>.
354 (INCLUDE_VECTOR): Define.
355 (compare_opt_names): New function.
356 (arm_rewrite_selected_arch): Only strip out extensions that can be
357 expressed through -mfpu. Sort the remaining extensions
358 alphabetically.
359
360 2017-06-08 Richard Earnshaw <rearnsha@arm.com>
361
362 * config/arm/arm.h (arm_asm_auto_mfpu): Declare.
363 (ASM_CPU_SPEC_FUNCTIONS): Add new rule asm_auto_mfpu.
364 (ASM_CPU_SPEC): Use it if -mfpu is set to auto.
365 * common/config/arm/arm-common.c (arm_asm_auto_mfpu): New function.
366
367 2017-06-08 Tristan Gingold <gindold@adacore.com>
368
369 PR ada/81470
370 * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
371 .cfi_personality or .cfi_lsda if the eh data format is dwarf2.
372
373 2017-12-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
374
375 * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE): Initialize new member
376 of struct attribute_spec.
377
378 2017-12-08 Julia Koval <julia.koval@intel.com>
379
380 * config/i386/avx512vnniintrin.h (_mm512_dpwssds_epi32,
381 _mm512_mask_dpwssds_epi32, _mm512_maskz_dpwssds_epi32): New intrinsics.
382 * config/i386/avx512vnnivlintrin.h (_mm256_dpwssds_epi32,
383 _mm256_mask_dpwssds_epi32, _mm256_maskz_dpwssds_epi32,
384 _mm_dpwssds_epi32, _mm_mask_dpwssds_epi32,
385 _mm_maskz_dpwssds_epi32): Ditto.
386
387 2017-12-08 Richard Biener <rguenther@suse.de>
388
389 PR tree-optimization/81303
390 * tree-vect-stmts.c (vect_is_simple_cond): For invariant
391 conditions try to create a comparison vector type matching
392 the data vector type.
393 (vectorizable_condition): Adjust.
394 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
395 Leave invariant conditions alone in case we can vectorize those.
396
397 2017-12-08 Julia Koval <julia.koval@intel.com>
398
399 * config/i386/avx512vnniintrin.h (_mm512_dpwssd_epi32,
400 _mm512_mask_dpwssd_epi32, _mm512_maskz_dpwssd_epi32): New intrinsics.
401 * config/i386/avx512vnnivlintrin.h (_mm256_dpwssd_epi32,
402 _mm256_mask_dpwssd_epi32, _mm256_maskz_dpwssd_epi32, _mm_dpwssd_epi32,
403 _mm_mask_dpwssd_epi32, _mm_maskz_dpwssd_epi32): Ditto.
404
405 2017-12-08 Julia Koval <julia.koval@intel.com>
406
407 * config/i386/avx512vnniintrin.h (_mm512_dpbusds_epi32,
408 _mm512_mask_dpbusds_epi32, _mm512_maskz_dpbusds_epi32): New.
409 * config/i386/avx512vnnivlintrin.h (_mm256_dpbusds_epi32,
410 _mm256_mask_dpbusds_epi32, _mm256_maskz_dpbusds_epi32,
411 _mm_dpbusds_epi32, _mm_mask_dpbusds_epi32,
412 _mm_maskz_dpbusds_epi32): New intrinsics.
413
414 2017-12-07 Sandra Loosemore <sandra@codesourcery.com>
415
416 * config/nios2/nios2.md (ld<bhw_uns>io): Add splitter for memory
417 operand.
418 (ld<bh>io_signed): Likewise.
419 (st<bhw>io): Likewise.
420 * config/nios2/predicates.md (ldstio_memory_operand): Allow
421 SMALL_INT12 constant integer operand.
422
423 2017-12-07 Sandra Loosemore <sandra@codesourcery.com>
424
425 * config/nios2/nios2.c (nios2_symbolic_constant_allowed):
426 Rename to...
427 (nios2_large_constant_allowed): ...this. Adjust uses.
428 (nios2_plus_symbolic_constant_p): Rename to...
429 (nios2_plus_large_constant_p): ...this. Adjust uses.
430 (nios2_legitimate_address_p): Correct CONST_INT handling.
431 (nios2_symbolic_memory_operand_p): Rename to...
432 (nios2_large_constant_memory_operand_p): ...this. Adjust uses.
433 (nios2_large_constant_p): Check for large constant integers too.
434 (nios2_split_large_constant): Handle constant integers.
435 (nios2_split_symbolic_memory_operand): Rename to...
436 (nios2_split_large_constant_memory_operand): ...this. Adjust uses.
437 (nios2_legitimize_constant_address): Handle constant integers.
438 (r0rel_constant_p): Handle small constant integers.
439 (nios2_print_operand_address): Handle r0-relative integer addresses.
440 * config/nios2/nios2-protos.h: Adjust for renamed functions.
441 * config/nios2/nios2.md: Adjust for renamed functions.
442
443 2017-12-07 Andrew Waterman <andrew@sifive.com>
444
445 * config/riscv/riscv.c (TARGET_ASM_SELECT_SECTION): New define.
446 (TARGET_HAVE_SRODATA_SECTION): New define.
447 (riscv_select_section): New function.
448
449 2017-12-08 Joseph Myers <joseph@codesourcery.com>
450 Alexander Monakov <amonakov@ispras.ru>
451 Jakub Jelinek <jakub@redhat.com>
452
453 PR target/81906
454 * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
455
456 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
457
458 * config/aarch64/aarch64.c (aarch64_print_address_internal): Return
459 a bool success value. Don't call output_operand_lossage here.
460 (aarch64_print_ldpstp_address): Return a bool success value.
461 (aarch64_print_operand_address): Call output_addr_const if
462 aarch64_print_address_internal fails.
463 (aarch64_print_operand): Don't assert that the mode is 16 bytes for
464 'y'; call output_operand_lossage instead. Call output_operand_lossage
465 if aarch64_print_ldpstp_address fails.
466
467 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
468
469 * tree-vector-builder.h
470 (tree_vector_builder::binary_encoded_nelts): Declare.
471 * tree-vector-builder.c
472 (tree_vector_builder::binary_encoded_nelts): New function.
473 * fold-const.c (negate_expr_p): Likewise.
474 (operand_equal_p, fold_checksum_tree): Likewise.
475 * tree-loop-distribution.c (const_with_all_bytes_same): Likewise.
476 * tree.c (integer_zerop, integer_onep, integer_all_onesp, real_zerop)
477 (real_onep, real_minus_onep, add_expr, initializer_zerop): Likewise.
478 (uniform_vector_p): Likewise.
479 * varasm.c (const_hash_1, compare_constant): Likewise.
480 * tree-ssa-ccp.c: Include tree-vector-builder.h.
481 (valid_lattice_transition): Operate directly on the VECTOR_CST
482 encoding.
483 * ipa-icf.c: Include tree-vector-builder.h.
484 (sem_variable::equals): Operate directly on the VECTOR_CST encoding.
485 * print-tree.c (print_node): Print encoding of VECTOR_CSTs.
486
487 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
488
489 * tree.c (build_vector): Delete.
490 * tree.h (build_vector): Make static and move into the self-testing
491 block.
492
493 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
494
495 * vector-builder.h (vector_builder::derived): New const overload.
496 (vector_builder::elt): New function.
497 * tree-vector-builder.h (tree_vector_builder::type): New function.
498 (tree_vector_builder::apply_step): Declare.
499 * tree-vector-builder.c (tree_vector_builder::apply_step): New
500 function.
501 * gimple-fold.h (tree_vector_builder): Declare.
502 (gimple_build_vector): Take a tree_vector_builder instead of a
503 type and vector of elements.
504 * gimple-fold.c (gimple_build_vector): Likewise.
505 * tree-vect-loop.c (get_initial_def_for_reduction): Update call
506 accordingly.
507 (get_initial_defs_for_reduction): Likewise.
508 (vectorizable_induction): Likewise.
509
510 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
511
512 * tree-vector-builder.h
513 (tree_vector_builder::new_binary_operation): Declare.
514 * tree-vector-builder.c
515 (tree_vector_builder::new_binary_operation): New function.
516 * fold-const.c (fold_relational_const): Use it.
517 (const_binop): Likewise. Check that both input vectors have
518 the same number of elements, thus excluding things like WIDEN_SUM.
519 Check whether it is possible to operate directly on the encodings
520 of stepped inputs.
521
522 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
523
524 * fold-const.c (fold_negate_expr_1): Use tree_vector_builder and
525 new_unary_operation, operating only on the encoded elements.
526 (const_unop): Likewise.
527 (exact_inverse): Likewise.
528 (distributes_over_addition_p): New function.
529 (const_binop): Use tree_vector_builder and new_unary_operation
530 for combinations of VECTOR_CST and INTEGER_CST. Operate only
531 on the encoded elements unless the encoding is strided and the
532 operation does not distribute over addition.
533 (fold_convert_const): Use tree_vector_builder and
534 new_unary_operation. Operate only on the encoded elements
535 for truncating integer conversions, or for non-stepped encodings.
536
537 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
538
539 * config/sparc/sparc.c: Include tree-vector-builder.h.
540 (sparc_fold_builtin): Use tree_vector_builder instead of build_vector.
541 * expmed.c: Include tree-vector-builder.h.
542 (make_tree): Use tree_vector_builder instead of build_vector.
543 * fold-const.c: Include tree-vector-builder.h.
544 (const_binop): Use tree_vector_builder instead of build_vector.
545 (const_unop): Likewise.
546 (native_interpret_vector): Likewise.
547 (fold_vec_perm): Likewise.
548 (fold_ternary_loc): Likewise.
549 * gimple-fold.c: Include tree-vector-builder.h.
550 (gimple_fold_stmt_to_constant_1): Use tree_vector_builder instead
551 of build_vector.
552 * tree-ssa-forwprop.c: Include tree-vector-builder.h.
553 (simplify_vector_constructor): Use tree_vector_builder instead
554 of build_vector.
555 * tree-vect-generic.c: Include tree-vector-builder.h.
556 (add_rshift): Use tree_vector_builder instead of build_vector.
557 (expand_vector_divmod): Likewise.
558 (optimize_vector_constructor): Likewise.
559 * tree-vect-loop.c: Include tree-vector-builder.h.
560 (vect_create_epilog_for_reduction): Use tree_vector_builder instead
561 of build_vector. Explicitly use a stepped encoding for
562 { 1, 2, 3, ... }.
563 * tree-vect-slp.c: Include tree-vector-builder.h.
564 (vect_get_constant_vectors): Use tree_vector_builder instead
565 of build_vector.
566 (vect_transform_slp_perm_load): Likewise.
567 (vect_schedule_slp_instance): Likewise.
568 * tree-vect-stmts.c: Include tree-vector-builder.h.
569 (vectorizable_bswap): Use tree_vector_builder instead of build_vector.
570 (vect_gen_perm_mask_any): Likewise.
571 (vectorizable_call): Likewise. Explicitly use a stepped encoding.
572 * tree.c: (build_vector_from_ctor): Use tree_vector_builder instead
573 of build_vector.
574 (build_vector_from_val): Likewise. Explicitly use a duplicate
575 encoding.
576
577 2017-12-07 Richard Sandiford <richard.sandiford@arm.com>
578
579 * doc/generic.texi (VECTOR_CST): Describe new representation of
580 vector constants.
581 * vector-builder.h: New file.
582 * tree-vector-builder.h: Likewise.
583 * tree-vector-builder.c: Likewise.
584 * Makefile.in (OBJS): Add tree-vector-builder.o.
585 * tree.def (VECTOR_CST): Update comment to refer to generic.texi.
586 * tree-core.h (tree_base): Add a vector_cst field to the u union.
587 (tree_vector): Change the number of elements to
588 vector_cst_encoded_nelts.
589 * tree.h (VECTOR_CST_NELTS): Redefine using TYPE_VECTOR_SUBPARTS.
590 (VECTOR_CST_ELTS): Delete.
591 (VECTOR_CST_ELT): Redefine using vector_cst_elt.
592 (VECTOR_CST_LOG2_NPATTERNS, VECTOR_CST_NPATTERNS): New macros.
593 (VECTOR_CST_NELTS_PER_PATTERN, VECTOR_CST_DUPLICATE_P): Likewise.
594 (VECTOR_CST_STEPPED_P, VECTOR_CST_ENCODED_ELTS): Likewise.
595 (VECTOR_CST_ENCODED_ELT): Likewise.
596 (vector_cst_encoded_nelts): New function.
597 (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
598 VECTOR_CST_NELTS_PER_PATTERN as arguments.
599 (vector_cst_int_elt, vector_cst_elt): Declare.
600 * tree.c: Include tree-vector-builder.h.
601 (tree_code_size): Abort if passed VECTOR_CST.
602 (tree_size): Update for new VECTOR_CST layout.
603 (make_vector): Take the values of VECTOR_CST_LOG2_NPATTERNS and
604 VECTOR_CST_NELTS_PER_PATTERN as arguments.
605 (build_vector): Use tree_vector_builder.
606 (vector_cst_int_elt, vector_cst_elt): New functions.
607 (drop_tree_overflow): For VECTOR_CST, drop the TREE_OVERFLOW from the
608 encoded elements and then create the vector in the canonical form.
609 (check_vector_cst, check_vector_cst_duplicate, check_vector_cst_fill)
610 (check_vector_cst_stepped, test_vector_cst_patterns): New functions.
611 (tree_c_tests): Call test_vector_cst_patterns.
612 * lto-streamer-out.c (DFS::DFS_write_tree_body): Handle the new
613 VECTOR_CST fields.
614 (hash_tree): Likewise.
615 * tree-streamer-out.c (write_ts_vector_tree_pointers): Likewise.
616 (streamer_write_tree_header): Likewise.
617 * tree-streamer-in.c (lto_input_ts_vector_tree_pointers): Likewise.
618 (streamer_alloc_tree): Likewise. Update call to make_vector.
619 * fold-const.c (fold_ternary_loc): Avoid using VECTOR_CST_ELTS.
620
621 2017-12-07 Richard Sandiford <richard.sandiford@linaro.org>
622
623 * selftest.h (ASSERT_TRUE_AT, ASSERT_FALSE_AT, ASSERT_EQ_AT)
624 (ASSERT_NE, ASSERT_PRED1): Add underscores to local variable names
625 * selftest-rtl.h (ASSERT_RTX_EQ, ASSERT_RTX_PTR_EQ): Likewise.
626
627 2017-12-07 Bin Cheng <bin.cheng@arm.com>
628 Richard Biener <rguenther@suse.de>
629
630 PR tree-optimization/81303
631 * Makefile.in (gimple-loop-interchange.o): New object file.
632 * common.opt (floop-interchange): Reuse the option from graphite.
633 * doc/invoke.texi (-floop-interchange): Ditto. New document for
634 -floop-interchange and mention it for -O3.
635 * opts.c (default_options_table): Enable -floop-interchange at -O3.
636 * gimple-loop-interchange.cc: New file.
637 * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter.
638 (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter.
639 * passes.def (pass_linterchange): New pass.
640 * timevar.def (TV_LINTERCHANGE): New time var.
641 * tree-pass.h (make_pass_linterchange): New declaration.
642 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external
643 interchange. Record IV before/after increment in new parameters.
644 * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration.
645 * tree-vect-loop.c (vect_is_simple_reduction): Factor out reduction
646 path check into...
647 (check_reduction_path): ...New function here.
648 * tree-vectorizer.h (check_reduction_path): New declaration.
649
650 2017-12-07 Vladimir Makarov <vmakarov@redhat.com>
651
652 PR target/83252
653 PR rtl-optimization/80818
654 * lra.c (add_regs_to_insn_regno_info): Make a hard reg in CLOBBER
655 always early clobbered.
656 * lra-lives.c (process_bb_lives): Check input hard regs for early
657 clobbered non-operand hard reg.
658
659 2017-12-07 Jakub Jelinek <jakub@redhat.com>
660
661 PR middle-end/83164
662 * tree-cfg.c (verify_gimple_assign_binary): Don't require
663 types_compatible_p, just that TYPE_MODE is the same.
664
665 2017-12-07 Martin Sebor <msebor@redhat.com>
666
667 PR c/81544
668 * attribs.c (empty_attribute_table): Initialize new member of
669 struct attribute_spec.
670 (decl_attributes): Add argument. Handle mutually exclusive
671 combinations of attributes.
672 (selftests::test_attribute_exclusions): New function.
673 (selftests::attribute_c_tests): Ditto.
674 * attribs.h (decl_attributes): Add default argument.
675 * selftest.h (attribute_c_tests): Declare.
676 * selftest-run-tests.c (selftest::run_tests): Call attribute_c_tests.
677 * tree-core.h (attribute_spec::exclusions, exclude): New type and
678 member.
679 * doc/extend.texi (Common Function Attributes): Update const and pure.
680 * config/alpha/alpha.c (vms_attribute_table): Initialize new member
681 of struct attribute_spec.
682 * config/arc/arc.c (arc_attribute_table): Same.
683 * config/arm/arm.c (arm_attribute_table): Same.
684 * config/avr/avr.c ( avr_attribute_table): Same.
685 * config/bfin/bfin.c (bfin_attribute_table): Same.
686 * config/cr16/cr16.c (cr16_attribute_table): Same.
687 * config/epiphany/epiphany.c (epiphany_attribute_table): Same.
688 * config/h8300/h8300.c (h8300_attribute_table): Same.
689 * config/i386/i386.c (ix86_attribute_table): Same.
690 * config/ia64/ia64.c (ia64_attribute_table): Same.
691 * config/m32c/m32c.c (m32c_attribute_table): Same.
692 * config/m32r/m32r.c (m32r_attribute_table): Same.
693 * config/m68k/m68k.c (m68k_attribute_table): Same.
694 * config/mcore/mcore.c (mcore_attribute_table): Same.
695 * config/microblaze/microblaze.c (microblaze_attribute_table): Same.
696 * config/mips/mips.c (mips_attribute_table): Same.
697 * config/msp430/msp430.c (msp430_attribute_table): Same.
698 * config/nds32/nds32.c (nds32_attribute_table): Same.
699 * config/nvptx/nvptx.c (nvptx_attribute_table): Same.
700 * config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
701 * config/rl78/rl78.c (rl78__attribute_table): Same.
702 * config/rs6000/rs6000.c (rs6000_attribute_table): Same.
703 * onfig/rx/rx.c (rx_attribute_table): Same.
704 * config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
705 * config/sh/sh.c (sh_attribute_table): Same.
706 * config/sparc/sparc.c (sparc_attribute_table): Same.
707 * config/spu/spu.c (spu_attribute_table): Same.
708 * config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
709 * config/v850/v850.c (v850_attribute_table): Same.
710 * config/visium/visium.c (visium_attribute_table): Same.
711
712 2017-12-07 Tamar Christina <tamar.christina@arm.com>
713
714 PR target/82641
715 * config/arm/arm.c (INCLUDE_STRING): Define.
716 (arm_last_printed_arch_string, arm_last_printed_fpu_string): New.
717 (arm_declare_function_name): Conservatively emit .arch, .arch_extensions
718 and .fpu.
719
720 2017-12-07 Michael Matz <matz@suse.de>
721
722 Add unroll and jam pass
723
724 * gimple-loop-jam.c: New file.
725 * Makefile.in (OBJS): Add gimple-loop-jam.o.
726 * common.opt (funroll-and-jam): New option.
727 * opts.c (default_options_table): Add unroll-and-jam at -O3.
728 * params.def (PARAM_UNROLL_JAM_MIN_PERCENT): New param.
729 (PARAM_UNROLL_JAM_MAX_UNROLL): Ditto.
730 * passes.def: Add pass_loop_jam.
731 * timevar.def (TV_LOOP_JAM): Add.
732 * tree-pass.h (make_pass_loop_jam): Declare.
733 * cfgloop.c (flow_loop_tree_node_add): Add AT argument.
734 * cfgloop.h (flow_loop_tree_node_add): Adjust declaration.
735 * cfgloopmanip.c (duplicate_loop): Add AT argument, adjust call
736 to flow_loop_tree_node_add.
737 (duplicate_subloops, copy_loops_to): Append to sibling list.
738 * cfgloopmanip.h: (duplicate_loop): Adjust declaration.
739 * doc/invoke.texi (-funroll-and-jam): Document new option.
740 (unroll-jam-min-percent, unroll-jam-max-unroll): Document new params.
741
742 2017-12-07 Richard Biener <rguenther@suse.de>
743
744 PR tree-optimization/83296
745 PR tree-optimization/67769
746 * tree-ssa-phiopt.c (conditional_replacement): Do not reset
747 flow sensitive info in an unrelated BB.
748 (value_replacement): Use reset_flow_sensitive_info.
749 (minmax_replacement): Reset flow sensitive info on the def
750 we move. Do not reset flow sensitive info in the whole BB
751 we move the stmt to.
752 (abs_replacement): Likewise.
753
754 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org>
755
756 PR target/43871
757 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
758 rs6000_cpu to the given -mcpu=, or to the default processor.
759
760 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org>
761
762 * config/rs6000/rs6000.h (rs6000_cpu_attr): Delete.
763 * config/rs6000/rs6000.c (rs6000_variable_issue_1): Use rs6000_tune
764 instead of rs6000_cpu_attr.
765 (rs6000_adjust_cost): Ditto.
766 (is_microcoded_insn): Ditto.
767 (rs6000_adjust_priority): Ditto.
768 (rs6000_issue_rate): Ditto.
769 (rs6000_use_sched_lookahead): Ditto.
770 (rs6000_use_sched_lookahead_guard): Ditto.
771 (rs6000_sched_reorder): Ditto.
772 (force_new_group): Ditto.
773 * config/rs6000/rs6000.md (cpu attribute): Ditto.
774 (group_ending_nop): Ditto.
775
776 2017-12-07 Segher Boessenkool <segher@kernel.crashing.org>
777
778 * config/rs6000/rs6000.opt (rs6000_tune): New variable.
779 * config/rs6000/rs6000.c (rs6000_option_override_internal): Also set
780 rs6000_tune. Use rs6000_tune instead of rs6000_cpu where appropriate.
781 (rs6000_loop_align): Use rs6000_tune instead of rs6000_cpu where
782 appropriate.
783 (rs6000_reassociation_width): Ditto.
784 (rs6000_emit_epilogue): Ditto.
785 (rs6000_adjust_cost): Ditto.
786 (is_microcoded_insn): Ditto.
787 (is_cracked_insn): Ditto.
788 (rs6000_adjust_priority): Ditto.
789 (rs6000_sched_reorder): Ditto.
790 (rs6000_sched_reorder2): Ditto.
791 (insn_must_be_first_in_group): Ditto.
792 (insn_must_be_last_in_group): Ditto.
793 (rs6000_register_move_cost): Ditto.
794 * config/rs6000/rs6000.h (rs6000_cpu_attr): Use rs6000_tune instead of
795 rs6000_cpu.
796
797 2017-12-07 Julia Koval <julia.koval@intel.com>
798
799 * config.gcc: Add vaesintrin.h.
800 * config/i386/i386-builtin-types.def (V64QI_FTYPE_V64QI_V64QI):
801 New type.
802 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
803 __builtin_ia32_vaesdec_v32qi, __builtin_ia32_vaesdec_v64qi):
804 New builtins.
805 * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
806 * config/i386/immintrin.h: Include vaesintrin.h.
807 * config/i386/sse.md (vaesdec_<mode>): New pattern.
808 * config/i386/vaesintrin.h (_mm256_aesdec_epi128, _mm512_aesdec_epi128,
809 _mm_aesdec_epi128): New intrinsics.
810
811 2017-12-06 David Malcolm <dmalcolm@redhat.com>
812
813 * Makefile.in (C_COMMON_OBJS): Add c-family/c-spellcheck.o.
814 * spellcheck-tree.c (find_closest_macro_cpp_cb): Move to
815 c-family/c-spellcheck.cc.
816 (best_macro_match::best_macro_match): Likewise.
817 * spellcheck-tree.h
818 (struct edit_distance_traits<cpp_hashnode *>): Move to
819 c-family/c-spellcheck.h.
820 (class best_macro_match): Likewise.
821
822 2017-12-06 Jakub Jelinek <jakub@redhat.com>
823
824 PR tree-optimization/83293
825 * gimple-ssa-strength-reduction.c (insert_initializers): Use
826 GSI_NEW_STMT instead of GSI_SAME_STMT in gsi_insert_after that
827 might insert into empty bb.
828
829 PR sanitizer/81281
830 * match.pd ((T)(P + A) - (T)P -> (T) A): Split into separate
831 simplify for plus with :c added, and pointer_plus without that.
832 ((T)P - (T)(P + A) -> -(T) A): Likewise. If type is integral
833 with undefined overflow and the conversion is not widening,
834 perform negation in utype and only convert to type afterwards.
835 ((T)(P + A) - (T)(P + B) -> (T)A - (T)B): Split into separate
836 simplify for plus with :c added, and pointer_plus without that.
837 If type is integral with undefined overflow and the conversion is
838 not widening, perform minus in utype and only convert to type
839 afterwards. Move the last pointer_diff_expr simplify into the
840 two outermost ifs.
841
842 2017-12-06 Martin Sebor <msebor@redhat.com>
843
844 PR tree-optimization/82646
845 * builtins.c (maybe_emit_chk_warning): Use size as the bound for
846 strncpy, not maxlen.
847
848 2017-12-06 Martin Sebor <msebor@redhat.com>
849
850 * doc/invoke.texi (-Wstringop-truncation): Mention attribute
851 nonstring.
852
853 PR tree-optimization/83075
854 * tree-ssa-strlen.c (handle_builtin_stxncpy): Avoid assuming
855 strncat/strncpy don't change length of source string.
856
857 2017-12-06 Eric Botcazou <ebotcazou@adacore.com>
858
859 Revert
860 2017-11-29 Martin Aberg <maberg@gaisler.com>
861
862 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
863 to prevent b2bst errata sequence.
864 (sqrtdf2_fix): Likewise.
865
866 2017-12-06 Jakub Jelinek <jakub@redhat.com>
867
868 PR tree-optimization/81945
869 * cfgloop.h (FOR_EACH_LOOP_FN): Use FN instead of hardcoding fn.
870 * tree-cfg.c (move_sese_region_to_fn): If any of the loops moved
871 to dest_cfun has orig_loop_num set, either remap it to the new
872 loop number if the loop got moved too, or clear it.
873
874 2017-12-05 Steve Ellcey <sellcey@cavium.com>
875
876 * config/aarch64/thunderx2-t99.md (thunderx2t99_branch): Add trap
877 to reservation.
878 (thunderx2t99_nothing): New insn reservation.
879 (thunderx2t99_mrs): New insn reservation.
880 (thunderx2t99_multiple): New insn reservation.
881 (thunderx2t99_alu_basi): Add bfx to reservation.
882 (thunderx2t99_fp_cmp): Add fccmps and fccmpd to reservation.
883
884 2017-12-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
885
886 PR target/82248
887 * config/arm/arm.md (probe_stack) : Use the 'o' constraint.
888
889 2017-12-05 Bin Cheng <bin.cheng@arm.com>
890
891 * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from
892 tree-ssa-pre.c::remove_dead_inserted_code.
893 * tree-ssa-dce.h: New file.
894 * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file.
895 (remove_dead_inserted_code): Move and rename to function
896 tree-ssa-dce.c::simple_dce_from_worklist.
897 (pass_pre::execute): Update use.
898
899 2017-12-05 Richard Biener <rguenther@suse.de>
900
901 PR tree-optimization/83277
902 * graphite-isl-ast-to-gimple.c (should_copy_to_new_region): Make sure
903 to code-gen liveout vars.
904
905 2017-12-05 Richard Sandiford <richard.sandiford@linaro.org>
906
907 * config/aarch64/aarch64-simd.md (aarch64_simd_bsldi_internal)
908 (aarch64_simd_bsldi_alt): Check REG_P before GP_REGNUM_P.
909 (aarch64_cm<optab>di, aarch64_cmtstdi): Add leading "&&" to
910 split condition.
911
912 2017-12-05 Max Filippov <jcmvbkbc@gmail.com>
913
914 * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
915 function.
916 (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
917 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
918 ASAN is enabled.
919
920 2017-12-05 Richard Biener <rguenther@suse.de>
921
922 * timevar.def (TV_TREE_RECIP, TV_TREE_SINCOS, TV_TREE_WIDEN_MUL): Add.
923 * tree-ssa-math-opts.c (pass_data_cse_reciprocal): Use TV_TREE_RECIP.
924 (pass_data_cse_sincos): Use TV_TREE_SINCOS.
925 (pass_data_optimize_widening_mul): Use TV_TREE_WIDEN_MUL.
926
927 2017-12-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
928
929 * dbxout.c (dbxout_block): Grow buf to 30 bytes.
930
931 2017-12-05 Martin Liska <mliska@suse.cz>
932 Jakub Jelinek <jakub@redhat.com>
933
934 * doc/invoke.texi: Document the options.
935 * flag-types.h (enum sanitize_code): Add
936 SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
937 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Add handling
938 of SANITIZE_POINTER_COMPARE and SANITIZE_POINTER_SUBTRACT.
939 * opts.c: Define new sanitizer options.
940 * sanitizer.def (BUILT_IN_ASAN_POINTER_COMPARE): Likewise.
941 (BUILT_IN_ASAN_POINTER_SUBTRACT): Likewise.
942
943 2017-12-05 Julia Koval <julia.koval@intel.com>
944
945 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VNNI_SET,
946 OPTION_MASK_ISA_AVX512VNNI_UNSET): New.
947 (ix86_handle_option): Handle -mavx512vnni.
948 * config/i386/cpuid.h (bit_AVX512VNNI): New bit.
949 * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
950 * config/i386/i386-c (__AVX512VNNI__): New.
951 * config/i386/i386.c (ix86_target_string): Handle new option.
952 (ix86_valid_target_attribute_inner_p): Handle new option.
953 * config/i386/i386.h (TARGET_AVX512VNNI, TARGET_AVX512VNNI_P): New.
954 * config/i386/i386.opt (mavx512vnni): New option.
955
956 2017-12-01 Jan Hubicka <hubicka@ucw.cz>
957
958 PR target/81616
959 * athlon.md: Disable for generic.
960 * haswell.md: Enable for generic.
961 * i386.c (ix86_sched_init_global): Add core hooks for generic.
962 * x86-tune-sched.c (ix86_issue_rate): Increase issue rate for generic
963 to 4.
964 (ix86_adjust_cost): Move generic to haswell path.
965
966 2017-12-04 Eric Botcazou <ebotcazou@adacore.com>
967
968 * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
969 instead of MEM_P in a couple more places. Fix formatting issues.
970
971 2017-12-04 Jim Wilson <jimw@sifive.com>
972
973 * config/riscv/riscv.c (riscv_for_each_saved_reg): Use GP_REG_LAST
974 instead of GP_REG_LAST-1.
975 (riscv_adjust_libcall_cfi_prologue): Likewise.
976 (riscv_adjust_libcall_cri_epilogue): Likewise.
977 * config/riscv/riscv.h (CALL_USED_REGISTERS): Change a6 to t6 in
978 comment.
979
980 2017-12-04 Luis Machado <luis.machado@linaro.org>
981
982 * ipa-pure-const.c (check_decl): Add missing newline.
983 (state_from_flags): Likewise.
984
985 2017-12-04 Jeff Law <law@redhat.com>
986
987 PR tree-optimizatin/78496
988 * gimple-ssa-evrp-analyze.h
989 (evrp_range_analyzer::get_vr_values): Simplify.
990 * gimple-ssa-evrp-analyze.c: Corresponding changes.
991 * tree-ssa-dom.c: Include alloc-pool.h, tree-vrp.h, vr-values.h
992 and gimple-ssa-evrp-analyze.h.
993 (dom_opt_dom_walker class): Add evrp_range_analyzer member.
994 (simplify_stmt_for_jump_threading): Copy a blob of code from
995 tree-vrp.c to use ranges to simplify statements.
996 (dom_opt_dom_walker::before_dom_children): Call
997 evrp_range_analyzer::{enter,record_ranges_from_stmt} methods.
998 (dom_opt_dom_walker::after_dom_children): Similarly for
999 evrp_range_analyzer::leave.
1000 (dom_opt_dom_walker::optimize_stmt): Use EVRP ranges to optimize
1001 conditionals.
1002
1003 * gimple-ssa-evrp-analyze.c
1004 (evrp_range_analyzer::extract_range_from_stmt): Always use
1005 vr_values::update_value_range so preexisting range info is
1006 medged with new range info, even if the new range is VR_VARYING.
1007
1008 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org>
1009
1010 * combine.c: Adjust comment.
1011 (use_crosses_set_p): Delete.
1012 (can_combine_p): Use modified_between_p instead of use_crosses_set_p.
1013 (try_combine): Ditto.
1014
1015 2017-12-04 Richard Biener <rguenther@suse.de>
1016
1017 PR tree-optimization/83255
1018 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_for):
1019 Re-add zero-iteration check.
1020
1021 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org>
1022
1023 PR rtl-optimization/83245
1024 * lra.c (collect_non_operand_hard_regs): Treat clobbers of non-operand
1025 hard registers as earlyclobber, also if not in an asm.
1026
1027 2017-12-04 Segher Boessenkool <segher@kernel.crashing.org>
1028
1029 PR bootstrap/83265
1030 Revert
1031 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1032
1033 PR target/43871
1034 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
1035 rs6000_cpu based on cpu_index, not tune_index.
1036
1037 2017-12-04 Richard Biener <rguenther@suse.de>
1038
1039 PR tree-optimization/83238
1040 * graphite-scop-detection.c (scop_detection::merge_sese): Make
1041 code match comment, rejecting invalid SESE regions.
1042
1043 2017-12-03 John David Anglin <danglin@gcc.gnu.org>
1044
1045 * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
1046 require base operand is a REG_POINTER prior to reload on targets
1047 with non-equivalent space registers.
1048
1049 2017-12-01 Jan Hubicka <hubicka@ucw.cz>
1050
1051 * ipa-cp.c (ipcp_lattice<valtype>::print): Update dumping.
1052 (update_specialized_profile): Fix updating of counts.
1053 (perhaps_add_new_callers): Likewise.
1054
1055 2017-12-01 Jan Hubicka <hubicka@ucw.cz>
1056
1057 PR target/81616
1058 * x86-tune.def: Remove obsolette FIXMEs.
1059 (X86_TUNE_PARTIAL_FLAG_REG_STALL): Disable for generic
1060 (X86_TUNE_FUSE_CMP_AND_BRANCH_32, X86_TUNE_FUSE_CMP_AND_BRANCH_64,
1061 X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS, X86_TUNE_FUSE_ALU_AND_BRANCH):
1062 Enable for generic.
1063 (X86_TUNE_PAD_RETURNS): Disable for generic.
1064
1065 2017-12-02 Jakub Jelinek <jakub@redhat.com>
1066
1067 PR tree-optimization/83170
1068 PR tree-optimization/83241
1069 * gimple-ssa-store-merging.c
1070 (imm_store_chain_info::try_coalesce_bswap): Update vuse field from
1071 gimple_vuse (ins_stmt) in case it has changed.
1072 (imm_store_chain_info::output_merged_store): Likewise.
1073
1074 * tree-chkp.c (chkp_compute_bounds_for_assignment): Handle
1075 POINTER_DIFF_EXPR.
1076
1077 PR c++/81212
1078 * tree-cfg.c (pass_warn_function_return::execute): Handle
1079 __builtin_ubsan_handle_missing_return like __builtin_unreachable
1080 with BUILTINS_LOCATION.
1081
1082 PR target/78643
1083 PR target/80583
1084 * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
1085 is BLKmode for vector field with vector raw mode, use TYPE_MODE
1086 instead of DECL_MODE.
1087
1088 * config/i386/i386-protos.h (standard_sse_constant_opcode): Change
1089 last argument to rtx pointer.
1090 * config/i386/i386.c (standard_sse_constant_opcode): Replace X argument
1091 with OPERANDS. For AVX+ 128-bit VEX encoded instructions over 256-bit
1092 or 512-bit. If setting EXT_REX_SSE_REG_P, use EVEX encoded insn
1093 depending on the chosen ISAs.
1094 * config/i386/i386.md (*movxi_internal_avx512f, *movoi_internal_avx,
1095 *movti_internal, *movdi_internal, *movsi_internal, *movtf_internal,
1096 *movdf_internal, *movsf_internal): Adjust standard_sse_constant_opcode
1097 callers.
1098 * config/i386/sse.md (mov<mode>_internal): Likewise.
1099 * config/i386/mmx.md (*mov<mode>_internal): Likewise.
1100
1101 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1102
1103 * doc/invoke.texi (-dp): Say that instruction cost is printed as well.
1104
1105 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1106
1107 * config/rs6000/rs6000-protos.h (emit_fusion_addis): Remove last two
1108 parameters from prototype.
1109 * config/rs6000/rs6000.c (emit_fusion_addis): Remove last two
1110 parameters. Don't print a comment.
1111 (emit_fusion_gpr_load): Adjust.
1112 (emit_fusion_load_store): Adjust.
1113 * config/rs6000/rs6000.md (*fusion_p9_<mode>_constant): Adjust.
1114 * config/rs6000/vsx.md (two peepholes): Print the "vector load fusion"
1115 comment on the second line.
1116
1117 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1118
1119 PR target/43871
1120 * config/rs6000/rs6000.c (rs6000_option_override_internal): Set
1121 rs6000_cpu based on cpu_index, not tune_index.
1122
1123 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org>
1124
1125 * final.c (output_asm_name): Print insn_cost. Shorten output. Print
1126 which_alternative instead of which_alternative + 1.
1127 (output_asm_insn): Print an extra tab if the template is short.
1128
1129 2017-12-01 Jim Wilson <jimw@sifive.com>
1130
1131 * common.opt (use_gnu_debug_info_extensions): Delete DWARF_DEBUG from
1132 comment.
1133 * config/vx-common.h (DWARF_DEBUGGING_INFO): Delete undef.
1134 * doc/tm.texi.in (PREFERRED_DEBUGGING_TYPE): Delete DWARF_DEBUG
1135 reference.
1136 * doc/tm.texi: Regenerate.
1137
1138 2017-12-01 Michael Meissner <meissner@linux.vnet.ibm.com>
1139
1140 PR target/81959
1141 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
1142 whether we can allocate pseudos before trying to fix an address.
1143 * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
1144 memory address is indexed or indirect.
1145 (floatuns_<mode>si2_hw2): Likewise.
1146
1147 2017-12-01 Jason Merrill <jason@redhat.com>
1148
1149 * Makefile.in (TAGS): Add c-family/*.cc.
1150
1151 2017-12-01 Wilco Dijkstra <wdijkstr@arm.com>
1152
1153 * config/aarch64/aarch64.md (call_insn): Use %c rather than %a.
1154 (call_value_insn): Likewise.
1155 (sibcall_insn): Likewise.
1156 (sibcall_value_insn): Likewise.
1157 (movsi_aarch64): Likewise.
1158 (movdi_aarch64): Likewise.
1159 (add_losym_): Likewise.
1160 (ldr_got_small_): Likewise.
1161 (ldr_got_small_sidi): Likewise.
1162 (ldr_got_small_28k_): Likewise.
1163 (ldr_got_small_28k_sidi): Likewise.
1164 * config/aarch64/aarch64.c (aarch64_print_address_internal):
1165 Move output_addr_const to symbolic case. Add error check.
1166
1167 2017-12-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1168
1169 * config/s390/predicates.md (plus16_Q_operand): New predicate.
1170 * config/s390/s390.md: Disable MVC merging peephole if it would
1171 disable operand forwarding.
1172 (new peephole2): Split MVCs if it would turn them into up to 2
1173 forwardable MVCs.
1174
1175 2017-12-01 Richard Biener <rguenther@suse.de>
1176
1177 PR tree-optimization/83232
1178 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Fix
1179 detection of same access. Instead of breaking the group here
1180 do not consider the duplicate. Add comment explaining real fix.
1181
1182 2017-12-01 Jonathan Wakely <jwakely@redhat.com>
1183
1184 * doc/md.texi (Insn Splitting): Fix "central flowgraph" typo.
1185
1186 2017-12-01 Sudakshina Das <sudi.das@arm.com>
1187
1188 * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
1189
1190 2017-12-01 Jakub Jelinek <jakub@redhat.com>
1191
1192 * function.h (struct function): Remove cilk_frame_decl,
1193 is_cilk_function and calls_cilk_spawn fields.
1194 * tree-inline.h (struct copy_body_data): Remove remap_var_for_cilk
1195 field.
1196 * omp-simd-clone.c (simd_clone_clauses_extract): Don't clear
1197 cilk_elemental field.
1198 * cgraph.h (struct cgraph_simd_clone): Remove cilk_elemental field.
1199 * target.def: Adjust comment.
1200 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1201 Don't test cilk_elemental.
1202
1203 PR tree-optimization/83233
1204 * gimple-ssa-store-merging.c (nop_stats, bswap_stats): Use
1205 bswap_stat name for the struct.
1206
1207 PR c/79153
1208 * tree.h (SWITCH_BREAK_LABEL_P): Define.
1209 * gimplify.c (collect_fallthrough_labels): Handle GIMPLE_BIND
1210 starting with a GIMPLE_SWITCH and ending with GIMPLE_LABEL with
1211 SWITCH_BREAK_LABEL_P set on the label.
1212 (gimplify_switch_expr): Set SWITCH_BREAK_LABEL_P on the label
1213 added for default case if it was missing and not all cases covered.
1214 Wrap GIMPLE_SWITCH and the switch_body_seq into a GIMPLE_BIND if
1215 switch_body_seq ends with a GIMPLE_LABEL with SWITCH_BREAK_LABEL_P
1216 set on the label.
1217 * tree-chrec.c (evolution_function_is_univariate_p): Add return true;
1218 to avoid -Wimplicit-fallthrough warning.
1219 * config/i386/i386.c (ix86_expand_special_args_builtin): Add
1220 FALLTHRU comment to avoid -Wimplicit-fallthrough warning.
1221
1222 PR tree-optimization/83221
1223 * tree-ssa-reassoc.c (sort_by_operand_rank): Shift bb_rank
1224 down by 16.
1225 (init_reassoc): Formatting fix.
1226
1227 PR sanitizer/81275
1228 * tree-cfg.c (group_case_labels_stmt): Don't optimize away
1229 C++ FE implicitly added __builtin_unreachable () until -Wreturn-type
1230 is diagnosed.
1231
1232 PR sanitizer/83219
1233 * tree-cfg.c: Include asan.h.
1234 (gimple_seq_unreachable_p): Return false for -fsanitize=unreachable.
1235
1236 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com>
1237
1238 * config/i386/i386.md: Fix AVX512 register width in AVX512 instruction.
1239
1240 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com>
1241
1242 * config/i386/i386.c (standard_sse_constant_opcode): Fix wrong form for
1243 vpcmpeqd instruction.
1244
1245 2017-12-01 Sergey Shalnov <Sergey.Shalnov@intel.com>
1246
1247 * config/i386/i386.c (standard_sse_constant_opcode): Fix
1248 registers type for 128bit mode.
1249
1250 2017-11-30 Jakub Jelinek <jakub@redhat.com>
1251
1252 * spellcheck-tree.c (test_find_closest_identifier): Use ; instead
1253 of ;;.
1254 * gengtype-state.c (read_state_pair): Likewise.
1255 * gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
1256 * sel-sched-dump.c (dump_insn_rtx_1): Likewise.
1257 * ipa-cp.c (intersect_aggregates_with_edge): Likewise.
1258 * ifcvt.c (noce_try_store_flag_constants): Likewise.
1259 * tree-ssa-ccp.c (ccp_finalize): Likewise.
1260 * omp-grid.c (grid_process_kernel_body_copy): Likewise.
1261 * builtins.c (fold_builtin_3): Likewise.
1262 * graphite-scop-detection.c
1263 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
1264 * hsa-gen.c (hsa_function_representation::hsa_function_representation):
1265 Likewise.
1266
1267 2017-12-01 Maxim Ostapenko <m.ostapenko@samsung.com>
1268
1269 PR sanitizer/81697
1270 * asan.c (asan_protect_global): Add new ignore_decl_rtl_set_p
1271 parameter. Return true if ignore_decl_rtl_set_p is true and other
1272 conditions are satisfied.
1273 * asan.h (asan_protect_global): Add new parameter.
1274 * varasm.c (categorize_decl_for_section): Pass true as second parameter
1275 to asan_protect_global calls.
1276
1277 2017-11-30 Jim Wilson <jimw@sifive.com>
1278
1279 * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
1280 -mno-memcpy options. For -mplt, -mfdiv, -mdiv, -msave-restore, and
1281 -mstrict-align, add info on default value. Delete redundant lines for
1282 -mabi. Add missing -mexplicit-relocs docs.
1283
1284 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com>
1285
1286 * config/arc/arc.md (trap): New pattern.
1287
1288 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com>
1289
1290 * config/arc/arc.c (hwloop_optimize): Prevent the last ZOL
1291 instruction to end into a delay slot.
1292 * config/arc/arc.md (cond_delay_insn): Check if the instruction
1293 can be placed into a delay slot against reg_note.
1294
1295 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com>
1296
1297 * config/arc/arc.c (hwloop_optimize): Update hw-loop's end/start
1298 labels number of usages.
1299
1300 2017-11-30 Claudiu Zissulescu <claziss@synopsys.com>
1301
1302 * config/arc/arc.c (arc_cannot_substitue_mem_equiv_p): New
1303 function.
1304 (TARGET_CANNOT_SUBSTITUTE_MEM_EQUIV_P): Define.
1305
1306 2017-11-30 Jakub Jelinek <jakub@redhat.com>
1307
1308 PR target/83210
1309 * internal-fn.c (expand_mul_overflow): Optimize unsigned
1310 multiplication by power of 2 constant into two shifts + comparison.
1311
1312 2017-11-30 Jan Hubicka <hubicka@ucw.cz>
1313
1314 PR target/81616
1315 * config/i386/x86-tune-costs.h (generic_cost): Revise for modern CPUs.
1316
1317 2017-11-30 Richard Biener <rguenther@suse.de>
1318
1319 PR tree-optimization/83202
1320 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Add
1321 allow_peel argument and guard peeling.
1322 (canonicalize_loop_induction_variables): Likewise.
1323 (canonicalize_induction_variables): Pass false.
1324 (tree_unroll_loops_completely_1): Pass unroll_outer to disallow
1325 peeling from cunrolli.
1326
1327 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org>
1328
1329 * combine.c (try_combine): Print a message to dump file whenever
1330 I0, I1, or I2 cannot be combined into I3.
1331
1332 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org>
1333
1334 PR rtl-optimization/83156
1335 PR rtl-optimization/82621
1336 * combine.c (try_combine): Don't split an I2 if one of the dests is
1337 set again before I3. Allow unused dests.
1338
1339 2017-11-29 Segher Boessenkool <segher@kernel.crashing.org>
1340
1341 * config/rs6000/rs6000.md (*add<mode>3_carry_in_internal2): New.
1342
1343 2017-11-29 Vladimir Makarov <vmakarov@redhat.com>
1344
1345 PR rtl-optimization/80818
1346 * lra.c (collect_non_operand_hard_regs): New arg insn. Pass it
1347 recursively. Use insn code for clobber.
1348 (lra_set_insn_recog_data): Pass the new arg to
1349 collect_non_operand_hard_regs.
1350 (add_regs_to_insn_regno_info): Pass insn instead of uid. Use insn
1351 code for clobber.
1352 (lra_update_insn_regno_info): Pass insn to
1353 add_regs_to_insn_regno_info.
1354
1355 2017-11-29 Jim Wilson <jimw@sifive.com>
1356 Andrew Waterman <andrew@sifive.com>
1357
1358 * config/riscv/riscv.c (SINGLE_SHIFT_COST): New.
1359 (riscv_rtx_costs): Case ZERO_EXTRACT, match new pattern, and return
1360 SINGLE_SHIFT_COST. Case LT and ZERO_EXTEND, likewise. Case ASHIFT,
1361 use SINGLE_SHIFT_COST.
1362 * config/riscv/riscv.md (lshrsi3_zero_extend_1): New.
1363 (lshrsi3_zero_extend_2, lshrsi3_zero_extend_3): New.
1364
1365 2017-11-29 Julia Koval <julia.koval@intel.com>
1366
1367 * config/i386/avx512vbmi2intrin.h (_mm512_shldv_epi16,
1368 _mm512_mask_shldv_epi16, _mm512_maskz_shldv_epi16, _mm512_shldv_epi32,
1369 _mm512_mask_shldv_epi32, _mm512_maskz_shldv_epi32, _mm512_shldv_epi64,
1370 _mm512_mask_shldv_epi64, _mm512_maskz_shldv_epi64): New intrinsics.
1371 * config/i386/avx512vbmi2vlintrin.h (_mm256_shldv_epi16,
1372 _mm256_mask_shldv_epi16, _mm256_maskz_shldv_epi16, _mm256_shldv_epi32,
1373 _mm256_mask_shldv_epi32, _mm256_maskz_shldv_epi32, _mm256_shldv_epi64,
1374 _mm256_mask_shldv_epi64, _mm256_maskz_shldv_epi64, _mm_shldv_epi16,
1375 _mm_mask_shldv_epi16, _mm_maskz_shldv_epi16, _mm_shldv_epi32,
1376 _mm_mask_shldv_epi32, _mm_maskz_shldv_epi32, _mm_shldv_epi64,
1377 _mm_mask_shldv_epi64, _mm_maskz_shldv_epi64): Ditto.
1378 * config/i386/i386-builtin.def (__builtin_ia32_vpshldv_v32hi,
1379 __builtin_ia32_vpshldv_v32hi_mask, __builtin_ia32_vpshldv_v32hi_maskz,
1380 __builtin_ia32_vpshldv_v16hi, __builtin_ia32_vpshldv_v16hi_mask,
1381 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi,
1382 __builtin_ia32_vpshldv_v8hi_mask, __builtin_ia32_vpshldv_v8hi_maskz,
1383 __builtin_ia32_vpshldv_v16si, __builtin_ia32_vpshldv_v16si_mask,
1384 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si,
1385 __builtin_ia32_vpshldv_v8si_mask, __builtin_ia32_vpshldv_v8si_maskz,
1386 __builtin_ia32_vpshldv_v4si, __builtin_ia32_vpshldv_v4si_mask,
1387 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di,
1388 __builtin_ia32_vpshldv_v8di_mask, __builtin_ia32_vpshldv_v8di_maskz,
1389 __builtin_ia32_vpshldv_v4di, __builtin_ia32_vpshldv_v4di_mask,
1390 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di,
1391 __builtin_ia32_vpshldv_v2di_mask,
1392 __builtin_ia32_vpshldv_v2di_maskz): New builtins.
1393 * config/i386/sse.md (vpshldv_<mode>, vpshldv_<mode>_mask,
1394 vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): New patterns.
1395
1396 2017-11-29 Julia Koval <julia.koval@intel.com>
1397
1398 * config/i386/avx512vbmi2intrin.h (_mm512_shrdv_epi16,
1399 _mm512_mask_shrdv_epi16, _mm512_maskz_shrdv_epi16, _mm512_shrdv_epi32,
1400 _mm512_mask_shrdv_epi32, _mm512_maskz_shrdv_epi32, _mm512_shrdv_epi64,
1401 _mm512_mask_shrdv_epi64, _mm512_maskz_shrdv_epi64): New intrinsics.
1402 * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdv_epi16,
1403 _mm256_mask_shrdv_epi16, _mm256_maskz_shrdv_epi16, _mm256_shrdv_epi32,
1404 _mm256_mask_shrdv_epi32, _mm256_maskz_shrdv_epi32, _mm256_shrdv_epi64,
1405 _mm256_mask_shrdv_epi64, _mm256_maskz_shrdv_epi64, _mm_shrdv_epi16,
1406 _mm_mask_shrdv_epi16, _mm_maskz_shrdv_epi16, _mm_shrdv_epi32,
1407 _mm_mask_shrdv_epi32, _mm_maskz_shrdv_epi32, _mm_shrdv_epi64,
1408 _mm_mask_shrdv_epi64, _mm_maskz_shrdv_epi64): Ditto.
1409 * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_V32HI,
1410 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
1411 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
1412 V4SI_FTYPE_V4SI_V4SI_V4SI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI,
1413 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
1414 V16SI_FTYPE_V16SI_V16SI_V16SI, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
1415 V2DI_FTYPE_V2DI_V2DI_V2DI_INT): New types.
1416 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
1417 * config/i386/sse.md (vpshrdv_<mode>, vpshrdv_<mode>_mask,
1418 vpshrdv_<mode>_maskz, vpshrdv_<mode>_maskz_1): New pattern.
1419
1420 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1421
1422 * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
1423 movsi_pic_gotdata_op instruction as a load for the UT699 errata
1424 workaround.
1425
1426 2017-11-29 Martin Aberg <maberg@gaisler.com>
1427
1428 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
1429 to prevent b2bst errata sequence.
1430 (sqrtdf2_fix): Likewise.
1431
1432 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1433
1434 * config/sparc/sparc.c (fpop_reg_depend_p): New function.
1435 (div_sqrt_insn_p): New function.
1436 (sparc_do_work_around_errata): Insert NOP instructions to
1437 prevent sequences that could trigger the TN-0013 errata for
1438 certain LEON3 processors.
1439 (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
1440 (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
1441 * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
1442 (in_branch_delay): Prevent div and sqrt in delay slot if
1443 fix_lost_divsqrt.
1444 * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
1445
1446 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1447
1448 * config/sparc/sparc.c (atomic_insn_p): New function.
1449 (sparc_do_work_around_errata): Insert NOP instructions to
1450 prevent sequences that could trigger the TN-0010 errata for
1451 UT700.
1452 * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
1453 instruction referable in atomic_insns_p.
1454
1455 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1456
1457 * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
1458 (atomic_compare_and_swap_leon3_1): Likewise.
1459 (ldstub): Likewise.
1460
1461 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1462
1463 * config/sparc/sparc.c (fpop_insn_p): New function.
1464 (sparc_do_work_around_errata): Insert NOP instructions to
1465 prevent sequences that could trigger the TN-0012 errata for
1466 GR712RC.
1467 (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
1468 * config/sparc/sparc.md (fix_gr712rc): New attribute.
1469 (in_branch_annul_delay): Prevent floating-point instructions
1470 in delay slot of annulled integer branch.
1471
1472 2017-11-29 Richard Biener <rguenther@suse.de>
1473
1474 PR tree-optimization/83202
1475 * tree-vect-slp.c (scalar_stmts_set_t): New typedef.
1476 (bst_fail): Use it.
1477 (vect_analyze_slp_cost_1): Add visited set, do not account SLP
1478 nodes vectorized to the same stmts multiple times.
1479 (vect_analyze_slp_cost): Allocate a visited set and pass it down.
1480 (vect_analyze_slp_instance): Adjust.
1481 (scalar_stmts_to_slp_tree_map_t): New typedef.
1482 (vect_schedule_slp_instance): Add a map recording the SLP node
1483 representing the vectorized stmts for a set of scalar stmts.
1484 Avoid code-generating redundancies.
1485 (vect_schedule_slp): Allocate map and pass it down.
1486
1487 2017-11-29 Nathan Sidwell <nathan@acm.org>
1488
1489 PR c++/83187
1490 * tree.c (build_complex_type): Fix canonicalization. Only fill in
1491 type if it is new.
1492
1493 2017-11-29 Wilco Dijkstra <wdijkstr@arm.com>
1494
1495 * config/aarch64/aarch64.c (aarch64_print_operand): Add new
1496 cases for printing LDP/STP memory addresses.
1497 (aarch64_print_address_internal): Renamed from
1498 aarch64_print_operand_address, added parameter, add Pmode check.
1499 (aarch64_print_ldpstp_address): New function for LDP/STP addresses.
1500 (aarch64_print_operand_address): Indirect to
1501 aarch64_print_address_internal.
1502 * config/aarch64/aarch64-simd.md (store_pair_lanes): Use new
1503 'y' operand output specifier.
1504
1505 2017-11-29 Jakub Jelinek <jakub@redhat.com>
1506
1507 PR middle-end/83185
1508 * tree.c (build_simple_mem_ref_loc): Handle
1509 get_addr_base_and_unit_offset returning a MEM_REF.
1510
1511 PR middle-end/80929
1512 * rtlanal.c (seq_cost): For non-single_set insns try to use insn_cost.
1513
1514 PR target/80819
1515 * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
1516 alternative.
1517
1518 2017-11-28 David Malcolm <dmalcolm@redhat.com>
1519
1520 * diagnostic-show-locus.c (layout::print_trailing_fixits): Handle
1521 m_x_offset.
1522 (layout::move_to_column): Likewise.
1523
1524 2017-11-28 Jakub Jelinek <jakub@redhat.com>
1525
1526 PR sanitizer/81275
1527 * tree.c (block_may_fallthru): Return false if SWITCH_ALL_CASES_P
1528 is set on SWITCH_EXPR and !block_may_fallthru (SWITCH_BODY ()).
1529
1530 2017-11-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1531 Martin Jambor <mjambor@suse.cz>
1532
1533 PR ipa/82808
1534 * tree.h (expr_type_first_operand_type_p): Declare
1535 * tree.c (expr_type_first_operand_type_p): New function.
1536 * ipa-prop.h (ipa_get_type): Allow i to be out of bounds.
1537 (ipa_value_from_jfunc): Adjust declaration.
1538 * ipa-cp.c (ipa_get_jf_pass_through_result): New parameter RES_TYPE.
1539 Use it as result type for arithmetics, unless it is NULL in which case
1540 be more conservative.
1541 (ipa_value_from_jfunc): New parameter PARM_TYPE, pass it to
1542 ipa_get_jf_pass_through_result.
1543 (propagate_vals_across_pass_through): Likewise.
1544 (propagate_scalar_across_jump_function): New parameter PARM_TYPE, pass
1545 is to propagate_vals_across_pass_through.
1546 (propagate_constants_across_call): Pass PARM_TYPE to
1547 propagate_scalar_across_jump_function.
1548 (find_more_scalar_values_for_callers_subset): Pass parameter type to
1549 ipa_value_from_jfunc.
1550 (cgraph_edge_brings_all_scalars_for_node): Likewise.
1551 * ipa-fnsummary.c (evaluate_properties_for_edge): Renamed parms_info
1552 to caller_parms_info, pass parameter type to ipa_value_from_jfunc.
1553 * ipa-prop.c (try_make_edge_direct_simple_call): New parameter
1554 target_type, pass it to ipa_value_from_jfunc.
1555 (update_indirect_edges_after_inlining): Pass parameter type to
1556 try_make_edge_direct_simple_call.
1557
1558 2017-11-28 Jeff Law <law@redhat.com>
1559
1560 * gimple-ssa-evrp-analyze.c
1561 (evrp_range_analyzer::record_ranges_from_phis): Only use SCEV to
1562 refine ranges if scev_initialized_p returns true.
1563 * vr-values.c (vr_values::extract_range_from_phi_node): Likewise.
1564
1565 2017-11-28 Julia Koval <julia.koval@intel.com>
1566
1567 * config/i386/avx512vbmi2intrin.h (_mm512_shrdi_epi16,
1568 _mm512_mask_shrdi_epi16, _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32,
1569 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, _mm512_shrdi_epi64,
1570 _mm512_mask_shrdi_epi64, _mm512_maskz_shrdi_epi64): New intrinsics.
1571 * config/i386/avx512vbmi2vlintrin.h (_mm256_shrdi_epi16,
1572 _mm256_mask_shrdi_epi16, _mm256_maskz_shrdi_epi16,
1573 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, _mm256_shrdi_epi32,
1574 _mm256_mask_shrdi_epi64, _mm256_maskz_shrdi_epi64, _mm256_shrdi_epi64,
1575 _mm_mask_shrdi_epi16, _mm_maskz_shrdi_epi16, _mm_shrdi_epi16,
1576 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, _mm_shrdi_epi32,
1577 _mm_mask_shrdi_epi64, _mm_maskz_shrdi_epi64, _mm_shrdi_epi64): Ditto.
1578 * config/i386/i386-builtin.def (__builtin_ia32_vpshrd_v32hi,
1579 __builtin_ia32_vpshrd_v32hi_mask, __builtin_ia32_vpshrd_v16hi,
1580 __builtin_ia32_vpshrd_v16hi_mask, __builtin_ia32_vpshrd_v8hi,
1581 __builtin_ia32_vpshrd_v8hi_mask, __builtin_ia32_vpshrd_v16si,
1582 __builtin_ia32_vpshrd_v16si_mask, __builtin_ia32_vpshrd_v8si,
1583 __builtin_ia32_vpshrd_v8si_mask, __builtin_ia32_vpshrd_v4si,
1584 __builtin_ia32_vpshrd_v4si_mask, __builtin_ia32_vpshrd_v8di,
1585 __builtin_ia32_vpshrd_v8di_mask, __builtin_ia32_vpshrd_v4di,
1586 __builtin_ia32_vpshrd_v4di_mask, __builtin_ia32_vpshrd_v2di,
1587 __builtin_ia32_vpshrd_v2di_mask): New builtins.
1588 * config/i386/sse.md (vpshrd_<mode><mask_name>): New pattern.
1589
1590 2017-11-28 Julia Koval <julia.koval@intel.com>
1591
1592 * config/i386/avx512vbmi2intrin.h (_mm512_shldi_epi16,
1593 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, _mm512_shldi_epi32,
1594 _mm512_mask_shldi_epi32, _mm512_maskz_shldi_epi32, _mm512_shldi_epi64,
1595 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): New intrinsics.
1596 * config/i386/avx512vbmi2vlintrin.h (_mm256_shldi_epi16,
1597 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16,
1598 _mm256_mask_shldi_epi32, _mm256_maskz_shldi_epi32, _mm256_shldi_epi32,
1599 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, _mm256_shldi_epi64,
1600 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, _mm_shldi_epi16,
1601 _mm_mask_shldi_epi32, _mm_maskz_shldi_epi32, _mm_shldi_epi32,
1602 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64, _mm_shldi_epi64): Ditto.
1603 * config/i386/i386-builtin-types.def (V32HI_FTYPE_V32HI_V32HI_INT,
1604 V32HI_FTYPE_V32HI_V32HI_INT_V32HI_INT, V16SI_FTYPE_V16SI_V16SI_INT,
1605 V16SI_FTYPE_V16SI_V16SI_INT_V16SI_INT,
1606 V8DI_FTYPE_V8DI_V8DI_INT_V8DI_INT, V8SI_FTYPE_V8SI_V8SI_INT_V8SI_INT,
1607 V16HI_FTYPE_V16HI_V16HI_INT_V16HI_INT,
1608 V4DI_FTYPE_V4DI_V4DI_INT_V4DI_INT,
1609 V8HI_FTYPE_V8HI_V8HI_INT_V8HI_INT,
1610 V4SI_FTYPE_V4SI_V4SI_INT_V4SI_INT,
1611 V2DI_FTYPE_V2DI_V2DI_INT_V2DI_INT): New types.
1612 * config/i386/i386-builtin.def (__builtin_ia32_vpshld_v32hi,
1613 __builtin_ia32_vpshld_v32hi_mask, __builtin_ia32_vpshld_v16hi,
1614 __builtin_ia32_vpshld_v16hi_mask, __builtin_ia32_vpshld_v8hi,
1615 __builtin_ia32_vpshld_v8hi_mask, __builtin_ia32_vpshld_v16si,
1616 __builtin_ia32_vpshld_v16si_mask, __builtin_ia32_vpshld_v8si,
1617 __builtin_ia32_vpshld_v8si_mask, __builtin_ia32_vpshld_v4si,
1618 __builtin_ia32_vpshld_v4si_mask, __builtin_ia32_vpshld_v8di,
1619 __builtin_ia32_vpshld_v8di_mask, __builtin_ia32_vpshld_v4di,
1620 __builtin_ia32_vpshld_v4di_mask, __builtin_ia32_vpshld_v2di,
1621 __builtin_ia32_vpshld_v2di_mask): New builtins.
1622 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
1623 * config/i386/sse.md (vpshld_<mode><mask_name>): New pattern.
1624
1625 2017-11-28 Richard Biener <rguenther@suse.de>
1626
1627 PR tree-optimization/80776
1628 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::set_ssa_range_info):
1629 Declare.
1630 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
1631 New function.
1632 (evrp_range_analyzer::record_ranges_from_incoming_edges):
1633 If the incoming edge is an effective fallthru because the other
1634 edge only reaches a __builtin_unreachable () then record ranges
1635 derived from the controlling condition in SSA info.
1636 (evrp_range_analyzer::record_ranges_from_phis): Use set_ssa_range_info.
1637 (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
1638
1639 2017-11-28 Olivier Hainque <hainque@adacore.com>
1640
1641 * Makefile.in (SELFTEST_FLAGS): Use nul instead of /dev/null
1642 on mingw build hosts.
1643
1644 2017-11-28 Jakub Jelinek <jakub@redhat.com>
1645
1646 PR debug/81307
1647 * dbxout.c (dbx_block_with_cold_children): Fix function comment.
1648
1649 2017-11-28 Richard Biener <rguenther@suse.de>
1650
1651 PR middle-end/83141
1652 * gimple-fold.c (gimple_fold_builtin_memory_op): For aggregate
1653 copies generated from memcpy use a character array as reference
1654 type.
1655
1656 2017-11-28 Julia Koval <julia.koval@intel.com>
1657 Sebastian Peryt <sebastian.peryt@intel.com>
1658
1659 * Makefile.in (cilkplus.def, cilk-builtins.def, c-family/cilk.o,
1660 c-family/c-cilkplus.o, c-family/array-notation-common.o,
1661 cilk-common.o, cilk.h, cilk-common.c): Remove.
1662 * builtin-types.def
1663 (BT_FN_INT_PTR_PTR_PTR_FTYPE_BT_INT_BT_PTR_BT_PTR_BT_PTR): Remove.
1664 * builtins.c (is_builtin_name): Remove cilkplus condition.
1665 (BUILT_IN_CILK_DETACH, BUILT_IN_CILK_POP_FRAME): Remove.
1666 * builtins.def (DEF_CILK_BUILTIN_STUB, DEF_CILKPLUS_BUILTIN,
1667 cilk-builtins.def, cilkplus.def): Remove.
1668 * cif-code.def (CILK_SPAWN): Remove.
1669 * cilk-builtins.def: Delete.
1670 * cilk-common.c: Ditto.
1671 * cilk.h: Ditto.
1672 * cilkplus.def: Ditto.
1673 * config/darwin.h (fcilkplus): Delete.
1674 * cppbuiltin.c: Ditto.
1675 * doc/extend.texi: Remove cilkplus doc.
1676 * doc/generic.texi: Ditto.
1677 * doc/invoke.texi: Ditto.
1678 * doc/passes.texi: Ditto.
1679 * gcc.c (fcilkplus): Remove.
1680 * gengtype.c (cilk.h): Remove.
1681 * gimple-pretty-print.c (dump_gimple_omp_for): Remove cilkplus
1682 support.
1683 * gimple.h (GF_OMP_FOR_KIND_CILKFOR, GF_OMP_FOR_KIND_CILKSIMD):
1684 Remove.
1685 * gimplify.c (gimplify_return_expr, maybe_fold_stmt,
1686 gimplify_call_expr,
1687 is_gimple_stmt, gimplify_modify_expr, gimplify_scan_omp_clauses,
1688 gimplify_adjust_omp_clauses, gimplify_omp_for, gimplify_expr): Remove
1689 cilkplus conditions.
1690 * ipa-fnsummary.c (ipa_dump_fn_summary, compute_fn_summary,
1691 inline_read_section): Ditto.
1692 * ipa-inline-analysis.c (cilk.h): Remove.
1693 * ira.c (ira_setup_eliminable_regset): Remove cilkplus support.
1694 * lto-wrapper.c (merge_and_complain, append_compiler_options,
1695 append_linker_options): Remove condition for fcilkplus.
1696 * lto/lto-lang.c (cilk.h): Remove.
1697 (lto_init): Remove condition for fcilkplus.
1698 * omp-expand.c (expand_cilk_for_call): Delete.
1699 (expand_omp_taskreg, expand_omp_for_static_chunk,
1700 expand_omp_for): Remove cilkplus
1701 conditions.
1702 (expand_cilk_for): Delete.
1703 * omp-general.c (omp_extract_for_data): Remove cilkplus support.
1704 * omp-low.c (scan_sharing_clauses, create_omp_child_function,
1705 execute_lower_omp, diagnose_sb_0): Ditto.
1706 * omp-simd-clone.c (simd_clone_clauses_extract): Ditto.
1707 * tree-core.h (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
1708 * tree-nested.c: Ditto.
1709 * tree-pretty-print.c (dump_omp_clause): Remove cilkplus support.
1710 (dump_generic_node): Ditto.
1711 * tree.c (OMP_CLAUSE__CILK_FOR_COUNT_): Delete.
1712 * tree.def (cilk_simd, cilk_for, cilk_spawn_stmt, cilk_sync_stmt):
1713 Delete.
1714 * tree.h (CILK_SPAWN_FN, EXPR_CILK_SPAWN): Delete.
1715
1716 2017-11-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1717
1718 * config/aarch64/aarch64.md (div<mode>3): Change check to TARGET_FLOAT.
1719 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Add early exit
1720 for vector mode and !TARGET_SIMD.
1721
1722 2017-11-28 Jakub Jelinek <jakub@redhat.com>
1723
1724 * tree.def (SWITCH_EXPR): Change from 3 operand to 2 operand tree.
1725 Adjust comment.
1726 * tree.h (SWITCH_LABELS): Remove.
1727 * gimplify.c (gimplify_switch_expr): Don't test SWITCH_LABELS,
1728 assert SWITCH_BODY is non-NULL.
1729 * tree-pretty-print.c (dump_generic_node): Remove SWITCH_LABELS
1730 handling.
1731 * tree.c (block_may_fallthru): Always return true; for SWITCH_EXPR.
1732
1733 PR tree-optimization/80788
1734 * match.pd (X +- C1 CMP C2 -> X CMP C2 -+ C1): If res
1735 has TREE_OVERFLOW set, call drop_tree_overflow.
1736
1737 2017-11-28 Richard Biener <rguenther@suse.de>
1738
1739 PR tree-optimization/83158
1740 * tree-vrp.c (intersect_ranges): Prefer ~[0, 0] in a few more cases.
1741
1742 2017-11-28 Segher Boessenkool <segher@kernel.crashing.org>
1743
1744 PR 81288/target
1745 * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
1746 TARGET_ISEL && !TARGET_MFCRF differently. Simplify code.
1747
1748 2017-11-27 Segher Boessenkool <segher@kernel.crashing.org>
1749
1750 * config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
1751 LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.
1752
1753 2017-11-27 Michael Meissner <meissner@linux.vnet.ibm.com>
1754
1755 PR middle_end/82333
1756 * varasm.c (compare_constant): Take the mode of the constants into
1757 account when comparing floating point constants.
1758
1759 2017-11-27 Gerald Pfeifer <gerald@pfeifer.com>
1760
1761 * hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
1762 from explicit instantiation of debug_helper.
1763 * vec.h (DEFINE_DEBUG_VEC): Ditto.
1764
1765 2017-11-27 Richard Biener <rguenther@suse.de>
1766
1767 * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code,
1768 refactor a bit.
1769
1770 2017-11-27 Richard Biener <rguenther@suse.de>
1771
1772 * tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
1773 (type_hash_canon): Also clear int_cst_hash_table entry for
1774 TYPE_MIN/MAX_VALUE.
1775 (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs.
1776
1777 2017-11-27 Tamar Christina <tamar.christina@arm.com>
1778
1779 * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
1780 * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
1781 * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
1782
1783 2017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de>
1784
1785 * hash-map.h (gt_cleare_cache): Avoid UB.
1786
1787 2017-11-27 Eric Botcazou <ebotcazou@adacore.com>
1788
1789 * cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
1790 * loop-unroll.c (decide_unroll_constant_iterations): Implement it.
1791 (decide_unroll_runtime_iterations): Likewise.
1792 (decide_unroll_stupid): Likewise.
1793
1794 2017-11-27 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
1795
1796 PR target/83109
1797 * config/i386/i386.md: Add a loop with incssp.
1798
1799 2017-11-27 Martin Jambor <mjambor@suse.cz>
1800
1801 PR tree-optimization/81248
1802 * tree-sra.c (splice_param_accesses): Remove size check.
1803 (decide_one_param_reduction): Fix size check.
1804 * gimple-pretty-print.c (dump_profile): Silence warning.
1805 * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description.
1806
1807 2017-11-27 Jakub Jelinek <jakub@redhat.com>
1808
1809 PR debug/81307
1810 * dbxout.c (lastlineno): New variable.
1811 (dbx_debug_hooks): Use dbxout_switch_text_section as
1812 switch_text_section debug hook.
1813 (dbxout_function_end): Switch to current_function_section
1814 rather than function_section. If crtl->has_bb_partition,
1815 output just one N_FUN, depending on in_cold_section_p.
1816 (dbxout_source_line): Remember last lineno in lastlineno.
1817 (dbxout_switch_text_section): New function.
1818 (dbxout_function_decl): Adjust dbxout_block caller.
1819 (dbx_block_with_cold_children): New function.
1820 (dbxout_block): Return true if any LBRAC/RBRAC have been
1821 emitted. Use dbx_block_with_cold_children at depth == 0
1822 in second partition. Add PARENT_BLOCKNUM argument, pass
1823 it optionally adjusted to children. Output LBRAC/RBRAC
1824 around recursive call only if the block is in the current
1825 partition, if not and anything was output, emit empty
1826 range LBRAC/RBRAC.
1827 * final.c (final_scan_insn): Compute cold_function_name
1828 before calling switch_text_section debug hook. Call
1829 that hook even if dwarf2out_do_frame if not emitting
1830 dwarf debug info.
1831
1832 PR target/83100
1833 * varasm.c (bss_initializer_p): Return true for DECL_COMMON
1834 TREE_READONLY decls.
1835
1836 2017-11-27 Markus Trippelsdorf <markus@trippelsdorf.de>
1837
1838 PR rtl-optimization/82488
1839 * expr.c (fixup_args_size_notes): Avoid signed integer overflow.
1840
1841 2017-11-26 Julia Koval <julia.koval@intel.com>
1842
1843 * config/i386/i386.c (processor_target_table): Add skylake_cost for
1844 skylake-avx512.
1845 * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset,
1846 skylake_cost): New.
1847
1848 2017-11-26 Julia Koval <julia.koval@intel.com>
1849
1850 * config/i386/driver-i386.c (host_detect_local_cpu):
1851 Detect skylake-avx512.
1852
1853 2017-11-26 Julia Koval <julia.koval@intel.com>
1854
1855 * config.gcc: Add -march=cannonlake.
1856 * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake.
1857 * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake.
1858 * config/i386/i386.c (processor_costs): Add m_CANNONLAKE.
1859 (PTA_CANNONLAKE): New.
1860 (processor_target_table): Add cannonlake.
1861 (ix86_option_override_internal): Ditto.
1862 (fold_builtin_cpu): Ditto.
1863 (get_builtin_code_for_version): Handle cannonlake.
1864 (M_INTEL_COREI7_CANNONLAKE): New.
1865 * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New.
1866 * doc/invoke.texi: Add -march=cannonlake.
1867
1868 2017-11-14 Boris Kolpackov <boris@codesynthesis.com>
1869
1870 * plugin.c (add_new_plugin): Use platform-specific library extensions.
1871 (try_init_one_plugin): Alternative implementation for MinGW.
1872 * Makefile.in (plugin_implib): New.
1873 (gengtype-lex.c): Fix broken AIX workaround.
1874 * configure: Regenerate.
1875 * doc/plugins.texi: Document support for MinGW.
1876
1877 2017-11-25 Jakub Jelinek <jakub@redhat.com>
1878
1879 PR rtl-optimization/81553
1880 * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
1881 to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
1882 is a shift where C1 has different mode than the whole shift, use C1's
1883 mode for MULT rather than the shift's mode.
1884
1885 PR target/82848
1886 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold
1887 builtins not enabled in the currently selected ISA.
1888
1889 2017-11-24 Jackson Woodruff <jackson.woodruff@arm.com>
1890
1891 PR tree-optimization/71026
1892 * tree-ssa-math-opts (is_division_by_square, is_square_of): New.
1893 (insert_reciprocals): Change to insert reciprocals before a division
1894 by a square and to insert the square of a reciprocal.
1895 (execute_cse_reciprocals_1): Change to consider division by a square.
1896 (register_division_in): Add importance parameter.
1897
1898 2017-11-24 Richard Biener <rguenther@suse.de>
1899
1900 PR tree-optimization/82402
1901 * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
1902 set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
1903
1904 2017-11-24 Marc Glisse <marc.glisse@inria.fr>
1905
1906 * match.pd (0-ptr): New transformation.
1907
1908 2017-11-24 Jan Hubicka <hubicka@ucw.cz>
1909
1910 PR bootstrap/83015
1911 * ipa-inline.c (inline_small_functions): Set current badnes correctly
1912 when skipping checking.
1913
1914 2017-11-24 Richard Biener <rguenther@suse.de>
1915
1916 PR tree-optimization/83128
1917 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs.
1918 (vn_reference_lookup_3): Likewise.
1919
1920 2017-11-24 Jakub Jelinek <jakub@redhat.com>
1921
1922 PR sanitizer/83014
1923 * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
1924 instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling
1925 tree_to_uhwi twice.
1926
1927 * tree-object-size.c (pass_through_call): Use gimple_call_return_flags
1928 ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED,
1929 check for the latter with gimple_call_builtin_p. Do not handle
1930 BUILT_IN_STPNCPY_CHK which is not a pass through call.
1931
1932 2017-11-24 Christophe Lyon <christophe.lyon@linaro.org>
1933
1934 * config/arm/arm_neon.h: Fix pragma GCC push_options before
1935 vdot_u32.
1936
1937 2017-11-23 Julia Koval <julia.koval@intel.com>
1938
1939 * config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8,
1940 _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8,
1941 _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16,
1942 _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16,
1943 _mm512_maskz_expandloadu_epi16): New intrinsics.
1944 * config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8,
1945 _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8,
1946 _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16,
1947 _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16,
1948 _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16,
1949 _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16,
1950 _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8,
1951 _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8,
1952 _mm256_maskz_expandloadu_epi8): New intrinsics.
1953 * config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI,
1954 V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI,
1955 V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI,
1956 V8HI_FTYPE_PCV8HI_V8HI_UQI): New types.
1957 * config/i386/i386.c (ix86_expand_special_args_builtin): Use new types.
1958 * config/i386/sse.md (VI248_VLBW): New iterator.
1959 (expand<mode>_mask, expand<mode>_maskz): New patterns.
1960
1961 2017-11-23 Julia Koval <julia.koval@intel.com>
1962
1963 * config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers.
1964 * config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8,
1965 _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8,
1966 _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16,
1967 _mm512_mask_compressstoreu_epi16): New.
1968 * config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8,
1969 _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16,
1970 _mm_mask_compress_epi16, _mm_maskz_compress_epi16,
1971 _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16,
1972 _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16,
1973 _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8,
1974 _mm256_mask_compressstoreu_epi8): New.
1975 * config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI,
1976 VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI,
1977 VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI,
1978 VOID_FTYPE_PV8HI_V8HI_UQI): New types.
1979 * config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask,
1980 __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask,
1981 __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask,
1982 __builtin_ia32_compresshi128_mask,
1983 __builtin_ia32_compressstoreuqi512_mask,
1984 __builtin_ia32_compressstoreuhi512_mask,
1985 __builtin_ia32_compressstoreuqi256_mask,
1986 __builtin_ia32_compressstoreuqi128_mask,
1987 __builtin_ia32_compressstoreuhi256_mask,
1988 __builtin_ia32_compressstoreuhi128_mask): New builtins.
1989 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args
1990 array for flags2.
1991 (ix86_expand_special_args_builtin): Handle new types.
1992 (s4fma_expand): Handle new builtin array.
1993 * config/i386/immintrin.h: Include new headers.
1994 * config/i386/sse.md (VI12_AVX512VLBW): New iterator.
1995 (compress<mode>_mask, compressstore<mode>_mask): New patterns.
1996
1997 2017-11-23 Jakub Jelinek <jakub@redhat.com>
1998
1999 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Formatting
2000 fixes. Declare temp and g variables at the top in order to avoid
2001 {} in most of the cases.
2002
2003 2017-11-23 Marc Glisse <marc.glisse@inria.fr>
2004
2005 * match.pd (ptr-0): New transformation.
2006
2007 2017-11-23 Charles Baylis <charles.baylis@linaro.org>
2008
2009 * config/arm/arm-protos.h (enum arm_addr_mode_op): New.
2010 (struct addr_mode_cost_table): New.
2011 (struct tune_params): Add field addr_mode_costs.
2012 * config/arm/arm.c (generic_addr_mode_costs): New.
2013 (arm_slowmul_tune): Initialise addr_mode_costs field.
2014 (arm_fastmul_tune): Likewise.
2015 (arm_strongarm_tune): Likewise.
2016 (arm_xscale_tune): Likewise.
2017 (arm_9e_tune): Likewise.
2018 (arm_marvell_pj4_tune): Likewise.
2019 (arm_v6t2_tune): Likewise.
2020 (arm_cortex_tune): Likewise.
2021 (arm_cortex_a8_tune): Likewise.
2022 (arm_cortex_a7_tune): Likewise.
2023 (arm_cortex_a15_tune): Likewise.
2024 (arm_cortex_a35_tune): Likewise.
2025 (arm_cortex_a53_tune): Likewise.
2026 (arm_cortex_a57_tune): Likewise.
2027 (arm_exynosm1_tune): Likewise.
2028 (arm_xgene1_tune): Likewise.
2029 (arm_cortex_a5_tune): Likewise.
2030 (arm_cortex_a9_tune): Likewise.
2031 (arm_cortex_a12_tune): Likewise.
2032 (arm_cortex_a73_tune): Likewise.
2033 (arm_v7m_tune): Likewise.
2034 (arm_cortex_m7_tune): Likewise.
2035 (arm_v6m_tune): Likewise.
2036 (arm_fa726te_tune): Likewise.
2037 (arm_mem_costs): Use table lookup to calculate cost of addressing mode.
2038
2039 2017-11-23 Charles Baylis <charles.baylis@linaro.org>
2040
2041 * config/arm/arm.c (arm_mem_costs): New function.
2042 (arm_rtx_costs_internal): Use arm_mem_costs.
2043
2044 2017-11-23 Mark Wielaard <mark@klomp.org>
2045
2046 * dwarf2out.c (init_sections_and_labels): Use generation to create
2047 unique ranges_section_label and ranges_base_label. Return generation.
2048 (output_rnglists): Add generation argument. Use generation to create
2049 unique ranges labels.
2050 (dwarf2out_finish): Get generation from init_sections_and_labels
2051 and pass generation to output_rnglists.
2052
2053 2017-11-23 Mike Stump <mikestump@comcast.net>
2054 Eric Botcazou <ebotcazou@adacore.com>
2055
2056 * doc/generic.texi (ANNOTATE_EXPR): Document 3rd operand.
2057 * cfgloop.h (struct loop): Add unroll field.
2058 * function.h (struct function): Add has_unroll bitfield.
2059 * gimplify.c (gimple_boolify) <ANNOTATE_EXPR>: Deal with unroll kind.
2060 (gimplify_expr) <ANNOTATE_EXPR>: Propagate 3rd operand.
2061 * loop-init.c (pass_loop2::gate): Return true if cfun->has_unroll.
2062 (pass_rtl_unroll_loops::gate): Likewise.
2063 * loop-unroll.c (decide_unrolling): Tweak note message. Skip loops
2064 for which loop->unroll==1.
2065 (decide_unroll_constant_iterations): Use note for consistency and
2066 take loop->unroll into account. Return early if loop->unroll is set.
2067 Fix thinko in existing test.
2068 (decide_unroll_runtime_iterations): Use note for consistency and
2069 take loop->unroll into account.
2070 (decide_unroll_stupid): Likewise.
2071 * lto-streamer-in.c (input_cfg): Read loop->unroll.
2072 * lto-streamer-out.c (output_cfg): Write loop->unroll.
2073 * tree-cfg.c (replace_loop_annotate_in_block) <annot_expr_unroll_kind>:
2074 New case.
2075 (replace_loop_annotate) <annot_expr_unroll_kind>: Likewise.
2076 (print_loop): Print loop->unroll if set.
2077 * tree-core.h (enum annot_expr_kind): Add annot_expr_unroll_kind.
2078 * tree-inline.c (copy_loops): Copy unroll and set cfun->has_unroll.
2079 * tree-pretty-print.c (dump_generic_node) <annot_expr_unroll_kind>:
2080 New case.
2081 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Bail out if
2082 loop->unroll is set and smaller than the trip count. Otherwise bypass
2083 entirely the heuristics if loop->unroll is set. Remove dead note.
2084 Fix off-by-one bug in other note.
2085 (try_peel_loop): Bail out if loop->unroll is set. Fix formatting.
2086 (tree_unroll_loops_completely_1): Force unrolling if loop->unroll
2087 is greater than 1.
2088 (tree_unroll_loops_completely): Make static.
2089 (pass_complete_unroll::execute): Use correct type for variable.
2090 (pass_complete_unrolli::execute): Fix formatting.
2091 * tree.def (ANNOTATE_EXPR): Add 3rd operand.
2092
2093 2017-11-23 Sergey Shalnov <Sergey.Shalnov@intel.com>
2094
2095 * config/i386/i386.h (TARGET_PREFER_AVX256): Also
2096 enable when TARGET_PREFER_AVX128 is set.
2097
2098 2017-11-23 Jan Hubicka <hubicka@ucw.cz>
2099
2100 * ipa-profile.c (ipa_propagate_frequency_1): Use count instead of
2101 frequency.
2102 * cgraph.c (cgraph_edge::dump_edge_flags): Dump sreal frequencies.
2103 (cgraph_edge::maybe_hot_p): Use sreal frequencies.
2104
2105 2017-11-23 Jan Hubicka <hubicka@ucw.cz>
2106
2107 * ipa-fnsummary.c (record_modified_bb_info): Use sreal
2108 frequencies. Fix estimation of aggregate parameters.
2109
2110 2017-11-23 Jan Hubicka <hubicka@ucw.cz>
2111
2112 * cgraphclones.c (cgraph_node::create_clone): Fix updating of profile
2113 when inlining.
2114
2115 2017-11-23 Tom de Vries <tom@codesourcery.com>
2116
2117 * config/sh/sh.h (ASM_OUTPUT_ADDR_VEC_ELT): Wrap in "do {} while (0)".
2118
2119 2017-11-23 Tom de Vries <tom@codesourcery.com>
2120
2121 * config/ft32/ft32.h (ASM_OUTPUT_ADDR_VEC_ELT): Remove semicolon after
2122 macro.
2123
2124 2017-11-23 Oleg Endo <olegendo@gcc.gnu.org>
2125
2126 PR target/83111
2127 * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
2128 sibcall_value_pcrel_fdpic): Use local variable instead of
2129 operands[3].
2130 (calli_tbr_rel): Add missing operand 2.
2131 (call_valuei_tbr_rel): Add missing operand 3.
2132
2133 2017-11-23 Jakub Jelinek <jakub@redhat.com>
2134
2135 PR middle-end/82253
2136 * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
2137 bitpos/bitsize covering the whole destination, use store_expr only if
2138 the complex mode is the same. Otherwise, use expand_normal and if
2139 it returns CONCAT, subreg each part separately instead of trying to
2140 subreg the whole result.
2141
2142 2017-11-23 Richard Biener <rguenther@suse.de>
2143
2144 PR tree-optimization/23094
2145 * tree-ssa-sccvn.c (vuse_ssa_val): Handle VN_TOP when we
2146 come here from walking over backedges in the first iteration.
2147 (vn_reference_lookup_3): Skip clobbers that store the same value.
2148
2149 2017-11-23 Richard Biener <rguenther@suse.de>
2150
2151 PR tree-optimization/81403
2152 * tree-ssa-pre.c (get_representative_for): Add parameter specifying
2153 a block we need a leader relative to.
2154 (phi_translate_1): For nary processing require a leader from
2155 get_representative_for given we run expression simplification
2156 using match-and-simplify. Remove previous fix.
2157
2158 2017-11-22 Jeff Law <law@redhat.com>
2159
2160 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
2161 Use new method allocate_value_range rather than accessing the
2162 vrp_value_range_pool data member directly.
2163 * tree-vrp.c (simplify_stmt_for_jump_threading): Tweak slightly
2164 to use extract_range_from_stmt method to avoid need for
2165 extract_range_from_assignment method.
2166 (vrp_prop::vrp_finalize): Use set_lattice_propagation_complete
2167 method rather than setting values_propgated data member directly.
2168 * vr-values.h (class vr_values): Privatize vrp_value_range_pool,
2169 and values propagated data members and extract_range_from_assignment
2170 method. Reorder private data members to conform to standards.
2171 Add new methods set_lattice_propagation_complete and
2172 allocate_value_range.
2173
2174 2017-11-22 Eric Botcazou <ebotcazou@adacore.com>
2175
2176 PR rtl-optimization/83030
2177 * doc/rtl.texi (Flags in an RTL Expression): Alphabetize, add entry
2178 for CROSSING_JUMP_P and mention usage of 'jump' for JUMP_INSNs.
2179 (Insns): Delete entry for REG_CROSSING_JUMP in register notes.
2180 * bb-reorder.c (update_crossing_jump_flags): Do not test whether the
2181 CROSSING_JUMP_P flag is already set before setting it.
2182 * cfgrtl.c (fixup_partition_crossing): Likewise.
2183 * reorg.c (relax_delay_slots): Do not consider a CROSSING_JUMP_P
2184 insn as useless.
2185
2186 2017-11-22 Jakub Jelinek <jakub@redhat.com>
2187
2188 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SERIES>:
2189 Handle the case where both arguments are using gen_const_vec_series.
2190
2191 2017-11-22 David Malcolm <dmalcolm@redhat.com>
2192
2193 PR c++/62170
2194 * pretty-print.c (pp_format): Move quoting implementation to
2195 pp_begin_quote and pp_end_quote. Update pp_format_decoder call
2196 to pass address of "quote" local.
2197 (pp_begin_quote): New function.
2198 (pp_end_quote): New function.
2199 * pretty-print.h (printer_fn): Convert penultimate param from bool
2200 to bool *.
2201 (pp_begin_quote): New decl.
2202 (pp_end_quote): New decl.
2203 * tree-diagnostic.c (default_tree_printer): Convert penultimate
2204 param from bool to bool *.
2205 * tree-diagnostic.h (default_tree_printer): Likewise.
2206
2207 2017-11-22 Jeff Law <law@redhat.com>
2208
2209 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::evrp_range_analyzer)
2210 Initialize vr_values.
2211 (evrp_range_analyzer::try_find_new_range): Call methods attached to
2212 vr_values via vr_values class instance rather than delegators.
2213 (evrp_range_analyzer::record_ranges_from_phis): Likewise.
2214 (evrp_range_analyzer::record_ranges_from_stmt): Likewise.
2215 (evrp_range_analyzer::push_value_range): Likewise.
2216 (evrp_range_analyzer::pop_value_range): Likewise.
2217 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove
2218 most delegators. Those remaining are exposed as public interfaces.
2219 Make vr_values a pointer and private.
2220 (evrp_range_analyzer::~evrp_range_analyzer): Delete the attached
2221 vr_values.
2222 (evrp_range_analyzer::get_vr_value): New method.
2223 * gimple-ssa-evrp.c (class evrp_folder): Use DISABLE_COPY_AND_ASSIGN.
2224 (evrp_folder::evrp_folder): New ctor to initialize vr_values.
2225 (class evrp_dom_walker): Attach evrp_folder class, initialize
2226 it in the ctor. Remove temporary delegators.
2227 (evrp_dom_walker::before_dom_children): Call methods in attached
2228 evrp_range_analyzer class via class instance pointer. Use
2229 free value_range_constant_singleton to remove need for
2230 op_with_constant_singleton_value delegator method. Do not
2231 create a vrp_prop class instance for every call! Narrow
2232 scope of a couple variables.
2233 (evrp_dom_walker::cleanup): Call methods in attached
2234 evrp_range_analyzer class via class instance pointer.
2235 * vr-values.h (class vr_values): Privatize many methods and
2236 data members.
2237
2238 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org>
2239
2240 * tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): Delete.
2241 * cfgexpand.c (expand_debug_expr): Remove handling for them.
2242 * expr.c (expand_expr_real_2): Likewise.
2243 * fold-const.c (const_unop): Likewise.
2244 * optabs-tree.c (optab_for_tree_code): Likewise.
2245 * tree-cfg.c (verify_gimple_assign_unary): Likewise.
2246 * tree-inline.c (estimate_operator_cost): Likewise.
2247 * tree-pretty-print.c (dump_generic_node): Likewise.
2248 (op_code_prio): Likewise.
2249 (op_symbol_code): Likewise.
2250 * internal-fn.def (DEF_INTERNAL_SIGNED_OPTAB_FN): Define.
2251 (IFN_REDUC_PLUS, IFN_REDUC_MAX, IFN_REDUC_MIN): New internal functions.
2252 * internal-fn.c (direct_internal_fn_optab): New function.
2253 (direct_internal_fn_array, direct_internal_fn_supported_p
2254 (internal_fn_expanders): Handle DEF_INTERNAL_SIGNED_OPTAB_FN.
2255 * fold-const-call.c (fold_const_reduction): New function.
2256 (fold_const_call): Handle CFN_REDUC_PLUS, CFN_REDUC_MAX and
2257 CFN_REDUC_MIN.
2258 * tree-vect-loop.c: Include internal-fn.h.
2259 (reduction_code_for_scalar_code): Rename to...
2260 (reduction_fn_for_scalar_code): ...this and return an internal
2261 function.
2262 (vect_model_reduction_cost): Take an internal_fn rather than
2263 a tree_code.
2264 (vect_create_epilog_for_reduction): Likewise. Build calls rather
2265 than assignments.
2266 (vectorizable_reduction): Use internal functions rather than tree
2267 codes for the reduction operation. Update calls to the functions
2268 above.
2269 * config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
2270 Use calls to internal functions rather than REDUC tree codes.
2271 * config/aarch64/aarch64-simd.md: Update comment accordingly.
2272
2273 2017-11-22 Olivier Hainque <hainque@adacore.com>
2274
2275 * config/vxworks.c (vxworks_override_options): Pick default
2276 dwarf version from macro value, VXWORKS_DWARF_VERSION_DEFAULT.
2277 * config/vxworks.h: Define VXWORKS_DWARF_VERSION_DEFAULT and
2278 DWARF_GNAT_ENCODINGS_DEFAULT.
2279 * config/vxworksae.h: Likewise.
2280
2281 2017-11-22 Marc Glisse <marc.glisse@inria.fr>
2282
2283 PR tree-optimization/83104
2284 * vr-values.c (simplify_stmt_using_ranges): Check integral argument,
2285 not result.
2286
2287 2017-11-22 Marek Polacek <polacek@redhat.com>
2288 H.J. Lu <hongjiu.lu@intel.com>
2289 Jason Merrill <jason@redhat.com>
2290
2291 PR c++/60336
2292 PR middle-end/67239
2293 PR target/68355
2294 * calls.c (initialize_argument_information): Call
2295 warn_parameter_passing_abi target hook.
2296 (store_one_arg): Use 0 for empty record size. Don't push 0 size
2297 argument onto stack.
2298 (must_pass_in_stack_var_size_or_pad): Return false for empty types.
2299 * common.opt: Update -fabi-version description.
2300 * config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
2301 (ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
2302 int_size_in_bytes.
2303 (ix86_is_empty_record): New function.
2304 (ix86_warn_parameter_passing_abi): New function.
2305 (TARGET_EMPTY_RECORD_P): Redefine.
2306 (TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
2307 * config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
2308 * doc/tm.texi: Regenerated.
2309 * doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
2310 TARGET_WARN_PARAMETER_PASSING_ABI): Add.
2311 * dwarf2out.c (get_ultimate_context): Move to tree.c.
2312 * explow.c (hard_function_value): Call arg_int_size_in_bytes
2313 instead of int_size_in_bytes.
2314 * expr.c (copy_blkmode_to_reg): Likewise.
2315 * function.c (aggregate_value_p): Return 0 for empty types.
2316 (assign_parm_find_entry_rtl): Call warn_parameter_passing_abi
2317 target hook.
2318 (locate_and_pad_parm): Call arg size_in_bytes instead
2319 size_in_bytes.
2320 * lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
2321 * stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
2322 * target.def (empty_record_p, warn_parameter_passing_abi): New target
2323 hooks.
2324 * targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
2325 (std_gimplify_va_arg_expr): Skip empty records. Call
2326 arg_size_in_bytes instead size_in_bytes.
2327 * targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
2328 * tree-core.h (tree_type_common): Add empty_flag.
2329 (tree_decl_common): Update comments.
2330 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
2331 DECL_PADDING_P.
2332 (unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
2333 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
2334 DECL_PADDING_P.
2335 (pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
2336 * tree.c (default_is_empty_type): New function.
2337 (default_is_empty_record): New function.
2338 (arg_int_size_in_bytes): New function.
2339 (arg_size_in_bytes): New function.
2340 (get_ultimate_context): New function.
2341 * tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
2342 TRANSLATION_UNIT_WARN_EMPTY_P.
2343 (default_is_empty_record, arg_int_size_in_bytes,
2344 arg_size_in_bytes, get_ultimate_context): Declare.
2345
2346 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
2347
2348 * config/arm/arm.c (cmse_clear_registers): New function.
2349 (cmse_nonsecure_call_clear_caller_saved): Replace register clearing
2350 code by call to cmse_clear_registers.
2351 (cmse_nonsecure_entry_clear_before_return): Likewise.
2352
2353 2017-11-22 Tamar Christina <tamar.christina@arm.com>
2354
2355 * config/arm/arm_neon.h (vdot_u32, vdotq_u32)
2356 (vdot_s32, vdotq_s32): New.
2357 (vdot_lane_u32, vdotq_lane_u32): New.
2358 (vdot_lane_s32, vdotq_lane_s32): New.
2359
2360
2361 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org>
2362
2363 PR middle-end/82547
2364 * wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
2365 for unsigned values with fewer HWIs than the precision.
2366 (test_overflow): New function.
2367 (wide_int_cc_tests): Call it.
2368
2369 2017-11-22 Richard Sandiford <richard.sandiford@linaro.org>
2370
2371 * emit-rtl.c (init_derived_machine_modes): Make sure ptr_mode
2372 has the same mode class as Pmode.
2373
2374 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
2375
2376 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Get rid of
2377 padding_bits_to_clear_ptr.
2378 (cmse_nonsecure_entry_clear_before_return): Likewise.
2379
2380 2017-11-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
2381
2382 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Use
2383 auto_sbitap instead of integer bitfield to control register needing
2384 clearing.
2385
2386 2017-11-22 Jakub Jelinek <jakub@redhat.com>
2387
2388 PR tree-optimization/83044
2389 * tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
2390 INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
2391 that need the upper bound. Subtract offset from
2392 get_addr_base_and_unit_offset only if positive and subtract it
2393 before division by eltsize rather than after it.
2394
2395 PR debug/83084
2396 * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
2397 debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
2398 (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
2399 asm.
2400
2401 PR middle-end/82875
2402 * optabs.c (expand_doubleword_mult, expand_binop): Before calling
2403 expand_binop with *mul_widen_optab, make sure at least one of the
2404 operands doesn't have VOIDmode.
2405
2406 PR debug/83034
2407 * dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.
2408
2409 PR rtl-optimization/82044
2410 PR tree-optimization/82042
2411 * dse.c (record_store): Check for overflow.
2412 (check_mem_read_rtx): Properly check for overflow if width == -1, call
2413 add_wild_read instead of clear_rhs_from_active_local_stores on
2414 overflow and log it into dump_file.
2415
2416 2017-11-22 Richard Biener <rguenther@suse.de>
2417
2418 * gimple-iterator.c (gimple_find_edge_insert_loc): Ignore
2419 fake edges to exit when looking for a place to insert.
2420 * tree-ssa-pre.c (clear_expression_ids): Inline into callers
2421 and remove.
2422 (insert_into_preds_of_block): Commit edge insertion immediately,
2423 assert that doesn't require new BBs.
2424 (fini_pre): Release expressions.
2425 (pass_pre::execute): Shuffle things around a bit, if the fn
2426 is too large do not compute AVAIL either as this is really the
2427 quadratic bit.
2428
2429 2017-11-22 Richard Biener <rguenther@suse.de>
2430
2431 PR tree-optimization/83089
2432 * tree-if-conv.c (pass_if_conversion::execute): If anything
2433 changed reset SCEV and free the number of iteration estimates.
2434
2435 2017-11-21 Martin Sebor <msebor@redhat.com>
2436
2437 PR tree-optimization/82945
2438 * calls.h (warn_nonstring_bound): Remove unused function.
2439
2440 2017-11-21 Martin Sebor <msebor@redhat.com>
2441
2442 PR tree-optimization/82945
2443 * builtins.c (expand_builtin_strlen): Call maybe_warn_nonstring_arg.
2444 * calls.h (maybe_warn_nonstring_arg): Declare new function.
2445 * calls.c (get_attr_nonstring_decl, maybe_warn_nonstring_arg): New
2446 functions.
2447 (initialize_argument_information): Call maybe_warn_nonstring_arg.
2448 * calls.h (get_attr_nonstring_decl): Declare new function.
2449 * doc/extend.texi (attribute nonstring): Update.
2450 * gimple-fold.c (gimple_fold_builtin_strncpy): Call
2451 get_attr_nonstring_decl and handle it.
2452 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same. Improve
2453 detection of nul-termination.
2454 (strlen_to_stridx): Change to a pointer.
2455 (handle_builtin_strlen, handle_builtin_stxncpy): Adjust.
2456 (pass_strlen::execute): Same.
2457
2458 2017-11-21 Sergey Shalnov <Sergey.Shalnov@intel.com>
2459
2460 * config/i386/i386-opts.h (enum prefer_vector_width): Added new enum
2461 for the new option -mprefer-vector-width=[none|128|256|512].
2462 * config/i386/i386.c (ix86_target_string): remove old style options
2463 -mprefer-avx256 and make -mprefer-avx128 as alias.
2464 (ix86_option_override_internal): Apply defaults for the
2465 -mprefer-vector-width=[128|256] option.
2466 * config/i386/i386.h (TARGET_PREFER_AVX128, TARGET_PREFER_AVX256):
2467 Implement macros to work with -mprefer-vector-width=.
2468 * config/i386/i386.opt: Implemented option
2469 -mprefer-vector-width=[none|128|256|512].
2470 * doc/invoke.texi: Documentation for
2471 -mprefer-vector-width=[none|128|256|512].
2472
2473 2017-11-21 Pat Haugen <pthaugen@us.ibm.com>
2474
2475 * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
2476
2477 2017-11-21 Jonathan Wakely <jwakely@redhat.com>
2478
2479 * doc/invoke.texi (-Wmaybe-uninitialized): Rephrase for clarity.
2480
2481 2017-11-21 Marc Glisse <marc.glisse@inria.fr>
2482
2483 * doc/generic.texi: Document POINTER_DIFF_EXPR, update
2484 POINTER_PLUS_EXPR.
2485 * cfgexpand.c (expand_debug_expr): Handle POINTER_DIFF_EXPR.
2486 * expr.c (expand_expr_real_2): Likewise.
2487 * fold-const.c (const_binop, fold_addr_of_array_ref_difference,
2488 fold_binary_loc): Likewise.
2489 * match.pd (X-X, P+(Q-P), &D-P, (P+N)-P, P-(P+N), (P+M)-(P+N),
2490 P-Q==0, -(A-B), X-Z<Y-Z, (X-Z)-(Y-Z), Z-X<Z-Y, (Z-X)-(Z-Y),
2491 (A-B)+(C-A)): New transformations for POINTER_DIFF_EXPR, based on
2492 MINUS_EXPR transformations.
2493 * optabs-tree.c (optab_for_tree_code): Handle POINTER_DIFF_EXPR.
2494 * tree-cfg.c (verify_expr, verify_gimple_assign_binary): Likewise.
2495 * tree-inline.c (estimate_operator_cost): Likewise.
2496 * tree-pretty-print.c (dump_generic_node, op_code_prio,
2497 op_symbol_code): Likewise.
2498 * tree-vect-stmts.c (vectorizable_operation): Likewise.
2499 * vr-values.c (extract_range_from_binary_expr): Likewise.
2500 * varasm.c (initializer_constant_valid_p_1): Likewise.
2501 * tree.def: New tree code POINTER_DIFF_EXPR.
2502
2503 2017-11-21 Uros Bizjak <ubizjak@gmail.com>
2504
2505 * config/i386/i386.md (*bswap<mode>2_movbe): Add
2506 integer suffix to movbe mnemonic.
2507 (*bswaphi2_movbe): Ditto.
2508 (bswaphi_lowpart): Merge with *bswaphi_lowpart_1.
2509
2510 2017-11-21 Jakub Jelinek <jakub@redhat.com>
2511
2512 PR c++/83045
2513 * tree-cfg.c (pass_warn_function_return::execute): Formatting fix.
2514 Also warn if seen __builtin_unreachable () call with BUILTINS_LOCATION.
2515 Use LOCATION_LOCUS when comparing against UNKNOWN_LOCATION.
2516
2517 2017-11-21 Martin Liska <mliska@suse.cz>
2518
2519 * tree-inline.c (expand_call_inline): Remove not needed
2520 xstrdup_for_dump.
2521
2522 2017-11-21 James Cowgill <James.Cowgill@imgtec.com>
2523 Jakub Jelinek <jakub@redhat.com>
2524
2525 PR target/82880
2526 * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
2527 Remove static keyword from f variable.
2528
2529 2017-11-21 Jakub Jelinek <jakub@redhat.com>
2530
2531 PR tree-optimization/83086
2532 * gimple-ssa-store-merging.c
2533 (imm_store_chain_info::try_coalesce_bswap): Test this_n.base_addr
2534 rather than n.base_addr.
2535
2536 2017-11-21 Martin Liska <mliska@suse.cz>
2537
2538 PR rtl-optimization/82044
2539 PR tree-optimization/82042
2540 * dse.c (check_mem_read_rtx): Check for overflow.
2541
2542 2017-11-21 Aldy Hernandez <aldyh@redhat.com>
2543
2544 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Fix
2545 typo in comment.
2546
2547 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
2548
2549 * cfgrtl.c (force_nonfallthru_and_redirect): Don't split a call
2550 and its corresponding call arg location note.
2551
2552 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
2553 Andrew Burgess <andrew.burgess@embecosm.com>
2554
2555 * config/arc/arc-protos.h (arc_compute_frame_size): Delete
2556 declaration.
2557 (arc_return_slot_offset): Likewise.
2558 (arc_eh_return_address_location): New declaration.
2559 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define.
2560 (MUST_SAVE_REGISTER): Add exception handler case.
2561 (MUST_SAVE_RETURN_ADDR): Likewise.
2562 (arc_frame_pointer_required): Likewise.
2563 (arc_frame_pointer_needed): New function.
2564 (arc_compute_frame_size): Changed.
2565 (arc_expand_prologue): Likewise.
2566 (arc_expand_epilogue): Likewise.
2567 (arc_initial_elimination_offset): Likewise.
2568 (arc_return_slot_offset): Delete.
2569 (arc_eh_return_address_location): New function.
2570 (arc_builtin_setjmp_frame_value): Likewise.
2571 * config/arc/arc.h (EH_RETURN_DATA_REGNO): Use 2 registers.
2572 (EH_RETURN_STACKADJ_RTX): Define.
2573 (EH_RETURN_HANDLER_RTX): Likewise.
2574 * config/arc/arc.md (eh_return): Delete.
2575
2576 2017-11-21 Aldy Hernandez <aldyh@redhat.com>
2577
2578 * print-tree.h (debug_vec_tree): Remove prototype.
2579 * gdbinit.in (pvt): Remove macro.
2580
2581 2017-11-21 Jakub Jelinek <jakub@redhat.com>
2582
2583 PR tree-optimization/83047
2584 * gimple-ssa-store-merging.c
2585 (imm_store_chain_info::output_merged_store): If the loads with the
2586 same vuse are in different basic blocks, for load_gsi pick a load
2587 location that is dominated by the other loads.
2588
2589 PR c++/83059
2590 * config/i386/i386.c (ix86_memmodel_check): Start
2591 -Winvalid-memory-model diagnostics with lowercase letter.
2592
2593 PR debug/82718
2594 * dwarf2out.c (dw_loc_list): If crtl->has_bb_partition, temporarily
2595 set in_cold_section_p to the partition containing loc_list->first.
2596 When seeing loc_list->last_before_switch node, update secname and
2597 perform range_across_switch second partition handling only after that.
2598
2599 PR debug/82933
2600 * run-rtl-passes.c: Include debug.h.
2601 (run_rtl_passes): Call debug_hooks->assembly_start.
2602 * dwarf2out.c (dwarf2out_assembly_start): Return early if invoked
2603 multiple times.
2604
2605 PR target/82981
2606 * internal-fn.c (expand_mul_overflow): Use OPTAB_WIDEN instead of
2607 OPTAB_DIRECT in calls to expand_simple_binop.
2608
2609 2017-11-20 David Malcolm <dmalcolm@redhat.com>
2610
2611 PR c/81404
2612 * Makefile.in (C_COMMON_OBJS): Add c-family/known-headers.o.
2613
2614 2017-11-20 David Malcolm <dmalcolm@redhat.com>
2615
2616 PR c++/72786
2617 * spellcheck.h (best_match::blithely_get_best_candidate): New
2618 accessor.
2619
2620 2017-11-20 Jakub Jelinek <jakub@redhat.com>
2621
2622 * config/i386/i386.c (parse_mtune_ctrl_str): Start diagnostics
2623 with lower case letter.
2624
2625 2017-11-20 Uros Bizjak <ubizjak@gmail.com>
2626
2627 * config/i386/i386.md (bswaphi2): New expander.
2628 (*bswaphi2_movbe): New insn pattern.
2629 (bswaphi -> rorhi pepehole2): New peephole pattern.
2630
2631 2017-11-20 Jeff Law <law@redhat.com>
2632
2633 * Makefile.in (OBJS): Add gimple-ssa-evrp-analyze.o.
2634 * gimple-ssa-evrp-analyze.c: New file pulled from gimple-ssa-evrp.c.
2635 * gimple-ssa-evrp-analyze.h: New file pulled from gimple-ssa-evrp.c.
2636 * gimple-ssa-evrp.c: Remove bits moved into new files. Include
2637 gimple-ssa-evrp-analyze.h.
2638
2639 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Do not
2640 set BB_VISITED here.
2641 (evrp_range_analyzer::enter): Set BB_VISITED here instead.
2642
2643 2017-11-20 Bin Cheng <bin.cheng@arm.com>
2644
2645 * tree-predcom.c: Add general comment on Store-Store chains.
2646 (split_data_refs_to_components): Postpone clearing eliminate_store_p
2647 flag in component.
2648 (get_chain_last_ref_at): Rename into...
2649 (get_chain_last_write_at): ...this.
2650 (get_chain_last_write_before_load): New function.
2651 (add_ref_to_chain): Promote type of chain from CT_STORE_LOAD to
2652 CT_STORE_STORE when write reference is added.
2653 (determine_roots_comp): Support load ref in CT_STORE_STORE chains.
2654 (is_inv_store_elimination_chain): Update get_chain_last_write_at call.
2655 (initialize_root_vars_store_elim_1): Ditto.
2656 (initialize_root_vars_store_elim_2): Ditto. Replace rhs once default
2657 definition is created.
2658 (execute_pred_commoning_chain): Support load ref in CT_STORE_STORE
2659 chain by replacing it with dominant stored value.
2660
2661 2017-11-20 Bin Cheng <bin.cheng@arm.com>
2662
2663 * tree-predcom.c (add_ref_to_chain): Remove check on distance.
2664
2665 2017-11-20 Marc Glisse <marc.glisse@inria.fr>
2666
2667 * vr-values.c (extract_range_from_binary_expr): Use a full range
2668 for VR_VARYING.
2669
2670 2017-11-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
2671
2672 * config/arm/arm.md (R4_REGNUM): Define constant.
2673 (nonsecure_call_internal): Remove r4 clobber.
2674 (nonsecure_call_value_internal): Likewise.
2675 * config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Remove second
2676 clobber and resequence match_operands.
2677 (nonsecure_call_value_reg_thumb1_v5): Likewise.
2678 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Likewise.
2679 (nonsecure_call_value_reg_thumb2): Likewise.
2680
2681 2017-11-20 Jakub Jelinek <jakub@redhat.com>
2682
2683 PR tree-optimization/78821
2684 * gimple-ssa-store-merging.c (find_bswap_or_nop_load): Give up
2685 if base is TARGET_MEM_REF. If base is not MEM_REF, set base_addr
2686 to the address of the base rather than the base itself.
2687 (find_bswap_or_nop_1): Just use pointer comparison for vuse check.
2688 (find_bswap_or_nop_finalize): New function.
2689 (find_bswap_or_nop): Use it.
2690 (bswap_replace): Return a tree rather than bool, change first
2691 argument from gimple * to gimple_stmt_iterator, allow inserting
2692 into an empty sequence, allow ins_stmt to be NULL - then emit
2693 all stmts into gsi. Fix up MEM_REF address gimplification.
2694 (pass_optimize_bswap::execute): Adjust bswap_replace caller.
2695 (struct store_immediate_info): Add N and INS_STMT non-static
2696 data members.
2697 (store_immediate_info::store_immediate_info): Initialize them
2698 from newly added ctor args.
2699 (merged_store_group::apply_stores): Formatting fixes. Sort by
2700 bitpos at the end.
2701 (stmts_may_clobber_ref_p): For stores call also
2702 refs_anti_dependent_p.
2703 (gather_bswap_load_refs): New function.
2704 (imm_store_chain_info::try_coalesce_bswap): New method.
2705 (imm_store_chain_info::coalesce_immediate_stores): Use it.
2706 (split_group): Handle LROTATE_EXPR and NOP_EXPR rhs_code specially.
2707 (imm_store_chain_info::output_merged_store): Fail if number of
2708 new estimated stmts is bigger or equal than old. Handle LROTATE_EXPR
2709 and NOP_EXPR rhs_code.
2710 (pass_store_merging::process_store): Compute n and ins_stmt, if
2711 ins_stmt is non-NULL and the store rhs is otherwise invalid, use
2712 LROTATE_EXPR rhs_code. Pass n and ins_stmt to store_immediate_info
2713 ctor.
2714 (pass_store_merging::execute): Calculate dominators.
2715
2716 * tree-ssa-math-opts.c (nop_stats, bswap_stats, struct symbolic_number,
2717 BITS_PER_MARKER, MARKER_MASK, MARKER_BYTE_UNKNOWN, HEAD_MARKER, CMPNOP,
2718 CMPXCHG, do_shift_rotate, verify_symbolic_number_p,
2719 init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
2720 find_bswap_or_nop_1, find_bswap_or_nop, pass_data_optimize_bswap,
2721 class pass_optimize_bswap, bswap_replace,
2722 pass_optimize_bswap::execute): Moved to ...
2723 * gimple-ssa-store-merging.c: ... this file.
2724 Include optabs-tree.h.
2725 (nop_stats, bswap_stats, do_shift_rotate, verify_symbolic_number_p,
2726 init_symbolic_number, find_bswap_or_nop_load, perform_symbolic_merge,
2727 find_bswap_or_nop_1, find_bswap_or_nop, bswap_replace): Put into
2728 anonymous namespace, remove static keywords.
2729 (pass_optimize_bswap::gate): Test BITS_PER_UNIT == 8 here...
2730 (pass_optimize_bswap::execute): ... rather than here. Formatting fix.
2731
2732 2017-11-20 Jan Hubicka <hubicka@ucw.cz>
2733
2734 PR bootstrap/83062
2735 * ipa-inline.c (can_inline_edge_p): Fix typo in previous patch.
2736
2737 2017-11-20 Aldy Hernandez <aldyh@redhat.com>
2738
2739 * vec.h (debug_helper): New function.
2740 (DEFINE_DEBUG_VEC): New macro.
2741 * hash-set.h (debug_helper): New function.
2742 (DEFINE_DEBUG_HASH_SET): New macro.
2743 * cfg.c (debug_slim (edge)): New function.
2744 Call DEFINE_DEBUG_VEC for edges.
2745 Call DEFINE_DEBUG_HASH_SET for edges.
2746 * cfghooks.c (debug_slim (basic_block)): New function.
2747 Call DEFINE_DEBUG_VEC for basic blocks.
2748 Call DEFINE_DEBUG_HASH_SET for basic blocks.
2749 * print-tree.c (debug_slim): New function to handle trees.
2750 Call DEFINE_DEBUG_VEC for trees.
2751 Call DEFINE_DEBUG_HASH_SET for trees.
2752 (debug (vec<tree, va_gc>) &): Remove.
2753 (debug (<vec<tree, va_gc>) *): Remove.
2754 * print-rtl.c (debug_slim): New function to handle const_rtx.
2755 Call DEFINE_DEBUG_VEC for rtx_def.
2756 Call DEFINE_DEBUG_VEC for rtx_insn.
2757 Call DEFINE_DEBUG_HASH_SET for rtx_def.
2758 Call DEFINE_DEBUG_HASH_SET for rtx_insn.
2759 * sel-sched-dump.c (debug (vec<rtx_insn *> &): Remove.
2760 (debug (vec<rtx_insn *> *ptr): Remove.
2761 (debug_insn_vector): Remove.
2762 * stor-layout.c (debug_rli): Call debug() instead of debug_vec_tree.
2763
2764 2017-11-20 Tom de Vries <tom@codesourcery.com>
2765
2766 PR rtl-optimization/82020
2767 * simplify-rtx.c (simplify_ternary_operation): Fix comparison mode of
2768 IF_THEN_ELSE condition.
2769
2770 2017-11-19 Jeff Law <law@redhat.com>
2771
2772 * tree-ssa-dom.c (record_equivalences_from_phis): Fix handling
2773 of degenerates resulting from ignoring an edge.
2774
2775 2017-11-19 Jan Hubicka <hubicka@ucw.cz>
2776
2777 PR ipa/81360
2778 * ipa-inline.c (can_inline_edge_p): Also check that caller is optimized
2779
2780 2017-11-19 Jan Hubicka <hubicka@ucw.cz>
2781
2782 PR ipa/83001
2783 * profile-count.c (profile_count::to_sreal_scale): Fix return value
2784 for uninitialied counts.
2785
2786 2017-11-19 Jan Hubicka <hubicka@ucw.cz>
2787
2788 PR ipa/60243
2789 * tree-inline.c (estimate_num_insns): Set to 1 at least.
2790
2791 2017-11-19 Jan Hubicka <hubicka@ucw.cz>
2792
2793 PR target/82713
2794 * i386.c (ix86_builtin_vectorization_cost): Be ready for insane types.
2795
2796 2017-11-19 Tom de Vries <tom@codesourcery.com>
2797
2798 * config/arc/arc.h (FUNCTION_PROFILER): Remove semicolon after
2799 "do while (0)".
2800
2801 2017-11-19 Tom de Vries <tom@codesourcery.com>
2802
2803 * config/phoenix.h (TARGET_OS_CPP_BUILTINS): Remove semicolon after
2804 "do {} while (0)".
2805
2806 2017-11-19 Tom de Vries <tom@codesourcery.com>
2807
2808 * config/visium/visium.h (ASM_OUTPUT_CASE_END): Remove semicolon after
2809 macro body.
2810
2811 2017-11-19 Tom de Vries <tom@codesourcery.com>
2812
2813 * config/ft32/ft32.h (REGISTER_TARGET_PRAGMAS): Remove semicolon after
2814 "do {} while (0)".
2815 * config/spu/spu.h (REGISTER_TARGET_PRAGMAS): Same.
2816
2817 2017-11-19 Tom de Vries <tom@codesourcery.com>
2818
2819 * config/mcore/mcore-elf.h (MCORE_EXPORT_NAME): Remove semicolon after
2820 "do {} while (0)".
2821 * config/mcore/mcore.h (ASM_OUTPUT_ALIGNED_COMMON): After missing
2822 semicolon after MCORE_EXPORT_NAME call.
2823
2824 2017-11-19 Tom de Vries <tom@codesourcery.com>
2825
2826 PR target/82961
2827 * vmsdbgout.c (vmsdbgout_early_finish): New function.
2828 (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
2829
2830 2017-11-18 Jan Hubicka <hubicka@ucw.cz>
2831
2832 * cgraphclones.c (cgraph_edge::clone): Rename gcov_count to prof_count.
2833 (cgraph_edge::clone): Cleanup updating of profile.
2834 * ipa-cp.c (update_profiling_info): Likewise.
2835 * ipa-inline-transform.c (inline_transform): Likewise.
2836 * ipa-inline.c (inline_small_functions): Add missing space to dump.
2837 * ipa-split.c (execute_split_functions): Do not split when function
2838 is cold.
2839 * predict.c (estimate_bb_frequencies): Cleanup updating of profile.
2840 * profile-count.c (profile_count::dump): Add global0.
2841 (profile_count::to_cgraph_frequency): Do not ICE when entry is
2842 undefined.
2843 (profile_count::to_sreal_scale): Likewise.
2844 (profile_count::adjust_for_ipa_scaling): Fix typo in comment.
2845 (profile_count::combine_with_ipa_count): New function.
2846 * profile-count.h (profile_guessed_global0adjusted): New.
2847 (profile_count::adjusted_zero): New.
2848 (profile_count::global0adjusted): New.
2849 (profile_count::combine_with_ipa_count): New.
2850 * tree-inline.c (copy_edges_for_bb): Add NUM/DEN arugment;
2851 correct profile of return block of split functions.
2852 (copy_cfg_body): Remove unused profile_count.
2853 (copy_body): Likewise.
2854 (expand_call_inline): Update.
2855 (tree_function_versioning): Update.
2856
2857 2017-11-18 Aldy Hernandez <aldyh@redhat.com>
2858
2859 * hash-set.h (hash_set::empty): New.
2860 * tree-ssa-threadbackward.h: Delete.
2861 * tree-ssa-threadbackward.c (class thread_jumps): New.
2862 Move max_threaded_paths into class.
2863 (fsm_find_thread_path): Remove arguments that are now in class.
2864 (profitable_jump_thread_path): Rename to...
2865 (thread_jumps::profitable_jump_thread_path): ...this.
2866 (convert_and_register_jump_thread_path): Rename to...
2867 (thread_jumps::convert_and_register_current_path): ...this.
2868 (check_subpath_and_update_thread_path): Rename to...
2869 (thread_jumps::check_subpath_and_update_thread_path): ...this.
2870 (register_jump_thread_path_if_profitable): Rename to...
2871 (thread_jumps::register_jump_thread_path_if_profitable): ...this.
2872 (handle_phi): Rename to...
2873 (thread_jumps::handle_phi): ...this.
2874 (handle_assignment): Rename to...
2875 (thread_jumps::handle_assignment): ...this.
2876 (fsm_find_control_statement_thread_paths): Rename to...
2877 (thread_jumps::fsm_find_control_statement_thread_paths): ...this.
2878 (find_jump_threads_backwards): Rename to...
2879 (thread_jumps::find_jump_threads_backwards): ...this.
2880 Initialize path local data.
2881 (pass_thread_jumps::execute): Call find_jump_threads_backwards
2882 from within thread_jumps class.
2883 (pass_early_thread_jumps::execute): Same.
2884
2885 2017-11-17 Jan Hubicka <hubicka@ucw.cz>
2886
2887 * cgraph.c (cgraph_node::dump): Do IPA sanity checking on IPA counts.
2888
2889 2017-11-17 Steve Ellcey <sellcey@cavium.com>
2890
2891 * config/aarch64/aarch64-simd.md (fnma<mode>4): Move neg operator
2892 to canonical location.
2893
2894 2017-11-17 Steve Ellcey <sellcey@cavium.com>
2895
2896 PR target/81356
2897 * config/aarch64/aarch64.c (aarch64_use_by_pieces_infrastructure_p):
2898 Remove.
2899 (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Remove define.
2900
2901 2017-11-17 H.J. Lu <hongjiu.lu@intel.com>
2902
2903 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
2904 rcrt1.o%s/grcrt1.o%s for -static-pie.
2905
2906 2017-11-17 Jan Hubicka <hubicka@ucw.cz>
2907
2908 * i386.c (ix86_multiplication_cost, ix86_division_cost,
2909 ix86_shift_rotate_cost): Break out from ...
2910 (ix86_rtx_costs): ... here.
2911 (ix86_add_stmt_cost): Use rtx cost machinery to compute cost of
2912 vector operations.
2913
2914 2017-11-17 Jan Hubicka <hubicka@ucw.cz>
2915
2916 * predict.c (determine_unlikely_bbs): Set cgraph node count to 0
2917 when entry block was promoted unlikely.
2918 (estimate_bb_frequencies): Increase frequency scale.
2919 * profile-count.h (profile_count): Export precision info.
2920
2921 2017-11-17 Jan Hubicka <hubicka@ucw.cz>
2922
2923 * tree-tailcall.c (eliminate_tail_call): Be more careful about not
2924 disturbin profile of entry block.
2925
2926 2017-11-17 Jan Hubicka <hubicka@ucw.cz>
2927
2928 * ipa-fnsummary.c (estimate_node_size_and_time): Be more tolerant for
2929 roundoff errors.
2930
2931 2017-11-17 Jan Hubicka <hubicka@ucw.cz>
2932
2933 * ipa-cp.c (update_profiling_info): Handle conversion to local profile.
2934 * tree-cfg.c (execute_fixup_cfg): Do fixup same way as inliner does.
2935
2936 2017-11-17 Jeff Law <law@redhat.com>
2937
2938 * gimple-ssa-evrp.c (class evrp_range_analyzer): New class extracted
2939 from evrp_dom_walker class. Various methods moved into new class.
2940 (evrp_range_analyzer::evrp_range_analyzer): Constructor for new class.
2941 (evrp_range_analyzer::enter): New method.
2942 (evrp_range_analyzer::leave): New method.
2943 (evrp_dom_walker): Remove delegators no longer needed by this class.
2944 Replace vr_values data member with evrp_range_analyzer
2945
2946 * gimple-ssa-evrp.c (evrp_dom_walker::record_ranges_from_phis): New
2947 method extracted from evrp_dom_walker::before_dom_children.
2948 (evrp_dom_walker::record_ranges_from_stmt): Likewise.
2949 (evrp_dom_walker::record_ranges_from_incoming_edge): Likewise.
2950
2951 * gimple-ssa-evrp.c (evrp_dom_walker): Add cleanup method.
2952 Add private copy constructor and move assignment operators.
2953 Privatize methods and class data where trivially possible.
2954 (evrp_dom_walker::cleanup): New function, extracted from
2955 execute_early_vrp. Simplify access to class data.
2956
2957 * vr-values.h (get_output_for_vrp): Prototype.
2958 * vr-values.c (get_output_for_vrp): New function extracted from
2959 vrp_visit_assignment_or_call and extract_range_from_stmt.
2960 (vrp_visit_assignment_or_call): Use get_output_for_vrp. Simplify.
2961
2962 2017-11-17 Luis Machado <luis.machado@linaro.org>
2963
2964 * config/aarch64/aarch64.c
2965 (qdf24xx_prefetch_tune) <default_opt_level>: Set to -1.
2966 (qdf24xx_tunings) <autoprefetcher_model>: Set to
2967 tune_params::AUTOPREFETCHER_WEAK.
2968
2969 2017-11-17 Tamar Christina <tamar.christina@arm.com>
2970
2971 PR target/82641
2972 * config/arm/arm.c (arm_valid_target_attribute_rec):
2973 Parse "arch=" and "+<ext>".
2974 (arm_valid_target_attribute_tree): Re-init global options.
2975 (arm_option_override): Make non-static.
2976 (arm_options_perform_arch_sanity_checks): Make errors fatal.
2977 * gcc/config/arm/arm-c.c (__ARM_FEATURE_CMSE): Support undef.
2978 (__ARM_FEATURE_CRC32): Support undef.
2979 * config/arm/arm_acle.h (__ARM_FEATURE_CRC32): Replace with pragma.
2980 * doc/extend.texi (ARM Function Attributes): Add pragma and target.
2981
2982 2017-11-17 David Malcolm <dmalcolm@redhat.com>
2983
2984 * gdbinit.in (break-on-diagnostic): New command.
2985
2986 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
2987
2988 * config/i386/i386.c (ix86_expand_epilogue): Change simple
2989 return to indirect jump for EH return if control-flow
2990 protection is enabled. Change explicit 'false' argument in
2991 pro_epilogue_adjust_stack with a value of
2992 flag_cf_protection.
2993 * config/i386/i386.md (simple_return_indirect_internal):
2994 Remove SImode restriction to support 64-bit.
2995
2996 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org>
2997
2998 * combine.c (added_notes_insn): New.
2999 (try_combine): Handle added_notes_insn like added_links_insn.
3000 Rewrite return value code.
3001 (distribute_notes): Set added_notes_insn to the earliest insn we added
3002 a note to.
3003
3004 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org>
3005
3006 PR rtl-optimization/82621
3007 * combine.c (try_combine): Do not split PARALLELs of two SETs if the
3008 dest of one of those SETs is unused.
3009
3010 2017-11-17 Richard Biener <rguenther@suse.de>
3011
3012 PR fortran/83017
3013 * tree-core.h (enum annot_expr_kind): Add annot_expr_parallel_kind.
3014 * tree-pretty-print.c (dump_generic_node): Handle
3015 annot_expr_parallel_kind.
3016 * tree-cfg.c (replace_loop_annotate_in_block): Likewise.
3017 * gimplify.c (gimple_boolify): Likewise.
3018
3019 2017-11-17 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
3020
3021 * config.gcc (extra_headers): Add cet.h for x86 targets.
3022 * config/i386/cet.h: New file.
3023 * doc/install.texi: Add --enable-cet/--disable-cet.
3024
3025 2017-11-17 Richard Biener <rguenther@suse.de>
3026
3027 PR tree-optimization/83017
3028 * tree-parloops.c (MIN_PER_THREAD): Use --param parloops-min-per-thread.
3029 (gen_parallel_loop): Properly count iterations.
3030 (parallelize_loops): Handle loop->can_be_parallel independent
3031 of flag_loop_parallelize_all. Make static profitability test match
3032 the runtime one.
3033 * params.def (PARAM_PARLOOPS_MIN_PER_THREAD): New.
3034 * invoke.texi (parloops-min-per-thread): Document.
3035
3036 2017-11-17 Vineet Gupta <vgupta@synopsys.com>
3037
3038 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
3039 upstreaming review comments.
3040
3041 2017-11-17 Tamar Christina <tamar.christina@arm.com>
3042
3043 * expr.c (copy_blkmode_to_reg): Fix bitsize for targets
3044 with fast unaligned access.
3045 * doc/sourcebuild.texi (word_mode_no_slow_unalign): New.
3046
3047 2017-11-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
3048
3049 * config/arm/arm.c (cmse_nonsecure_entry_clear_before_return): Allocate
3050 to_clear_arg_regs_bitmap to the same size as to_clear_bitmap.
3051
3052 2017-11-17 Richard Biener <rguenther@suse.de>
3053
3054 * tree-ssa-pre.c (phi_translate_1): Remove redundant constant
3055 folding of references.
3056
3057 2017-11-17 Qing Zhao <qing.zhao@oracle.com>
3058
3059 PR middle-end/78809
3060 * gimple-fold.c (gimple_fold_builtin_string_compare): Add handling
3061 of replacing call to strncmp with corresponding call to strcmp when
3062 meeting conditions.
3063
3064 2017-11-17 Sergey Shalnov <Sergey.Shalnov@intel.com>
3065
3066 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Add tuning
3067 option prefer-avx256 for skylake-avx512 configuration.
3068 * config/i386/i386.c (ix86_option_override_internal): Ditto.
3069 (get_builtin_code_for_version): Ditto.
3070
3071 2017-11-17 Chung-Ju Wu <jasonwucj@gmail.com>
3072 Monk Chiang <sh.chiang04@gmail.com>
3073
3074 * config/nds32/nds32.h (FIRST_PSEUDO_REGISTER): Modify.
3075 (FIXED_REGISTERS): Reserve more register numbers.
3076 (CALL_USED_REGISTERS): Likewise.
3077 (REG_ALLOC_ORDER): Likewise.
3078 (REG_CLASS_CONTENTS): Likewise.
3079 (REGISTER_NAMES): Likewise.
3080
3081 2017-11-17 Chung-Ju Wu <jasonwucj@gmail.com>
3082 Kito Cheng <kito.cheng@gmail.com>
3083
3084 * config/nds32/nds32-modes.def: Add vector mode V4QI V2HI V8QI V4HI
3085 V2SI.
3086 * config/nds32/iterators.md: Add vector mode iterators and attributes.
3087
3088 2017-11-16 Steven Munroe <munroesj@gcc.gnu.org>
3089
3090 * config/rs6000/mmintrin.h (_mm_add_pi32[_ARCH_PWR]): Correct
3091 parameter list for vec_splats.
3092
3093 2017-11-16 Joseph Myers <joseph@codesourcery.com>
3094
3095 * doc/invoke.texi (-std=c17): Refer to 2018 expected publication
3096 date of C17.
3097 (-std=c18, -std=iso9899:2018, -std=gnu18): Document option aliases.
3098
3099 2017-11-16 Thomas Koenig <tkoenig@gcc.gnu.org>
3100
3101 PR bootstrap/82856
3102 * doc/install.texi: Document incompatibility of Perl >=5.6.26
3103 with the required version of automake 1.11.6.
3104
3105 2017-11-16 Pat Haugen <pthaugen@us.ibm.com>
3106
3107 * rs6000/power9.md (power9fpdiv): New automaton and cpu_unit defined
3108 for it.
3109 (DU_C2_3_power9): Correct reservation combinations.
3110 (FP_DIV_power9, VEC_DIV_power9): New.
3111 (power9-alu): Split out rotate/shift...
3112 (power9-rot): ...to here, correct dispatch resource.
3113 (power9-cracked-alu, power9-mul, power9-mul-compare): Correct dispatch
3114 resource.
3115 (power9-fp): Correct latency.
3116 (power9-sdiv): Add div/sqrt resource.
3117 (power9-ddiv): Correct latency, add div/sqrt resource.
3118 (power9-sqrt, power9-dsqrt): Add div/sqrt resource.
3119 (power9-vecfdiv, power9-vecdiv): Correct latency, add div/sqrt
3120 resource.
3121 (power9-qpdiv, power9-qpmul): Adjust resource usage.
3122
3123 2017-11-15 Michael Meissner <meissner@linux.vnet.ibm.com>
3124
3125 * config/rs6000/rs6000.c (rs6000_expand_builtin): Do not do the
3126 switch statement mapping KF built-ins to TF built-ins if we don't
3127 have the proper ISA 3.0 assembler support.
3128
3129 2017-11-16 Jan Hubicka <hubicka@ucw.cz>
3130
3131 * tree-emutls.c (lower_emutls_data): Remove unused bb_freq.
3132 (lower_emutls_function_body): Do not compute it.
3133
3134 2017-11-16 Jan Hubicka <hubicka@ucw.cz>
3135
3136 * ipa-split.c (split_bb_info): Turn time to sreal.
3137 (split_point): Likewise.
3138 (dump_split_point): Likewise.
3139 (fine_split_points): Likewise.
3140 (execute_split_functions): Only zero split_bbs; turn time to sreals.
3141
3142 2017-11-16 Jan Hubicka <hubicka@ucw.cz>
3143
3144 * ipa-fnsummary.c (analyze_function_body): Accumulate time consistently
3145 in sreal.
3146
3147 2017-11-16 Jan Hubicka <hubicka@ucw.cz>
3148
3149 * predict.c (combine_predictions_for_bb): Preserve zero predicted
3150 edges.
3151 (expensive_function_p): Remove useless assert.
3152 (determine_unlikely_bbs): Propagate also forward; determine cold blocks
3153
3154 2017-11-16 Martin Sebor <msebor@redhat.com>
3155
3156 PR tree-optimization/82588
3157 PR tree-optimization/82583
3158 * tree-vrp.c (check_array_ref): Handle flexible array members,
3159 string literals, and inner indices.
3160 (search_for_addr_array): Add detail to diagnostics.
3161
3162 2017-11-16 Nathan Sidwell <nathan@acm.org>
3163
3164 PR c++/82836
3165 PR c++/82737
3166 * tree.h (COPY_DECL_RTL): Rename parms for clarity.
3167 (SET_DECL_ASSEMBLER_NAME): Forward to
3168 overwrite_decl_assembler_name.
3169 (COPY_DECL_ASSEMBLER_NAME): Rename parms for clarity.
3170 (overwrite_decl_assembler_name): Declare.
3171 * tree.c (overwrite_decl_assembler_name): New.
3172 * langhooks-def.h (lhd_overwrite_decl_assembler_name): Declare.
3173 (LANG_HOOKS_OVERWRITE_DECL_ASSEMBLER_NAME): Provide default.
3174 (LANG_HOOKS_INITIALIZER): Add it.
3175 * langhooks.h (struct lang_hooks): Add overwrite_decl_assembler_name.
3176 * langhooks.c (lhd_set_decl_assembler_name): Use
3177 SET_DECL_ASSEMBLER_NAME.
3178 (lhd_overwrite_decl_assembler_name): Default implementation.
3179
3180 2017-11-16 Wilco Dijkstra <wdijkstr@arm.com>
3181 Jackson Woodruff <jackson.woodruff@arm.com>
3182
3183 PR tree-optimization/71026
3184 * match.pd: Canonicalize constant multiplies in division.
3185
3186 2017-11-16 Wilco Dijkstra <wdijkstr@arm.com>
3187
3188 * opts.c (default_options_table): Add OPT_fomit_frame_pointer entry.
3189 * common/config/alpha/alpha-common.c (TARGET_OPTION_OPTIMIZATION_TABLE):
3190 Remove OPT_fomit_frame_pointer entry.
3191 * common/config/arc/arc-common.c: Likewise.
3192 * common/config/arm/arm-common.c: Likewise.
3193 * common/config/avr/avr-common.c: Likewise.
3194 * common/config/c6x/c6x-common.c: Likewise.
3195 * common/config/cr16/cr16-common.c: Likewise.
3196 * common/config/cris/cris-common.c: Likewise.
3197 * common/config/epiphany/epiphany-common.c: Likewise.
3198 * common/config/fr30/fr30-common.c: Likewise.
3199 * common/config/frv/frv-common.c: Likewise.
3200 * common/config/ia64/ia64-common.c: Likewise.
3201 * common/config/iq2000/iq2000-common.c: Likewise.
3202 * common/config/lm32/lm32-common.c: Likewise.
3203 * common/config/m32r/m32r-common.c: Likewise.
3204 * common/config/mcore/mcore-common.c: Likewise.
3205 * common/config/microblaze/microblaze-common.c: Likewise.
3206 * common/config/mips/mips-common.c: Likewise.
3207 * common/config/mmix/mmix-common.c: Likewise.
3208 * common/config/mn10300/mn10300-common.c: Likewise.
3209 * common/config/nios2/nios2-common.c: Likewise.
3210 * common/config/pa/pa-common.c: Likewise.
3211 * common/config/pdp11/pdp11-common.c: Likewise.
3212 * common/config/powerpcspe/powerpcspe-common.c: Likewise.
3213 * common/config/riscv/riscv-common.c: Likewise.
3214 * common/config/rs6000/rs6000-common.c: Likewise.
3215 * common/config/rx/rx-common.c: Likewise.
3216 * common/config/s390/s390-common.c: Likewise.
3217 * common/config/sh/sh-common.c: Likewise.
3218 * common/config/sparc/sparc-common.c: Likewise.
3219 * common/config/tilegx/tilegx-common.c: Likewise.
3220 * common/config/tilepro/tilepro-common.c: Likewise.
3221 * common/config/v850/v850-common.c: Likewise.
3222 * common/config/visium/visium-common.c: Likewise.
3223 * common/config/xstormy16/xstormy16-common.c: Likewise.
3224 * common/config/xtensa/xtensa-common.c: Likewise.
3225 * invoke.texi (-fomit-frame-pointer): Update documentation.
3226
3227 2017-11-16 Jan Hubicka <hubicka@ucw.cz>
3228
3229 * tree-cfg.c (gimple_find_sub_bbs): Do not compute freq.
3230
3231 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3232
3233 * cfg.c (scale_bbs_frequencies_int,
3234 cale_bbs_frequencies_gcov_type): Remove.
3235 * cfg.h (scale_bbs_frequencies_int,
3236 cale_bbs_frequencies_gcov_type): Remove.
3237
3238 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3239
3240 * tree-ssa-loop-manip.c
3241 (scale_dominated_blocks_in_loop): Update to profile counts.
3242 (tree_transform_and_unroll_loop): Likewise.
3243
3244 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3245
3246 * tree-vect-loop-manip.c (vect_do_peeling): Do not use
3247 scale_bbs_frequencies_int.
3248
3249 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3250
3251 * final.c (compute_alignments): Use counts rather than frequencies.
3252
3253 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3254
3255 * cfgloopanal.c: Include sreal.h
3256 (average_num_loop_insns): Use counts and sreal for accounting.
3257
3258 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3259
3260 * cfgloopmanip.c (duplicate_loop_to_header_edge): Cleanup profile
3261 manipulation.
3262
3263 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com>
3264 Kito Cheng <kito.cheng@gmail.com>
3265
3266 * config/nds32/constraints.md: Provide more constraints.
3267 * config/nds32/nds32.h (enum reg_class, REG_CLASS_NAMES,
3268 REG_CLASS_CONTENTS): Define R5_REG, R8_REG, and FRAME_POINTER_REG to
3269 support constraints usage.
3270
3271 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com>
3272
3273 * config/nds32/constants.md (UNSPEC_VOLATILE_FUNC_RETURN): Remove.
3274
3275 2017-11-16 Chung-Ju Wu <jasonwucj@gmail.com>
3276 Kito Cheng <kito.cheng@gmail.com>
3277
3278 * config/nds32/nds32.opt: Add mext-perf, mext-perf2, mext-string.
3279 * config/nds32/nds32.opt: Refine the layout.
3280 * config/nds32/nds32.c (TARGET_EXT_PERF, TARGET_EXT_PERF2,
3281 TARGET_EXT_STRING): Support new options.
3282 * config/nds32/nds32.h: Likewise.
3283 * config/nds32/nds32.md: Likewise.
3284 * config/nds32/nds32-predicates.c: Likewise.
3285 * config/nds32/constraints.md: Likewise.
3286 * common/config/nds32/nds32-common.c: Likewise.
3287
3288 2017-11-16 Julia Koval <julia.koval@intel.com>
3289
3290 PR target/82983
3291 * config/i386/gfniintrin.h: Add sse check.
3292 * config/i386/i386.c (ix86_expand_builtin): Fix gfni check.
3293
3294 2017-11-16 Julia Koval <julia.koval@intel.com>
3295
3296 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI2_SET,
3297 OPTION_MASK_ISA_AVX512VBMI2_UNSET): New.
3298 (ix86_handle_option): Handle -mavx512vbmi2.
3299 * config/i386/cpuid.h: Add bit_AVX512VBMI2.
3300 * config/i386/driver-i386.c (host_detect_local_cpu): Handle new bit.
3301 * config/i386/i386-c.c (__AVX512VBMI2__): New.
3302 * config/i386/i386.c (ix86_target_string): Handle -mavx512vbmi2.
3303 (ix86_valid_target_attribute_inner_p): Ditto.
3304 * config/i386/i386.h (TARGET_AVX512VBMI2, TARGET_AVX512VBMI2_P): New.
3305 * config/i386/i386.opt (mavx512vbmi2): New option.
3306 * doc/invoke.texi: Add new option.
3307
3308 2017-11-16 Julia Koval <julia.koval@intel.com>
3309
3310 * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, _mm256_gf2p8mul_epi8,
3311 _mm_mask_gf2p8mul_epi8, _mm_maskz_gf2p8mul_epi8,
3312 _mm256_mask_gf2p8mul_epi8, _mm256_maskz_gf2p8mul_epi8,
3313 _mm512_mask_gf2p8mul_epi8, _mm512_maskz_gf2p8mul_epi8,
3314 _mm512_gf2p8mul_epi8): New intrinsics.
3315 * config/i386/i386-builtin-types.def
3316 (V64QI_FTYPE_V64QI_V64QI): New type.
3317 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8mulb_v64qi,
3318 __builtin_ia32_vgf2p8mulb_v64qi_mask, __builtin_ia32_vgf2p8mulb_v32qi,
3319 __builtin_ia32_vgf2p8mulb_v32qi_mask, __builtin_ia32_vgf2p8mulb_v16qi,
3320 __builtin_ia32_vgf2p8mulb_v16qi_mask): New builtins.
3321 * config/i386/sse.md (vgf2p8mulb_*): New pattern.
3322 * config/i386/i386.c (ix86_expand_args_builtin): Handle new type.
3323
3324 2017-11-15 Uros Bizjak <ubizjak@gmail.com>
3325
3326 * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
3327 explicitly as a stream of bytes.
3328
3329 2017-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3330
3331 * config/rs6000/altivec.h (vec_xst_be): New #define.
3332 * config/rs6000/altivec.md (altivec_vperm_<mode>_direct): Rename
3333 and externalize from *altivec_vperm_<mode>_internal.
3334 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI): Remove macro
3335 instantiation.
3336 (XL_BE_V8HI): Likewise.
3337 (XL_BE_V4SI): Likewise.
3338 (XL_BE_V4SI): Likewise.
3339 (XL_BE_V2DI): Likewise.
3340 (XL_BE_V4SF): Likewise.
3341 (XL_BE_V2DF): Likewise.
3342 (XST_BE): Add BU_VSX_OVERLOAD_X macro instantiation.
3343 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Correct
3344 all array entries with these keys: VSX_BUILTIN_VEC_XL,
3345 VSX_BUILTIN_VEC_XL_BE, VSX_BUILTIN_VEC_XST. Add entries for key
3346 VSX_BUILTIN_VEC_XST_BE.
3347 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Remove.
3348 (altivec_expand_builtin): Remove handling for VSX_BUILTIN_XL_BE_*
3349 built-ins.
3350 (altivec_init_builtins): Replace conditional calls to def_builtin
3351 for __builtin_vsx_ld_elemrev_{v8hi,v16qi} and
3352 __builtin_vsx_st_elemrev_{v8hi,v16qi} based on TARGET_P9_VECTOR
3353 with unconditional calls. Remove calls to def_builtin for
3354 __builtin_vsx_le_be_<mode>. Add a call to def_builtin for
3355 __builtin_vec_xst_be.
3356 * config/rs6000/vsx.md (vsx_ld_elemrev_v8hi): Convert define_insn
3357 to define_expand, and add alternate RTL generation for P8.
3358 (*vsx_ld_elemrev_v8hi_internal): New define_insn based on
3359 vsx_ld_elemrev_v8hi.
3360 (vsx_ld_elemrev_v16qi): Convert define_insn to define_expand, and
3361 add alternate RTL generation for P8.
3362 (*vsx_ld_elemrev_v16qi_internal): New define_insn based on
3363 vsx_ld_elemrev_v16qi.
3364 (vsx_st_elemrev_v8hi): Convert define_insn
3365 to define_expand, and add alternate RTL generation for P8.
3366 (*vsx_st_elemrev_v8hi_internal): New define_insn based on
3367 vsx_st_elemrev_v8hi.
3368 (vsx_st_elemrev_v16qi): Convert define_insn to define_expand, and
3369 add alternate RTL generation for P8.
3370 (*vsx_st_elemrev_v16qi_internal): New define_insn based on
3371 vsx_st_elemrev_v16qi.
3372
3373 2017-11-15 H.J. Lu <hongjiu.lu@intel.com>
3374
3375 PR target/82990
3376 * config/i386/i386.c (pass_insert_vzeroupper::gate): Remove
3377 TARGET_AVX512ER check.
3378 (ix86_option_override_internal): Set MASK_VZEROUPPER if
3379 neither -mzeroupper nor -mno-zeroupper is used and
3380 TARGET_EMIT_VZEROUPPER is set.
3381 * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): New.
3382 * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER.
3383
3384 2017-11-15 Will Schmidt <will_schmidt@vnet.ibm.com>
3385
3386 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
3387 folding of vector compares.
3388 (fold_build_vec_cmp): New helper function.
3389 (fold_compare_helper): New helper function.
3390 (builtin_function_type): Add compare builtins to the list of functions
3391 having unsigned arguments. Cosmetic updates to comment indentation.
3392 * config/rs6000/vsx.md (vcmpneb, vcmpneh, vcmpnew): Update to specify
3393 the not+eq combination.
3394
3395 2017-11-15 Bin Cheng <bin.cheng@arm.com>
3396
3397 PR tree-optimization/82726
3398 PR tree-optimization/70754
3399 * tree-predcom.c (order_drefs_by_pos): New function.
3400 (combine_chains): Move code setting has_max_use_after to...
3401 (try_combine_chains): ...here. New parameter. Sort combined chains
3402 according to position information.
3403 (tree_predictive_commoning_loop): Update call to above function.
3404 (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
3405
3406 2017-11-15 Bin Cheng <bin.cheng@arm.com>
3407
3408 PR tree-optimization/82726
3409 Revert
3410 2017-01-23 Bin Cheng <bin.cheng@arm.com>
3411
3412 PR tree-optimization/70754
3413 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
3414 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
3415 combined stmt before it if not NULL.
3416 (combine_chains): Process refs reversely and compute dominance point
3417 for root ref.
3418
3419 Revert
3420 2017-02-23 Bin Cheng <bin.cheng@arm.com>
3421
3422 PR tree-optimization/79663
3423 * tree-predcom.c (combine_chains): Process refs in reverse order
3424 only for ZERO length chains, and add explaining comment.
3425
3426 2017-11-15 Tamar Christina <tamar.christina@arm.com>
3427
3428 * config/arm/arm-cpus.in (armv8_3, ARMv8_3a, armv8.3-a): New
3429 * config/arm/arm-tables.opt (armv8.3-a): Regenerated.
3430 * doc/invoke.texi (ARM Options): Add armv8.3-a.
3431
3432 2017-11-15 Tamar Christina <tamar.christina@arm.com>
3433
3434 * config/arm/arm.h (TARGET_DOTPROD): Add arm_arch8_2.
3435
3436 2017-11-15 Martin Liska <mliska@suse.cz>
3437
3438 * tree-cfg.c (pass_warn_function_return::execute):
3439 Compare warn_return_type for greater than zero.
3440
3441 2017-11-15 Sebastian Peryt <sebastian.peryt@intel.com>
3442
3443 PR target/82941
3444 PR target/82942
3445 * config/i386/i386.c (pass_insert_vzeroupper): Modify gate condition
3446 to return true on Xeon and not on Xeon Phi.
3447 (ix86_check_avx256_register): Changed to ...
3448 (ix86_check_avx_upper_register): ... this. Add extra check for
3449 VALID_AVX512F_REG_OR_XI_MODE.
3450 (ix86_avx_u128_mode_needed): Changed
3451 ix86_check_avx256_register to ix86_check_avx_upper_register.
3452 (ix86_check_avx256_stores): Changed to ...
3453 (ix86_check_avx_upper_stores): ... this. Changed
3454 ix86_check_avx256_register to ix86_check_avx_upper_register.
3455 (ix86_avx_u128_mode_after): Changed
3456 avx_reg256_found to avx_upper_reg_found. Changed
3457 ix86_check_avx256_stores to ix86_check_avx_upper_stores.
3458 (ix86_avx_u128_mode_entry): Changed
3459 ix86_check_avx256_register to ix86_check_avx_upper_register.
3460 (ix86_avx_u128_mode_exit): Ditto.
3461 * config/i386/i386.h: (host_detect_local_cpu): New define.
3462
3463 2017-11-15 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
3464
3465 * config/arm/xgene1.md (xgene1): Split into automatons
3466 xgene1_main, xgene1_decoder, xgene1_div, xgene1_simd.
3467 (xgene1_f_load): Adjust reservations and/or types.
3468 (xgene1_f_store): Likewise.
3469 (xgene1_load_pair): Likewise.
3470 (xgene1_store_pair): Likewise.
3471 (xgene1_fp_load1): Likewise.
3472 (xgene1_load1): Likewise.
3473 (xgene1_store1): Likewise.
3474 (xgene1_move): Likewise.
3475 (xgene1_alu): Likewise.
3476 (xgene1_simd): Likewise.
3477 (xgene1_bfm): Likewise.
3478 (xgene1_neon_load1): Likewise.
3479 (xgene1_neon_store1): Likewise.
3480 (xgene1_neon_logic): Likewise.
3481 (xgene1_neon_st1): Likewise.
3482 (xgene1_neon_ld1r): Likewise.
3483 (xgene1_alu_cond): Added.
3484 (xgene1_shift_reg): Likwise.
3485 (xgene1_bfx): Likewise.
3486 (xgene1_mul): Split into xgene1_mul32, xgene1_mul64.
3487
3488 2017-11-15 Jakub Jelinek <jakub@redhat.com>
3489
3490 PR target/82981
3491 * internal-fn.c: Include gimple-ssa.h, tree-phinodes.h and
3492 ssa-iterators.h.
3493 (can_widen_mult_without_libcall): New function.
3494 (expand_mul_overflow): If only checking unsigned mul overflow,
3495 not result, and can do efficiently MULT_HIGHPART_EXPR, emit that.
3496 Don't use WIDEN_MULT_EXPR if it would involve a libcall, unless
3497 no other way works. Add MULT_HIGHPART_EXPR + MULT_EXPR support.
3498 (expand_DIVMOD): Formatting fix.
3499 * expmed.h (expand_mult): Add NO_LIBCALL argument.
3500 * expmed.c (expand_mult): Likewise. Use OPTAB_WIDEN rather
3501 than OPTAB_LIB_WIDEN if NO_LIBCALL is true, and allow it to fail.
3502
3503 PR tree-optimization/82977
3504 * tree-ssa-strlen.c (strlen_optimize_stmt): Pass a reference to a copy
3505 constructed temporary to strlen_to_stridx.put.
3506
3507 2017-11-15 Martin Liska <mliska@suse.cz>
3508
3509 * configure.ac: Remove -fkeep-inline-functions from coverage_flags.
3510 * configure: Regenerate.
3511
3512 2017-11-15 Martin Liska <mliska@suse.cz>
3513
3514 PR target/82927
3515 * config/sh/sh-mem.cc: Use proper probability for
3516 REG_BR_PROB_NOTE.
3517
3518 2017-11-14 Jeff Law <law@redhat.com>
3519
3520 * explow.c (anti_adjust_stack_and_probe_stack_clash): Avoid probing
3521 the red zone for stack_clash_protection_final_dynamic_probe targets
3522 when the total dynamic stack size is zero bytes.
3523
3524 * tree-ssa-threadupdate.c (thread_through_all_blocks): Thread
3525 blocks is post order.
3526
3527 2017-11-15 Alexandre Oliva <aoliva@redhat.com>
3528
3529 * dumpfile.h (TDF_COMPARE_DEBUG): New.
3530 * final.c (rest_of_clean_state): Set it for the
3531 -fcompare-debug dump.
3532 * tree-pretty-print.c (dump_generic_node): Omit OBJ_TYPE_REF
3533 class when TDF_COMPARE_DEBUG is set.
3534
3535 * dwarf2out.c (gen_producer_string): Discard
3536 OPT_fcompare_debug.
3537
3538 2017-11-15 Joseph Myers <joseph@codesourcery.com>
3539
3540 PR c/81156
3541 * doc/extend.texi (Other Builtins): Document __builtin_tgmath.
3542 * ginclude/tgmath.h (__tg_cplx, __tg_ldbl, __tg_dbl, __tg_choose)
3543 (__tg_choose_2, __tg_choose_3, __TGMATH_REAL_1_2)
3544 (__TGMATH_REAL_2_3): Remove macros.
3545 (__TGMATH_CPLX, __TGMATH_CPLX_2, __TGMATH_REAL, __TGMATH_REAL_2)
3546 (__TGMATH_REAL_3, __TGMATH_CPLX_ONLY): Define using
3547 __builtin_tgmath.
3548 (frexp, ldexp, nexttoward, scalbn, scalbln): Define using
3549 __TGMATH_REAL_2.
3550 (remquo): Define using __TGMATH_REAL_3.
3551
3552 2017-11-14 Jeff Law <law@redhat.com>
3553
3554 * vr-values.c: New file with contents extracted from tree-vrp.c.
3555 * Makefile.in (OBJS): Add vr-values.o
3556 * tree-vrp.h (set_value_range_to_nonnull): Prototype.
3557 (set_value_range, set_and_canonicalize_value_range): Likewise.
3558 (vrp_bitmap_equal_p, range_is_nonnull): Likewise.
3559 (value_range_constant_singleton, symbolic_range_p): Likewise.
3560 (compare_values, compare_values_warnv, vrp_val_is_min): Likewise.
3561 (vrp_val_is_max, copy_value_range, set_value_range_to_value): Likewise.
3562 (extract_range_from_binary_expr_1, vrp_val_min, vrp_val_max): Likewise.
3563 (set_value_range_to_null, range_int_cst_p, opreand_less_p): Likewise.
3564 (find_case_label_range, find_case_label_index): Likewise.
3565 (zero_nonzero_bits_from_vr, overflow_comparison_p): Likewise.
3566 (range_int_cst_singleton_p, value_inside_range): Likewise.
3567 (get_single_symbol): Likewise.
3568 (switch_update): Move structure definition here.
3569 (to_remove_edges, to_update_switch_stmts): Provide externs.
3570 * tree-vrp.c: Move all methods for vr-values class to vr-values.c
3571 (vrp_val_max, vrp_val_min, vrp_val_is_max): Make externally visible.
3572 (vrp_val_is_min, set_value_range): Likewise.
3573 (set_and_canonicalize_value_range, copy_value_range): Likewise.
3574 (set_value_range_to_value, set_value_range_to_nonnull): Likewise.
3575 (set_value_range_to_null, vrp_bitmap_equal_p): Likewise.
3576 (range_is_nonnull, range_int_cst_p): Likewwise.
3577 (range_int_cst_singleton_p, symbolic_range_p): Likewise.
3578 (get_single_symbol, operand_less_p): Likewise
3579 (compare_values_warnv, compare_values): Likewise.
3580 (value_inside_range, value_range_constant_singleton): Likewise.
3581 (zero_nonzero_bitgs_from_vr): Likewise.
3582 (extract_range_from_binary_expr_1): Likewise.
3583 (overflow_comparison_p): Likewise.
3584 (to_remove_edges, to_update_switch_stmts): Likewise.
3585 (find_case_label-index, find_case_label_range): Likewise.
3586 (switch_update, set_value_range_to_nonnegative): Remove.
3587 (set_value_range_to_truthvalue): Likewise.
3588 (symbolic_range_based_on_p, gimple_assign_nonzero_p): Likewise.
3589 (gimple_stmt_nonzero_p, compare_ranges): Likewise.
3590 (compare_range_with_value, vrp_valueize, vrp_valueize_1): Likewise.
3591 (find_case_label_ranges, test_for_singularity): Likewise.
3592 (range_fits_type_p, simplify_conversion_using_ranges): LIkewise.
3593 (x_vr_values): Move to its remaining use site.
3594
3595 2017-11-10 Jeff Law <law@redhat.com>
3596
3597 * vr-values.h (VR_INITIALIZER): Move #define here.
3598 * gimple-ssa-evrp.c: New file with contents extracted from tree-vrp.c
3599 * Makefile.in (OBJS): Add tree-evrp.o
3600 * tree-vrp.h (assert_info): Move structure definition here.
3601 (set_value_range_to_varying): Prototype.
3602 (vrp_operand_equal_p, range_includes_zero_p): Likewise.
3603 (infer_value_range, register_edge_assert_for): Likewise.
3604 (stmt_interesting_for_vrp): Likewise.
3605 * tree-vrp.c: Move all methods for evrp class into gimple-ssa-evrp.c.
3606 (set_value_range_to_varying): No longer static.
3607 (vrp_operand_equal_p, range_includes_zero_p): Likewise.
3608 (infer_value_range, register_edge_assert_for): Likewise.
3609
3610 2017-11-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3611
3612 * config/rs6000/rs6000.md (bswapdi2): On 32-bit ISA 3.0, don't
3613 generate the XXBRD instruction.
3614
3615 * config/rs6000/rs6000-c.c (is_float128_p): New helper function.
3616 (rs6000_builtin_type_compatible): Treat _Float128 and long double
3617 as being compatible if -mabi=ieeelongdouble.
3618 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_HW_1): New macros
3619 to setup float128 built-ins with hardware support.
3620 (BU_FLOAT128_HW_2): Likewise.
3621 (BU_FLOAT128_HW_3): Likewise.
3622 (BU_FLOAT128_HW_VSX_1): Likewise.
3623 (BU_FLOAT128_HW_VSX_2): Likewise.
3624 (scalar_extract_expq): Change float128 built-in functions to
3625 accommodate having both KFmode and TFmode functions. Use the
3626 KFmode variant as the default.
3627 (scalar_extract_sigq): Likewise.
3628 (scalar_test_neg_qp): Likewise.
3629 (scalar_insert_exp_q): Likewise.
3630 (scalar_insert_exp_qp): Likewise.
3631 (scalar_test_data_class_qp): Likewise.
3632 (sqrtf128_round_to_odd): Delete processing the round to odd
3633 built-in functions as special built-in functions, and define them
3634 as float128 built-ins. Use the KFmode variant as the default.
3635 (truncf128_round_to_odd): Likewise.
3636 (addf128_round_to_odd): Likewise.
3637 (subf128_round_to_odd): Likewise.
3638 (mulf128_round_to_odd): Likewise.
3639 (divf128_round_to_odd): Likewise.
3640 (fmaf128_round_to_odd): Likewise.
3641 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
3642 support for KFmode and TFmode xststdcqp calls.
3643 (rs6000_expand_builtin): If long double is IEEE 128-bit floating
3644 point, switch the built-in handlers for the get/set float128
3645 exponent, get float128 mantissa, float128 test built-ins, and the
3646 float128 round to odd built-in functions. Eliminate creating the
3647 float128 round to odd built-in functions as special built-ins.
3648 (rs6000_init_builtins): Eliminate special creation of the float128
3649 round to odd built-in functions.
3650 * config/rs6000/vsx.md (xsxexpqp_<mode>): Change float128 built-in
3651 function insns to support both TFmode and KFmode variants.
3652 (xsxsigqp_<mode>): Likewise.
3653 (xsiexpqpf_<mode>): Likewise.
3654 (xsiexpqp_<mode>): Likewise.
3655 (xststdcqp_<mode>): Likewise.
3656 (xststdcnegqp_<mode>): Likewise.
3657 (xststdcqp_<mode>): Likewise.
3658
3659 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3660
3661 * tree-ssa-threadupdate.c (compute_path_counts): Remove
3662 unused path_in_freq_ptr parameter.
3663 (ssa_fix_duplicate_block_edges): Do not pass around path_in_freq
3664
3665 2017-11-14 Jan Hubicka <hubicka@ucw.cz>
3666
3667 * ipa-inline.c (edge_badness): Dump sreal frequency.
3668 (compute_inlined_call_time): Match natural implementaiton ...
3669 * ipa-fnsummary.c (estimate_edge_size_and_time): ... here; remove
3670 forgotten division by CGRAPH_FREQ_BASE.
3671
3672 2017-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3673
3674 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
3675 Solaris 11. Update comment.
3676 * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
3677 renaming.
3678 * config/sol2.h (STARTFILE_SPEC): Likewise.
3679 * configure: Regenerate.
3680
3681 2017-11-14 Carl Love <cel@us.ibm.com>
3682
3683 * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Remove
3684 le_ and be_ prefixes to swap* variables. Remove
3685 if (VECTOR_ELT_ORDER_BIG) statement. Remove E_V16QImode case
3686 statements.
3687
3688 2017-11-14 Jason Merrill <jason@redhat.com>
3689
3690 Support GTY((cache)) on hash_map.
3691 * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function.
3692 (ggc_cache_remove): Override it instead of ggc_mx.
3693 * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx.
3694 (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx.
3695 * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member.
3696 (simple_cache_map_traits): Override maybe_mx.
3697 * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry.
3698 (hash_map): Friend gt_cleare_cache.
3699 (gt_cleare_cache): New.
3700 * tree.h (tree_cache_traits): New hash_map traits class.
3701 (tree_cache_map): New typedef.
3702
3703 2017-11-14 Richard Biener <rguenther@suse.de>
3704
3705 * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove first_p
3706 paramter and handling.
3707 (cleanup_control_flow_bb): Likewise.
3708 (cleanup_control_flow_pre): New helper performing a DFS walk
3709 to call cleanup_control_flow_bb in PRE order.
3710 (cleanup_tree_cfg_1): Do the first phase of cleanup_control_flow_bb
3711 via cleanup_control_flow_pre.
3712
3713 2017-11-14 James Greenhalgh <james.greenhalgh@arm.com>
3714
3715 * config/aarch64/aarch64-simd.md
3716 (aarch64_simd_bsl<mode>_internal): Remove DImode.
3717 (*aarch64_simd_bsl<mode>_alt): Likewise.
3718 (aarch64_simd_bsldi_internal): New.
3719 (aarch64_simd_bsldi_alt): Likewise.
3720
3721 2017-11-13 Jan Hubicka <hubicka@ucw.cz>
3722
3723 * tracer.c (better_p): Do not compare frequencies.
3724 * reg-stack.c (better_edge): Likewise.
3725 * shrink-wrap.c (try_shrink_wrapping): Do not convert to gcov counts
3726 and back.
3727
3728 2017-11-13 Jan Hubicka <hubicka@ucw.cz>
3729
3730 * auto-profile.c (afdo_annotate_cfg): Use update_max_bb_count.
3731 * cgraphunit.c (cgraph_node::expand_thunk): Use update_max_bb_count.
3732 * ipa-utils.c (ipa_merge_profiles): Use update_max_bb_count.
3733 * lto-streamer-in.c (input_function): Use update_max_bb_count.
3734 * omp-expand.c (expand_omp_taskreg): Use update_max_bb_count.
3735 * predict.c (maybe_hot_frequency_p): Inline to ...
3736 (maybe_hot_count_p): ... here; rewrite to counts.
3737 (counts_to_freqs): Rename to ...
3738 (update_max_bb_count): ... this one.
3739 (expensive_function_p): Use counts.
3740 (estimate_bb_frequencies): Update.
3741 (rebuild_frequencies): Update.
3742 * predict.h (counts_to_freqs): Rename to ...
3743 (update_max_bb_count): ... this one.
3744 * profile.c (compute_branch_probabilities): Add debug info
3745 * tree-inline.c (expand_call_inline): Update debug info.
3746 (optimize_inline_calls): Use update_max_bb_count..
3747 (tree_function_versioning): Use update_max_bb_count..
3748 * value-prof.c (gimple_value_profile_transformations):
3749 Do not use update_max_bb_count.
3750
3751 2017-11-13 Jan Hubicka <hubicka@ucw.cz>
3752
3753 * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time):
3754 always use frequencies.
3755
3756 2017-11-13 Jan Hubicka <hubicka@ucw.cz>
3757
3758 * bb-reorder.c: Remove frequencies from comments.
3759 (better_edge_p): Use profile counts.
3760 (find_traces): Dump profile counts.
3761 (rotate_loop): Use profile counts.
3762 (find_traces_1_round): Likewise.
3763 (connect_better_edge_p): Use counts instead of probabilities for
3764 reverse walk.
3765 (copy_bb_p): Drop early check for non-0 frequency.
3766 (sanitize_hot_paths): Update comments.
3767
3768 2017-11-13 Jan Hubicka <hubicka@ucw.cz>
3769
3770 * ipa-split.c (struct split_point): Add count.
3771 (consider_split): Do not compute incoming frequency; compute incoming
3772 count and store it to split_point.
3773 (split_function): Set count of the call to split part correctly.
3774
3775 2017-11-13 Carl Love <cel@us.ibm.com>
3776
3777 * config/rs6000/altivec.md (altivec_vsumsws_be): Add define_expand.
3778
3779 2017-11-13 Tom Tromey <tom@tromey.com>
3780
3781 * doc/cpp.texi (Variadic Macros): Document __VA_OPT__.
3782
3783 2017-11-13 Carl Love <cel@us.ibm.com>
3784
3785 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins):
3786 Add support for builtins:
3787 unsigned int vec_first_{,miss}_match_{,or_eos}index,
3788 vector {un,}signed {char,int,short},
3789 vector {un,}signed {char,int,short}) arguments.
3790 * config/rs6000/rs6000-builtin.def (VFIRSTMATCHINDEX,
3791 VFIRSTMATCHOREOSINDEX, VFIRSTMISMATCHINDEX, VFIRSTMISMATCHOREOSINDEX):
3792 Add BU_P9V_AV_2 expansions for the builtins.
3793 * config/rs6000/altivec.h (vec_first_match_index,
3794 vec_first_mismatch_index, vec_first_match_or_eos_index,
3795 vec_first_mismatch_or_eos_index): Add #defines for the builtins.
3796 * config/rs6000/rs6000-protos.h (bytes_in_mode): Add
3797 new extern declaration.
3798 * config/rs6000/rs6000.c (bytes_in_mode): Add new function.
3799 * config/rs6000/vsx.md (first_match_index_<mode>,
3800 first_match_or_eos_index_<mode>, first_mismatch_index_<mode>,
3801 first_mismatch_or_eos_index_<mode>): Add define expand.
3802 (vctzlsbb_<mode>): Add mode field to define_insn for vctzlsbb.
3803 * doc/extend.texi: Update the built-in documenation file for the new
3804 built-in functions.
3805
3806 2017-11-13 Michael Meissner <meissner@linux.vnet.ibm.com>
3807
3808 * match.pd: Convert fminf<N>, fminf<N>x, fmax<N>, and fmax<N>x
3809 into the min/max operations for _Float<N> and _Float<N>X types.
3810
3811 2017-11-13 Eric Botcazou <ebotcazou@adacore.com>
3812
3813 PR lto/81351
3814 * dwarf2out.c (do_eh_frame): New static variable.
3815 (dwarf2out_begin_prologue): Set it.
3816 (dwarf2out_frame_finish): Test it instead of dwarf2out_do_eh_frame.
3817
3818 2017-11-13 Jan Hubicka <hubicka@ucw.cz>
3819
3820 * tree-ssa-coalesce.c (coalesce_cost): Fix formating.
3821
3822 * tree-ssa-sink.c (select_best_block): Do not use frequencies.
3823
3824 2017-11-13 Eric Botcazou <ebotcazou@adacore.com>
3825
3826 PR lto/81351
3827 * debug.h (dwarf2out_do_eh_frame): Declare.
3828 * dwarf2cfi.c (dwarf2out_do_eh_frame): New predicate.
3829 (dwarf2out_do_frame): Use it.
3830 (dwarf2out_do_cfi_asm): Likewise.
3831 * dwarf2out.c (dwarf2out_frame_finish): Likewise.
3832 (dwarf2out_assembly_start): Likewise.
3833 (dwarf2out_begin_prologue): Fix comment.
3834 * toplev.c (compile_file): Always call dwarf2out_frame_finish
3835 if the target needs either debug or unwind DWARF2 info.
3836 * lto-opts.c (lto_write_options): Do not save -fexceptions,
3837 -fnon-call-exceptions, -ffp-contract, -fmath-errno, -fsigned-zeros,
3838 -ftrapping-math, -ftrapv and -fwrapv.
3839
3840 2017-11-13 Jan Hubicka <hubicka@ucw.cz>
3841
3842 * cgraph.c (cgraph_edge::sreal_frequency): New function.
3843 * cgraph.h (cgraph_edge::sreal_frequency): Declare.
3844 * ipa-fnsummary.c (dump_ipa_call_summary): Use sreal_frequency.
3845 (estimate_edge_size_and_time): Likewise.
3846 (ipa_merge_fn_summary_after_inlining): Likewise.
3847 * ipa-inline.c (cgraph_freq_base_rec): Remove.
3848 (compute_uninlined_call_time): Use sreal_frequency.
3849 (compute_inlined_call_time): Likewise.
3850 (ipa_inline): Do not initialize cgraph_freq_base_rec.
3851 * profile-count.c: Include sreal.h.
3852 (profile_count::to_sreal_scale): New.
3853 * profile-count.h: Forward declare sreal.
3854 (profile_count::to_sreal_scale): Declare.
3855
3856 2017-11-13 Nathan Sidwell <nathan@acm.org>
3857
3858 * diagnostic.c (maybe_line_and_column): New.
3859 (diagnostic_get_location_text): Use it.
3860 (diagnostic_report_current_module): Likewise.
3861 (test_diagnostic_get_location_text): Add tests.
3862
3863 2017-11-13 Luis Machado <luis.machado@linaro.org>
3864
3865 * doc/md.texi (Specifying processor pipeline description): Fix
3866 incorrect latency for the div instruction example.
3867
3868 2017-11-13 Jakub Jelinek <jakub@redhat.com>
3869
3870 PR tree-optimization/78821
3871 * gimple-ssa-store-merging.c (compatible_load_p): Don't require
3872 that bit_not_p is the same.
3873 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
3874 (split_group): Count precisely bit_not_p bits in each statement.
3875 (invert_op): New function.
3876 (imm_store_chain_info::output_merged_store): Use invert_op to
3877 emit BIT_XOR_EXPR with a xor_mask instead of BIT_NOT_EXPR if some
3878 but not all orig_stores have BIT_NOT_EXPR in the corresponding spots.
3879
3880 2017-11-13 Martin Liska <mliska@suse.cz>
3881
3882 * gcov.c (struct coverage_info): Remove typedef of coverage_t.
3883 (struct source_info): Likewise.
3884 (add_branch_counts): Likewise.
3885 (add_line_counts): Likewise.
3886 (function_summary): Likewise.
3887 (output_intermediate_line): Likewise.
3888 (generate_results): Likewise.
3889
3890 2017-11-13 Martin Liska <mliska@suse.cz>
3891
3892 * gcov.c (struct block_info): Remove typedef for block_t.
3893 (struct line_info): Likewise.
3894 (line_info::has_block): Likewise.
3895 (EXIT_BLOCK): Likewise.
3896 (unblock): Likewise.
3897 (circuit): Likewise.
3898 (get_cycles_count): Likewise.
3899 (process_file): Likewise.
3900 (read_graph_file): Likewise.
3901 (solve_flow_graph): Likewise.
3902 (find_exception_blocks): Likewise.
3903 (add_line_counts): Likewise.
3904 (accumulate_line_info): Likewise.
3905 (output_line_details): Likewise.
3906
3907 2017-11-13 Martin Liska <mliska@suse.cz>
3908
3909 * gcov.c (struct arc_info): Remove typedef for arc_t.
3910 (struct line_info): Likewise.
3911 (add_branch_counts): Likewise.
3912 (output_branch_count): Likewise.
3913 (function_info::~function_info): Likewise.
3914 (circuit): Likewise.
3915 (output_intermediate_line): Likewise.
3916 (read_graph_file): Likewise.
3917 (solve_flow_graph): Likewise.
3918 (find_exception_blocks): Likewise.
3919 (add_line_counts): Likewise.
3920 (accumulate_line_info): Likewise.
3921 (output_line_details): Likewise.
3922 (output_function_details): Likewise.
3923
3924 2017-11-13 Martin Liska <mliska@suse.cz>
3925
3926 * gcov.c (struct function_info): Remove typedef for function_t.
3927 (struct source_info): Likewise.
3928 (source_info::get_functions_at_location): Likewise.
3929 (solve_flow_graph): Likewise.
3930 (find_exception_blocks): Likewise.
3931 (add_line_counts): Likewise.
3932 (output_intermediate_file): Likewise.
3933 (process_file): Likewise.
3934 (generate_results): Likewise.
3935 (release_structures): Likewise.
3936 (read_graph_file): Likewise.
3937 (read_count_file): Likewise.
3938 (accumulate_line_counts): Likewise.
3939 (output_lines): Likewise.
3940
3941 2017-11-13 Martin Liska <mliska@suse.cz>
3942
3943 * gcov.c (function_info::function_info): Remove num_counts
3944 and add vector<gcov_type>.
3945 (function_info::~function_info): Use the vector.
3946 (process_file): Likewise.
3947 (read_graph_file): Likewise.
3948 (read_count_file): Likewise.
3949 (solve_flow_graph): Likewise.
3950
3951 2017-11-13 Martin Liska <mliska@suse.cz>
3952
3953 * gcov.c (function_info::is_artificial): New function.
3954 (process_file): Erase all artificial early.
3955 (generate_results): Skip as all artificial are already
3956 removed.
3957
3958 2017-11-13 Martin Liska <mliska@suse.cz>
3959
3960 * gcov.c (read_graph_file): Store to global vector of functions.
3961 (read_count_file): Iterate the vector.
3962 (process_file): Likewise.
3963 (generate_results): Likewise.
3964 (release_structures): Likewise.
3965
3966 2017-11-13 Jakub Jelinek <jakub@redhat.com>
3967
3968 PR tree-optimization/82954
3969 * gimple-ssa-store-merging.c
3970 (imm_store_chain_info::coalesce_immediate_stores): If
3971 !infof->ops[N].base_addr, split group if info->ops[N].base_addr.
3972
3973 2017-11-13 Richard Sandiford <richard.sandiford@linaro.org>
3974
3975 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
3976 Upddate call to ENDIAN_LANE_N.
3977 (aarch64_<sur>dot_lane<vsi2qi>): Use aarch64_endian_lane_rtx.
3978 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
3979 (*aarch64_simd_vec_copy_lane<mode>): Update calls to ENDIAN_LANE_N
3980 and use aarch64_endian_lane_rtx.
3981 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
3982
3983 2017-11-12 Tom de Vries <tom@codesourcery.com>
3984
3985 * config/riscv/riscv.h (ASM_OUTPUT_LABELREF): Wrap in do {} while (0).
3986
3987 2017-11-12 Tom de Vries <tom@codesourcery.com>
3988
3989 * config/elfos.h (ASM_OUTPUT_ASCII): Remove semicolon after macro body.
3990
3991 2017-11-12 Tom de Vries <tom@codesourcery.com>
3992
3993 * config/cr16/cr16.h (ASM_OUTPUT_LABELREF): Remove semicolon after macro
3994 body.
3995 * config/powerpcspe/xcoff.h (ASM_OUTPUT_LABELREF): Same.
3996 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Same.
3997 * defaults.h (ASM_OUTPUT_LABELREF): Same.
3998
3999 2017-11-11 Martin Sebor <msebor@redhat.com>
4000
4001 PR c/81117
4002 * doc/extend.texi (attribute nonstring): Remove spurious argument.
4003
4004 PR bootstrap/82948
4005 * prefic.c (translate_name): Replace strncpy with memcpy to
4006 avoid -Wstringop-truncation.
4007
4008 2017-11-10 Jan Hubicka <hubicka@ucw.cz>
4009
4010 * tree-ssa-loop-im.c (execute_sm_if_changed): Do not compute freq_sum.
4011
4012 2017-11-10 Jan Hubicka <hubicka@ucw.cz>
4013
4014 * predict.c (maybe_hot_frequency_p): Do not use cfun.
4015
4016 2017-11-10 Jan Hubicka <hubicka@ucw.cz>
4017
4018 * tree-ssa-tail-merge.c (replace_block_by): Fix and re-enable profile
4019 merging.
4020
4021 2017-11-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4022
4023 * config/rs6000/rs6000.md (bswaphi2_reg): On ISA 3.0 systems,
4024 enable generating XXBRH if the value is in a vector register.
4025 (bswapsi2_reg): On ISA 3.0 systems, enable generating XXBRW if the
4026 value is in a vector register.
4027 (bswapdi2_reg): On ISA 3.0 systems, always use XXBRD to do
4028 register to register bswap64's instead of doing the GPR sequence
4029 used on previous machines.
4030 (bswapdi2_xxbrd): New insn.
4031 (bswapdi2_reg): Disallow on ISA 3.0.
4032 (register to register bswap64 splitter): Do not split the insn on
4033 ISA 3.0 systems that use XXBRD.
4034
4035 2017-11-10 Martin Sebor <msebor@redhat.com>
4036
4037 PR c/81117
4038 * config/darwin-c.c (framework_construct_pathname): Replace strncpy
4039 with memcpy.
4040 (find_subframework_file): Same.
4041
4042 2017-11-10 Jan Hubicka <hubicka@ucw.cz>
4043
4044 * auto-profile.c (afdo_indirect_call): Drop frequency.
4045 * cgraph.c (symbol_table::create_edge): Drop frequency argument.
4046 (cgraph_node::create_edge): Drop frequency argument.
4047 (cgraph_node::create_indirect_edge): Drop frequency argument.
4048 (cgraph_edge::make_speculative): Drop frequency arguments.
4049 (cgraph_edge::resolve_speculation): Do not update frequencies
4050 (cgraph_edge::dump_edge_flags): Do not dump frequency.
4051 (cgraph_node::dump): Check consistency in IPA mode.
4052 (cgraph_edge::maybe_hot_p): Use IPA counter.
4053 (cgraph_edge::verify_count_and_frequency): Rename to ...
4054 (cgraph_edge::verify_count): ... this one; drop frequency checking.
4055 (cgraph_node::verify_node): Update.
4056 * cgraph.h (struct cgraph_edge): Drop frequency.
4057 (cgraph_edge::frequency): New function.
4058 * cgraphbuild.c (pass_build_cgraph_edges::execute): Donot pass
4059 frequencies.
4060 (cgraph_edge::rebuild_edges): Likewise.
4061 * cgraphclones.c (cgraph_edge::clone): Scale only counts.
4062 (duplicate_thunk_for_node): Do not pass frequency.
4063 (cgraph_node::create_clone): Scale only counts.
4064 (cgraph_node::create_virtual_clone): Do not pass frequency.
4065 (cgraph_node::create_edge_including_clones): Do not pass frequency.
4066 (cgraph_node::create_version_clone): Do not pass frequency.
4067 * cgraphunit.c (cgraph_node::analyze): Do not pass frequency.
4068 (cgraph_node::expand_thunk): Do not pass frequency.
4069 (cgraph_node::create_wrapper): Do not pass frequency.
4070 * gimple-iterator.c (update_call_edge_frequencies): Do not pass
4071 frequency.
4072 * gimple-streamer-in.c (input_bb): Scale only IPA counts.
4073 * ipa-chkp.c (chkp_produce_thunks): Do not pass frequency.
4074 * ipa-cp.c (ipcp_lattice::print): Use frequency function.
4075 (gather_caller_stats): Use frequency function.
4076 (ipcp_cloning_candidate_p): Use frequency function.
4077 (ipcp_propagate_stage): Use frequency function.
4078 (get_info_about_necessary_edges): Use frequency function.
4079 (update_profiling_info): Update only IPA profile.
4080 (update_specialized_profile): Use frequency functoin.
4081 (perhaps_add_new_callers): Update only IPA profile.
4082 * ipa-devirt.c (ipa_devirt): Use IPA profile.
4083 * ipa-fnsummary.c (redirect_to_unreachable): Do not set frequrency.
4084 (dump_ipa_call_summary): Use frequency function.
4085 (estimate_edge_size_and_time): Use frequency function.
4086 (ipa_merge_fn_summary_after_inlining): Use frequency function.
4087 * ipa-inline-analysis.c (do_estimate_edge_time): Use IPA profile.
4088 * ipa-inline-transform.c (update_noncloned_frequencies): Rename to ..
4089 (update_noncloned_counts): ... ths one; scale counts only.
4090 (clone_inlined_nodes): Do not scale frequency.
4091 (inline_call): Do not pass frequency.
4092 * ipa-inline.c (compute_uninlined_call_time): Use IPA profile.
4093 (compute_inlined_call_time): Use IPA profile.
4094 (want_inline_small_function_p): Use IPA profile.
4095 (want_inline_self_recursive_call_p): Use IPA profile.
4096 (edge_badness): Use IPA profile.
4097 (lookup_recursive_calls): Use IPA profile.
4098 (recursive_inlining): Do not pass frequency.
4099 (resolve_noninline_speculation): Do not update frequency.
4100 (inline_small_functions): Collect max of IPA profile.
4101 (dump_overall_stats): Dump IPA porfile.
4102 (dump_inline_stats): Dump IPA porfile.
4103 (ipa_inline): Collect IPA stats.
4104 * ipa-inline.h (clone_inlined_nodes): Update prototype.
4105 * ipa-profile.c (ipa_propagate_frequency_1): Use frequency function.
4106 (ipa_propagate_frequency): Use frequency function.
4107 (ipa_profile): Cleanup.
4108 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not pass frequency
4109 * ipa-utils.c (ipa_merge_profiles): Merge all profiles.
4110 * lto-cgraph.c (lto_output_edge): Do not stream frequency.
4111 (input_node): Do not stream frequency.
4112 (input_edge): Do not stream frequency.
4113 (merge_profile_summaries): Scale only IPA profiles.
4114 * omp-simd-clone.c (simd_clone_adjust): Do not pass frequency.
4115 * predict.c (drop_profile): Do not recompute frequency.
4116 * trans-mem.c (ipa_tm_insert_irr_call): Do not pass frequency.
4117 (ipa_tm_insert_gettmclone_call): Do not pass frequency.
4118 * tree-cfg.c (execute_fixup_cfg): Drop profile to global0 if needed.
4119 * tree-chkp.c (chkp_copy_bounds_for_assign): Do not pass frequency.
4120 * tree-emutls.c (gen_emutls_addr): Do not pass frequency.
4121 * tree-inline.c (copy_bb): Do not scale frequency.
4122 (expand_call_inline): Do not scale frequency.
4123 (tree_function_versioning): Do not scale frequency.
4124 * ubsan.c (ubsan_create_edge): Do not pass frequency.
4125
4126 2017-11-10 Julia Koval <julia.koval@intel.com>
4127
4128 * config/i386/gfniintrin.h (_mm_gf2p8affine_epi64_epi8)
4129 (_mm256_gf2p8affine_epi64_epi8, _mm_mask_gf2p8affine_epi64_epi8)
4130 (_mm_maskz_gf2p8affine_epi64_epi8, _mm256_mask_gf2p8affine_epi64_epi8)
4131 (_mm256_maskz_gf2p8affine_epi64_epi8)
4132 (_mm512_mask_gf2p8affine_epi64_epi8, _mm512_gf2p8affine_epi64_epi8)
4133 (_mm512_maskz_gf2p8affine_epi64_epi8): New intrinsics.
4134 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineqb_v64qi)
4135 (__builtin_ia32_vgf2p8affineqb_v32qi)
4136 (__builtin_ia32_vgf2p8affineqb_v16qi): New builtins.
4137 * config/i386/sse.md (vgf2p8affineqb_<mode><mask_name>): New pattern.
4138
4139 2017-11-10 Tamar Christina <tamar.christina@arm.com>
4140
4141 PR target/82641
4142 * config/arm/arm.c
4143 (arm_option_override): Refactor.
4144 (arm_option_reconfigure_globals): New.
4145 (arm_options_perform_arch_sanity_checks): New.
4146 * config/arm/arm-protos.h (arm_option_reconfigure_globals):
4147 New prototype.
4148 (arm_options_perform_arch_sanity_checks): Likewise
4149
4150 2017-11-10 Pat Haugen <pthaugen@us.ibm.com>
4151
4152 * rs6000/power9.md (power9-qpdiv): Correct DFU pipe usage.
4153 (power9-qpmul): New.
4154 * rs6000/rs6000.md ("type" attr): Add qmul.
4155 (mul<mode>3, fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw,
4156 *nfms<mode>4_hw, mul<mode>3_odd, fma<mode>4_odd, *fms<mode>4_odd,
4157 *nfma<mode>4_odd, *nfms<mode>4_odd): Change type to qmul.
4158
4159 2017-11-10 Martin Sebor <msebor@redhat.com>
4160
4161 PR c/81117
4162 * builtins.c (compute_objsize): Handle arrays that
4163 compute_builtin_object_size likes to fail for. Make extern.
4164 * builtins.h (compute_objsize): Declare.
4165 (check_strncpy_sizes): New function.
4166 (expand_builtin_strncpy): Call check_strncpy_sizes.
4167 * gimple-fold.c (gimple_fold_builtin_strncpy): Implement
4168 -Wstringop-truncation.
4169 (gimple_fold_builtin_strncat): Same.
4170 * gimple.c (gimple_build_call_from_tree): Set call location.
4171 * tree-ssa-strlen.c (strlen_to_stridx): New global variable.
4172 (maybe_diag_bound_equal_length, is_strlen_related_p): New functions.
4173 (handle_builtin_stxncpy, handle_builtin_strncat): Same.
4174 (handle_builtin_strlen): Use strlen_to_stridx.
4175 (strlen_optimize_stmt): Handle flavors of strncat, strncpy, and
4176 stpncpy.
4177 Use strlen_to_stridx.
4178 (pass_strlen::execute): Release strlen_to_stridx.
4179 * doc/invoke.texi (-Wsizeof-pointer-memaccess): Document enhancement.
4180 (-Wstringop-truncation): Document new option.
4181
4182 2017-11-10 Martin Liska <mliska@suse.cz>
4183
4184 PR gcov-profile/82702
4185 * gcov.c (main): Handle intermediate files in a different
4186 way.
4187 (get_gcov_intermediate_filename): New function.
4188 (output_gcov_file): Remove support of intermediate files.
4189 (generate_results): Allocate intermediate file.
4190 (release_structures): Clean-up properly fn_end.
4191 (output_intermediate_file): Start iterating with line 1.
4192
4193 2017-11-10 Jakub Jelinek <jakub@redhat.com>
4194
4195 PR tree-optimization/82929
4196 * gimple-ssa-store-merging.c (struct store_immediate_info): Add
4197 ops_swapped_p non-static data member.
4198 (store_immediate_info::store_immediate_info): Clear it.
4199 (imm_store_chain_info::coalesce_immediate_stores): If swapping
4200 ops set ops_swapped_p.
4201 (count_multiple_uses): Handle ops_swapped_p.
4202
4203 2017-11-10 Martin Liska <mliska@suse.cz>
4204
4205 * coverage.c (coverage_init): Stream information about
4206 support of has_unexecuted_blocks.
4207 * doc/gcov.texi: Document that.
4208 * gcov-dump.c (dump_gcov_file): Support it in gcov_dump tool.
4209 * gcov.c (read_graph_file): Likewise.
4210 (output_line_beginning): Fix a small issue with
4211 color output.
4212
4213 2017-11-10 Bin Cheng <bin.cheng@arm.com>
4214
4215 * tree-predcom.c (determine_roots_comp): Avoid memory leak by freeing
4216 reference of trivial component.
4217
4218 2017-11-10 Jakub Jelinek <jakub@redhat.com>
4219
4220 PR bootstrap/82916
4221 * gimple-ssa-store-merging.c
4222 (pass_store_merging::terminate_all_aliasing_chains): For
4223 gimple_store_p stmts also call refs_output_dependent_p.
4224
4225 PR rtl-optimization/82913
4226 * compare-elim.c (try_merge_compare): Punt if def_insn is not
4227 single set.
4228
4229 2017-11-09 Jeff Law <law@redhat.com>
4230
4231 * vr-values.h: New file with vr_values class.
4232 * tree-vrp.c: Include vr-values.h
4233 (vrp_value_range_pool, vrp_equiv_obstack, num_vr_values): Move static
4234 data objects into the vr_values class.
4235 (vr_value, values_propagated, vr_phi_edge_counts): Likewise.
4236 (get_value_range): Make it a member function within vr_values class.
4237 (set_defs_to_varying, update_value_range, add_equivalence): Likewise.
4238 (vrp_stmt_computes_nonzero_p, op_with_boolean_value_range_p): Likewise.
4239 (op_with_constant_singleton_value_range): Likewise.
4240 (extract_range_for_var_from_comparison_expr): Likewise.
4241 (extract_range_from_assert, extract_range_from_ssa_name): Likewise.
4242 (extract_range_from_binary_expr): Likewise.
4243 (extract_range_from_unary_expr): Likewise.
4244 (extract_range_from_cond_expr, extrat_range_from_comparison): Likewise.
4245 (check_for_binary_op_overflow, extract_range_basic): Likewise.
4246 (extract_range_from_assignment, adjust_range_with_scev): Likewise.
4247 (dump_all_value_ranges, get_vr_for_comparison): Likewise.
4248 (compare_name_with_value, compare_names): Likewise.
4249 (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Likewise.
4250 (vrp_evaluate_conditional_warnv_with_ops): Likewise. Remove prototype.
4251 (vrp_evaluate_conditional, vrp_visit_cond_stmt): Likewise.
4252 (vrp_visit_switch_stmt, extract_range_from_stmt): Likewise.
4253 (extract_range_from_phi_node): Likewise.
4254 (simplify_truth_ops_using_ranges): Likewise.
4255 (simplify_div_or_mod_using_ranges): Likewise.
4256 (simplify_min_or_max_using_ranges, simplify_abs_using_ranges): Likewise.
4257 (simplify_bit_ops_using_ranges, simplify_cond_using_ranges_1): Likewise.
4258 (simplify_cond_using_ranges_2, simplify_switch_using_ranges): Likewise.
4259 (simplify_float_conversion_using_ranges): Likewise.
4260 (simplify_internal_call_using_ranges): Likewise.
4261 (two_valued_val_range_p, simplify_stmt_using_ranges): Likewise.
4262 (vrp_visit_assignment_or_call): Likewise. Smuggle class instance
4263 poitner via x_vr_values for calls into gimple folder.
4264 (vrp_initialize_lattice): Make this the vr_values ctor.
4265 (vrp_free_lattice): Make this the vr_values dtor.
4266 (set_vr_value): New function.
4267 (class vrp_prop): Add vr_values data member. Add various member
4268 functions as well as member functions that delegate to vr_values.
4269 (check_array_ref): Make a member function within vrp_prop class.
4270 (search_for_addr_array, vrp_initialize): Likewise.
4271 (vrp_finalize): Likewise. Revamp to avoid direct access to
4272 vr_value, values_propagated, etc.
4273 (check_array_bounds): Extract vrp_prop class instance pointer from
4274 walk info structure. Use it to call member functions.
4275 (check_all_array_refs): Make a member function within vrp_prop class.
4276 Smuggle class instance pointer via walk info structure.
4277 (x_vr_values): New local static.
4278 (vrp_valueize): Use x_vr_values to get class instance.
4279 (vr_valueize_1): Likewise.
4280 (class vrp_folder): Add vr_values data member. Add various member
4281 functions as well as member functions that delegate to vr_values.
4282 (fold_predicate_in): Make a mber fucntion within vrp_folder class.
4283 (simplify_stmt_for_jump_threading): Extract smuggled vr_values
4284 class instance from vr_values. Use it to call member functions.
4285 (vrp_dom_walker): Add vr_values data member.
4286 (vrp_dom_walker::after_dom_children): Smuggle vr_values class
4287 instance via x_vr_values.
4288 (identify_jump_threads): Accept vr_values as argument. Store
4289 it into the walker structure.
4290 (evrp_dom_walker): Add vr_values class data member. Add various
4291 delegators.
4292 (evrp_dom_walker::try_find_new_range): Use vr_values data
4293 member to access the memory allocator.
4294 (evrp_dom_walker::before_dom_children): Store vr_values class
4295 instance into the vrp_folder class.
4296 (evrp_dom_walker::push_value_range): Rework to avoid direct
4297 access to num_vr_values and vr_value.
4298 (evrp_dom_walker::pop_value_range): Likewise.
4299 (execute_early_vrp): Remove call to vrp_initialize_lattice.
4300 Use vr_values to get to dump_all_value_ranges member function.
4301 Remove call to vrp_free_lattice. Call vrp_initialize, vrp_finalize,
4302 and simplify_cond_using_ranges_2 via vrp_prop class instance.
4303 Pass vr_values class instance down to identify_jump_threads.
4304 Remove call to vrp_free_lattice.
4305 (debug_all_value_ranges): Remove.
4306
4307 * tree-vrp.c (vrp_prop): Move class to earlier point in the file.
4308 (vrp_folder): Likewise.
4309
4310 * tree-vrp.c (set_value_range): Do not reference vrp_equiv_obstack.
4311 Get it from the existing bitmap instead.
4312 (vrp_intersect_ranges_1): Likewise.
4313
4314 2017-11-09 Jakub Jelinek <jakub@redhat.com>
4315
4316 * gimple-ssa-store-merging.c (struct store_immediate_info): Add
4317 bit_not_p field.
4318 (store_immediate_info::store_immediate_info): Add bitnotp argument,
4319 set bit_not_p to it.
4320 (imm_store_chain_info::coalesce_immediate_stores): Break group
4321 if bit_not_p is different.
4322 (count_multiple_uses, split_group,
4323 imm_store_chain_info::output_merged_store): Handle info->bit_not_p.
4324 (handled_load): Avoid multiple chained BIT_NOT_EXPRs.
4325 (pass_store_merging::process_store): Handle BIT_{AND,IOR,XOR}_EXPR
4326 result inverted using BIT_NOT_EXPR, compute bit_not_p, pass it
4327 to store_immediate_info ctor.
4328
4329 2017-11-09 Jim Wilson <jimw@sifive.com>
4330
4331 * collect2.c (OBJECT_FORMAT_COFF): Remove EXTENDED_COFF support.
4332 (scan_prog_file): Likewise.
4333
4334 2017-11-09 Jan Hubicka <hubicka@ucw.cz>
4335
4336 * bb-reorder.c (max_entry_frequency): Remove.
4337 (find_traces, rotate_loop, mark_bb_visited, connect_better_edge_p,
4338 connect_traces, push_to_next_round_p): Remove prototypes.
4339 (find_traces_1_round): Use counts only.
4340 (push_to_next_round_p): Likewise.
4341 (find_traces): Likewise.
4342 (rotate_loop): Likewise.
4343 (find_traces_1_round): Likewise.
4344 (connect_traces): Likewise.
4345 (edge_order): Likewise.
4346
4347 2017-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
4348
4349 * config/arm/arm.c (output_return_instruction): Add comments to
4350 indicate requirement for cmse_nonsecure_entry return to account
4351 for the size of clearing instruction output here.
4352 (thumb_exit): Likewise.
4353 * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
4354 return in hardfloat mode.
4355
4356 2017-11-09 Segher Boessenkool <segher@kernel.crashing.org>
4357
4358 * config/rs6000/rs6000.c (machine_function): Add a bool,
4359 "toc_is_wrapped_separately".
4360 (rs6000_option_override_internal): Enable OPTION_MASK_SAVE_TOC_INDIRECT
4361 if it wasn't explicitly set or unset, we are optimizing for speed, and
4362 doing separate shrink-wrapping.
4363 (rs6000_get_separate_components): Enable the TOC component if
4364 saving the TOC register in the prologue.
4365 (rs6000_components_for_bb): Handle the TOC component.
4366 (rs6000_emit_prologue_components): Store the TOC register where needed.
4367 (rs6000_set_handled_components): Mark TOC as handled, if handled.
4368 (rs6000_emit_prologue): Don't save the TOC if that is already done.
4369
4370 2017-11-09 Martin Jambor <mjambor@suse.cz>
4371
4372 * ipa-param-manipulation.c: New file.
4373 * ipa-param-manipulation.h: Likewise.
4374 * Makefile.in (OBJS): Add ipa-param-manipulation.o.
4375 (PLUGIN_HEADERS): Addded ipa-param-manipulation.h
4376 * ipa-param.h (ipa_parm_op): Moved to ipa-param-manipulation.h.
4377 (ipa_parm_adjustment): Likewise.
4378 (ipa_parm_adjustment_vec): Likewise.
4379 (ipa_get_vector_of_formal_parms): Moved declaration to
4380 ipa-param-manipulation.h.
4381 (ipa_get_vector_of_formal_parm_types): Likewise.
4382 (ipa_modify_formal_parameters): Likewise.
4383 (ipa_modify_call_arguments): Likewise.
4384 (ipa_combine_adjustments): Likewise.
4385 (ipa_dump_param_adjustments): Likewise.
4386 (ipa_modify_expr): Likewise.
4387 (ipa_get_adjustment_candidate): Likewise.
4388 * ipa-prop.c (ipa_get_vector_of_formal_parms): Moved to
4389 ipa-param-manipulation.c.
4390 (ipa_get_vector_of_formal_parm_types): Likewise.
4391 (ipa_modify_formal_parameters): Likewise.
4392 (ipa_modify_call_arguments): Likewise.
4393 (ipa_modify_expr): Likewise.
4394 (get_ssa_base_param): Likewise.
4395 (ipa_get_adjustment_candidate): Likewise.
4396 (index_in_adjustments_multiple_times_p): Likewise.
4397 (ipa_combine_adjustments): Likewise.
4398 (ipa_dump_param_adjustments): Likewise.
4399 * tree-sra.c: Also include ipa-param-manipulation.h
4400 * omp-simd-clone.c: Include ipa-param-manipulation.h instead of
4401 ipa-param.h.
4402
4403 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4404 Alan Hayward <alan.hayward@arm.com>
4405 David Sherwood <david.sherwood@arm.com>
4406
4407 * doc/sourcebuild.texi (vect_masked_store): Document.
4408
4409 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4410 Alan Hayward <alan.hayward@arm.com>
4411 David Sherwood <david.sherwood@arm.com>
4412
4413 * doc/sourcebuild.texi (vect_align_stack_vars): Document.
4414
4415 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4416 Alan Hayward <alan.hayward@arm.com>
4417 David Sherwood <david.sherwood@arm.com>
4418
4419 * doc/sourcebuild.texi (vect_variable_length): Document.
4420
4421 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4422 Alan Hayward <alan.hayward@arm.com>
4423 David Sherwood <david.sherwood@arm.com>
4424
4425 * doc/sourcebuild.texi (vect_unaligned_possible): Document.
4426
4427 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4428 Alan Hayward <alan.hayward@arm.com>
4429 David Sherwood <david.sherwood@arm.com>
4430
4431 * doc/sourcebuild.texi (vect_element_align_preferred): Document.
4432
4433 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4434 Alan Hayward <alan.hayward@arm.com>
4435 David Sherwood <david.sherwood@arm.com>
4436
4437 * doc/sourcebuild.texi (vect_perm_short, vect_perm_byte): Document
4438 previously undocumented selectors.
4439 (vect_perm3_byte, vect_perm3_short, vect_perm3_int): Document.
4440
4441 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4442
4443 * doc/rtl.texi (const_vector): Say that elements can be
4444 const_wide_ints too.
4445 * emit-rtl.h (valid_for_const_vec_duplicate_p): Declare.
4446 * emit-rtl.c (valid_for_const_vec_duplicate_p): New function.
4447 (gen_vec_duplicate): Use it instead of CONSTANT_P.
4448 * optabs.c (expand_vector_broadcast): Likewise.
4449
4450 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4451 Alan Hayward <alan.hayward@arm.com>
4452 David Sherwood <david.sherwood@arm.com>
4453
4454 * tree-ssa-loop-ivopts.c (get_address_cost): Try using a
4455 scaled index even if the unscaled address was invalid.
4456 Don't increase the complexity of using a scale in that case.
4457
4458 2017-11-09 Richard Sandiford <richard.sandiford@linaro.org>
4459 Alan Hayward <alan.hayward@arm.com>
4460 David Sherwood <david.sherwood@arm.com>
4461
4462 * doc/rtl.texi: Rewrite the subreg rules so that they partition
4463 the inner register into REGMODE_NATURAL_SIZE bytes rather than
4464 UNITS_PER_WORD bytes.
4465 * emit-rtl.c (validate_subreg): Divide subregs into blocks
4466 based on REGMODE_NATURAL_SIZE of the inner mode.
4467 (gen_lowpart_common): Split the SCALAR_FLOAT_MODE_P and
4468 !SCALAR_FLOAT_MODE_P cases. Use REGMODE_NATURAL_SIZE for the latter.
4469 * expmed.c (lowpart_bit_field_p): Divide the value up into
4470 chunks of REGMODE_NATURAL_SIZE rather than UNITS_PER_WORD.
4471 * expr.c (store_constructor): Use REGMODE_NATURAL_SIZE to test
4472 whether something is likely to occupy more than one register.
4473
4474 2017-11-09 Jan Hubicka <hubicka@ucw.cz>
4475
4476 PR ipa/82879
4477 * ipa-inline-transform.c (update_noncloned_frequencies): Use
4478 profile_count::adjust_for_ipa_scaling.
4479 * tree-inline.c (copy_bb, copy_cfg_body): Likewise.
4480 * profile-count.c (profile_count::adjust_for_ipa_scaling): New member
4481 function.
4482 * profile-count.h (profile_count::adjust_for_ipa_scaling): Declare.
4483
4484 2017-11-09 Jakub Jelinek <jakub@redhat.com>
4485
4486 * gimple-ssa-store-merging.c (count_multiple_uses): New function.
4487 (split_group): Add total_orig and total_new arguments, estimate the
4488 number of statements related to the store group without store merging
4489 and with store merging.
4490 (imm_store_chain_info::output_merged_store): Adjust split_group
4491 callers, punt if estimated number of statements with store merging
4492 is not smaller than estimated number of statements without it.
4493 Formatting fix.
4494 (handled_load): Remove has_single_use checks.
4495 (pass_store_merging::process_store): Likewise.
4496
4497 2017-11-09 Richard Biener <rguenther@suse.de>
4498
4499 PR tree-optimization/82902
4500 * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
4501
4502 2017-11-09 Martin Liska <mliska@suse.cz>
4503
4504 PR target/82863
4505 * emit-rtl.c (init_emit_regs): Initialize split_branch_probability to
4506 uninitialized.
4507
4508 2017-11-09 Martin Liska <mliska@suse.cz>
4509
4510 PR tree-optimization/82669
4511 * sbitmap.h (bmp_iter_set_init): Remove non needed check.
4512
4513 2017-11-09 Martin Liska <mliska@suse.cz>
4514
4515 PR gcov-profile/48463
4516 * coverage.c (coverage_begin_function): Output also end locus
4517 of a function and information whether the function is
4518 artificial.
4519 * gcov-dump.c (tag_function): Parse and print the information.
4520 * gcov.c (INCLUDE_MAP): Add include.
4521 (INCLUDE_SET): Likewise.
4522 (struct line_info): Move earlier in the source file because
4523 of vector<line_info> in function_info structure.
4524 (line_info::line_info): Likewise.
4525 (line_info::has_block): Likewise.
4526 (struct source_info): Add new member index.
4527 (source_info::get_functions_at_location): New function.
4528 (function_info::group_line_p): New function.
4529 (output_intermediate_line): New function.
4530 (output_intermediate_file): Use the mentioned function.
4531 (struct function_start): New.
4532 (struct function_start_pair_hash): Likewise.
4533 (process_file): Add code that identifies group functions.
4534 Assign lines either to global or function scope.
4535 (generate_results): Skip artificial functions.
4536 (find_source): Assign index for each source file.
4537 (read_graph_file): Read new flag artificial and end_line.
4538 (add_line_counts): Assign it either to global of function scope.
4539 (accumulate_line_counts): Isolate core of the function to
4540 accumulate_line_info and call it for both function and global
4541 scope lines.
4542 (accumulate_line_info): New function.
4543 (output_line_beginning): Fix GNU coding style.
4544 (print_source_line): New function.
4545 (output_line_details): Likewise.
4546 (output_function_details): Likewise.
4547 (output_lines): Iterate both source (global) scope and function
4548 scope.
4549 (struct function_line_start_cmp): New class.
4550 * doc/gcov.texi: Reflect changes in documentation.
4551
4552 2017-11-09 Jakub Jelinek <jakub@redhat.com>
4553
4554 PR debug/82837
4555 * dwarf2out.c (const_ok_for_output_1): Reject NEG in addition to NOT.
4556 (mem_loc_descriptor): Handle (const (neg (...))) as (neg (const (...)))
4557 and similarly for not instead of neg.
4558
4559 2017-11-08 Andi Kleen <ak@linux.intel.com>
4560
4561 * config/i386/i386.opt: Add -mforce-indirect-call.
4562 * config/i386/predicates.md: Check for flag_force_indirect_call.
4563 * doc/invoke.texi: Document -mforce-indirect-call
4564
4565 2017-11-08 Kito Cheng <kito.cheng@gmail.com>
4566
4567 * config/riscv/riscv-protos.h (riscv_slow_unaligned_access_p):
4568 New extern.
4569 (MOVE_RATIO): Use riscv_slow_unaligned_access_p.
4570 config/riscv/riscv.c (predict.h): New include.
4571 (riscv_slow_unaligned_access_p): No longer static.
4572 (riscv_block_move_straight): Add require.
4573 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
4574
4575 2017-11-08 Jakub Jelinek <jakub@redhat.com>
4576
4577 PR target/82855
4578 * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>,
4579 <avx512>_eq<mode>3<mask_scalar_merge_name>_1): Use
4580 nonimmediate_operand predicate for operand 1 instead of
4581 register_operand.
4582
4583 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4584
4585 * config/aarch64/aarch64-simd.md (store_pair_lanes<mode>):
4586 New pattern.
4587 * config/aarch64/constraints.md (Uml): New constraint.
4588 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): New
4589 predicate.
4590
4591 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4592
4593 * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge
4594 of two vec_duplicates into a vec_concat.
4595
4596 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4597
4598 * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
4599 Simplify vec_merge of vec_duplicate and vec_concat.
4600 * config/aarch64/constraints.md (Utq): New constraint.
4601 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): New
4602 define_insn.
4603
4604 2017-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4605
4606 * simplify-rtx.c (simplify_ternary_operation, VEC_MERGE):
4607 Simplify vec_merge of vec_duplicate and const_vector.
4608 * config/aarch64/predicates.md (aarch64_simd_or_scalar_imm_zero):
4609 New predicate.
4610 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Use VDC
4611 mode iterator. Update predicate on operand 1 to
4612 handle non-const_vec constants. Delete constraints.
4613 (*aarch64_combinez_be<mode>): Likewise for operand 2.
4614
4615 2017-11-08 Jakub Jelinek <jakub@redhat.com>
4616
4617 PR tree-optimization/78821
4618 * gimple-ssa-store-merging.c (struct store_operand_info): Add bit_not_p
4619 data member.
4620 (store_operand_info::store_operand_info): Initialize it to false.
4621 (pass_store_merging::terminate_all_aliasing_chains): Rewritten to use
4622 ref_maybe_used_by_stmt_p and stmt_may_clobber_ref_p on lhs of each
4623 store in the group, and if chain_info is non-NULL, to ignore altogether
4624 that chain.
4625 (compatible_load_p): Fail if bit_not_p does not match.
4626 (imm_store_chain_info::output_merged_store): Handle bit_not_p loads.
4627 (handled_load): Fill in bit_not_p. Handle BIT_NOT_EXPR.
4628 (pass_store_merging::process_store): Adjust
4629 terminate_all_aliasing_chains calls to pass NULL in all current spots,
4630 call terminate_all_aliasing_chains newly when adding a store into
4631 a chain with non-NULL chain_info.
4632
4633 2017-11-08 Wilco Dijkstra <wdijkstr@arm.com>
4634
4635 * config/aarch64/aarch64.c (aarch64_can_eliminate): Simplify logic.
4636
4637 2017-11-08 Wilco Dijkstra <wdijkstr@arm.com>
4638
4639 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
4640 Remove.
4641 (aarch64_layout_frame): Initialise emit_frame_chain.
4642 (aarch64_can_eliminate): Remove omit leaf frame pointer code.
4643 (TARGET_FRAME_POINTER_REQUIRED): Remove define.
4644
4645 2017-11-08 Martin Liska <mliska@suse.cz>
4646
4647 * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
4648 of gimple_call_internal_p.
4649
4650 2017-11-07 Tom de Vries <tom@codesourcery.com>
4651
4652 * config/mips/mips.h (ASM_OUTPUT_LABELREF): Wrap in "do {} while (0)".
4653
4654 2017-11-07 Tom de Vries <tom@codesourcery.com>
4655
4656 * config/mips/mips.h (ASM_OUTPUT_CASE_END): Remove semicolon after
4657 "do {} while (0)".
4658
4659 2017-11-08 Martin Liska <mliska@suse.cz>
4660
4661 PR sanitizer/82792
4662 * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
4663
4664 2017-11-07 Eric Botcazou <ebotcazou@adacore.com>
4665
4666 * gimple-pretty-print.c (dump_profile): Return "" instead of NULL.
4667
4668 2017-11-07 Jakub Jelinek <jakub@redhat.com>
4669
4670 PR target/82855
4671 * config/i386/i386.md (SWI1248_AVX512BWDQ2_64): New mode iterator.
4672 (*cmp<mode>_ccz_1): New insn with $k alternative.
4673
4674 PR target/82855
4675 * config/i386/i386.c (ix86_swap_binary_operands_p): Treat
4676 RTX_COMM_COMPARE as commutative as well.
4677 (ix86_binary_operator_ok): Formatting fix.
4678 * config/i386/sse.md (*mul<mode>3<mask_name><round_name>,
4679 *<code><mode>3<mask_name><round_saeonly_name>,
4680 *<code><mode>3<mask_name>, *<code>tf3, *mul<mode>3<mask_name>,
4681 *<s>mul<mode>3_highpart<mask_name>,
4682 *vec_widen_umult_even_v16si<mask_name>,
4683 *vec_widen_umult_even_v8si<mask_name>,
4684 *vec_widen_umult_even_v4si<mask_name>,
4685 *vec_widen_smult_even_v16si<mask_name>,
4686 *vec_widen_smult_even_v8si<mask_name>, *sse4_1_mulv2siv2di3<mask_name>,
4687 *avx2_pmaddwd, *sse2_pmaddwd, *<sse4_1_avx2>_mul<mode>3<mask_name>,
4688 *avx2_<code><mode>3, *avx512f_<code><mode>3<mask_name>,
4689 *sse4_1_<code><mode>3<mask_name>, *<code>v8hi3,
4690 *sse4_1_<code><mode>3<mask_name>, *<code>v16qi3, *avx2_eq<mode>3,
4691 <avx512>_eq<mode>3<mask_scalar_merge_name>_1, *sse4_1_eqv2di3,
4692 *sse2_eq<mode>3, <mask_codefor><code><mode>3<mask_name>,
4693 *<code><mode>3, *<sse2_avx2>_uavg<mode>3<mask_name>,
4694 *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, *ssse3_pmulhrswv4hi3): Use
4695 !(MEM_P (operands[1]) && MEM_P (operands[2])) condition instead of
4696 ix86_binary_operator_ok. Formatting fixes.
4697 (*<plusminus_insn><mode>3<mask_name><round_name>,
4698 *<plusminus_insn><mode>3, *<plusminus_insn><mode>3_m): Formatting
4699 fixes.
4700
4701 2017-11-07 Segher Boessenkool <segher@kernel.crashing.org>
4702
4703 * config/rs6000/rs6000.md (GPR2): New mode_iterator.
4704 ("cstore<mode>4"): Don't always expand with rs6000_emit_int_cmove for
4705 eq and ne if TARGET_ISEL.
4706 (cmp): New code_iterator.
4707 (UNS, UNSU_, UNSIK): New code_attrs.
4708 (<code><GPR:mode><GPR2:mode>2_isel): New define_insn_and_split.
4709 ("eq<mode>3"): New define_expand, rename the define_insn_and_split
4710 to...
4711 ("eq<mode>3"): ... this.
4712 ("ne<mode>3"): New define_expand, rename the define_insn_and_split
4713 to...
4714 ("ne<mode>3"): ... this.
4715
4716 2017-11-07 Julia Koval <julia.koval@intel.com>
4717
4718 PR target/82812
4719 * common/config/i386/i386-common.c
4720 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): Remove MPX from flag.
4721 (ix86_handle_option): Move MPX to isa_flags2 and GFNI to isa_flags.
4722 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
4723 * config/i386/i386.opt: Ditto.
4724 * config/i386/i386.c (ix86_target_string): Ditto.
4725 (ix86_option_override_internal): Ditto.
4726 (ix86_init_mpx_builtins): Move MPX to args2.
4727 (ix86_expand_builtin): Special handling for OPTION_MASK_ISA_GFNI.
4728 * config/i386/i386-builtin.def (__builtin_ia32_vgf2p8affineinvqb_v64qi,
4729 __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
4730 __builtin_ia32_vgf2p8affineinvqb_v32qi,
4731 __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
4732 __builtin_ia32_vgf2p8affineinvqb_v16qi,
4733 __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): Move to ARGS array.
4734
4735 2017-11-07 Uros Bizjak <ubizjak@gmail.com>
4736
4737 PR target/80425
4738 * config/i386.i386.md (*zero_extendsidi2): Change (?r,*Yj), (?*Yi,r)
4739 and (*x,m) to ($r,Yj), ($Yi,r) and ($x,m).
4740 (zero-extendsidi peephole2): Remove peephole.
4741
4742 2017-11-07 Eric Botcazou <ebotcazou@adacore.com>
4743
4744 PR c/53037
4745 * stor-layout.c: Include attribs.h.
4746 (handle_warn_if_not_align): Replace test on TYPE_USER_ALIGN with
4747 explicit lookup of "aligned" attribute.
4748
4749 2017-11-07 Andrew Waterman <andrew@sifive.com>
4750
4751 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): New prototype.
4752 (riscv_expand_block_move): Likewise.
4753 * config/riscv/riscv.h (MOVE_RATIO): Tune cost to movmemsi
4754 implementation.
4755 (RISCV_MAX_MOVE_BYTES_PER_LOOP_ITER): New define.
4756 (RISCV_MAX_MOVE_BYTES_STRAIGHT): New define.
4757 * config/riscv/riscv.c (riscv_block_move_straight): New function.
4758 (riscv_adjust_block_mem): Likewise.
4759 (riscv_block_move_loop): Likewise.
4760 (riscv_expand_block_move): Likewise.
4761 * config/riscv/riscv.md (movmemsi): New pattern.
4762
4763 2017-11-07 Michael Clark <michaeljclark@mac.com>
4764
4765 * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
4766 (MUSL_DYNAMIC_LINKER): Likewise.
4767
4768 2017-11-07 Richard Sandiford <richard.sandiford@linaro.org>
4769
4770 * config/aarch64/aarch64.md (ashl<mode>3, ashr<mode>3, lshr<mode>3)
4771 (rotr<mode>3, rotl<mode>3): Use aarch64_reg_or_imm instead of
4772 nonmmory_operand.
4773
4774 2017-11-07 Richard Biener <rguenther@suse.de>
4775
4776 * match.pd: Fix build.
4777
4778 2017-11-07 Wilco Dijkstra <wdijkstr@arm.com>
4779 Jackson Woodruff <jackson.woodruff@arm.com>
4780
4781 PR tree-optimization/71026
4782 * match.pd: Canonicalize negate in division.
4783
4784 2017-11-07 Sudakshina Das <sudi.das@arm.com>
4785
4786 PR middle-end/80131
4787 * match.pd: Simplify 1 << (C - x) where C = precision (x) - 1.
4788
4789 2017-11-07 Marc Glisse <marc.glisse@inria.fr>
4790
4791 * match.pd ((a&~b)|(a^b),(a&~b)^~a,(a|b)&~(a^b),a|~(a^b),
4792 (a|b)|(a&^b),(a&b)|~(a^b),~(~a&b),~X^Y): New transformations.
4793
4794 2017-11-07 Marc Glisse <marc.glisse@inria.fr>
4795
4796 * fold-const.c (negate_expr_p) [PLUS_EXPR, MINUS_EXPR]: Handle
4797 non-scalar integral types.
4798 * match.pd (negate_expr_p): Handle MINUS_EXPR.
4799 (-(A-B), -(~A)): New transformations.
4800
4801 2017-11-07 Tom de Vries <tom@codesourcery.com>
4802
4803 * config/powerpcspe/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove
4804 semicolon after "do {} while (0)".
4805 * config/powerpcspe/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4806 * config/powerpcspe/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4807 * config/powerpcspe/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4808 * config/powerpcspe/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4809 * config/powerpcspe/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4810
4811 2017-11-07 Tom de Vries <tom@codesourcery.com>
4812
4813 * config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Remove semicolon
4814 after "do {} while (0)".
4815 * config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4816 * config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4817 * config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4818 * config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4819 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Same.
4820
4821 2017-11-07 Tom de Vries <tom@codesourcery.com>
4822
4823 PR other/82784
4824 * config/arm/arm.c (HANDLE_NARROW_SHIFT_ARITH): Remove semicolon after
4825 "while {} do (0)".
4826 (arm_rtx_costs_internal): Add missing semicolon after
4827 HANDLE_NARROW_SHIFT_ARITH call.
4828
4829 2017-11-06 Segher Boessenkool <segher@kernel.crashing.org>
4830
4831 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
4832 disable isel if it was not set explicitly.
4833
4834 2017-11-06 James Bowman <james.bowman@ftdichip.com>
4835
4836 * gcc/dwarf2out.c (modified_type_die): Retain ADDR_SPACE qualifiers.
4837 (add_type_attribute) likewise.
4838
4839 2017-11-06 H.J. Lu <hongjiu.lu@intel.com>
4840
4841 * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
4842 of struct ix86_frame.
4843 (ix86_initial_elimination_offset): Likewise.
4844 (ix86_expand_split_stack_prologue): Likewise.
4845
4846 2017-11-06 Marc Glisse <marc.glisse@inria.fr>
4847
4848 * tree-vrp.h (enum value_range_type): Update stale comment.
4849
4850 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org>
4851 Alan Hayward <alan.hayward@arm.com>
4852 David Sherwood <david.sherwood@arm.com>
4853
4854 * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm)
4855 (aarch64_expand_vec_perm_const): Take the number of units too.
4856 * config/aarch64/aarch64.c (aarch64_expand_vec_perm)
4857 (aarch64_expand_vec_perm_const): Likewise.
4858 * config/aarch64/aarch64-simd.md (vec_perm_const<mode>)
4859 (vec_perm<mode>): Update accordingly.
4860
4861 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org>
4862 Alan Hayward <alan.hayward@arm.com>
4863 David Sherwood <david.sherwood@arm.com>
4864
4865 * config/aarch64/aarch64-protos.h (aarch64_simd_vect_par_cnst_half):
4866 Take the number of units too.
4867 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Likewise.
4868 (aarch64_simd_check_vect_par_cnst_half): Update call accordingly,
4869 but check for a vector mode before rather than after the call.
4870 * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>)
4871 (move_hi_quad_<mode>, vec_unpack<su>_hi_<mode>)
4872 (vec_unpack<su>_lo_<mode, vec_widen_<su>mult_lo_<mode>)
4873 (vec_widen_<su>mult_hi_<mode>, vec_unpacks_lo_<mode>)
4874 (vec_unpacks_hi_<mode>, aarch64_saddl2<mode>, aarch64_uaddl2<mode>)
4875 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>, widen_ssum<mode>3)
4876 (widen_usum<mode>3, aarch64_saddw2<mode>, aarch64_uaddw2<mode>)
4877 (aarch64_ssubw2<mode>, aarch64_usubw2<mode>, aarch64_sqdmlal2<mode>)
4878 (aarch64_sqdmlsl2<mode>, aarch64_sqdmlal2_lane<mode>)
4879 (aarch64_sqdmlal2_laneq<mode>, aarch64_sqdmlsl2_lane<mode>)
4880 (aarch64_sqdmlsl2_laneq<mode>, aarch64_sqdmlal2_n<mode>)
4881 (aarch64_sqdmlsl2_n<mode>, aarch64_sqdmull2<mode>)
4882 (aarch64_sqdmull2_lane<mode>, aarch64_sqdmull2_laneq<mode>)
4883 (aarch64_sqdmull2_n<mode>): Update accordingly.
4884
4885 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org>
4886 Alan Hayward <alan.hayward@arm.com>
4887 David Sherwood <david.sherwood@arm.com>
4888
4889 * config/aarch64/aarch64-protos.h (aarch64_reverse_mask): Take
4890 the number of units too.
4891 * config/aarch64/aarch64.c (aarch64_reverse_mask): Likewise.
4892 * config/aarch64/aarch64-simd.md (vec_load_lanesoi<mode>)
4893 (vec_store_lanesoi<mode>, vec_load_lanesci<mode>)
4894 (vec_store_lanesci<mode>, vec_load_lanesxi<mode>)
4895 (vec_store_lanesxi<mode>): Update accordingly.
4896
4897 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org>
4898 Alan Hayward <alan.hayward@arm.com>
4899 David Sherwood <david.sherwood@arm.com>
4900
4901 * config/aarch64/aarch64-protos.h (aarch64_endian_lane_rtx): Declare.
4902 * config/aarch64/aarch64.c (aarch64_endian_lane_rtx): New function.
4903 * config/aarch64/aarch64.h (ENDIAN_LANE_N): Take the number
4904 of units rather than the mode.
4905 * config/aarch64/iterators.md (nunits): New mode attribute.
4906 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
4907 Use aarch64_endian_lane_rtx instead of GEN_INT (ENDIAN_LANE_N ...).
4908 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
4909 (aarch64_dup_lane_<vswap_width_name><mode>, *aarch64_mul3_elt<mode>)
4910 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
4911 (*aarch64_mul3_elt_to_64v2df, *aarch64_mla_elt<mode>): Likewise.
4912 (*aarch64_mla_elt_<vswap_width_name><mode>, *aarch64_mls_elt<mode>)
4913 (*aarch64_mls_elt_<vswap_width_name><mode>, *aarch64_fma4_elt<mode>)
4914 (*aarch64_fma4_elt_<vswap_width_name><mode>):: Likewise.
4915 (*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt<mode>): Likewise.
4916 (*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
4917 (*aarch64_fnma4_elt_to_64v2df, reduc_plus_scal_<mode>): Likewise.
4918 (reduc_plus_scal_v4sf, reduc_<maxmin_uns>_scal_<mode>): Likewise.
4919 (reduc_<maxmin_uns>_scal_<mode>): Likewise.
4920 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
4921 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
4922 (aarch64_get_lane<mode>, *aarch64_mulx_elt_<vswap_width_name><mode>)
4923 (*aarch64_mulx_elt<mode>, *aarch64_vgetfmulx<mode>): Likewise.
4924 (aarch64_sq<r>dmulh_lane<mode>, aarch64_sq<r>dmulh_laneq<mode>)
4925 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Likewise.
4926 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
4927 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Likewise.
4928 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Likewise.
4929 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
4930 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
4931 (aarch64_sqdmull_lane<mode>, aarch64_sqdmull_laneq<mode>): Likewise.
4932 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
4933 (aarch64_sqdmull2_laneq<mode>_internal): Likewise.
4934 (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
4935 (aarch64_vec_store_lanesoi_lane<mode>): Likewise.
4936 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
4937 (aarch64_vec_store_lanesci_lane<mode>): Likewise.
4938 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
4939 (aarch64_vec_store_lanesxi_lane<mode>): Likewise.
4940 (aarch64_simd_vec_set<mode>): Update use of ENDIAN_LANE_N.
4941 (aarch64_simd_vec_setv2di): Likewise.
4942
4943 2017-11-06 Carl Love <cel@us.ibm.com>
4944
4945 * config/rs6000/rs6000-c.c (P8V_BUILTIN_VEC_REVB): Add power 8
4946 definitions.
4947 (P9V_BUILTIN_VEC_REVB): Remove the power 9 instance definitions.
4948 * config/rs6000/altivec.h (vec_revb): Change the #define from power 9
4949 to power 8.
4950 * config/rs6000/r6000-protos.h (swap_endian_selector_for_mode): Add new
4951 extern declaration.
4952 * config/rs6000/rs6000.c (swap_endian_selector_for_mode): Add function.
4953 * config/rs6000/rs6000-builtin.def (BU_P8V_VSX_1, BU_P8V_OVERLOAD_1):
4954 Add power 8 macro expansions.
4955 (BU_P9V_OVERLOAD_1): Remove power 9 overload expansion.
4956 * config/rs6000/vsx.md (revb_<mode>): Add define_expand to generate
4957 power 8 instructions. (VSX_XXBR): Add iterator.
4958
4959 2017-11-06 Wilco Dijkstra <wdijkstr@arm.com>
4960
4961 * config/arm/arm.md (predicable_short_it): Change default to "no",
4962 improve documentation, remove uses that are identical to the default.
4963 (enabled_for_depr_it): Rename to enabled_for_short_it.
4964 * gcc/config/arm/arm-fixed.md (predicable_short_it):
4965 Remove default uses.
4966 * gcc/config/arm/ldmstm.md (predicable_short_it): Likewise.
4967 * gcc/config/arm/sync.md (predicable_short_it): Likewise.
4968 * gcc/config/arm/thumb2.md (predicable_short_it): Likewise.
4969 * gcc/config/arm/vfp.md (predicable_short_it): Likewise.
4970
4971 2017-11-06 Michael Meissner <meissner@linux.vnet.ibm.com>
4972
4973 PR target/82748
4974 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
4975 float128 helper macros, which are no longer used after deleting
4976 the old 'q' built-in functions, and moving the round to odd
4977 built-in functions to being special built-in functions.
4978 (BU_FLOAT128_2): Likewise.
4979 (BU_FLOAT128_1_HW): Likewise.
4980 (BU_FLOAT128_2_HW): Likewise.
4981 (BU_FLOAT128_3_HW): Likewise.
4982 (FABSQ): Delete old 'q' built-in functions.
4983 (COPYSIGNQ): Likewise.
4984 (SQRTF128_ODD): Move round to odd built-in functions to be
4985 special built-in functions, so that we can handle
4986 -mabi=ieeelongdouble.
4987 (TRUNCF128_ODD): Likewise.
4988 (ADDF128_ODD): Likewise.
4989 (SUBF128_ODD): Likewise.
4990 (MULF128_ODD): Likewise.
4991 (DIVF128_ODD): Likewise.
4992 (FMAF128_ODD): Likewise.
4993 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
4994 built-in names to 'f128'.
4995 * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
4996 old 'q' built-in functions, as the machine independent code for
4997 'f128' built-in functions handles this.
4998 (rs6000_expand_builtin): Add expansion for float128 round to odd
4999 functions, keying off on -mabi=ieeelongdouble of whether to use
5000 the KFmode or TFmode variant.
5001 (rs6000_init_builtins): Initialize the _Float128 round to odd
5002 built-in functions.
5003 * doc/extend.texi (PowerPC Built-in Functions): Document the old
5004 _Float128 'q' built-in functions are now mapped into the new
5005 'f128' built-in functions.
5006
5007 2017-11-06 David Edelsohn <dje.gcc@gmail.com>
5008
5009 * collect2.c (add_lto_object): Compile for OBJECT_COFF.
5010 (scan_prog_file): Don't skip PASS_LTOINFO. Scan for LTO objects.
5011
5012 2017-11-06 David Malcolm <dmalcolm@redhat.com>
5013
5014 PR jit/82826
5015 * ipa-fnsummary.c (ipa_fnsummary_c_finalize): New function.
5016 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): New decl.
5017 * toplev.c: Include "ipa-fnsummary.h".
5018 (toplev::finalize): Call ipa_fnsummary_c_finalize.
5019
5020 2017-11-06 Jakub Jelinek <jakub@redhat.com>
5021
5022 PR tree-optimization/82838
5023 * gimple-ssa-store-merging.c
5024 (imm_store_chain_info::output_merged_store): Call force_gimple_operand_1
5025 on a separate gimple_seq which is then appended to seq.
5026
5027 2017-11-06 Jeff Law <law@redhat.com>
5028
5029 PR target/82788
5030 * config/i386/i386.c (PROBE_INTERVAL): Remove.
5031 (get_probe_interval): New functions.
5032 (ix86_adjust_stack_and_probe_stack_clash): Use get_probe_interval.
5033 (ix86_adjust_stack_and_probe): Likewise.
5034 (output_adjust_stack_and_probe): Likewise.
5035 (ix86_emit_probe_stack_range): Likewise.
5036 (ix86_expand_prologue): Likewise.
5037
5038 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org>
5039
5040 PR tree-optimization/82816
5041 * tree-ssa-math-opts.c (convert_mult_to_widen): Return false
5042 if the modes of the two types are the same.
5043 (convert_plusminus_to_widen): Likewise.
5044
5045 2017-11-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5046
5047 * config/rs6000/altivec.md (*p9_vadu<mode>3) Rename to
5048 p9_vadu<mode>3.
5049 (usadv16qi): New define_expand.
5050 (usadv8hi): New define_expand.
5051
5052 2017-11-06 Jan Hubicka <hubicka@ucw.cz>
5053
5054 PR bootstrap/82832
5055 * ipa-inline-transform.c (update_noncloned_frequencies): Always
5056 scale.
5057 (inline_transform): Likewise.
5058 * predict.c (counts_to_freqs): Remove useless conditional.
5059 * profile-count.h (profile_count::apply_scale): Move sanity check.
5060 * tree-inline.c (copy_bb): Always scale.
5061 (copy_cfg_body): Likewise.
5062
5063 2017-11-06 Christophe Lyon <christophe.lyon@linaro.org>
5064
5065 PR target/67591
5066 * config/arm/arm.md (*sub_shiftsi): Add predicable_short_it
5067 attribute.
5068 (*cmp_ite0): Add enabled_for_depr_it attribute.
5069 (*cmp_ite1): Likewise.
5070
5071 2017-11-06 Segher Boessenkool <segher@kernel.crashing.org>
5072
5073 * config/rs6000/rs6000.c (rs6000_insn_cost): Handle TYPE_MFCR and
5074 TYPE_MFCRF.
5075
5076 2017-11-06 Richard Sandiford <richard.sandiford@linaro.org>
5077
5078 * tree-vrp.c (vrp_int_const_binop): Return true on success and
5079 return the value by pointer.
5080 (extract_range_from_multiplicative_op_1): Update accordingly.
5081 Return as soon as an operation fails.
5082
5083 2017-11-05 Tom de Vries <tom@codesourcery.com>
5084
5085 PR other/82784
5086 * asan.c (DEF_SANITIZER_BUILTIN_1): Factor out of ...
5087 (DEF_SANITIZER_BUILTIN): ... here.
5088 (initialize_sanitizer_builtins): Use DEF_SANITIZER_BUILTIN_1 instead of
5089 DEF_SANITIZER_BUILTIN in if stmt. Add missing semicolon.
5090
5091 2017-11-05 Tom de Vries <tom@codesourcery.com>
5092
5093 PR other/82784
5094 * config/elfos.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon after
5095 macro body.
5096 (ASM_OUTPUT_CASE_LABEL): Add semicolon after
5097 ASM_OUTPUT_BEFORE_CASE_LABEL call.
5098 * config/arc/arc.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove semicolon
5099 after macro body.
5100 * config/m68k/m68kelf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
5101 * config/mips/mips.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
5102 * config/v850/v850.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Same.
5103
5104 2017-11-05 Tom de Vries <tom@codesourcery.com>
5105
5106 PR other/82784
5107 * graphite-scop-detection.c (DEBUG_PRINT): Remove semicolon after
5108 "do {} while (0)".
5109
5110 2017-11-04 Michael Clark <michaeljclark@mac.com>
5111
5112 * config/riscv/riscv.c (riscv_print_operand): Add a 'i' format.
5113 config/riscv/riscv.md (addsi3): Use 'i' for immediates.
5114 (adddi3): Likewise.
5115 (*addsi3_extended): Likewise.
5116 (*addsi3_extended2): Likewise.
5117 (<optab>si3): Likewise.
5118 (<optab>di3): Likewise.
5119 (<optab><mode>3): Likewise.
5120 (<*optabe>si3_internal): Likewise.
5121 (zero_extendqi<SUPERQI:mode>2): Likewise.
5122 (*add<mode>hi3): Likewise.
5123 (*xor<mode>hi3): Likewise.
5124 (<optab>di3): Likewise.
5125 (*<optab>si3_extend): Likewise.
5126 (*sge<u>_<X:mode><GPR:mode>): Likewise.
5127 (*slt<u>_<X:mode><GPR:mode>): Likewise.
5128 (*sle<u>_<X:mode><GPR:mode>): Likewise.
5129
5130 2017-11-04 Andrew Waterman <andrew@sifive.com>
5131
5132 * config/riscv/riscv.c (riscv_option_override): Conditionally set
5133 TARGET_STRICT_ALIGN based upon -mtune argument.
5134
5135 2017-11-04 Andrew Waterman <andrew@sifive.com>
5136
5137 * config/riscv/riscv.h (SLOW_BYTE_ACCESS): Change to 1.
5138
5139 2017-11-04 Daniel Santos <daniel.santos@pobox.com>
5140
5141 * config/i386/i386.c (choose_basereg): Use optional scratch
5142 register and add assertion.
5143 (x86_emit_outlined_ms2sysv_save): Use scratch register when
5144 needed, and don't allocate stack.
5145 (ix86_expand_prologue): Rearrange where SSE saves/stub call is
5146 emitted, correct wrong allocation with -mcall-ms2sysv-xlogues.
5147 (ix86_emit_outlined_ms2sysv_restore): Fix non-immediate offsets.
5148
5149 2017-11-03 Jeff Law <law@redhat.com>
5150
5151 * config/i386/i386.c (ix86_emit_restore_reg_using_pop): Prototype.
5152 (ix86_adjust_stack_and_probe_stack_clash): Use a push/pop sequence
5153 to probe at the start of a noreturn function.
5154
5155 2017-11-03 Jakub Jelinek <jakub@redhat.com>
5156
5157 PR tree-optimization/78821
5158 * gimple-ssa-store-merging.c: Update the file comment.
5159 (MAX_STORE_ALIAS_CHECKS): Define.
5160 (struct store_operand_info): New type.
5161 (store_operand_info::store_operand_info): New constructor.
5162 (struct store_immediate_info): Add rhs_code and ops data members.
5163 (store_immediate_info::store_immediate_info): Add rhscode, op0r
5164 and op1r arguments to the ctor, initialize corresponding data members.
5165 (struct merged_store_group): Add load_align_base and load_align
5166 data members.
5167 (merged_store_group::merged_store_group): Initialize them.
5168 (merged_store_group::do_merge): Update them.
5169 (merged_store_group::apply_stores): Pick the constant for
5170 encode_tree_to_bitpos from one of the two operands, or skip
5171 encode_tree_to_bitpos if neither operand is a constant.
5172 (class pass_store_merging): Add process_store method decl. Remove
5173 bool argument from terminate_all_aliasing_chains method decl.
5174 (pass_store_merging::terminate_all_aliasing_chains): Remove
5175 var_offset_p argument and corresponding handling.
5176 (stmts_may_clobber_ref_p): New function.
5177 (compatible_load_p): New function.
5178 (imm_store_chain_info::coalesce_immediate_stores): Terminate group
5179 if there is overlap and rhs_code is not INTEGER_CST. For
5180 non-overlapping stores terminate group if rhs is not mergeable.
5181 (get_alias_type_for_stmts): Change first argument from
5182 auto_vec<gimple *> & to vec<gimple *> &. Add IS_LOAD, CLIQUEP and
5183 BASEP arguments. If IS_LOAD is true, look at rhs1 of the stmts
5184 instead of lhs. Compute *CLIQUEP and *BASEP in addition to the
5185 alias type.
5186 (get_location_for_stmts): Change first argument from
5187 auto_vec<gimple *> & to vec<gimple *> &.
5188 (struct split_store): Remove orig_stmts data member, add orig_stores.
5189 (split_store::split_store): Create orig_stores rather than orig_stmts.
5190 (find_constituent_stmts): Renamed to ...
5191 (find_constituent_stores): ... this. Change second argument from
5192 vec<gimple *> * to vec<store_immediate_info *> *, push pointers
5193 to info structures rather than the statements.
5194 (split_group): Rename ALLOW_UNALIGNED argument to
5195 ALLOW_UNALIGNED_STORE, add ALLOW_UNALIGNED_LOAD argument and handle
5196 it. Adjust find_constituent_stores caller.
5197 (imm_store_chain_info::output_merged_store): Handle rhs_code other
5198 than INTEGER_CST, adjust split_group, get_alias_type_for_stmts and
5199 get_location_for_stmts callers. Set MR_DEPENDENCE_CLIQUE and
5200 MR_DEPENDENCE_BASE on the MEM_REFs if they are the same in all stores.
5201 (mem_valid_for_store_merging): New function.
5202 (handled_load): New function.
5203 (pass_store_merging::process_store): New method.
5204 (pass_store_merging::execute): Use process_store method. Adjust
5205 terminate_all_aliasing_chains caller.
5206
5207 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com>
5208
5209 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
5210 Return true for more constants, symbols and label references.
5211 (aarch64_valid_floating_const): Remove unused function.
5212
5213 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com>
5214
5215 PR target/82786
5216 * config/aarch64/aarch64.c (aarch64_layout_frame):
5217 Undo forcing of LR at bottom of frame.
5218
5219 2017-11-03 Jeff Law <law@redhat.com>
5220
5221 PR target/82823
5222 * config/i386/i386.c (ix86_expand_prologue): Tighten assert
5223 for int_registers_saved.
5224
5225 * cfganal.c (single_pred_edge_ignoring_loop_edges): New function
5226 extracted from tree-ssa-dom.c.
5227 * cfganal.h (single_pred_edge_ignoring_loop_edges): Prototype.
5228 * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): Remove.
5229 (record_equivalences_from_incoming_edge): Add additional argument
5230 to single_pred_edge_ignoring_loop_edges call.
5231 * tree-ssa-uncprop.c (single_incoming_edge_ignoring_loop_edges): Remove.
5232 (uncprop_dom_walker::before_dom_children): Add additional argument
5233 to single_pred_edge_ignoring_loop_edges call.
5234 * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Use
5235 single_pred_edge_ignoring_loop_edges rather than open coding.
5236 * tree-vrp.c (evrp_dom_walker::before_dom_children): Similarly.
5237
5238 2017-11-03 Marc Glisse <marc.glisse@inria.fr>
5239
5240 * match.pd (-(-A)): Rewrite.
5241
5242 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org>
5243
5244 * config/rs6000/rs60000-protos.h (rs6000_emit_sISEL): Delete.
5245 (rs6000_emit_int_cmove): New declaration.
5246 * config/rs6000/rs6000.c (rs6000_emit_int_cmove): Delete declaration.
5247 (rs6000_emit_sISEL): Delete.
5248 (rs6000_emit_int_cmove): Make non-static.
5249 * config/rs6000/rs6000.md (cstore<mode>4): Use rs6000_emit_int_cmove
5250 instead of rs6000_emit_sISEL.
5251
5252 2017-11-03 Jan Hubicka <hubicka@ucw.cz>
5253
5254 * asan.c (create_cond_insert_point): Maintain profile.
5255 * ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
5256 merged.
5257 * basic-block.h (struct basic_block_def): Remove frequency.
5258 (EDGE_FREQUENCY): Use to_frequency
5259 * bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
5260 heuristics.
5261 (find_traces): Update to use to_frequency.
5262 (find_traces_1_round): Likewise; use only IPA counts.
5263 (bb_to_key): Likewise.
5264 (connect_traces): Use IPA counts only.
5265 (copy_bb_p): Update to use to_frequency.
5266 (fix_up_crossing_landing_pad): Likewise.
5267 (sanitize_hot_paths): Likewise.
5268 * bt-load.c (basic_block_freq): Likewise.
5269 * cfg.c (init_flow): Set count_max to uninitialized.
5270 (check_bb_profile): Remove frequencies; check counts.
5271 (dump_bb_info): Do not dump frequencies.
5272 (update_bb_profile_for_threading): Update counts only.
5273 (scale_bbs_frequencies_int): Likewise.
5274 (MAX_SAFE_MULTIPLIER): Remove.
5275 (scale_bbs_frequencies_gcov_type): Update counts only.
5276 (scale_bbs_frequencies_profile_count): Update counts only.
5277 (scale_bbs_frequencies): Update counts only.
5278 * cfg.h (struct control_flow_graph): Add count-max.
5279 (update_bb_profile_for_threading): Update prototype.
5280 * cfgbuild.c (find_bb_boundaries): Do not update frequencies.
5281 (find_many_sub_basic_blocks): Likewise.
5282 * cfgcleanup.c (try_forward_edges): Likewise.
5283 (try_crossjump_to_edge): Likewise.
5284 * cfgexpand.c (expand_gimple_cond): Likewise.
5285 (expand_gimple_tailcall): Likewise.
5286 (construct_init_block): Likewise.
5287 (construct_exit_block): Likewise.
5288 * cfghooks.c (verify_flow_info): Check consistency of counts.
5289 (dump_bb_for_graph): Do not dump frequencies.
5290 (split_block_1): Do not update frequencies.
5291 (split_edge): Do not update frequencies.
5292 (make_forwarder_block): Do not update frequencies.
5293 (duplicate_block): Do not update frequencies.
5294 (account_profile_record): Do not update frequencies.
5295 * cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
5296 for global heuristics.
5297 * cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
5298 (expected_loop_iterations_unbounded): Use counts only.
5299 * cfgloopmanip.c (scale_loop_profile): Simplify.
5300 (create_empty_loop_on_edge): Simplify
5301 (loopify): Simplify
5302 (duplicate_loop_to_header_edge): Simplify
5303 * cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
5304 (update_br_prob_note): Take care of removing note when profile
5305 becomes undefined.
5306 (relink_block_chain): Do not dump frequency.
5307 (rtl_account_profile_record): Use to_frequency.
5308 * cgraph.c (symbol_table::create_edge): Convert count to ipa count.
5309 (cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
5310 (cgraph_update_edges_for_call_stmt_node): Likewise.
5311 (cgraph_edge::verify_count_and_frequency): Update.
5312 (cgraph_node::verify_node): Temporarily disable frequency verification.
5313 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
5314 to_cgraph_frequency.
5315 (cgraph_edge::rebuild_edges): Convert to ipa counts.
5316 * cgraphunit.c (init_lowered_empty_function): Do not initialize
5317 frequencies.
5318 (cgraph_node::expand_thunk): Update profile.
5319 * except.c (dw2_build_landing_pads): Do not update frequency.
5320 * final.c (compute_alignments): Use to_frequency.
5321 (dump_basic_block_info): Do not dump frequency.
5322 * gimple-pretty-print.c (dump_profile): Do not dump frequency.
5323 (dump_gimple_bb_header): Do not dump frequency.
5324 * gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
5325 do update count.
5326 * gimple-streamer-in.c (input_bb): Do not stream frequency.
5327 * gimple-streamer-out.c (output_bb): Do not stream frequency.
5328 * haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
5329 (init_before_recovery): Do not update frequency.
5330 (sched_create_recovery_edges): Do not update frequency.
5331 * hsa-gen.c (convert_switch_statements): Do not update frequency.
5332 * ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
5333 (ipa_cp_c_finalize): Set max_count to uninitialized.
5334 * ipa-fnsummary.c (get_minimal_bb): Use counts.
5335 (param_change_prob): Use counts.
5336 * ipa-profile.c (ipa_profile_generate_summary): Do not summarize
5337 local profiles.
5338 * ipa-split.c (consider_split): Use to_frequency.
5339 (split_function): Use to_frequency.
5340 * ira-build.c (loop_compare_func): Likewise.
5341 (mark_loops_for_removal): Likewise.
5342 (mark_all_loops_for_removal): Likewise.
5343 * loop-doloop.c (doloop_modify): Do not update frequency.
5344 * loop-unroll.c (unroll_loop_runtime_iterations): Do not update
5345 frequency.
5346 * lto-streamer-in.c (input_function): Update count_max.
5347 * omp-expand.c (expand_omp_taskreg): Update count_max.
5348 * omp-simd-clone.c (simd_clone_adjust): Update profile.
5349 * predict.c (maybe_hot_frequency_p): Use to_frequency.
5350 (maybe_hot_count_p): Use ipa counts only.
5351 (maybe_hot_bb_p): Simplify.
5352 (maybe_hot_edge_p): Simplify.
5353 (probably_never_executed): Do not take frequency argument.
5354 (probably_never_executed_bb_p): Do not pass frequency.
5355 (probably_never_executed_edge_p): Likewise.
5356 (combine_predictions_for_bb): Check that profile is nonzero.
5357 (propagate_freq): Do not set frequency.
5358 (drop_profile): Simplify.
5359 (counts_to_freqs): Simplify.
5360 (expensive_function_p): Use to_frequency.
5361 (propagate_unlikely_bbs_forward): Simplify.
5362 (determine_unlikely_bbs): Simplify.
5363 (estimate_bb_frequencies): Add hack to silence graphite issues.
5364 (compute_function_frequency): Use ipa counts.
5365 (pass_profile::execute): Update.
5366 (rebuild_frequencies): Use counts only.
5367 (force_edge_cold): Use counts only.
5368 * profile-count.c (profile_count::dump): Dump new count types.
5369 (profile_count::differs_from_p): Check compatiblity.
5370 (profile_count::to_frequency): New function.
5371 (profile_count::to_cgraph_frequency): New function.
5372 * profile-count.h (struct function): Declare.
5373 (enum profile_quality): Add profile_guessed_local and
5374 profile_guessed_global0.
5375 (class profile_proability): Decrease number of bits to 29;
5376 update from_reg_br_prob_note and to_reg_br_prob_note.
5377 (class profile_count: Update comment; decrease number of bits
5378 to 61. Check compatibility.
5379 (profile_count::compatible_p): New private member function.
5380 (profile_count::ipa_p): New member function.
5381 (profile_count::operator<): Handle global zero correctly.
5382 (profile_count::operator>): Handle global zero correctly.
5383 (profile_count::operator<=): Handle global zero correctly.
5384 (profile_count::operator>=): Handle global zero correctly.
5385 (profile_count::nonzero_p): New member function.
5386 (profile_count::force_nonzero): New member function.
5387 (profile_count::max): New member function.
5388 (profile_count::apply_scale): Handle IPA scalling.
5389 (profile_count::guessed_local): New member function.
5390 (profile_count::global0): New member function.
5391 (profile_count::ipa): New member function.
5392 (profile_count::to_frequency): Declare.
5393 (profile_count::to_cgraph_frequency): Declare.
5394 * profile.c (OVERLAP_BASE): Delete.
5395 (compute_frequency_overlap): Delete.
5396 (compute_branch_probabilities): Do not use compute_frequency_overlap.
5397 * regs.h (REG_FREQ_FROM_BB): Use to_frequency.
5398 * sched-ebb.c (rank): Use counts only.
5399 * shrink-wrap.c (handle_simple_exit): Use counts only.
5400 (try_shrink_wrapping): Use counts only.
5401 (place_prologue_for_one_component): Use counts only.
5402 * tracer.c (find_best_predecessor): Use to_frequency.
5403 (find_trace): Use to_frequency.
5404 (tail_duplicate): Use to_frequency.
5405 * trans-mem.c (expand_transaction): Do not update frequency.
5406 * tree-call-cdce.c: Do not update frequency.
5407 * tree-cfg.c (gimple_find_sub_bbs): Likewise.
5408 (gimple_merge_blocks): Likewise.
5409 (gimple_split_edge): Likewise.
5410 (gimple_duplicate_sese_region): Likewise.
5411 (gimple_duplicate_sese_tail): Likewise.
5412 (move_sese_region_to_fn): Likewise.
5413 (gimple_account_profile_record): Likewise.
5414 (insert_cond_bb): Likewise.
5415 * tree-complex.c (expand_complex_div_wide): Likewise.
5416 * tree-eh.c (lower_resx): Update profile.
5417 * tree-inline.c (copy_bb): Simplify count scaling; do not scale
5418 frequencies.
5419 (initialize_cfun): Do not initialize frequencies
5420 (freqs_to_counts): Delete.
5421 (copy_cfg_body): Ignore count parameter.
5422 (copy_body): Update.
5423 (expand_call_inline): Update count_max.
5424 (optimize_inline_calls): Update count_max.
5425 (tree_function_versioning): Update count_max.
5426 * tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
5427 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
5428 frequency.
5429 * tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
5430 * tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
5431 (try_peel_loop): Likewise.
5432 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
5433 to_frequency.
5434 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
5435 (tree_transform_and_unroll_loop): Do not use frequencies
5436 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
5437 Use reliable prediction only.
5438 * tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
5439 * tree-ssa-sink.c (select_best_block): Use to_frequency.
5440 * tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
5441 probability scaling.
5442 * tree-ssa-threadupdate.c (create_block_for_threading): Do
5443 not update frequency
5444 (any_remaining_duplicated_blocks): Likewise.
5445 (update_profile): Likewise.
5446 (estimated_freqs_path): Delete.
5447 (freqs_to_counts_path): Delete.
5448 (clear_counts_path): Delete.
5449 (ssa_fix_duplicate_block_edges): Likewise.
5450 (duplicate_thread_path): Likewise.
5451 * tree-switch-conversion.c (gen_inbound_check): Use counts.
5452 * tree-tailcall.c (decrease_profile): Do not update frequency.
5453 (eliminate_tail_call): Likewise.
5454 * tree-vect-loop-manip.c (vect_do_peeling): Likewise.
5455 * tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
5456 (optimize_mask_stores): Likewise.
5457 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
5458 * ubsan.c (ubsan_expand_null_ifn): Update profile.
5459 (ubsan_expand_ptr_ifn): Update profile.
5460 * value-prof.c (gimple_ic): Simplify.
5461 * value-prof.h (gimple_ic): Update prototype.
5462 * ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
5463 * ipa-inline.c (compute_uninlined_call_time): Be sure that
5464 counts are nonzero.
5465 (want_inline_self_recursive_call_p): Likewise.
5466 (resolve_noninline_speculation): Only cummulate defined counts.
5467 (inline_small_functions): Use nonzero_p.
5468 (ipa_inline): Do not access freed node.
5469
5470 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com>
5471
5472 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5473 Set PARAM_SCHED_PRESSURE_ALGORITHM to SCHED_PRESSURE_MODEL.
5474
5475 2017-11-03 Kito Cheng <kito.cheng@gmail.com>
5476
5477 * config/riscv/riscv.c (riscv_legitimize_move): Handle
5478 non-legitimate address.
5479
5480 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org>
5481
5482 * config/rs6000/rs6000.md (*lt0_disi): Delete.
5483 (*lt0_<mode>di, *lt0_<mode>si): New.
5484
5485 2017-11-03 Segher Boessenkool <segher@kernel.crashing.org>
5486
5487 * config/rs6000/rs6000.md (move_from_CR_ov_bit): Change condition to
5488 TARGET_PAIRED_FLOAT.
5489
5490 2017-11-03 Siddhesh Poyarekar <siddhesh.poyarekar@linaro.org>
5491 Jim Wilson <jim.wilson@linaro.org>
5492
5493 * config/aarch64/aarch64-cores.def (saphira): New CPU.
5494 * config/aarch64/aarch64-tune.md: Regenerated.
5495 * doc/invoke.texi (AArch64 Options/-mtune): Add "saphira".
5496 * gcc/config/aarch64/aarch64.c (saphira_tunings): New tuning table.
5497
5498 2017-11-03 Cupertino Miranda <cmiranda@synopsys.com>
5499
5500 * config/arc/arc.c (arc_save_restore): Corrected CFA note.
5501 (arc_expand_prologue): Restore blink for millicode.
5502 * config/arc/linux.h (LINK_EH_SPEC): Defined.
5503
5504 2017-11-03 Richard Sandiford <richard.sandiford@linaro.org>
5505
5506 PR target/82809
5507 * config/i386/i386.c (ix86_vector_duplicate_value): Use
5508 gen_vec_duplicate after forcing the scalar into a register.
5509
5510 2017-11-02 Segher Boessenkool <segher@kernel.crashing.org>
5511
5512 * combine (try_combine): Print the insns input to try_combine to the
5513 dump file.
5514
5515 2017-11-02 Steve Ellcey <sellcey@cavium.com>
5516
5517 PR target/79868
5518 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
5519 Remove second argument from aarch64_process_target_attr call.
5520 * config/aarch64/aarch64-protos.h (aarch64_process_target_attr):
5521 Ditto.
5522 * config/aarch64/aarch64.c (aarch64_attribute_info): Change
5523 field type.
5524 (aarch64_handle_attr_arch): Remove second argument.
5525 (aarch64_handle_attr_cpu): Ditto.
5526 (aarch64_handle_attr_tune): Ditto.
5527 (aarch64_handle_attr_isa_flags): Ditto.
5528 (aarch64_process_one_target_attr): Ditto.
5529 (aarch64_process_target_attr): Ditto.
5530 (aarch64_option_valid_attribute_p): Remove second argument.
5531 on aarch64_process_target_attr call.
5532
5533 2017-11-02 David Malcolm <dmalcolm@redhat.com>
5534
5535 * diagnostic.c: Include "selftest-diagnostic.h".
5536 (selftest::assert_location_text): New function.
5537 (selftest::test_diagnostic_get_location_text): New function.
5538 (selftest::diagnostic_c_tests): Call it.
5539
5540 2017-11-02 David Malcolm <dmalcolm@redhat.com>
5541
5542 * Makefile.in (OBJS-libcommon): Add selftest-diagnostic.o.
5543 * diagnostic-show-locus.c: Include "selftest-diagnostic.h".
5544 (class selftest::test_diagnostic_context): Move to...
5545 * selftest-diagnostic.c: New file.
5546 * selftest-diagnostic.h: New file.
5547
5548 2017-11-02 James Bowman <james.bowman@ftdichip.com>
5549
5550 * config/ft32/ft32.c (ft32_addr_space_legitimate_address_p): increase
5551 offset range for FT32B.
5552 * config/ft32/ft32.h: option "mcompress" enables relaxation.
5553 * config/ft32/ft32.md: Add TARGET_NOPM.
5554 * config/ft32/ft32.opt: Add mft32b, mcompress, mnopm.
5555 * gcc/doc/invoke.texi: Add mft32b, mcompress, mnopm.
5556
5557 2017-11-02 Wilco Dijkstra <wdijkstr@arm.com>
5558
5559 * config/aarch64/aarch64.h (MALLOC_ABI_ALIGNMENT): New define.
5560
5561 2017-11-02 Jeff Law <law@redhat.com>
5562
5563 * gimple-ssa-sprintf.c (sprintf_dom_walker): Remove
5564 virtual keyword on FINAL OVERRIDE members.
5565
5566 * tree-ssa-propagate.h (ssa_propagation_engine): Group
5567 virtuals together. Add virtual destructor.
5568 (substitute_and_fold_engine): Similarly.
5569
5570 2017-11-02 Jan Hubicka <hubicka@ucw.cz>
5571
5572 * x86-tune.def (X86_TUNE_USE_INCDEC): Enable for Haswell+.
5573
5574 2017-11-02 Richard Biener <rguenther@suse.de>
5575
5576 PR tree-optimization/82795
5577 * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
5578
5579 2017-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5580
5581 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Don't require
5582 gcc_SUN_LD_VERSION.
5583 (gcc_GAS_CHECK_FEATURE): Remove.
5584 * configure.ac (ld_vers) <*-*-solaris2*>: Move comments from
5585 gcc_AC_INITFINI_ARRAY here. Update for Solaris 11.4 changes.
5586 * configure: Regenerate.
5587
5588 2017-11-02 Claudiu Zissulescu <claziss@synopsys.com>
5589
5590 * config/arc/arc.c (hwloop_optimize): Account for empty
5591 body loops.
5592
5593 2017-11-02 Richard Biener <rguenther@suse.de>
5594
5595 PR middle-end/82765
5596 * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
5597 Truncate ARRAY_REF index and element size.
5598
5599 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com>
5600
5601 * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
5602
5603 2017-11-01 Jeff Law <law@redhat.com>
5604
5605 * tree-ssa-ccp.c (ccp_folder): New class derived from
5606 substitute_and_fold_engine.
5607 (ccp_folder::get_value): New member function.
5608 (ccp_folder::fold_stmt): Renamed from ccp_fold_stmt.
5609 (ccp_fold_stmt): Remove prototype.
5610 (ccp_finalize): Call substitute_and_fold from the ccp_class.
5611 * tree-ssa-copy.c (copy_folder): New class derived from
5612 substitute_and_fold_engine.
5613 (copy_folder::get_value): Renamed from get_value.
5614 (fini_copy_prop): Call substitute_and_fold from copy_folder class.
5615 * tree-vrp.c (vrp_folder): New class derived from
5616 substitute_and_fold_engine.
5617 (vrp_folder::fold_stmt): Renamed from vrp_fold_stmt.
5618 (vrp_folder::get_value): New member function.
5619 (vrp_finalize): Call substitute_and_fold from vrp_folder class.
5620 (evrp_dom_walker::before_dom_children): Similarly for replace_uses_in.
5621 * tree-ssa-propagate.h (substitute_and_fold_engine): New class to
5622 provide a class interface to folder/substitute routines.
5623 (ssa_prop_fold_stmt_fn): Remove typedef.
5624 (ssa_prop_get_value_fn): Likewise.
5625 (subsitute_and_fold): Remove prototype.
5626 (replace_uses_in): Likewise.
5627 * tree-ssa-propagate.c (substitute_and_fold_engine::replace_uses_in):
5628 Renamed from replace_uses_in. Call the virtual member function
5629 (substitute_and_fold_engine::replace_phi_args_in): Similarly.
5630 (substitute_and_fold_dom_walker): Remove initialization of
5631 data member entries for calbacks. Add substitute_and_fold_engine
5632 member and initialize it.
5633 (substitute_and_fold_dom_walker::before_dom_children0: Use the
5634 member functions for get_value, replace_phi_args_in c
5635 replace_uses_in, and fold_stmt calls.
5636 (substitute_and_fold_engine::substitute_and_fold): Renamed from
5637 substitute_and_fold. Remove assert. Update ctor call.
5638
5639 * tree-ssa-propagate.h (ssa_prop_visit_stmt_fn): Remove typedef.
5640 (ssa_prop_visit_phi_fn): Likewise.
5641 (class ssa_propagation_engine): New class to provide an interface
5642 into ssa_propagate.
5643 * tree-ssa-propagate.c (ssa_prop_visit_stmt): Remove file scoped
5644 variable.
5645 (ssa_prop_visit_phi): Likewise.
5646 (ssa_propagation_engine::simulate_stmt): Moved into class.
5647 Call visit_phi/visit_stmt from the class rather than via
5648 file scoped static variables.
5649 (ssa_propagation_engine::simulate_block): Moved into class.
5650 (ssa_propagation_engine::process_ssa_edge_worklist): Similarly.
5651 (ssa_propagation_engine::ssa_propagate): Similarly. No longer
5652 set file scoped statics for the visit_stmt/visit_phi callbacks.
5653 * tree-complex.c (complex_propagate): New class derived from
5654 ssa_propagation_engine.
5655 (complex_propagate::visit_stmt): Renamed from complex_visit_stmt.
5656 (complex_propagate::visit_phi): Renamed from complex_visit_phi.
5657 (tree_lower_complex): Call ssa_propagate via the complex_propagate
5658 class.
5659 * tree-ssa-ccp.c: (ccp_propagate): New class derived from
5660 ssa_propagation_engine.
5661 (ccp_propagate::visit_phi): Renamed from ccp_visit_phi_node.
5662 (ccp_propagate::visit_stmt): Renamed from ccp_visit_stmt.
5663 (do_ssa_ccp): Call ssa_propagate from the ccp_propagate class.
5664 * tree-ssa-copy.c (copy_prop): New class derived from
5665 ssa_propagation_engine.
5666 (copy_prop::visit_stmt): Renamed from copy_prop_visit_stmt.
5667 (copy_prop::visit_phi): Renamed from copy_prop_visit_phi_node.
5668 (execute_copy_prop): Call ssa_propagate from the copy_prop class.
5669 * tree-vrp.c (vrp_prop): New class derived from ssa_propagation_engine.
5670 (vrp_prop::visit_stmt): Renamed from vrp_visit_stmt.
5671 (vrp_prop::visit_phi): Renamed from vrp_visit_phi_node.
5672 (execute_vrp): Call ssa_propagate from the vrp_prop class.
5673
5674 2017-11-01 Jakub Jelinek <jakub@redhat.com>
5675
5676 PR rtl-optimization/82778
5677 PR rtl-optimization/82597
5678 * compare-elim.c (struct comparison): Add in_a_setter field.
5679 (find_comparison_dom_walker::before_dom_children): Remove killed
5680 bitmap and df_simulate_find_defs call, instead walk the defs.
5681 Compute last_setter and initialize in_a_setter. Merge definitions
5682 with first initialization for a few variables.
5683 (try_validate_parallel): Use insn_invalid_p instead of
5684 recog_memoized. Return insn rather than just the pattern.
5685 (try_merge_compare): Fix up comment. Don't uselessly test if
5686 in_a is a REG_P. Use cmp->in_a_setter instead of walking UD
5687 chains.
5688 (execute_compare_elim_after_reload): Remove df_chain_add_problem
5689 call.
5690
5691 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5692 Alan Hayward <alan.hayward@arm.com>
5693 David Sherwood <david.sherwood@arm.com>
5694
5695 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use
5696 aarch64_hard_regno_nregs to get the number of registers
5697 in a mode.
5698
5699 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5700 Alan Hayward <alan.hayward@arm.com>
5701 David Sherwood <david.sherwood@arm.com>
5702
5703 * config/aarch64/constraints.md (Upl): Rename to...
5704 (Uaa): ...this.
5705 * config/aarch64/aarch64.md
5706 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64, *addsi3_aarch64_uxtw):
5707 Update accordingly.
5708
5709 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5710 Alan Hayward <alan.hayward@arm.com>
5711 David Sherwood <david.sherwood@arm.com>
5712
5713 * config/aarch64/aarch64.c (aarch64_add_constant_internal)
5714 (aarch64_add_constant, aarch64_add_sp, aarch64_sub_sp): Move
5715 earlier in file.
5716
5717 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5718 Alan Hayward <alan.hayward@arm.com>
5719 David Sherwood <david.sherwood@arm.com>
5720
5721 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp)
5722 (aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev)
5723 (aarch64_evpc_dup): Generate rtl direcly, rather than using
5724 named expanders.
5725 (aarch64_expand_vec_perm_const_1): Explicitly check for permutes
5726 of a single element.
5727 * config/aarch64/iterators.md: Add a comment above the permute
5728 unspecs to say that they are generated directly by
5729 aarch64_expand_vec_perm_const.
5730 * config/aarch64/aarch64-simd.md: Likewise the permute instructions.
5731
5732 2017-11-01 Nathan Sidwell <nathan@acm.org>
5733
5734 * tree-dump.c (dequeue_and_dump): Use HAS_DECL_ASSEMBLER_NAME_P.
5735
5736 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com>
5737
5738 * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
5739 and medany code models, and describe what they do.
5740
5741 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5742
5743 Revert accidental duplicate:
5744
5745 * combine.c (can_change_dest_mode): Reject changes in
5746 REGMODE_NATURAL_SIZE.
5747
5748 2017-11-01 Segher Boessenkool <segher@kernel.crashing.org>
5749
5750 PR rtl-optimization/64682
5751 PR rtl-optimization/69567
5752 PR rtl-optimization/69737
5753 PR rtl-optimization/82683
5754 * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
5755 register mentioned in the note, drop the note, unless it came from I3,
5756 in which case it should go to I3 again.
5757
5758 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5759
5760 * tree-ssa-dse.c (normalize_ref): Check whether the ranges overlap
5761 and return false if not.
5762 (clear_bytes_written_by, live_bytes_read): Update accordingly.
5763
5764 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5765
5766 * tree-ssa-alias.h (ranges_overlap_p): Return false if either
5767 range is known to be empty.
5768
5769 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5770 Alan Hayward <alan.hayward@arm.com>
5771 David Sherwood <david.sherwood@arm.com>
5772
5773 * simplify-rtx.c (simplify_const_unary_operation): Use GET_MODE_NUNITS
5774 and CONST_VECTOR_NUNITS instead of computing the number of units from
5775 the byte sizes of the vector and element.
5776 (simplify_binary_operation_1): Likewise.
5777 (simplify_const_binary_operation): Likewise.
5778 (simplify_ternary_operation): Likewise.
5779
5780 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5781 Alan Hayward <alan.hayward@arm.com>
5782 David Sherwood <david.sherwood@arm.com>
5783
5784 * var-tracking.c (INT_MEM_OFFSET): Replace with...
5785 (int_mem_offset): ...this new function.
5786 (var_mem_set, var_mem_delete_and_set, var_mem_delete)
5787 (find_mem_expr_in_1pdv, dataflow_set_preserve_mem_locs)
5788 (same_variable_part_p, use_type, add_stores, vt_get_decl_and_offset):
5789 Update accordingly.
5790
5791 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5792 Alan Hayward <alan.hayward@arm.com>
5793 David Sherwood <david.sherwood@arm.com>
5794
5795 * lower-subreg.c (interesting_mode_p): New function.
5796 (compute_costs, find_decomposable_subregs, decompose_register)
5797 (simplify_subreg_concatn, can_decompose_p, resolve_simple_move)
5798 (resolve_clobber, dump_choices): Use it.
5799
5800 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5801 Alan Hayward <alan.hayward@arm.com>
5802 David Sherwood <david.sherwood@arm.com>
5803
5804 * rtlhash.c (add_rtx): Use add_hwi for 'w' and add_int for 'i'.
5805
5806 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5807 Alan Hayward <alan.hayward@arm.com>
5808 David Sherwood <david.sherwood@arm.com>
5809
5810 * alias.c (find_base_value, find_base_term): Only process integer
5811 truncations. Check the precision rather than the size.
5812
5813 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5814 Alan Hayward <alan.hayward@arm.com>
5815 David Sherwood <david.sherwood@arm.com>
5816
5817 * machmode.h (is_narrower_int_mode): New function
5818 * optabs.c (expand_float, expand_fix): Use it.
5819 * dwarf2out.c (rotate_loc_descriptor): Likewise.
5820
5821 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5822 Alan Hayward <alan.hayward@arm.com>
5823 David Sherwood <david.sherwood@arm.com>
5824
5825 * rtl.h (narrower_subreg_mode): New function.
5826 * ira-color.c (update_costs_from_allocno): Use it.
5827
5828 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5829 Alan Hayward <alan.hayward@arm.com>
5830 David Sherwood <david.sherwood@arm.com>
5831
5832 * optabs-query.h (convert_optab_p): New function, split out from...
5833 (convert_optab_handler): ...here.
5834 (widening_optab_handler): Delete.
5835 (find_widening_optab_handler): Remove permit_non_widening parameter.
5836 (find_widening_optab_handler_and_mode): Likewise. Provide an
5837 override that operates on mode class wrappers.
5838 * optabs-query.c (widening_optab_handler): Delete.
5839 (find_widening_optab_handler_and_mode): Remove permit_non_widening
5840 parameter. Assert that the two modes are the same class and that
5841 the "from" mode is narrower than the "to" mode. Use
5842 convert_optab_handler instead of widening_optab_handler.
5843 * expmed.c (expmed_mult_highpart_optab): Use convert_optab_handler
5844 instead of widening_optab_handler.
5845 * expr.c (expand_expr_real_2): Update calls to
5846 find_widening_optab_handler.
5847 * optabs.c (expand_widen_pattern_expr): Likewise.
5848 (expand_binop_directly): Take the insn_code as a parameter.
5849 (expand_binop): Only call find_widening_optab_handler for
5850 conversion optabs; use optab_handler otherwise. Update calls
5851 to find_widening_optab_handler and expand_binop_directly.
5852 Use convert_optab_handler instead of widening_optab_handler.
5853 * tree-ssa-math-opts.c (convert_mult_to_widen): Update calls to
5854 find_widening_optab_handler and use scalar_mode rather than
5855 machine_mode.
5856 (convert_plusminus_to_widen): Likewise.
5857
5858 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5859 Alan Hayward <alan.hayward@arm.com>
5860 David Sherwood <david.sherwood@arm.com>
5861
5862 * machmode.h (fixed_size_mode): New class.
5863 * rtl.h (get_pool_mode): Return fixed_size_mode.
5864 * gengtype.c (main): Add fixed_size_mode.
5865 * target.def (get_raw_result_mode): Return a fixed_size_mode.
5866 (get_raw_arg_mode): Likewise.
5867 * doc/tm.texi: Regenerate.
5868 * targhooks.h (default_get_reg_raw_mode): Return a fixed_size_mode.
5869 * targhooks.c (default_get_reg_raw_mode): Likewise.
5870 * config/ia64/ia64.c (ia64_get_reg_raw_mode): Likewise.
5871 * config/mips/mips.c (mips_get_reg_raw_mode): Likewise.
5872 * config/msp430/msp430.c (msp430_get_raw_arg_mode): Likewise.
5873 (msp430_get_raw_result_mode): Likewise.
5874 * config/avr/avr-protos.h (regmask): Use as_a <fixed_side_mode>
5875 * dbxout.c (dbxout_parms): Require fixed-size modes.
5876 * expr.c (copy_blkmode_from_reg, copy_blkmode_to_reg): Likewise.
5877 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
5878 * omp-low.c (lower_oacc_reductions): Likewise.
5879 * simplify-rtx.c (simplify_immed_subreg): Take fixed_size_modes.
5880 (simplify_subreg): Update accordingly.
5881 * varasm.c (constant_descriptor_rtx::mode): Change to fixed_size_mode.
5882 (force_const_mem): Update accordingly. Return NULL_RTX for modes
5883 that aren't fixed-size.
5884 (get_pool_mode): Return a fixed_size_mode.
5885 (output_constant_pool_2): Take a fixed_size_mode.
5886
5887 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5888 Alan Hayward <alan.hayward@arm.com>
5889 David Sherwood <david.sherwood@arm.com>
5890
5891 * doc/rtl.texi (vec_series): Document.
5892 (const): Say that the operand can be a vec_series.
5893 * rtl.def (VEC_SERIES): New rtx code.
5894 * rtl.h (const_vec_series_p_1): Declare.
5895 (const_vec_series_p): New function.
5896 * emit-rtl.h (gen_const_vec_series): Declare.
5897 (gen_vec_series): Likewise.
5898 * emit-rtl.c (const_vec_series_p_1, gen_const_vec_series)
5899 (gen_vec_series): Likewise.
5900 * optabs.c (expand_mult_highpart): Use gen_const_vec_series.
5901 * simplify-rtx.c (simplify_unary_operation): Handle negations
5902 of vector series.
5903 (simplify_binary_operation_series): New function.
5904 (simplify_binary_operation_1): Use it. Handle VEC_SERIES.
5905 (test_vector_ops_series): New function.
5906 (test_vector_ops): Call it.
5907 * config/powerpcspe/altivec.md (altivec_lvsl): Use
5908 gen_const_vec_series.
5909 (altivec_lvsr): Likewise.
5910 * config/rs6000/altivec.md (altivec_lvsl, altivec_lvsr): Likewise.
5911
5912 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5913 Alan Hayward <alan.hayward@arm.com>
5914 David Sherwood <david.sherwood@arm.com>
5915
5916 * doc/rtl.texi (const): Update description of address constants.
5917 Say that vector constants are allowed too.
5918 * common.md (E, F): Use CONSTANT_P instead of checking for
5919 CONST_VECTOR.
5920 * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of
5921 checking for CONST_VECTOR.
5922 * expmed.c (make_tree): Use build_vector_from_val for a CONST
5923 VEC_DUPLICATE.
5924 * expr.c (expand_expr_real_2): Check for vector modes instead
5925 of checking for CONST_VECTOR.
5926 * rtl.h (const_vec_p): New function.
5927 (const_vec_duplicate_p): Check for a CONST VEC_DUPLICATE.
5928 (unwrap_const_vec_duplicate): Handle them here too.
5929
5930 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5931 David Malcolm <dmalcolm@redhat.com>
5932 Alan Hayward <alan.hayward@arm.com>
5933 David Sherwood <david.sherwood@arm.com>
5934
5935 * rtl.h (vec_duplicate_p): New function.
5936 * selftest-rtl.c (assert_rtx_eq_at): New function.
5937 * selftest-rtl.h (ASSERT_RTX_EQ): New macro.
5938 (assert_rtx_eq_at): Declare.
5939 * selftest.h (selftest::simplify_rtx_c_tests): Declare.
5940 * selftest-run-tests.c (selftest::run_tests): Call it.
5941 * simplify-rtx.c: Include selftest.h and selftest-rtl.h.
5942 (simplify_unary_operation_1): Recursively handle vector duplicates.
5943 (simplify_binary_operation_1): Likewise. Handle VEC_SELECTs of
5944 vector duplicates.
5945 (simplify_subreg): Handle subregs of vector duplicates.
5946 (make_test_reg, test_vector_ops_duplicate, test_vector_ops)
5947 (selftest::simplify_rtx_c_tests): New functions.
5948
5949 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5950 Alan Hayward <alan.hayward@arm.com>
5951 David Sherwood <david.sherwood@arm.com>
5952
5953 * emit-rtl.h (gen_const_vec_duplicate): Declare.
5954 (gen_vec_duplicate): Likewise.
5955 * emit-rtl.c (gen_const_vec_duplicate_1): New function, split
5956 out from...
5957 (gen_const_vector): ...here.
5958 (gen_const_vec_duplicate, gen_vec_duplicate): New functions.
5959 (gen_rtx_CONST_VECTOR): Use gen_const_vec_duplicate for constants
5960 whose elements are all equal.
5961 * optabs.c (expand_vector_broadcast): Use gen_const_vec_duplicate.
5962 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5963 (simplify_relational_operation): Likewise.
5964 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
5965 Likewise.
5966 (aarch64_simd_dup_constant): Use gen_vec_duplicate.
5967 (aarch64_expand_vector_init): Likewise.
5968 * config/arm/arm.c (neon_vdup_constant): Likewise.
5969 (neon_expand_vector_init): Likewise.
5970 (arm_expand_vec_perm): Use gen_const_vec_duplicate.
5971 (arm_block_set_unaligned_vect): Likewise.
5972 (arm_block_set_aligned_vect): Likewise.
5973 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
5974 * config/i386/i386.c (ix86_expand_vec_perm): Likewise.
5975 (expand_vec_perm_even_odd_pack): Likewise.
5976 (ix86_vector_duplicate_value): Use gen_vec_duplicate.
5977 * config/i386/sse.md (one_cmpl<mode>2): Use CONSTM1_RTX.
5978 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use
5979 gen_const_vec_duplicate.
5980 * config/ia64/vect.md (addv2sf3, subv2sf3): Use CONST1_RTX.
5981 * config/mips/mips.c (mips_gen_const_int_vector): Use
5982 gen_const_vec_duplicate.
5983 (mips_expand_vector_init): Use CONST0_RTX.
5984 * config/powerpcspe/altivec.md (abs<mode>2, nabs<mode>2): Likewise.
5985 (define_split): Use gen_const_vec_duplicate.
5986 * config/rs6000/altivec.md (abs<mode>2, nabs<mode>2): Use CONST0_RTX.
5987 (define_split): Use gen_const_vec_duplicate.
5988 * config/s390/vx-builtins.md (vec_genmask<mode>): Likewise.
5989 (vec_ctd_s64, vec_ctd_u64, vec_ctsl, vec_ctul): Likewise.
5990 * config/spu/spu.c (spu_const): Likewise.
5991
5992 2017-11-01 Richard Sandiford <richard.sandiford@linaro.org>
5993 Alan Hayward <alan.hayward@arm.com>
5994 David Sherwood <david.sherwood@arm.com>
5995
5996 * combine.c (can_change_dest_mode): Reject changes in
5997 REGMODE_NATURAL_SIZE.
5998
5999 2017-10-31 Sandra Loosemore <sandra@codesourcery.com>
6000
6001 * configure.ac (--enable-libssp): New.
6002 (gcc_cv_libc_provides_ssp): Check for explicit setting before
6003 trying to determine target-specific default. Adjust indentation.
6004 * configure: Regenerated.
6005 * doc/install.texi (Configuration): Expand --disable-libssp
6006 documentation.
6007
6008 2017-10-31 Daniel Santos <daniel.santos@pobox.com>
6009
6010 config/i386/i386.c (ix86_expand_epilogue): Correct stack
6011 calculation.
6012
6013 2017-10-31 Martin Jambor <mjambor@suse.cz>
6014
6015 PR c++/81702
6016 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
6017
6018 2017-10-31 David Malcolm <dmalcolm@redhat.com>
6019
6020 * auto-profile.c (autofdo_source_profile::read): Use
6021 UNKNOWN_LOCATION rather than 0.
6022 * diagnostic-core.h (warning_at_rich_loc): Rename to...
6023 (warning_at): ...this overload.
6024 (warning_at_rich_loc_n): Rename to...
6025 (warning_n): ...this overload.
6026 (error_at_rich_loc): Rename to...
6027 (error_at): ...this overload.
6028 (pedwarn_at_rich_loc): Rename to...
6029 (pedwarn): ...this overload.
6030 (permerror_at_rich_loc): Rename to...
6031 (permerror): ...this overload.
6032 (inform_at_rich_loc): Rename to...
6033 (inform): ...this overload.
6034 * diagnostic.c: (diagnostic_n_impl): Delete location_t-based decl.
6035 (diagnostic_n_impl_richloc): Rename to...
6036 (diagnostic_n_impl): ...this rich_location *-based decl.
6037 (inform_at_rich_loc): Rename to...
6038 (inform): ...this, and add an assertion.
6039 (inform_n): Update for removal of location_t-based diagnostic_n_impl.
6040 (warning_at_rich_loc): Rename to...
6041 (warning_at): ...this, and add an assertion.
6042 (warning_at_rich_loc_n): Rename to...
6043 (warning_n): ...this, and add an assertion.
6044 (warning_n): Update location_t-based implementation for removal of
6045 location_t-based diagnostic_n_impl.
6046 (pedwarn_at_rich_loc): Rename to...
6047 (pedwarn): ...this, and add an assertion.
6048 (permerror_at_rich_loc): Rename to...
6049 (permerror): ...this, and add an assertion.
6050 (error_n): Update for removal of location_t-based diagnostic_n_impl.
6051 (error_at_rich_loc): Rename to...
6052 (error_at): ...this, and add an assertion.
6053 * gcc.c (do_spec_1): Use UNKNOWN_LOCATION rather than 0.
6054 (driver::do_spec_on_infiles): Likewise.
6055 * substring-locations.c (format_warning_va): Update for renaming
6056 of inform_at_rich_loc.
6057
6058 2017-10-31 Michael Meissner <meissner@linux.vnet.ibm.com>
6059
6060 * builtins.def (DEF_FLOATN_BUILTIN): Change most _Float<N> and
6061 _Float<N>X built-in functions so that the variant without the
6062 "__builtin_" prefix is only enabled for the GNU C and Objective C
6063 languages when they are in non-strict ANSI/ISO mode.
6064 (DEF_EXT_LIB_FLOATN_NX_BUILTINS): Likewise.
6065 * target.def (floatn_builtin_p): Add a target hook to control
6066 whether _Float<N> and _Float<N>X built-in functions without the
6067 "__builtin_" prefix are enabled, and return true for C and
6068 Objective C in the default hook. Include langhooks.h in
6069 targhooks.c.
6070 * targhooks.h (default_floatn_builtin_p): Likewise.
6071 * targhooks.c (default_floatn_builtin_p): Likewise.
6072 * doc/tm.texi.in (TARGET_FLOATN_BUILTIN_P): Document the
6073 floatn_builtin_p target hook.
6074 * doc/tm.texi (TARGET_FLOATN_BUILTIN_P): Likewise.
6075
6076 2017-10-31 Matthew Fortune <matthew.fortune@imgtec.com>
6077 Eric Botcazou <ebotcazou@adacore.com>
6078
6079 PR rtl-optimization/81803
6080 * lra-constraints.c (curr_insn_transform): Also reload the whole
6081 register for a strict subreg no wider than a word if this is for
6082 a WORD_REGISTER_OPERATIONS target.
6083
6084 2017-10-31 Jason Merrill <jason@redhat.com>
6085
6086 * gdbinit.in: Skip over inlines from timevar.h.
6087
6088 2017-10-31 Martin Liska <mliska@suse.cz>
6089
6090 * doc/gcov.texi: Document new option.
6091 * gcov.c (print_usage): Likewise print it.
6092 (process_args): Support the argument.
6093 (format_count): New function.
6094 (format_gcov): Use the function.
6095
6096 2017-10-31 Martin Liska <mliska@suse.cz>
6097
6098 * gcov.c (struct name_map): do not use typedef.
6099 Define operator== and operator<.
6100 (name_search): Remove.
6101 (name_sort): Remove.
6102 (main): Do not allocate names.
6103 (process_file): Add vertical space.
6104 (generate_results): Use std::find.
6105 (release_structures): Do not release memory.
6106 (find_source): Use std::find.
6107
6108 2017-10-31 Martin Liska <mliska@suse.cz>
6109
6110 * gcov.c (struct line_info): Remove it's typedef.
6111 (line_info::line_info): Add proper ctor.
6112 (line_info::has_block): Do not use a typedef.
6113 (struct source_info): Do not use typedef.
6114 (circuit): Likewise.
6115 (get_cycles_count): Likewise.
6116 (output_intermediate_file): Iterate via vector iterator.
6117 (add_line_counts): Use std::vector methods.
6118 (accumulate_line_counts): Likewise.
6119 (output_lines): Likewise.
6120
6121 2017-10-31 Martin Liska <mliska@suse.cz>
6122
6123 * gcov.c (struct source_info): Remove typedef.
6124 (source_info::source_info): Add proper ctor.
6125 (accumulate_line_counts): Use struct, not it's typedef.
6126 (output_gcov_file): Likewise.
6127 (output_lines): Likewise.
6128 (main): Do not allocate an array.
6129 (output_intermediate_file): Use size of vector container.
6130 (process_file): Resize the vector.
6131 (generate_results): Do not preallocate, use newly added vector
6132 lines.
6133 (release_structures): Do not release sources.
6134 (find_source): Use vector methods.
6135 (add_line_counts): Do not use typedef.
6136
6137 2017-10-31 Martin Liska <mliska@suse.cz>
6138
6139 * doc/gcov.texi: Document that.
6140 * gcov.c (add_line_counts): Mark lines with a non-executed
6141 statement.
6142 (output_line_beginning): Handle such lines.
6143 (output_lines): Pass new argument.
6144 (output_intermediate_file): Print it in intermediate format.
6145
6146 2017-10-31 Martin Liska <mliska@suse.cz>
6147
6148 * color-macros.h: New file.
6149 * diagnostic-color.c: Factor out color related to macros to
6150 color-macros.h.
6151 * doc/gcov.texi: Document -k option.
6152 * gcov.c (INCLUDE_STRING): Include string.h.
6153 (print_usage): Add -k option.
6154 (process_args): Parse it.
6155 (pad_count_string): New function.
6156 (output_line_beginning): Likewise.
6157 (DEFAULT_LINE_START): New macro.
6158 (output_lines): Support color output.
6159
6160 2017-10-31 Martin Liska <mliska@suse.cz>
6161
6162 PR gcov-profile/82633
6163 * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
6164 their interaction with GCOV infrastructure.
6165 * configure.ac: Add -fkeep-{inline,static}-functions to
6166 coverage_flags.
6167 * configure: Regenerate.
6168
6169 2017-10-31 Uros Bizjak <ubizjak@gmail.com>
6170
6171 PR target/82772
6172 * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
6173
6174 2017-10-31 Segher Boessenkool <segher@kernel.crashing.org>
6175
6176 PR target/82674
6177 * config/rs6000/rs6000.md (allocate_stack): Force update interval
6178 into a register if it does not fit into an immediate offset field.
6179
6180 2017-10-31 Olivier Hainque <hainque@adacore.com>
6181
6182 * gcc/Makefile.in (FLAGS_TO_PASS): Pass libsubdir as well.
6183
6184 2017-10-31 Julia Koval <julia.koval@intel.com>
6185
6186 * config.gcc: Add gfniintrin.h.
6187 * config/i386/gfniintrin.h: New.
6188 * config/i386/i386-builtin-types.def
6189 (__builtin_ia32_vgf2p8affineinvqb_v64qi,
6190 __builtin_ia32_vgf2p8affineinvqb_v64qi_mask,
6191 __builtin_ia32_vgf2p8affineinvqb_v32qi,
6192 __builtin_ia32_vgf2p8affineinvqb_v32qi_mask,
6193 __builtin_ia32_vgf2p8affineinvqb_v16qi,
6194 __builtin_ia32_vgf2p8affineinvqb_v16qi_mask): New builtins.
6195 * config/i386/i386-builtin.def (V64QI_FTYPE_V64QI_V64QI_INT_V64QI_UDI,
6196 V32QI_FTYPE_V32QI_V32QI_INT_V32QI_USI,
6197 V16QI_FTYPE_V16QI_V16QI_INT_V16QI_UHI,
6198 V64QI_FTYPE_V64QI_V64QI_INT): New types.
6199 * config/i386/i386.c (ix86_expand_args_builtin): Handle new types.
6200 * config/i386/immintrin.h: Include gfniintrin.h.
6201 * config/i386/sse.md (vgf2p8affineinvqb_*) New pattern.
6202
6203 2017-10-30 Eric Botcazou <ebotcazou@adacore.com>
6204
6205 * gcc.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Remove old kludge.
6206
6207 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com>
6208
6209 * config/arm/arm.md (ashldi3): Remove shift by 1 expansion.
6210 (arm_ashldi3_1bit): Remove pattern.
6211 (ashrdi3): Remove shift by 1 expansion.
6212 (arm_ashrdi3_1bit): Remove pattern.
6213 (lshrdi3): Remove shift by 1 expansion.
6214 (arm_lshrdi3_1bit): Remove pattern.
6215 * config/arm/arm.c (arm_rtx_costs_internal): Slightly increase
6216 cost of ashldi3 by 1.
6217 * config/arm/neon.md (ashldi3_neon): Remove shift by 1 expansion.
6218 (<shift>di3_neon): Likewise.
6219
6220 2017-10-30 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
6221
6222 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): Rename
6223 both identically named patterns to (*aarch64_simd_mov<VD:mode>)
6224 and (*aarch64_simd_mov<VQ:mode>).
6225 (*aarch64_simd_mov<VD:mode>): Change type attribute to match
6226 pattern alternative.
6227 (*aarch64_simd_mov<VQ:mode>): Re-order and change type
6228 attributes to match pattern alternative.
6229
6230 2017-10-30 Steven Munroe <munroesj@gcc.gnu.org>
6231
6232 * config.gcc (powerpc*-*-*): Add emmintrin.h.
6233 * config/rs6000/emmintrin.h: New file.
6234 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include emmintrin.h.
6235
6236 2017-10-30 Wilco Dijkstra <wdijkstr@arm.com>
6237
6238 * config/arm/vfp.md (movdi_vfp): Merge changes from movdi_vfp_cortexa8.
6239 * (movdi_vfp_cortexa8): Remove pattern.
6240
6241 2017-10-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6242
6243 * doc/install.texi (Specific, alpha*-*-*): Remove DEC OSF/1
6244 etc. reference.
6245 (Specific, alpha*-dec-osf5.1): Remove.
6246 (Specific, mips-sgi-irix5): Remove.
6247 (Specific, mips-sgi-irix6): Remove.
6248
6249 2017-10-30 Jakub Jelinek <jakub@redhat.com>
6250
6251 PR middle-end/22141
6252 * gimple-ssa-store-merging.c (merged_store_group::apply_stores): Fix
6253 arguments to clear_bit_region_be.
6254
6255 2017-10-30 Jim Wilson <wilson@tuliptree.org>
6256
6257 * gimplify.c: Include memmodel.h.
6258
6259 2017-10-30 Martin Jambor <mjambor@suse.cz>
6260
6261 * omp-grid.c (grid_attempt_target_gridification): Also insert a
6262 condition whether loop should be executed at all.
6263
6264 2017-10-30 Will Schmidt <will_schmidt@vnet.ibm.com>
6265
6266 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for
6267 gimple folding of vec_madd() intrinsics.
6268 * config/rs6000/altivec.md (mulv8hi3): Rename altivec_vmladduhm to
6269 fmav8hi4. (altivec_vmladduhm): Rename to fmav8hi4.
6270 * config/rs6000/rs6000-builtin.def: Rename vmladduhm to fmav8hi4
6271
6272 2017-10-30 Richard Biener <rguenther@suse.de>
6273
6274 PR tree-optimization/82762
6275 Revert
6276 2017-10-23 Richard Biener <rguenther@suse.de>
6277
6278 PR tree-optimization/82129
6279 Revert
6280 2017-08-01 Richard Biener <rguenther@suse.de>
6281
6282 PR tree-optimization/81181
6283 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
6284 (compute_antic): ... end of iteration here.
6285
6286 2017-10-30 Joseph Myers <joseph@codesourcery.com>
6287
6288 * doc/invoke.texi (C Dialect Options): Document -std=c17,
6289 -std=iso9899:2017 and -std=gnu17.
6290 * doc/standards.texi (C Language): Document C17 support.
6291 * doc/cpp.texi (Overview): Mention -std=c17.
6292 (Standard Predefined Macros): Document C11 and C17 values of
6293 __STDC_VERSION__. Do not refer to C99 support as incomplete.
6294 * doc/extend.texi (Inline): Do not list individual options for
6295 standards newer than C99.
6296 * dwarf2out.c (highest_c_language, gen_compile_unit_die): Handle
6297 "GNU C17".
6298 * config/rl78/rl78.c (rl78_option_override): Handle "GNU C17"
6299 language name.
6300
6301 2017-10-30 Maxim Ostapenko <m.ostapenko@samsung.com>
6302
6303 * asan.c (asan_finish_file): Align asan globals array by shadow
6304 granularity.
6305
6306 2017-10-30 Jakub Jelinek <jakub@redhat.com>
6307
6308 PR middle-end/22141
6309 * gimple-ssa-store-merging.c: Include rtl.h and expr.h.
6310 (struct store_immediate_info): Add bitregion_start and bitregion_end
6311 fields.
6312 (store_immediate_info::store_immediate_info): Add brs and bre
6313 arguments and initialize bitregion_{start,end} from those.
6314 (struct merged_store_group): Add bitregion_start, bitregion_end,
6315 align_base and mask fields. Drop unnecessary struct keyword from
6316 struct store_immediate_info. Add do_merge method.
6317 (clear_bit_region_be): Use memset instead of loop storing zeros.
6318 (merged_store_group::do_merge): New method.
6319 (merged_store_group::merge_into): Use do_merge. Allow gaps in between
6320 stores as long as the surrounding bitregions have no gaps.
6321 (merged_store_group::merge_overlapping): Use do_merge.
6322 (merged_store_group::apply_stores): Test that bitregion_{start,end}
6323 is byte aligned, rather than requiring that start and width are
6324 byte aligned. Drop unnecessary struct keyword from
6325 struct store_immediate_info. Allocate and populate also mask array.
6326 Make start of the arrays relative to bitregion_start rather than
6327 start and size them according to bitregion_{end,start} difference.
6328 (struct imm_store_chain_info): Drop unnecessary struct keyword from
6329 struct store_immediate_info.
6330 (pass_store_merging::gate): Punt if BITS_PER_UNIT or CHAR_BIT is not 8.
6331 (pass_store_merging::terminate_all_aliasing_chains): Drop unnecessary
6332 struct keyword from struct store_immediate_info.
6333 (imm_store_chain_info::coalesce_immediate_stores): Allow gaps in
6334 between stores as long as the surrounding bitregions have no gaps.
6335 Formatting fixes.
6336 (struct split_store): Add orig non-static data member.
6337 (split_store::split_store): Initialize orig to false.
6338 (find_constituent_stmts): Return store_immediate_info *, non-NULL
6339 if there is exactly a single original stmt. Change stmts argument
6340 to pointer from reference, if NULL, don't push anything to it. Add
6341 first argument, use it to optimize skipping over orig stmts that
6342 are known to be before bitpos already. Simplify.
6343 (split_group): Return unsigned int count how many stores are or
6344 would be needed rather than a bool. Add allow_unaligned argument.
6345 Change split_stores argument from reference to pointer, if NULL,
6346 only do a dry run computing how many stores would be produced.
6347 Rewritten algorithm to use both alignment and misalign if
6348 !allow_unaligned and handle bitfield stores with gaps.
6349 (imm_store_chain_info::output_merged_store): Set start_byte_pos
6350 from bitregion_start instead of start. Compute allow_unaligned
6351 here, if true, do 2 split_group dry runs to compute which one
6352 produces fewer stores and prefer aligned if equal. Punt if
6353 new count is bigger or equal than original before emitting any
6354 statements, rather than during that. Remove no longer needed
6355 new_ssa_names tracking. Replace num_stmts with
6356 split_stores.length (). Use 32-bit stack allocated entries
6357 in split_stores auto_vec. Try to reuse original store lhs/rhs1
6358 if possible. Handle bitfields with gaps.
6359 (pass_store_merging::execute): Ignore bitsize == 0 stores.
6360 Compute bitregion_{start,end} for the stores and construct
6361 store_immediate_info with that. Formatting fixes.
6362
6363 2017-10-30 Uros Bizjak <ubizjak@gmail.com>
6364
6365 PR target/82725
6366 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
6367 UNSPEC_DTPOFF and UNSPEC_NTPOFF with SImode immediate offset.
6368
6369 2017-10-29 Jim Wilson <wilson@tuliptree.org>
6370
6371 * gimplify.c: Include tm_p.h.
6372
6373 * common.opt (gcoff): Re-add as ignored option.
6374 (gcoff1, gcoff2, gcoff3): Likewise.
6375
6376 * Makefile.in (OBJS): Delete sdbout.o.
6377 (GTFILES): Delete $(srcdir)/sdbout.c.
6378 * debug.h: Delete sdb_debug_hooks.
6379 * final.c: Delete sdbout.h include.
6380 (final_scan_insn): Delete SDB_DEBUG check.
6381 (rest_of_clean_state): Likewise.
6382 * output.h: Delete sdb_begin_function_line.
6383 * sdbout.c: Delete.
6384 * sdbout.h: Delete.
6385 * toplev.c: Delete sdbout.h include.
6386 (process_options): Delete SDB_DEBUG check.
6387 * tree-core.h (tree_type_common): Delete pointer field of
6388 tree_type_symtab.
6389 * tree.c (copy_node): Clear TYPE_SYMTAB_DIE instead of
6390 TYPE_SYMTAB_POINTER.
6391 * tree.h (TYPE_SYMTAB_POINTER): Delete.
6392 (TYPE_SYMTAB_IS_POINTER): Delete.
6393 (TYPE_SYMTAB_IS_DIE): Renumber.
6394 * xcoffout.c: Refer to former sdbout.c file.
6395 (xcoffout_begin_prologue): Use past tense for sdbout.c reference.
6396
6397 * doc/install.texi (--with-stabs): Delete COFF and ECOFF info.
6398 * doc/invoke.texi (SEEALSO): Delete adb and sdb references.
6399 (Debugging Options): Delete -gcoff.
6400 (-gstabs): Delete SDB reference.
6401 (-gcoff): Delete.
6402 (-gcoff@var{level}): Delete.
6403 * doc/passes.texi (Debugging information output): Delete SDB and
6404 sdbout.c references.
6405 * doc/tm.texi: Regenerate.
6406 * doc/tm.texi.in (DWARF_CIE_DATA_ALIGNMENT): Delete SDB from xref.
6407 (SDB and DWARF): Change node name to DWARF and delete SDB and COFF
6408 references.
6409 (DEBUGGER_AUTO_OFFSET): Delete COFF and SDB references.
6410 (PREFERRED_DEBUGGING_TYPE): Delete SDB_DEBUG and -gcoff references.
6411 (SDB_DEBUGGING_INFO): Delete.
6412 (PUT_SDB_@dots{}, SDB_DELIM, SDB_ALLOW_UNKNOWN_REFERENCES)
6413 SDB_ALLOW_FORWARD_REFERENCES, SDB_OUTPUT_SOURCE_LINE): Delete.
6414 * target.def (output_source_filename): Delete COFF reference.
6415
6416 * common.opt (gcoff): Delete.
6417 (gxcoff+): Update Negative chain.
6418 * defaults.h: Delete all references to SDB_DEBUGGING_INFO and
6419 SDB_DEBUG.
6420 * dwarf2out.c (gen_array_type_die): Change SDB to debuggers.
6421 * flag-types.h (enum debug_info_type): Delete SDB_DEBUG.
6422 * function.c (number_blocks): Delete SDB_DEBUGGING_INFO, SDB_DEBUG,
6423 and SDB references.
6424 (expand_function_start): Change sdb reference to past tense.
6425 (expand_function_end): Change sdb reference to past tense.
6426 * gcc.c (cpp_unique_options): Delete gcoff3 reference.
6427 * opts.c (debug_type_names): Delete coff entry.
6428 (common_handle_option): Delete OPT_gcoff case.
6429 * system.h (SDB_DEBUG, SDB_DEBUGGING_INFO): Poison.
6430
6431 * config/dbxcoff.h (PREFERRED_DEBUGGING_TYPE): Set to DBX_DEBUG.
6432 * config/cris/cris.h: Delete SDB reference in comment.
6433 * config/i386/cygming.h: Don't define SDB_DEBUGGING_INFO.
6434 (ASM_DECLARE_FUNCTION_NAME): Delete SDB reference from comment.
6435 * config/i386/gas.h: Don't define SDB_DEBUGGING_INFO.
6436 * config/i386/i386.c (svr4_dbx_register_map): Change SDB references
6437 to past tense.
6438 (ix86_expand_prologue): Likewise.
6439 * config/i386/winnt.c (i386_pe_start_function): Don't check SDB_DEBUG.
6440 * config/ia64/ia64.h: Likewise.
6441 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Delete SDB reference.
6442 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Delete gcoff*
6443 support.
6444 * config/mmix/mmix.h: Likewise.
6445 * config/nds32/nds32.c: Likewise.
6446 * config/stormy/storym16.h: Likewise.
6447 * config/visium/visium.h: Likewise.
6448 * config/vx-common.h (SDB_DEBUGGING_INFO): Delete undef.
6449
6450 2017-10-28 Sandra Loosemore <sandra@codesourcery.com>
6451
6452 * config/nios2/nios2.h (FRAME_GROWS_DOWNWARD): Define to 1.
6453 * config/nios2/nios2.c (nios2_initial_elimination_offset): Make
6454 FRAME_POINTER_REGNUM point at high end of local var area.
6455
6456 2017-10-27 Eric Botcazou <ebotcazou@adacore.com>
6457
6458 * bb-reorder.c (find_traces_1_round): Fix off-by-one index.
6459 Move comment around. Do not reset best_edge for a copiable
6460 destination if the copy would cause a partition change.
6461 (better_edge_p): Remove redundant check.
6462
6463 2017-10-27 Uros Bizjak <ubizjak@gmail.com>
6464
6465 * config/i386/i386-protos.h (ix86_fp_compare_mode): Remove prototype.
6466
6467 2017-10-27 Michael Meissner <meissner@linux.vnet.ibm.com>
6468
6469 * builtins.c (CASE_MATHFN_FLOATN): New helper macro to add cases
6470 for math functions that have _Float<N> and _Float<N>X variants.
6471 (mathfn_built_in_2): Add support for math functions that have
6472 _Float<N> and _Float<N>X variants.
6473 (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro.
6474 (expand_builtin_mathfn_ternary): Add support for fma with
6475 _Float<N> and _Float<N>X variants.
6476 (expand_builtin): Likewise.
6477 (fold_builtin_3): Likewise.
6478 * builtins.def (DEF_EXT_LIB_FLOATN_NX_BUILTINS): New macro to
6479 create math function _Float<N> and _Float<N>X variants as external
6480 library builtins.
6481 (BUILT_IN_COPYSIGN _Float<N> and _Float<N>X variants) Use
6482 DEF_EXT_LIB_FLOATN_NX_BUILTINS to make built-in functions using
6483 the __builtin_ prefix and if not strict ansi, without the prefix.
6484 (BUILT_IN_FABS _Float<N> and _Float<N>X variants): Likewise.
6485 (BUILT_IN_FMA _Float<N> and _Float<N>X variants): Likewise.
6486 (BUILT_IN_FMAX _Float<N> and _Float<N>X variants): Likewise.
6487 (BUILT_IN_FMIN _Float<N> and _Float<N>X variants): Likewise.
6488 (BUILT_IN_NAN _Float<N> and _Float<N>X variants): Likewise.
6489 (BUILT_IN_SQRT _Float<N> and _Float<N>X variants): Likewise.
6490 * builtin-types.def (BT_FN_FLOAT16_FLOAT16_FLOAT16_FLOAT16): New
6491 function signatures for fma _Float<N> and _Float<N>X variants.
6492 (BT_FN_FLOAT32_FLOAT32_FLOAT32_FLOAT32): Likewise.
6493 (BT_FN_FLOAT64_FLOAT64_FLOAT64_FLOAT64): Likewise.
6494 (BT_FN_FLOAT128_FLOAT128_FLOAT128_FLOAT128): Likewise.
6495 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X_FLOAT32X): Likewise.
6496 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X_FLOAT64X): Likewise.
6497 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X_FLOAT128X): Likewise.
6498 * gencfn-macros.c (print_case_cfn): Add support for math functions
6499 that have _Float<N> and _Float<N>X variants.
6500 (print_define_operator_list): Likewise.
6501 (fltfn_suffixes): Likewise.
6502 (main): Likewise.
6503 * internal-fn.def (DEF_INTERNAL_FLT_FLOATN_FN): New helper macro
6504 for math functions that have _Float<N> and _Float<N>X variants.
6505 (SQRT): Add support for sqrt, copysign, fmin and fmax _Float<N>
6506 and _Float<N>X variants.
6507 (COPYSIGN): Likewise.
6508 (FMIN): Likewise.
6509 (FMAX): Likewise.
6510 * fold-const.c (tree_call_nonnegative_warnv_p): Add support for
6511 copysign, fma, fmax, fmin, and sqrt _Float<N> and _Float<N>X
6512 variants.
6513 (integer_valued_read_call_p): Likewise.
6514 * fold-const-call.c (fold_const_call_ss): Likewise.
6515 (fold_const_call_sss): Add support for copysign, fmin, and fmax
6516 _Float<N> and _Float<N>X variants.
6517 (fold_const_call_ssss): Add support for fma _Float<N> and
6518 _Float<N>X variants.
6519 * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Add
6520 support for copysign and fma _Float<N> and _Float<N>X variants.
6521 (backprop::process_builtin_call_use): Likewise.
6522 * tree-call-cdce.c (can_test_argument_range); Add support for
6523 sqrt _Float<N> and _Float<N>X variants.
6524 (edom_only_function): Likewise.
6525 (get_no_error_domain): Likewise.
6526 * tree-ssa-math-opts.c (internal_fn_reciprocal): Likewise.
6527 * tree-ssa-reassoc.c (attempt_builtin_copysign): Add support for
6528 copysign _Float<N> and _Float<N>X variants.
6529 * config/rs6000/rs6000-builtin.def (SQRTF128): Delete, this is now
6530 handled by machine independent code.
6531 (FMAF128): Likewise.
6532 * doc/cpp.texi (Common Predefined Macros): Document defining
6533 __FP_FAST_FMAF<N> and __FP_FAST_FMAF<N>X if the backend supports
6534 fma _Float<N> and _Float<N>X variants.
6535
6536 2017-10-27 Uros Bizjak <ubizjak@gmail.com>
6537
6538 PR target/82692
6539 * config/i386/i386-modes.def (CCFPU): Remove definition.
6540 * config/i386/i386.c (put_condition_mode): Remove CCFPU mode handling.
6541 (ix86_cc_modes_compatible): Ditto.
6542 (ix86_expand_carry_flag_compare): Ditto.
6543 (ix86_expand_int_movcc): Ditto.
6544 (ix86_expand_int_addcc): Ditto.
6545 (ix86_reverse_condition): Ditto.
6546 (ix86_unordered_fp_compare): Rename from ix86_fp_compare_mode.
6547 Return true/false for unordered/ordered fp comparisons.
6548 (ix86_cc_mode): Always return CCFPmode for float mode comparisons.
6549 (ix86_prepare_fp_compare_args): Update for rename.
6550 (ix86_expand_fp_compare): Update for rename. Generate unordered
6551 compare RTXes wrapped with UNSPEC_NOTRAP unspec.
6552 (ix86_expand_sse_compare_and_jump): Ditto.
6553 * config/i386/predicates.md (fcmov_comparison_operator):
6554 Remove CCFPU mode handling.
6555 (ix86_comparison_operator): Ditto.
6556 (ix86_carry_flag_operator): Ditto.
6557 * config/i386/i386.md (UNSPEC_NOTRAP): New unspec.
6558 (*cmpu<mode>_i387): Wrap compare RTX with UNSPEC_NOTRAP unspec.
6559 (*cmpu<mode>_cc_i387): Ditto.
6560 (FPCMP): Remove mode iterator.
6561 (unord): Remove mode attribute.
6562 (unord_subst): New define_subst transformation
6563 (unord): New define_subst attribute.
6564 (unordered): Ditto.
6565 (*cmpi<unord><MODEF:mode>): Rewrite using unord_subst transformation.
6566 (*cmpi<unord>xf_i387): Ditto.
6567 * config/i386/sse.md (<sse>_<unord>comi<round_saeonly_name>): Merge
6568 from <sse>_comi<round_saeonly_name> and <sse>_ucomi<round_saeonly_name>
6569 using unord_subst transformation.
6570 * config/i386/subst.md (SUBST_A): Remove CCFP and CCFPU modes.
6571 (round_saeonly): Also handle CCFP mode.
6572 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_NOTRAP unspec.
6573 Remove UNSPEC_SAHF unspec handling.
6574
6575 2017-10-27 Jan Hubicka <hubicka@ucw.cz>
6576
6577 * x86-tune.def (X86_TUNE_INTER_UNIT_MOVES_TO_VEC): Disable for Zen.
6578
6579 2017-10-27 Jeff Law <law@redhat.com>
6580
6581 * gimple-ssa-sprintf.c: Include domwalk.h.
6582 (class sprintf_dom_walker): New class, derived from dom_walker.
6583 (sprintf_dom_walker::before_dom_children): New function.
6584 (struct call_info): Moved into sprintf_dom_walker class
6585 (compute_formath_length, handle_gimple_call): Likewise.
6586 (sprintf_length::execute): Call the dominator walker rather
6587 than walking the statements.
6588
6589 * tree-vrp.c (check_all_array_refs): Do not use wi->info to smuggle
6590 gimple statement locations.
6591 (check_array_bounds): Corresponding changes. Get the statement's
6592 location directly from wi->stmt.
6593
6594 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com>
6595
6596 PR target/82717
6597 * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
6598
6599 2017-10-27 Jan Hubicka <hubicka@ucw.cz>
6600
6601 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY,
6602 X86_TUNE_MOVX): Disable for Haswell and newer CPUs.
6603
6604 2017-10-27 Jakub Jelinek <jakub@redhat.com>
6605
6606 PR target/82703
6607 * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
6608 * config/i386/i386.c (maybe_get_pool_constant): Removed.
6609 (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
6610 maybe_get_pool_constant.
6611 * config/i386/predicates.md (zero_extended_scalar_load_operand):
6612 Likewise.
6613
6614 2017-10-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6615
6616 * doc/install.texi (Specific, i?86-*-solaris2.10): Simplify gas
6617 2.26 caveat. Update gas and gld versions.
6618 (Specific, *-*-solaris2*): Update binutils version. Remove caveat
6619 reference.
6620
6621 2017-10-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6622
6623 * cgraph.h (set_malloc_flag): Declare.
6624 * cgraph.c (set_malloc_flag_1): New function.
6625 (set_malloc_flag): Likewise.
6626 * ipa-fnsummary.h (ipa_call_summary): Add new field is_return_callee.
6627 * ipa-fnsummary.c (ipa_call_summary::reset): Set is_return_callee to
6628 false.
6629 (read_ipa_call_summary): Add support for reading is_return_callee.
6630 (write_ipa_call_summary): Stream is_return_callee.
6631 * ipa-inline.c (ipa_inline): Remove call to ipa_free_fn_summary.
6632 * ipa-pure-const.c: Add headers ssa.h, alloc-pool.h, symbol-summary.h,
6633 ipa-prop.h, ipa-fnsummary.h.
6634 (pure_const_names): Change to static.
6635 (malloc_state_e): Define.
6636 (malloc_state_names): Define.
6637 (funct_state_d): Add field malloc_state.
6638 (varying_state): Set malloc_state to STATE_MALLOC_BOTTOM.
6639 (check_retval_uses): New function.
6640 (malloc_candidate_p): Likewise.
6641 (analyze_function): Add support for malloc attribute.
6642 (pure_const_write_summary): Stream malloc_state.
6643 (pure_const_read_summary): Add support for reading malloc_state.
6644 (dump_malloc_lattice): New function.
6645 (propagate_malloc): New function.
6646 (warn_function_malloc): New function.
6647 (ipa_pure_const::execute): Call propagate_malloc and
6648 ipa_free_fn_summary.
6649 (pass_local_pure_const::execute): Add support for malloc attribute.
6650 * ssa-iterators.h (RETURN_FROM_IMM_USE_STMT): New macro.
6651 * doc/invoke.texi: Document Wsuggest-attribute=malloc.
6652
6653 2017-10-27 Martin Liska <mliska@suse.cz>
6654
6655 PR gcov-profile/82457
6656 * doc/invoke.texi: Document that one needs a non-strict ISO mode
6657 for fork-like functions to be properly instrumented.
6658
6659 2017-10-27 Richard Biener <rguenther@suse.de>
6660
6661 PR middle-end/81659
6662 * tree-eh.c (pass_lower_eh_dispatch::execute): Free dominator
6663 info when we redirected EH.
6664
6665 2017-10-26 Michael Collison <michael.collison@arm.com>
6666
6667 * config/aarch64/aarch64.md(<optab>_trunc><vf><GPI:mode>2):
6668 New pattern.
6669 (<optab>_trunchf<GPI:mode>2: New pattern.
6670 (<optab>_trunc<vgp><GPI:mode>2: New pattern.
6671 * config/aarch64/iterators.md (wv): New mode attribute.
6672 (vf, VF): New mode attributes.
6673 (vgp, VGP): New mode attributes.
6674 (s): Update attribute with SImode and DImode prefixes.
6675
6676 2017-10-26 Sandra Loosemore <sandra@codesourcery.com>
6677
6678 * config/nios2/constraints.md ("S"): Match r0rel_constant_p too.
6679 * config/nios2/nios2-protos.h (r0rel_constant_p): Declare.
6680 * config/nios2/nios2.c: (nios2_r0rel_sec_regex): New.
6681 (nios2_option_overide): Initialize it. Don't allow R0-relative
6682 addressing with PIC.
6683 (nios2_rtx_costs): Handle r0rel_constant_p like gprel_constant_p.
6684 (nios2_symbolic_constant_p): Likewise.
6685 (nios2_legitimate_address_p): Likewise.
6686 (nios2_r0rel_section_name_p): New.
6687 (nios2_symbol_ref_in_r0rel_data_p): New.
6688 (nios2_emit_move_sequence): Handle r0rel_constant_p.
6689 (r0rel_constant_p): New.
6690 (nios2_print_operand_address): Handle r0rel_constant_p.
6691 (nios2_cdx_narrow_form_p): Likewise.
6692 * config/nios2/nios2.opt (mr0rel-sec=): New option.
6693 * doc/invoke.texi (Option Summary): Add -mr0rel-sec.
6694 (Nios II Options): Document -mr0rel-sec.
6695
6696 2017-10-26 Sandra Loosemore <sandra@codesourcery.com>
6697
6698 * config/nios2/nios2.c: Include xregex.h.
6699 (nios2_gprel_sec_regex): New.
6700 (nios2_option_overide): Initialize it. Don't allow GP-relative
6701 addressing with PIC.
6702 (nios2_small_section_name_p): Check for regex match.
6703 * config/nios2/nios2.opt (mgprel-sec=): New option.
6704 * doc/invoke.texi (Option Summary): Add -mgprel-sec.
6705 (Nios II Options): Document -mgprel-sec.
6706
6707 2017-10-26 Jim Wilson <wilson@tuliptree.org>
6708
6709 * doc/invoke.texi (-fdebug-prefix-map): Expand documentation.
6710
6711 2017-10-26 Tom de Vries <tom@codesourcery.com>
6712
6713 PR tree-optimization/82707
6714 * gimple.c (gimple_copy): Fix unsharing of
6715 GIMPLE_OMP_{SINGLE,TARGET,TEAMS}.
6716
6717 2017-10-26 Olga Makhotina <olga.makhotina@intel.com>
6718
6719 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask,
6720 _mm512_cmple_pd_mask, _mm512_cmplt_pd_mask,
6721 _mm512_cmpneq_pd_mask, _mm512_cmpnle_pd_mask,
6722 _mm512_cmpnlt_pd_mask, _mm512_cmpord_pd_mask,
6723 _mm512_cmpunord_pd_mask, _mm512_mask_cmpeq_pd_mask,
6724 _mm512_mask_cmple_pd_mask, _mm512_mask_cmplt_pd_mask,
6725 _mm512_mask_cmpneq_pd_mask, _mm512_mask_cmpnle_pd_mask,
6726 _mm512_mask_cmpnlt_pd_mask, _mm512_mask_cmpord_pd_mask,
6727 _mm512_mask_cmpunord_pd_mask, _mm512_cmpeq_ps_mask,
6728 _mm512_cmple_ps_mask, _mm512_cmplt_ps_mask,
6729 _mm512_cmpneq_ps_mask, _mm512_cmpnle_ps_mask,
6730 _mm512_cmpnlt_ps_mask, _mm512_cmpord_ps_mask,
6731 _mm512_cmpunord_ps_mask, _mm512_mask_cmpeq_ps_mask,
6732 _mm512_mask_cmple_ps_mask, _mm512_mask_cmplt_ps_mask,
6733 _mm512_mask_cmpneq_ps_mask, _mm512_mask_cmpnle_ps_mask,
6734 _mm512_mask_cmpnlt_ps_mask, _mm512_mask_cmpord_ps_mask,
6735 _mm512_mask_cmpunord_ps_mask): New intrinsics.
6736
6737 2017-10-26 Michael Meissner <meissner@linux.vnet.ibm.com>
6738
6739 * config/rs6000/aix.h (TARGET_IEEEQUAD_DEFAULT): Set long double
6740 default to IBM.
6741 * config/rs6000/darwin.h (TARGET_IEEEQUAD_DEFAULT): Likewise.
6742 * config/rs6000/rs6000.opt (-mabi=ieeelongdouble): Move the
6743 warning to rs6000.c. Remove the Undocumented flag, since it has
6744 been documented.
6745 (-mabi=ibmlongdouble): Likewise.
6746 * config/rs6000/rs6000.c (TARGET_IEEEQUAD_DEFAULT): If it is not
6747 already set, set the default format for long double.
6748 (rs6000_debug_reg_global): Print whether long double is IBM or
6749 IEEE.
6750 (rs6000_option_override_internal): Rework setting long double
6751 format. Only warn if the user is changing the long double default
6752 and they did not use -Wno-psabi.
6753 * doc/invoke.texi (PowerPC options): Update the documentation for
6754 -mabi=ieeelongdouble and -mabi=ibmlongdouble.
6755
6756 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
6757 Alan Hayward <alan.hayward@arm.com>
6758 David Sherwood <david.sherwood@arm.com>
6759
6760 * rtl.h (wider_subreg_mode): New function.
6761 * ira.h (ira_sort_regnos_for_alter_reg): Take a machine_mode *
6762 rather than an unsigned int *.
6763 * ira-color.c (regno_max_ref_width): Replace with...
6764 (regno_max_ref_mode): ...this new variable.
6765 (coalesced_pseudo_reg_slot_compare): Update accordingly.
6766 Use wider_subreg_mode.
6767 (ira_sort_regnos_for_alter_reg): Likewise. Take a machine_mode *
6768 rather than an unsigned int *.
6769 * lra-constraints.c (uses_hard_regs_p): Use wider_subreg_mode.
6770 (process_alt_operands): Likewise.
6771 (invariant_p): Likewise.
6772 * lra-spills.c (assign_mem_slot): Likewise.
6773 (add_pseudo_to_slot): Likewise.
6774 * lra.c (collect_non_operand_hard_regs): Likewise.
6775 (add_regs_to_insn_regno_info): Likewise.
6776 * reload1.c (regno_max_ref_width): Replace with...
6777 (regno_max_ref_mode): ...this new variable.
6778 (reload): Update accordingly. Update call to
6779 ira_sort_regnos_for_alter_reg.
6780 (alter_reg): Update to use regno_max_ref_mode. Call wider_subreg_mode.
6781 (init_eliminable_invariants): Update to use regno_max_ref_mode.
6782 (scan_paradoxical_subregs): Likewise.
6783
6784 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com>
6785
6786 * config/aarch64/aarch64.h (EXIT_IGNORE_STACK): Set if alloca is used.
6787 (aarch64_frame): Add emit_frame_chain boolean.
6788 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
6789 Move eh_return case to aarch64_layout_frame.
6790 (aarch64_layout_frame): Initialize emit_frame_chain.
6791 (aarch64_expand_prologue): Use emit_frame_chain.
6792
6793 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com>
6794
6795 * config/aarch64/aarch64.c (aarch64_layout_frame):
6796 Ensure LR is always stored at the bottom of the callee-saves.
6797 Remove rarely used frame layout which saves callee-saves at top of
6798 frame, so the store of LR can be used as a valid probe in all cases.
6799
6800 2017-10-26 Wilco Dijkstra <wdijkstr@arm.com>
6801
6802 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
6803 Improve unaligned TImode/TFmode base/offset split.
6804
6805 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
6806 Alan Hayward <alan.hayward@arm.com>
6807 David Sherwood <david.sherwood@arm.com>
6808
6809 * caller-save.c (mark_referenced_regs): Use read_modify_subreg_p.
6810 * combine.c (find_single_use_1): Likewise.
6811 (expand_field_assignment): Likewise.
6812 (move_deaths): Likewise.
6813 * lra-constraints.c (simplify_operand_subreg): Likewise.
6814 (curr_insn_transform): Likewise.
6815 * lra.c (collect_non_operand_hard_regs): Likewise.
6816 (add_regs_to_insn_regno_info): Likewise.
6817 * rtlanal.c (reg_referenced_p): Likewise.
6818 (covers_regno_no_parallel_p): Likewise.
6819
6820 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
6821
6822 * wide-int-print.cc (print_hex): Loop based on extract_uhwi.
6823 Don't print any bits outside the precision of the value.
6824 * wide-int.cc (test_printing): Add some new tests.
6825
6826 2017-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6827
6828 * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
6829 supports -xbrace_comment option.
6830 * configure: Regenerate.
6831 * config.in: Regenerate.
6832 * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
6833 (ASM_CPU_SPEC): Use it.
6834
6835 2017-10-26 Richard Sandiford <richard.sandiford@linaro.org>
6836
6837 * target.def (static_rtx_alignment): New hook.
6838 * targhooks.h (default_static_rtx_alignment): Declare.
6839 * targhooks.c (default_static_rtx_alignment): New function.
6840 * doc/tm.texi.in (TARGET_STATIC_RTX_ALIGNMENT): New hook.
6841 * doc/tm.texi: Regenerate.
6842 * varasm.c (force_const_mem): Use targetm.static_rtx_alignment
6843 instead of targetm.constant_alignment. Remove call to
6844 set_mem_attributes.
6845 * config/cris/cris.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
6846 (cris_preferred_mininum_alignment): New function, split out from...
6847 (cris_constant_alignment): ...here.
6848 (cris_static_rtx_alignment): New function.
6849 * config/i386/i386.c (ix86_static_rtx_alignment): New function,
6850 split out from...
6851 (ix86_constant_alignment): ...here.
6852 (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
6853 * config/mmix/mmix.c (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
6854 (mmix_static_rtx_alignment): New function.
6855 * config/spu/spu.c (spu_static_rtx_alignment): New function.
6856 (TARGET_STATIC_RTX_ALIGNMENT): Redefine.
6857
6858 2017-10-26 Tamar Christina <tamar.christina@arm.com>
6859
6860 PR target/81800
6861 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2):
6862 Add flag_trapping_math and flag_fp_int_builtin_inexact.
6863
6864 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com>
6865
6866 * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
6867 * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
6868 mark as a sign-extending load.
6869 (local_pic_load_u): Define.
6870
6871 2017-10-25 Eric Botcazou <ebotcazou@adacore.com>
6872
6873 PR middle-end/82062
6874 * fold-const.c (operand_equal_for_comparison_p): Also return true
6875 if ARG0 is a simple variant of ARG1 with narrower precision.
6876 (fold_ternary_loc): Always pass unstripped operands to the predicate.
6877
6878 2017-10-25 Jan Hubicka <hubicka@ucw.cz>
6879
6880 * i386.c (ix86_builtin_vectorization_cost): Compute scatter/gather
6881 cost correctly.
6882 * i386.h (processor_costs): Add gather_static, gather_per_elt,
6883 scatter_static, scatter_per_elt.
6884 * x86-tune-costs.h: Add new cost entries.
6885
6886 2017-10-25 Richard Biener <rguenther@suse.de>
6887
6888 * tree-ssa-sccvn.h (vn_eliminate): Declare.
6889 * tree-ssa-pre.c (class eliminate_dom_walker, eliminate,
6890 class pass_fre): Move to ...
6891 * tree-ssa-sccvn.c (class eliminate_dom_walker, vn_eliminate,
6892 class pass_fre): ... here and adjust for statistics.
6893
6894 2017-10-25 Jakub Jelinek <jakub@redhat.com>
6895
6896 PR libstdc++/81706
6897 * attribs.c (attribute_value_equal): Use omp_declare_simd_clauses_equal
6898 for comparison of OMP_CLAUSEs regardless of flag_openmp{,_simd}.
6899 (duplicate_one_attribute, copy_attributes_to_builtin): New functions.
6900 * attribs.h (duplicate_one_attribute, copy_attributes_to_builtin): New
6901 declarations.
6902
6903 2017-10-25 Richard Biener <rguenther@suse.de>
6904
6905 * tree-ssa-pre.c (need_eh_cleanup, need_ab_cleanup, el_to_remove,
6906 el_to_fixup, el_todo, el_avail, el_avail_stack, eliminate_avail,
6907 eliminate_push_avail, eliminate_insert): Move inside...
6908 (class eliminate_dom_walker): ... this class in preparation
6909 of move.
6910 (fini_eliminate): Remove by merging with ...
6911 (eliminate): ... this function. Adjust for class changes.
6912 (pass_pre::execute): Remove fini_eliminate call.
6913 (pass_fre::execute): Likewise.
6914
6915 2017-10-24 Jakub Jelinek <jakub@redhat.com>
6916
6917 PR target/82460
6918 * config/i386/sse.md (UNSPEC_VPERMI2, UNSPEC_VPERMI2_MASK): Remove.
6919 (VPERMI2, VPERMI2I): New mode iterators.
6920 (<avx512>_vpermi2var<mode>3_maskz): Remove 3 define_expand patterns.
6921 (<avx512>_vpermi2var<mode>3<sd_maskz_name>): Remove 3 define_insn
6922 patterns.
6923 (<avx512>_vpermi2var<mode>3_mask): New define_expand using VPERMI2
6924 mode iterator. Remove 3 old define_insn patterns.
6925 (*<avx512>_vpermi2var<mode>3_mask): 2 new define_insn patterns.
6926 (<avx512>_vpermt2var<mode>3_maskz): Adjust 1 define_expand to use
6927 VPERMI2 mode iterator, remove the other two expanders.
6928 (<avx512>_vpermt2var<mode>3<sd_maskz_name>): Adjust 1 define_insn
6929 to use VPERMI2 mode iterator, add another alternative for vpermi2*
6930 instructions, remove the other two patterns.
6931 (<avx512>_vpermt2var<mode>3_mask): Adjust 1 define_insn to use VPERMI2
6932 mode iterator, remove the other two patterns.
6933 * config/i386/i386.c (ix86_expand_vec_perm_vpermi2): Renamed to ...
6934 (ix86_expand_vec_perm_vpermt2): ... this. Swap mask and op0
6935 arguments, use gen_*vpermt2* expanders instead of gen_*vpermi2*
6936 and adjust argument order accordingly.
6937 (ix86_expand_vec_perm): Adjust caller.
6938 (expand_vec_perm_1): Likewise.
6939 (expand_vec_perm_vpermi2_vpshub2): Rename to ...
6940 (expand_vec_perm_vpermt2_vpshub2): ... this.
6941 (ix86_expand_vec_perm_const_1): Adjust caller.
6942 (ix86_vectorize_vec_perm_const_ok): Adjust comments.
6943
6944 PR target/82370
6945 * config/i386/sse.md (VIMAX_AVX2): Remove V4TImode.
6946 (VIMAX_AVX2_AVX512BW, VIMAX_AVX512VL): New mode iterators.
6947 (vec_shl_<mode>): Remove unused expander.
6948 (avx512bw_<shift_insn><mode>3): New define_insn.
6949 (<sse2_avx2>_ashl<mode>3, <sse2_avx2>_lshr<mode>3): Replaced by ...
6950 (<sse2_avx2>_<shift_insn><mode>3): ... this. New define_insn.
6951
6952 2017-10-24 Paolo Carlini <paolo.carlini@oracle.com>
6953
6954 PR c++/82466
6955 * doc/invoke.texi ([Wbuiltin-declaration-mismatch]): Extend
6956 description.
6957
6958 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com>
6959
6960 PR rtl-optimization/82396
6961 * gcc/haifa-sched.c (ready_sort_real): Remove qsort workaround.
6962 (autopref_multipass_init): Simplify initialization.
6963 (autopref_rank_data): Simplify sort order.
6964 * gcc/sched-int.h (autopref_multipass_data_): Remove
6965 multi_mem_insn_p, min_offset and max_offset.
6966
6967 2017-10-24 Wilco Dijkstra <wdijkstr@arm.com>
6968
6969 PR middle-end/60580
6970 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
6971 Check special value of flag_omit_frame_pointer.
6972 (aarch64_can_eliminate): Likewise.
6973 (aarch64_override_options_after_change_1): Simplify handling of
6974 -fomit-frame-pointer and -fomit-leaf-frame-pointer.
6975
6976 2017-10-24 Richard Biener <rguenther@suse.de>
6977
6978 PR tree-optimization/82697
6979 * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
6980 zero for conditional load and unconditional store.
6981
6982 2017-10-24 H.J. Lu <hongjiu.lu@intel.com>
6983
6984 * doc/install.texi: Document bootstrap-cet.
6985
6986 2017-10-24 H.J. Lu <hongjiu.lu@intel.com>
6987
6988 PR target/82659
6989 * config/i386/i386.c (rest_of_insert_endbranch): Don't insert
6990 ENDBR instruction at function entrance if function is only
6991 called directly.
6992
6993 2017-10-24 Jakub Jelinek <jakub@redhat.com>
6994
6995 PR target/82628
6996 * config/i386/i386.md (addcarry<mode>, subborrow<mode>): Change
6997 patterns to better describe from which operation the CF is computed.
6998 (addcarry<mode>_0, subborrow<mode>_0): New patterns.
6999 * config/i386/i386.c (ix86_expand_builtin) <case handlecarry>: Pass
7000 one LTU with [DT]Imode and another one with [SD]Imode. If arg0
7001 is 0, use _0 suffixed expanders instead of emitting a comparison
7002 before it.
7003
7004 2017-10-06 Sergey Shalnov <Sergey.Shalnov@intel.com>
7005
7006 * config/i386/i386.md(*movsf_internal, *movdf_internal):
7007 Avoid 512-bit AVX modes for TARGET_PREFER_AVX256.
7008
7009 2017-10-24 Eric Botcazou <ebotcazou@adacore.com>
7010
7011 PR middle-end/82569
7012 * tree-outof-ssa.h (always_initialized_rtx_for_ssa_name_p): Delete.
7013 * expr.c (expand_expr_real_1) <expand_decl_rtl>: Revert latest change.
7014 * loop-iv.c (iv_get_reaching_def): Likewise.
7015 * cfgexpand.c (expand_one_ssa_partition): Initialize the RTX if the
7016 variable is promoted and the partition contains undefined values.
7017
7018 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
7019
7020 * config/nios2/nios2.c (nios2_rtx_costs): Make costs better
7021 reflect reality.
7022 (nios2_address_cost): Define.
7023 (nios2_legitimize_address): Recognize (exp + constant) directly.
7024 (TARGET_ADDRESS_COST): Define.
7025
7026 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
7027
7028 * config/nios2/nios2-protos.h (nios2_large_constant_p): Declare.
7029 (nios2_symbolic_memory_operand_p): Declare.
7030 (nios2_split_large_constant): Declare.
7031 (nios2_split_symbolic_memory_operand): Declare.
7032 * config/nios2/nios2.c: Adjust includes.
7033 (nios2_symbolic_constant_allowed): New.
7034 (nios2_symbolic_constant_p): New.
7035 (nios2_plus_symbolic_constant_p): New.
7036 (nios2_valid_addr_expr_p): Recognize addresses involving
7037 symbolic constants.
7038 (nios2_legitimate_address_p): Likewise, also LO_SUM.
7039 (nios2_symbolic_memory_operand_p): New.
7040 (nios2_large_constant_p): New.
7041 (nios2_split_large_constant): New.
7042 (nios2_split_plus_large_constant): New.
7043 (nios2_split_symbolic_memory_operand): New.
7044 (nios2_legitimize_address): Code refactoring. Handle addresses
7045 involving symbolic constants.
7046 (nios2_emit_move_sequence): Likewise.
7047 (nios2_print_operand): Improve error output.
7048 (nios2_print_operand_address): Handle LO_SUM.
7049 (nios2_cdx_narrow_form_p): Likewise.
7050 * config/nios2/nios2.md (movqi_internal): Add splitter for memory
7051 operands involving symbolic constants.
7052 (movhi_internal, movsi_internal): Likewise.
7053 (zero_extendhisi2, zero_extendqi<mode>2): Likewise.
7054 (extendhisi2, extendqi<mode>2): Likewise.
7055
7056 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
7057
7058 * tree-pass.h (PROP_rtl_split_insns): Define.
7059 * recog.c (pass_data_split_all_insns): Provide PROP_rtl_split_insns.
7060
7061 2017-10-23 Sandra Loosemore <sandra@codesourcery.com>
7062
7063 * config/nios2/nios2.c (TARGET_LRA_P): Don't override.
7064
7065 2017-10-23 Jakub Jelinek <jakub@redhat.com>
7066
7067 PR debug/82630
7068 * target.def (const_not_ok_for_debug_p): Default to
7069 default_const_not_ok_for_debug_p instead of hook_bool_rtx_false.
7070 * targhooks.h (default_const_not_ok_for_debug_p): New declaration.
7071 * targhooks.c (default_const_not_ok_for_debug_p): New function.
7072 * dwarf2out.c (const_ok_for_output_1): Only reject UNSPECs for
7073 which targetm.const_not_ok_for_debug_p returned true.
7074 * config/arm/arm.c (arm_const_not_ok_for_debug_p): Return true
7075 for UNSPECs.
7076 * config/powerpcspe/powerpcspe.c (rs6000_const_not_ok_for_debug_p):
7077 Likewise.
7078 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): Likewise.
7079 * config/i386/i386.c (ix86_delegitimize_address_1): Don't delegitimize
7080 UNSPEC_GOTOFF with addend into addend - _GLOBAL_OFFSET_TABLE_ + symbol
7081 if !base_term_p.
7082 (ix86_const_not_ok_for_debug_p): New function.
7083 (i386_asm_output_addr_const_extra): Handle UNSPEC_GOTOFF.
7084 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
7085
7086 2017-10-23 David Malcolm <dmalcolm@redhat.com>
7087
7088 PR bootstrap/82610
7089 * system.h: Conditionally include "unique-ptr.h" if
7090 INCLUDE_UNIQUE_PTR is defined.
7091 * unique-ptr-tests.cc: Remove include of "unique-ptr.h" in favor
7092 of defining INCLUDE_UNIQUE_PTR before including "system.h".
7093
7094 2017-10-23 Sebastian Perta <sebastian.perta@renesas.com>
7095
7096 * config/rl78/rl78.md: New define_expand "subdi3".
7097
7098 2017-10-23 H.J. Lu <hongjiu.lu@intel.com>
7099
7100 PR target/82673
7101 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Skip
7102 DF_REF_INSN if DF_REF_INSN_INFO is false.
7103
7104 2017-10-23 Jan Hubicka <hubicka@ucw.cz>
7105
7106 * i386.c (dimode_scalar_chain::compute_convert_gain): Use
7107 xmm_move instead of sse_move.
7108 (sse_store_index): New function.
7109 (ix86_register_move_cost): Be more sensible about mismatch stall;
7110 model AVX moves correctly; make difference between sse->integer and
7111 integer->sse.
7112 (ix86_builtin_vectorization_cost): Model correctly aligned and unaligned
7113 moves; make difference between SSE and AVX.
7114 * i386.h (processor_costs): Remove sse_move; add xmm_move, ymm_move
7115 and zmm_move. Increase size of sse load and store tables;
7116 add unaligned load and store tables; add ssemmx_to_integer.
7117 * x86-tune-costs.h: Update all entries according to real
7118 move latencies from Agner Fog's manual and chip documentation.
7119
7120 2017-10-23 Jakub Jelinek <jakub@redhat.com>
7121
7122 PR target/82628
7123 * config/i386/predicates.md (x86_64_dwzext_immediate_operand): New.
7124 * config/i386/constraints.md (Wf): New constraint.
7125 * config/i386/i386.md (UNSPEC_SBB): New unspec.
7126 (cmp<dwi>_doubleword): Removed.
7127 (sub<mode>3_carry_ccc, *sub<mode>3_carry_ccc_1): New patterns.
7128 (sub<mode>3_carry_ccgz): Use unspec instead of compare.
7129 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>: Don't
7130 expand with cmp<dwi>_doubleword. For LTU and GEU use
7131 sub<mode>3_carry_ccc instead of sub<mode>3_carry_ccgz and use CCCmode.
7132
7133 * common.opt (gcolumn-info): Enable by default.
7134 * doc/invoke.texi (gcolumn-info): Document new default.
7135
7136 2017-10-23 Richard Biener <rguenther@suse.de>
7137
7138 PR tree-optimization/82672
7139 * graphite-isl-ast-to-gimple.c (graphite_copy_stmts_from_block):
7140 Fold the stmt if we propagated into it.
7141
7142 2017-10-23 Richard Biener <rguenther@suse.de>
7143
7144 * tree-ssa-pre.c (bitmap_remove_from_set): Rename to...
7145 (bitmap_remove_expr_from_set): ... this. All callers call this
7146 for non-constant values.
7147 (bitmap_set_subtract): Rename to...
7148 (bitmap_set_subtract_expressions): ... this. Adjust and
7149 optimize.
7150 (bitmap_set_contains_value): Remove superfluous check.
7151 (bitmap_set_replace_value): Inline into single caller ...
7152 (bitmap_value_replace_in_set): ... here and simplify.
7153 (dependent_clean): Merge into ...
7154 (clean): ... this using an overload. Adjust.
7155 (prune_clobbered_mems): Adjust.
7156 (compute_antic_aux): Likewise.
7157 (compute_partial_antic_aux): Likewise.
7158
7159 2017-10-23 Richard Biener <rguenther@suse.de>
7160
7161 PR tree-optimization/82129
7162 Revert
7163 2017-08-01 Richard Biener <rguenther@suse.de>
7164
7165 PR tree-optimization/81181
7166 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
7167 (compute_antic): ... end of iteration here.
7168
7169 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
7170
7171 * target.def (starting_frame_offset): New hook.
7172 * doc/tm.texi (STARTING_FRAME_OFFSET): Remove in favor of...
7173 (TARGET_STARTING_FRAME_OFFSET): ...this new hook.
7174 * doc/tm.texi.in: Regenerate.
7175 * hooks.h (hook_hwi_void_0): Declare.
7176 * hooks.c (hook_hwi_void_0): New function.
7177 * doc/rtl.texi: Refer to TARGET_STARTING_FRAME_OFFSET instead of
7178 STARTING_FRAME_OFFSET.
7179 * builtins.c (expand_builtin_setjmp_receiver): Likewise.
7180 * reload1.c (reload): Likewise.
7181 * cfgexpand.c (expand_used_vars): Use targetm.starting_frame_offset
7182 instead of STARTING_FRAME_OFFSET.
7183 * function.c (try_fit_stack_local): Likewise.
7184 (assign_stack_local_1): Likewise
7185 (instantiate_virtual_regs): Likewise.
7186 * rtlanal.c (rtx_addr_can_trap_p_1): Likewise.
7187 * config/avr/avr.md (nonlocal_goto_receiver): Likewise.
7188 * config/aarch64/aarch64.h (STARTING_FRAME_OFFSET): Delete.
7189 * config/alpha/alpha.h (STARTING_FRAME_OFFSET): Likewise.
7190 * config/arc/arc.h (STARTING_FRAME_OFFSET): Likewise.
7191 * config/arm/arm.h (STARTING_FRAME_OFFSET): Likewise.
7192 * config/bfin/bfin.h (STARTING_FRAME_OFFSET): Likewise.
7193 * config/c6x/c6x.h (STARTING_FRAME_OFFSET): Likewise.
7194 * config/cr16/cr16.h (STARTING_FRAME_OFFSET): Likewise.
7195 * config/cris/cris.h (STARTING_FRAME_OFFSET): Likewise.
7196 * config/fr30/fr30.h (STARTING_FRAME_OFFSET): Likewise.
7197 * config/frv/frv.h (STARTING_FRAME_OFFSET): Likewise.
7198 * config/ft32/ft32.h (STARTING_FRAME_OFFSET): Likewise.
7199 * config/h8300/h8300.h (STARTING_FRAME_OFFSET): Likewise.
7200 * config/i386/i386.h (STARTING_FRAME_OFFSET): Likewise.
7201 * config/ia64/ia64.h (STARTING_FRAME_OFFSET): Likewise.
7202 * config/m32c/m32c.h (STARTING_FRAME_OFFSET): Likewise.
7203 * config/m68k/m68k.h (STARTING_FRAME_OFFSET): Likewise.
7204 * config/mcore/mcore.h (STARTING_FRAME_OFFSET): Likewise.
7205 * config/mn10300/mn10300.h (STARTING_FRAME_OFFSET): Likewise.
7206 * config/moxie/moxie.h (STARTING_FRAME_OFFSET): Likewise.
7207 * config/msp430/msp430.h (STARTING_FRAME_OFFSET): Likewise.
7208 * config/nds32/nds32.h (STARTING_FRAME_OFFSET): Likewise.
7209 * config/nios2/nios2.h (STARTING_FRAME_OFFSET): Likewise.
7210 * config/nvptx/nvptx.h (STARTING_FRAME_OFFSET): Likewise.
7211 * config/pdp11/pdp11.h (STARTING_FRAME_OFFSET): Likewise.
7212 * config/riscv/riscv.h (STARTING_FRAME_OFFSET): Likewise.
7213 * config/rl78/rl78.h (STARTING_FRAME_OFFSET): Likewise.
7214 * config/rx/rx.h (STARTING_FRAME_OFFSET): Likewise.
7215 * config/s390/s390.h (STARTING_FRAME_OFFSET): Likewise.
7216 * config/sh/sh.h (STARTING_FRAME_OFFSET): Likewise.
7217 * config/sparc/sparc.c (sparc_compute_frame_size): Likewise.
7218 * config/sparc/sparc.h (STARTING_FRAME_OFFSET): Likewise.
7219 * config/spu/spu.h (STARTING_FRAME_OFFSET): Likewise.
7220 * config/stormy16/stormy16.h (STARTING_FRAME_OFFSET): Likewise.
7221 * config/tilegx/tilegx.h (STARTING_FRAME_OFFSET): Likewise.
7222 * config/tilepro/tilepro.h (STARTING_FRAME_OFFSET): Likewise.
7223 * config/v850/v850.h (STARTING_FRAME_OFFSET): Likewise.
7224 * config/visium/visium.h (STARTING_FRAME_OFFSET): Likewise.
7225 * config/avr/avr.h (STARTING_FRAME_OFFSET): Likewise.
7226 * config/avr/avr-protos.h (avr_starting_frame_offset): Likewise.
7227 * config/avr/avr.c (avr_starting_frame_offset): Make static and
7228 return a HOST_WIDE_INT.
7229 (avr_builtin_setjmp_frame_value): Use it instead of
7230 STARTING_FRAME_OFFSET.
7231 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7232 * config/epiphany/epiphany.h (STARTING_FRAME_OFFSET): Delete.
7233 * config/epiphany/epiphany.c (epiphany_starting_frame_offset):
7234 New function.
7235 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7236 * config/iq2000/iq2000.h (STARTING_FRAME_OFFSET): Delete.
7237 * config/iq2000/iq2000.c (iq2000_starting_frame_offset): New function.
7238 (TARGET_CONSTANT_ALIGNMENT): Redefine.
7239 * config/lm32/lm32.h (STARTING_FRAME_OFFSET): Delete.
7240 * config/lm32/lm32.c (lm32_starting_frame_offset): New function.
7241 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7242 * config/m32r/m32r.h (STARTING_FRAME_OFFSET): Delete.
7243 * config/m32r/m32r.c (m32r_starting_frame_offset): New function.
7244 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7245 * config/microblaze/microblaze.h (STARTING_FRAME_OFFSET): Delete.
7246 * config/microblaze/microblaze.c (microblaze_starting_frame_offset):
7247 New function.
7248 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7249 * config/mips/mips.h (STARTING_FRAME_OFFSET): Delete.
7250 * config/mips/mips.c (mips_compute_frame_info): Refer to
7251 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
7252 (mips_starting_frame_offset): New function.
7253 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7254 * config/mmix/mmix.h (STARTING_FRAME_OFFSET): Delete.
7255 * config/mmix/mmix-protos.h (mmix_starting_frame_offset): Delete.
7256 * config/mmix/mmix.c (mmix_starting_frame_offset): Make static
7257 and return a HOST_WIDE_INT.
7258 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7259 (mmix_initial_elimination_offset): Refer to
7260 TARGET_STARTING_FRAME_OFFSET instead of STARTING_FRAME_OFFSET.
7261 * config/pa/pa.h (STARTING_FRAME_OFFSET): Delete.
7262 * config/pa/pa.c (pa_starting_frame_offset): New function.
7263 (pa_compute_frame_size): Use it instead of STARTING_FRAME_OFFSET.
7264 (pa_expand_prologue): Likewise.
7265 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7266 * config/powerpcspe/aix.h (STARTING_FRAME_OFFSET): Split out
7267 !FRAME_GROWS_DOWNWARD handling to...
7268 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
7269 * config/powerpcspe/darwin.h (STARTING_FRAME_OFFSET): Split out
7270 !FRAME_GROWS_DOWNWARD handling to...
7271 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
7272 * config/powerpcspe/powerpcspe.h (STARTING_FRAME_OFFSET): Split out
7273 !FRAME_GROWS_DOWNWARD handling to...
7274 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
7275 * config/powerpcspe/powerpcspe.c (TARGET_STARTING_FRAME_OFFSET):
7276 Redefine.
7277 (rs6000_starting_frame_offset): New function.
7278 * config/rs6000/aix.h (STARTING_FRAME_OFFSET): Split out
7279 !FRAME_GROWS_DOWNWARD handling to...
7280 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
7281 * config/rs6000/darwin.h (STARTING_FRAME_OFFSET): Split out
7282 !FRAME_GROWS_DOWNWARD handling to...
7283 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
7284 * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Split out
7285 !FRAME_GROWS_DOWNWARD handling to...
7286 (RS6000_STARTING_FRAME_OFFSET): ...this new macro.
7287 * config/rs6000/rs6000.c (TARGET_STARTING_FRAME_OFFSET): Refine.
7288 (rs6000_starting_frame_offset): New function.
7289 * config/vax/elf.h (STARTING_FRAME_OFFSET): Delete.
7290 * config/vax/vax.h (STARTING_FRAME_OFFSET): Delete.
7291 * config/vax/vax.c (vax_starting_frame_offset): New function.
7292 (vax_expand_prologue): Use it instead of STARTING_FRAME_OFFSET.
7293 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7294 * config/xtensa/xtensa.h (STARTING_FRAME_OFFSET): Delete.
7295 * config/xtensa/xtensa.c (xtensa_starting_frame_offset): New function.
7296 (TARGET_STARTING_FRAME_OFFSET): Redefine.
7297 * system.h (STARTING_FRAME_OFFSET): Poison.
7298
7299 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
7300
7301 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
7302 SCALAR_TYPE_MODE instead of TYPE_MODE.
7303
7304 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
7305 Alan Hayward <alan.hayward@arm.com>
7306 David Sherwood <david.sherwood@arm.com>
7307
7308 * dwarf2out.c (loc_list_from_tree_1): Use SCALAR_INT_TYPE_MODE
7309
7310 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
7311 Alan Hayward <alan.hayward@arm.com>
7312 David Sherwood <david.sherwood@arm.com>
7313
7314 * expmed.c (expand_shift_1): Use scalar_mode for scalar_mode.
7315
7316 2017-10-23 Richard Biener <rguenther@suse.de>
7317
7318 PR tree-optimization/82129
7319 * tree-ssa-pre.c (bitmap_set_and): Remove.
7320 (compute_antic_aux): Compute ANTIC_OUT intersection in a way
7321 canonicalizing expressions in the set to those with lowest
7322 ID rather than taking that from the first edge.
7323
7324 2017-10-23 Richard Sandiford <richard.sandiford@linaro.org>
7325
7326 * combine.c (rtx_equal_for_field_assignment_p): Use
7327 byte_lowpart_offset.
7328
7329 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
7330 Alan Hayward <alan.hayward@arm.com>
7331 David Sherwood <david.sherwood@arm.com>
7332
7333 * internal-fn.c (expand_direct_optab_fn): Don't assign directly
7334 to a SUBREG_PROMOTED_VAR.
7335
7336 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
7337 Alan Hayward <alan.hayward@arm.com>
7338 David Sherwood <david.sherwood@arm.com>
7339
7340 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_PRECISION.
7341 (expand_debug_source_expr): Likewise.
7342 * combine.c (combine_simplify_rtx): Likewise.
7343 * cse.c (fold_rtx): Likewise.
7344 * optabs.c (expand_float): Likewise.
7345 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
7346 (simplify_binary_operation_1): Likewise.
7347
7348 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
7349 Alan Hayward <alan.hayward@arm.com>
7350 David Sherwood <david.sherwood@arm.com>
7351
7352 * combine.c (simplify_comparison): Use HWI_COMPUTABLE_MODE_P.
7353 (record_promoted_value): Likewise.
7354 * expr.c (expand_expr_real_2): Likewise.
7355 * ree.c (update_reg_equal_equiv_notes): Likewise.
7356 (combine_set_extension): Likewise.
7357 * rtlanal.c (low_bitmask_len): Likewise.
7358 * simplify-rtx.c (neg_const_int): Likewise.
7359 (simplify_binary_operation_1): Likewise.
7360
7361 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
7362 Alan Hayward <alan.hayward@arm.com>
7363 David Sherwood <david.sherwood@arm.com>
7364
7365 * lra-spills.c (assign_mem_slot): Use subreg_size_lowpart_offset.
7366 * regcprop.c (maybe_mode_change): Likewise.
7367 * reload1.c (alter_reg): Likewise.
7368
7369 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
7370
7371 * inchash.h (inchash::hash::add_wide_int): New function.
7372 * lto-streamer-out.c (hash_tree): Use it.
7373
7374 2017-10-22 Richard Sandiford <richard.sandiford@linaro.org>
7375
7376 * inchash.h (inchash::hash::add_wide_int): Rename to...
7377 (inchash::hash::add_hwi): ...this.
7378 * ipa-devirt.c (hash_odr_vtable): Update accordingly.
7379 (polymorphic_call_target_hasher::hash): Likewise.
7380 * ipa-icf.c (sem_function::get_hash, sem_function::init): Likewise.
7381 (sem_item::add_expr, sem_item::add_type, sem_variable::get_hash)
7382 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
7383 * lto-streamer-out.c (hash_tree): Likewise.
7384 * optc-save-gen.awk: Likewise.
7385 * tree.c (add_expr): Likewise.
7386
7387 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
7388
7389 PR target/52451
7390 * config/i386/i386.c (ix86_fp_compare_mode): Return CCFPmode
7391 for ordered inequality comparisons even with TARGET_IEEE_FP.
7392
7393 2017-10-22 Uros Bizjak <ubizjak@gmail.com>
7394
7395 PR target/82628
7396 * config/i386/i386.md (cmp<dwi>_doubleword): New pattern.
7397 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
7398 Expand with cmp<dwi>_doubleword.
7399
7400 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
7401
7402 * extend.texi: Add x86 specific to 'nocf_check' attribute.
7403 List CET intrinsics.
7404 * invoke.texi: Add -mcet, -mibt, -mshstk options. Add x86
7405 specific to -fcf-protection option.
7406
7407 2017-10-21 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
7408
7409 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): New.
7410 (OPTION_MASK_ISA_SHSTK_SET): Likewise.
7411 (OPTION_MASK_ISA_IBT_UNSET): Likewise.
7412 (OPTION_MASK_ISA_SHSTK_UNSET): Likewise.
7413 (ix86_handle_option): Add -mibt, -mshstk, -mcet handling.
7414 * config.gcc (extra_headers): Add cetintrin.h for x86 targets.
7415 (extra_objs): Add cet.o for Linux/x86 targets.
7416 (tmake_file): Add i386/t-cet for Linux/x86 targets.
7417 * config/i386/cet.c: New file.
7418 * config/i386/cetintrin.h: Likewise.
7419 * config/i386/t-cet: Likewise.
7420 * config/i386/cpuid.h (bit_SHSTK): New.
7421 (bit_IBT): Likewise.
7422 * config/i386/driver-i386.c (host_detect_local_cpu): Detect and
7423 pass IBT and SHSTK bits.
7424 * config/i386/i386-builtin-types.def
7425 (VOID_FTYPE_UNSIGNED_PVOID): New.
7426 (VOID_FTYPE_UINT64_PVOID): Likewise.
7427 * config/i386/i386-builtin.def: Add CET intrinsics.
7428 * config/i386/i386-c.c (ix86_target_macros_internal): Add
7429 OPTION_MASK_ISA_IBT, OPTION_MASK_ISA_SHSTK handling.
7430 * config/i386/i386-passes.def: Add pass_insert_endbranch pass.
7431 * config/i386/i386-protos.h (make_pass_insert_endbranch): New
7432 prototype.
7433 * config/i386/i386.c (rest_of_insert_endbranch): New.
7434 (pass_data_insert_endbranch): Likewise.
7435 (pass_insert_endbranch): Likewise.
7436 (make_pass_insert_endbranch): Likewise.
7437 (ix86_notrack_prefixed_insn_p): Likewise.
7438 (ix86_target_string): Add -mibt, -mshstk flags.
7439 (ix86_option_override_internal): Add flag_cf_protection
7440 processing.
7441 (ix86_valid_target_attribute_inner_p): Set OPT_mibt, OPT_mshstk.
7442 (ix86_print_operand): Add 'notrack' prefix output.
7443 (ix86_init_mmx_sse_builtins): Add CET intrinsics.
7444 (ix86_expand_builtin): Expand CET intrinsics.
7445 (x86_output_mi_thunk): Add 'endbranch' instruction.
7446 * config/i386/i386.h (TARGET_IBT): New.
7447 (TARGET_IBT_P): Likewise.
7448 (TARGET_SHSTK): Likewise.
7449 (TARGET_SHSTK_P): Likewise.
7450 * config/i386/i386.md (unspecv): Add UNSPECV_NOP_RDSSP,
7451 UNSPECV_INCSSP, UNSPECV_SAVEPREVSSP, UNSPECV_RSTORSSP,
7452 UNSPECV_WRSS, UNSPECV_WRUSS, UNSPECV_SETSSBSY, UNSPECV_CLRSSBSY.
7453 (builtin_setjmp_setup): New pattern.
7454 (builtin_longjmp): Likewise.
7455 (rdssp<mode>): Likewise.
7456 (incssp<mode>): Likewise.
7457 (saveprevssp): Likewise.
7458 (rstorssp): Likewise.
7459 (wrss<mode>): Likewise.
7460 (wruss<mode>): Likewise.
7461 (setssbsy): Likewise.
7462 (clrssbsy): Likewise.
7463 (nop_endbr): Likewise.
7464 * config/i386/i386.opt: Add -mcet, -mibt, -mshstk and -mcet-switch
7465 options.
7466 * config/i386/immintrin.h: Include <cetintrin.h>.
7467 * config/i386/linux-common.h
7468 (file_end_indicate_exec_stack_and_cet): New prototype.
7469 (TARGET_ASM_FILE_END): New.
7470
7471 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
7472
7473 * i386.c (ix86_builtin_vectorization_cost): Use existing rtx_cost
7474 latencies instead of having separate table; make difference between
7475 integer and float costs.
7476 * i386.h (processor_costs): Remove scalar_stmt_cost,
7477 scalar_load_cost, scalar_store_cost, vec_stmt_cost, vec_to_scalar_cost,
7478 scalar_to_vec_cost, vec_align_load_cost, vec_unalign_load_cost,
7479 vec_store_cost.
7480 * x86-tune-costs.h: Remove entries which has been removed in
7481 procesor_costs from all tables; make cond_taken_branch_cost
7482 and cond_not_taken_branch_cost COST_N_INSNS based.
7483
7484 2017-10-20 Jan Hubicka <hubicka@ucw.cz>
7485
7486 * x86-tune-costs.h (intel_cost, generic_cost): Fix move costs.
7487
7488 2017-10-20 Jakub Jelinek <jakub@redhat.com>
7489
7490 * config/i386/i386.md (isa): Remove fma_avx512f.
7491 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
7492 <avx512>_fmadd_<mode>_mask3<round_name>,
7493 <avx512>_fmsub_<mode>_mask<round_name>,
7494 <avx512>_fmsub_<mode>_mask3<round_name>,
7495 <avx512>_fnmadd_<mode>_mask<round_name>,
7496 <avx512>_fnmadd_<mode>_mask3<round_name>,
7497 <avx512>_fnmsub_<mode>_mask<round_name>,
7498 <avx512>_fnmsub_<mode>_mask3<round_name>,
7499 <avx512>_fmaddsub_<mode>_mask<round_name>,
7500 <avx512>_fmaddsub_<mode>_mask3<round_name>,
7501 <avx512>_fmsubadd_<mode>_mask<round_name>,
7502 <avx512>_fmsubadd_<mode>_mask3<round_name>): Remove isa attribute.
7503 (*vec_widen_umult_even_v16si<mask_name>,
7504 *vec_widen_smult_even_v16si<mask_name>): Likewise.
7505 (<mask_codefor>avx512bw_dbpsadbw<mode><mask_name>): Likewise.
7506
7507 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
7508
7509 * extend.texi: Add 'nocf_check' documentation.
7510 * gimple.texi: Add second parameter to
7511 gimple_build_call_from_tree.
7512 * invoke.texi: Add -fcf-protection documentation.
7513 * rtl.texi: Add REG_CALL_NOTRACK documenation.
7514
7515 2017-10-20 Richard Biener <rguenther@suse.de>
7516
7517 PR tree-optimization/82473
7518 * tree-vect-loop.c (vectorizable_reduction): Properly get at
7519 the largest input type.
7520
7521 2017-10-20 Igor Tsimbalist <igor.v.tsimbalist@intel.com>
7522
7523 * c-attribs.c (handle_nocf_check_attribute): New function.
7524 (c_common_attribute_table): Add 'nocf_check' handling.
7525 * gimple-parser.c: Add second argument NULL to
7526 gimple_build_call_from_tree.
7527 * attrib.c (comp_type_attributes): Check nocf_check attribute.
7528 * cfgexpand.c (expand_call_stmt): Set REG_CALL_NOCF_CHECK for
7529 call insn.
7530 * combine.c (distribute_notes): Add REG_CALL_NOCF_CHECK handling.
7531 * common.opt: Add fcf-protection flag.
7532 * emit-rtl.c (try_split): Add REG_CALL_NOCF_CHECK handling.
7533 * flag-types.h: Add enum cf_protection_level.
7534 * gimple.c (gimple_build_call_from_tree): Add second parameter.
7535 Add 'nocf_check' attribute propagation to gimple call.
7536 * gimple.h (gf_mask): Add GF_CALL_NOCF_CHECK.
7537 (gimple_build_call_from_tree): Update prototype.
7538 (gimple_call_nocf_check_p): New function.
7539 (gimple_call_set_nocf_check): Likewise.
7540 * gimplify.c: Add second argument to gimple_build_call_from_tree.
7541 * ipa-icf.c: Add nocf_check attribute in statement hash.
7542 * recog.c (peep2_attempt): Add REG_CALL_NOCF_CHECK handling.
7543 * reg-notes.def: Add REG_NOTE (CALL_NOCF_CHECK).
7544 * toplev.c (process_options): Add flag_cf_protection handling.
7545
7546 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
7547
7548 * x86-tune-costs.h (core_cost): Fix div, move and sqrt latencies.
7549
7550 2017-10-20 Richard Biener <rguenther@suse.de>
7551
7552 PR tree-optimization/82603
7553 * tree-if-conv.c (predicate_mem_writes): Make sure to only
7554 remove false predicated stores.
7555
7556 2017-10-20 Richard Biener <rguenther@suse.de>
7557
7558 * graphite-isl-ast-to-gimple.c
7559 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block):
7560 Remove return value and simplify, dump copied stmt after lhs
7561 adjustment.
7562 (translate_isl_ast_to_gimple::translate_isl_ast_node_user):
7563 Reduce dump verbosity.
7564 (gsi_insert_earliest): Likewise.
7565 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Adjust.
7566 * graphite.c (print_global_statistics): Adjust dumping.
7567 (print_graphite_scop_statistics): Likewise.
7568 (print_graphite_statistics): Do not dump loops here.
7569 (graphite_transform_loops): But here.
7570
7571 2017-10-20 Nicolas Roche <roche@adacore.com>
7572
7573 * configure.ac (ACX_PROG_GNAT): Append "libgnat" to include search dir.
7574 * configure: Regenerate.
7575
7576 2017-10-20 Jakub Jelinek <jakub@redhat.com>
7577
7578 PR target/82158
7579 * tree-cfg.c (pass_warn_function_return::execute): In noreturn
7580 functions when optimizing replace GIMPLE_RETURN stmts with
7581 calls to __builtin_unreachable ().
7582
7583 PR sanitizer/82595
7584 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Add libtsan_preinit.o
7585 for -fsanitize=thread link of executables.
7586 (LIBLSAN_EARLY_SPEC): Add liblsan_preinit.o for -fsanitize=leak
7587 link of executables.
7588
7589 PR target/82370
7590 * config/i386/sse.md (VI248_AVX2, VI248_AVX512BW, VI248_AVX512BW_2):
7591 New mode iterators.
7592 (<shift_insn><mode>3<mask_name>): Change the last of the 3
7593 define_insns for logical vector shifts to use VI248_AVX512BW
7594 iterator instead of VI48_AVX512, remove <mask_mode512bit_condition>
7595 condition, useless isa and prefix attributes. Change the first
7596 2 of these define_insns to ...
7597 (<mask_codefor><shift_insn><mode>3<mask_name>): ... this, new
7598 define_insn for avx512vl.
7599 (<shift_insn><mode>3): ... and this, new define_insn without
7600 masking for non-avx512vl.
7601
7602 PR target/82370
7603 * config/i386/sse.md (*andnot<mode>3,
7604 <mask_codefor><code><mode>3<mask_name>, *<code><mode>3): Split
7605 (=v,v,vm) alternative into (=x,x,xm) and (=v,v,vm), for 128-bit
7606 and 256-bit vectors, the (=x,x,xm) alternative and when mask is
7607 not applied use empty suffix even for TARGET_AVX512VL.
7608 * config/i386/subst.md (mask_prefix3, mask_prefix4): When mask
7609 is applied, supply evex,evex or evex,evex,evex instead of just
7610 evex.
7611
7612 2017-10-20 Julia Koval <julia.koval@intel.com>
7613
7614 * common/config/i386/i386-common.c (OPTION_MASK_ISA_GFNI_SET,
7615 (OPTION_MASK_ISA_GFNI_UNSET): New.
7616 (ix86_handle_option): Handle OPT_mgfni.
7617 * config/i386/cpuid.h (bit_GFNI): New.
7618 * config/i386/driver-i386.c (host_detect_local_cpu): Detect gfni.
7619 * config/i386/i386-c.c (ix86_target_macros_internal): Define __GFNI__.
7620 * config/i386/i386.c (ix86_target_string): Add -mgfni.
7621 (ix86_valid_target_attribute_inner_p): Add OPT_mgfni.
7622 * config/i386/i386.h (TARGET_GFNI, TARGET_GFNI_P): New.
7623 * config/i386/i386.opt: Add mgfni.
7624
7625 2017-10-20 Orlando Arias <oarias@knights.ucf.edu>
7626
7627 * config/msp430/msp430.c (msp430_option_override): Disable
7628 -fdelete-null-pointer-checks.
7629 * doc/invoke.text (-fdelete-null-pointer-checks): Document that.
7630
7631 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
7632
7633 * x86-tune-costs.h (generic_cost, core_cost): Correct costs
7634 of x87 and SSE instructions.
7635
7636 2017-10-19 Jan Hubicka <hubicka@ucw.cz>
7637
7638 * asan.c (create_cond_insert_point): Do not update edge count.
7639 * auto-profile.c (afdo_propagate_edge): Update for edge count removal.
7640 (afdo_propagate_circuit): Likewise.
7641 (afdo_calculate_branch_prob): Likewise.
7642 (afdo_annotate_cfg): Likewise.
7643 * basic-block.h (struct edge_def): Remove count.
7644 (edge_def::count): New accessor.
7645 * bb-reorder.c (rotate_loop): Update.
7646 (find_traces_1_round): Update.
7647 (connect_traces): Update.
7648 (sanitize_hot_paths): Update.
7649 * cfg.c (unchecked_make_edge): Update.
7650 (make_single_succ_edge): Update.
7651 (check_bb_profile): Update.
7652 (dump_edge_info): Update.
7653 (update_bb_profile_for_threading): Update.
7654 (scale_bbs_frequencies_int): Update.
7655 (scale_bbs_frequencies_gcov_type): Update.
7656 (scale_bbs_frequencies_profile_count): Update.
7657 (scale_bbs_frequencies): Update.
7658 * cfganal.c (connect_infinite_loops_to_exit): Update.
7659 * cfgbuild.c (compute_outgoing_frequencies): Update.
7660 (find_many_sub_basic_blocks): Update.
7661 * cfgcleanup.c (try_forward_edges): Update.
7662 (try_crossjump_to_edge): Update
7663 * cfgexpand.c (expand_gimple_cond): Update
7664 (expand_gimple_tailcall): Update
7665 (construct_exit_block): Update
7666 * cfghooks.c (verify_flow_info): Update
7667 (redirect_edge_succ_nodup): Update
7668 (split_edge): Update
7669 (make_forwarder_block): Update
7670 (duplicate_block): Update
7671 (account_profile_record): Update
7672 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
7673 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
7674 * cfgloopmanip.c (scale_loop_profile): Update.
7675 (loopify): Update.
7676 (lv_adjust_loop_entry_edge): Update.
7677 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
7678 (force_nonfallthru_and_redirect): Update.
7679 (purge_dead_edges): Update.
7680 (rtl_flow_call_edges_add): Update.
7681 * cgraphunit.c (init_lowered_empty_function): Update.
7682 (cgraph_node::expand_thunk): Update.
7683 * gimple-pretty-print.c (dump_probability): Update.
7684 (dump_edge_probability): Update.
7685 * gimple-ssa-isolate-paths.c (isolate_path): Update.
7686 * haifa-sched.c (sched_create_recovery_edges): Update.
7687 * hsa-gen.c (convert_switch_statements): Update.
7688 * ifcvt.c (dead_or_predicable): Update.
7689 * ipa-inline-transform.c (inline_transform): Update.
7690 * ipa-split.c (split_function): Update.
7691 * ipa-utils.c (ipa_merge_profiles): Update.
7692 * loop-doloop.c (add_test): Update.
7693 * loop-unroll.c (unroll_loop_runtime_iterations): Update.
7694 * lto-streamer-in.c (input_cfg): Update.
7695 (input_function): Update.
7696 * lto-streamer-out.c (output_cfg): Update.
7697 * modulo-sched.c (sms_schedule): Update.
7698 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
7699 * predict.c (maybe_hot_edge_p): Update.
7700 (unlikely_executed_edge_p): Update.
7701 (probably_never_executed_edge_p): Update.
7702 (dump_prediction): Update.
7703 (drop_profile): Update.
7704 (propagate_unlikely_bbs_forward): Update.
7705 (determine_unlikely_bbs): Update.
7706 (force_edge_cold): Update.
7707 * profile.c (compute_branch_probabilities): Update.
7708 * reg-stack.c (better_edge): Update.
7709 * shrink-wrap.c (handle_simple_exit): Update.
7710 * tracer.c (better_p): Update.
7711 * trans-mem.c (expand_transaction): Update.
7712 (split_bb_make_tm_edge): Update.
7713 * tree-call-cdce.c: Update.
7714 * tree-cfg.c (gimple_find_sub_bbs): Update.
7715 (gimple_split_edge): Update.
7716 (gimple_duplicate_sese_region): Update.
7717 (gimple_duplicate_sese_tail): Update.
7718 (gimple_flow_call_edges_add): Update.
7719 (insert_cond_bb): Update.
7720 (execute_fixup_cfg): Update.
7721 * tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
7722 * tree-complex.c (expand_complex_div_wide): Update.
7723 * tree-eh.c (lower_resx): Update.
7724 (unsplit_eh): Update.
7725 (cleanup_empty_eh_move_lp): Update.
7726 * tree-inline.c (copy_edges_for_bb): Update.
7727 (freqs_to_counts): Update.
7728 (copy_cfg_body): Update.
7729 * tree-ssa-dce.c (remove_dead_stmt): Update.
7730 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
7731 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
7732 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
7733 (unloop_loops): Update.
7734 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
7735 * tree-ssa-loop-split.c (connect_loops): Update.
7736 (split_loop): Update.
7737 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
7738 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
7739 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
7740 * tree-ssa-reassoc.c (branch_fixup): Update.
7741 * tree-ssa-tail-merge.c (replace_block_by): Update.
7742 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
7743 (compute_path_counts): Update.
7744 (update_profile): Update.
7745 (recompute_probabilities): Update.
7746 (update_joiner_offpath_counts): Update.
7747 (estimated_freqs_path): Update.
7748 (freqs_to_counts_path): Update.
7749 (clear_counts_path): Update.
7750 (ssa_fix_duplicate_block_edges): Update.
7751 (duplicate_thread_path): Update.
7752 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
7753 (case_bit_test_cmp): Update.
7754 (collect_switch_conv_info): Update.
7755 (gen_inbound_check): Update.
7756 (do_jump_if_equal): Update.
7757 (emit_cmp_and_jump_insns): Update.
7758 * tree-tailcall.c (decrease_profile): Update.
7759 (eliminate_tail_call): Update.
7760 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
7761 (vect_do_peeling): Update.
7762 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
7763 * ubsan.c (ubsan_expand_null_ifn): Update.
7764 (ubsan_expand_ptr_ifn): Update.
7765 * value-prof.c (gimple_divmod_fixed_value): Update.
7766 (gimple_mod_pow2): Update.
7767 (gimple_mod_subtract): Update.
7768 (gimple_ic): Update.
7769 (gimple_stringop_fixed_value): Update.
7770
7771 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
7772
7773 PR target/82618
7774 * config/i386/i386.md (sub to cmp): New peephole2 pattern.
7775
7776 2017-10-19 Alexander Monakov <amonakov@ispras.ru>
7777
7778 PR rtl-optimization/82395
7779 * ira-color.c (allocno_priority_compare_func): Fix comparison step
7780 based on non_spilled_static_chain_regno_p.
7781
7782 2017-10-19 Uros Bizjak <ubizjak@gmail.com>
7783
7784 * config/i386/i386.c (output_387_binary_op): Rewrite SSE part.
7785 (ix86_emit_mode_set): Rewrite insn mnemonic construction.
7786 (ix86_prepare_fp_compare_args): Redefine is_sse as bool.
7787
7788 2017-10-19 Martin Sebor <msebor@redhat.com>
7789
7790 PR tree-optimization/82596
7791 * tree.c (array_at_struct_end_p): Handle STRING_CST.
7792
7793 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
7794
7795 * asan.c (handle_builtin_alloca): Deal with all alloca variants.
7796 (get_mem_refs_of_builtin_call): Likewise.
7797 * builtins.c (expand_builtin_apply): Adjust call to
7798 allocate_dynamic_stack_space.
7799 (expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
7800 the third argument to allocate_dynamic_stack_space, otherwise -1.
7801 (expand_builtin): Deal with all alloca variants.
7802 (is_inexpensive_builtin): Likewise.
7803 * builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
7804 * calls.c (special_function_p): Deal with all alloca variants.
7805 (initialize_argument_information): Adjust call to
7806 allocate_dynamic_stack_space.
7807 (expand_call): Likewise.
7808 * cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
7809 * doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
7810 * explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
7811 use it for the stack usage computation.
7812 * explow.h (allocate_dynamic_stack_space): Adjust prototype.
7813 * function.c (gimplify_parameters): Call build_alloca_call_expr.
7814 * gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
7815 Take into account 3rd argument of __builtin_alloca_with_align_and_max.
7816 (in_loop_p): Remove first argument and useless check.
7817 (pass_walloca::execute): Remove useless test and adjust call to above.
7818 * gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
7819 * gimplify.c (gimplify_vla_decl): Call build_alloca_call_expr.
7820 (gimplify_call_expr): Deal with all alloca variants.
7821 * hsa-gen.c (gen_hsa_alloca): Likewise.
7822 (gen_hsa_insns_for_call): Likewise.
7823 * ipa-pure-const.c (special_builtin_state): Likewise.
7824 * tree-chkp.c (chkp_build_returned_bound): Likewise.
7825 * tree-object-size.c (alloc_object_size): Likewise.
7826 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
7827 (call_may_clobber_ref_p_1): Likewise.
7828 * tree-ssa-ccp.c (evaluate_stmt): Likewise.
7829 (ccp_fold_stmt): Likewise.
7830 (optimize_stack_restore): Likewise.
7831 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
7832 (mark_all_reaching_defs_necessary_1): Likewise.
7833 (propagate_necessity): Likewise.
7834 (eliminate_unnecessary_stmts): Likewise.
7835 * tree.c (build_common_builtin_nodes): Build
7836 BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
7837 (build_alloca_call_expr): New function.
7838 * tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
7839 (CASE_BUILT_IN_ALLOCA): Likewise.
7840 (build_alloca_call_expr): Declare.
7841 * varasm.c (incorporeal_function_p): Deal with all alloca variants.
7842
7843 2017-10-19 Eric Botcazou <ebotcazou@adacore.com>
7844
7845 PR debug/82509
7846 * dwarf2out.c (new_die_raw): New static inline function.
7847 (new_die): Use it to create the DIE.
7848 (add_AT_external_die_ref): Likewise.
7849 (clone_die): Likewise.
7850 (clone_as_declaration): Likewise.
7851 (dwarf2out_vms_debug_main_pointer): Likewise.
7852 (base_type_die): Likewise. Remove early return for corner cases.
7853 Do not call add_pubtype on the DIE here.
7854 (is_base_type): Remove ERROR_MARK and return 0 for VOID_TYPE.
7855 (modified_type_die): Adjust the lookup for reverse order DIEs. Skip
7856 typedefs for base types with DW_AT_endianity. Make sure a DIE with
7857 native order exists for base types, attach the DIE manually and call
7858 add_pubtype on it. Do not equate a reverse order DIE to the type.
7859
7860 2017-10-19 Richard Earnshaw <rearnsha@arm.com>
7861
7862 * config/arm/arm.c (align_ok_ldrd_strd): New function.
7863 (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of
7864 the mem into it.
7865 (gen_operands_ldrd_strd): Validate the alignment of the accesses.
7866
7867 2017-10-19 Jakub Jelinek <jakub@redhat.com>
7868
7869 * flag-types.h (enum sanitize_code): Add SANITIZE_BUILTIN. Or
7870 SANITIZE_BUILTIN into SANITIZE_UNDEFINED.
7871 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN,
7872 BUILT_IN_UBSAN_HANDLE_INVALID_BUILTIN_ABORT): New builtins.
7873 * opts.c (sanitizer_opts): Add builtin.
7874 * ubsan.c (instrument_builtin): New function.
7875 (pass_ubsan::execute): Call it.
7876 (pass_ubsan::gate): Enable even for SANITIZE_BUILTIN.
7877 * doc/invoke.texi: Document -fsanitize=builtin.
7878
7879 * ubsan.c (ubsan_expand_null_ifn): Use _v1 suffixed type mismatch
7880 builtins, store max (log2 (align), 0) into uchar field instead of
7881 align into uptr field.
7882 (ubsan_expand_objsize_ifn): Use _v1 suffixed type mismatch builtins,
7883 store uchar 0 field instead of uptr 0 field.
7884 (instrument_nonnull_return): Use _v1 suffixed nonnull return builtin,
7885 instead of passing one address of struct with 2 locations pass
7886 two addresses of structs with 1 location each.
7887 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH,
7888 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_ABORT,
7889 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN,
7890 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_ABORT): Removed.
7891 (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1,
7892 BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH_V1_ABORT,
7893 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1,
7894 BUILT_IN_UBSAN_HANDLE_NONNULL_RETURN_V1_ABORT): New builtins.
7895
7896 2017-10-19 Martin Liska <mliska@suse.cz>
7897
7898 PR driver/81829
7899 * file-find.c (remove_prefix): Remove.
7900 * file-find.h (remove_prefix): Likewise.
7901 * gcc-ar.c: Remove smartness of lookup.
7902
7903 2017-10-19 Segher Boessenkool <segher@kernel.crashing.org>
7904
7905 * config/rs6000/rs6000.md (*call_indirect_aix<mode>,
7906 *call_value_indirect_aix<mode>, *call_indirect_elfv2<mode>,
7907 *call_value_indirect_elfv2<mode>): Add correct mode to the unspec.
7908
7909 2017-10-19 Jakub Jelinek <jakub@redhat.com>
7910
7911 PR target/82580
7912 * config/i386/i386.md (setcc + movzbl to xor + setcc): New peephole2.
7913 (setcc + and to xor + setcc): New peephole2.
7914
7915 2017-10-19 Tom de Vries <tom@codesourcery.com>
7916
7917 * doc/sourcebuild.texi (Test Directives, Variants of
7918 dg-require-support): Add dg-require-stack-size.
7919
7920 2017-10-19 Martin Liska <mliska@suse.cz>
7921
7922 PR sanitizer/82517
7923 * gimplify.c (gimplify_decl_expr): Do not instrument variables
7924 that have a large alignment.
7925 (gimplify_target_expr): Likewise.
7926
7927 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org>
7928
7929 PR rtl-optimization/82602
7930 * ira.c (rtx_moveable_p): Return false for volatile asm.
7931
7932 2017-10-18 Uros Bizjak <ubizjak@gmail.com>
7933
7934 PR target/82580
7935 * config/i386/i386-modes.def (CCGZ): New CC mode.
7936 * config/i386/i386.md (sub<mode>3_carry_ccgz): New insn pattern.
7937 * config/i386/predicates.md (ix86_comparison_operator):
7938 Handle CCGZmode.
7939 * config/i386/i386.c (ix86_expand_branch) <case E_TImode>:
7940 Emulate LE, LEU, GT, GTU, LT, LTU, GE and GEU double-word comparisons
7941 with double-word subtraction.
7942 (put_condition_code): Handle CCGZmode.
7943
7944 2017-10-18 Aldy Hernandez <aldyh@redhat.com>
7945
7946 * wide-int.cc (debug (const wide_int &)): New.
7947 (debug (const wide_int *)): New.
7948 (debug (const widest_int &)): New.
7949 (debug (const widest_int *)): New.
7950
7951 2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
7952
7953 PR middle-end/82556
7954 * lra-constraints.c (curr_insn_transform): Use non-input operand
7955 instead of output one for matched reload.
7956
7957 2017-10-18 Bin Cheng <bin.cheng@arm.com>
7958
7959 * tree-loop-distribution.c (INCLUDE_ALGORITHM): New header file.
7960 (tree-ssa-loop-ivopts.h): New header file.
7961 (struct builtin_info): New fields.
7962 (classify_builtin_1): Compute and record base and offset parts for
7963 memset builtin partition by calling strip_offset.
7964 (offset_cmp, fuse_memset_builtins): New functions.
7965 (finalize_partitions): Fuse adjacent memset partitions by calling
7966 above function.
7967 * tree-ssa-loop-ivopts.c (strip_offset): Delete static declaration.
7968 Expose the interface.
7969 * tree-ssa-loop-ivopts.h (strip_offset): New declaration.
7970
7971 2017-10-18 Bin Cheng <bin.cheng@arm.com>
7972
7973 PR tree-optimization/82574
7974 * tree-loop-distribution.c (find_single_drs): New parameter. Check
7975 that data reference must be executed exactly once per iteration
7976 against the outermost loop in nest.
7977 (classify_partition): Update call to above function.
7978
7979 2017-10-18 Richard Biener <rguenther@suse.de>
7980
7981 PR tree-optimization/82591
7982 * graphite.c (graphite_transform_loops): Move code gen message
7983 printing ...
7984 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
7985 Here. Handle scop_to_isl_ast failing.
7986 (scop_to_isl_ast): Limit the number of ISL operations.
7987
7988 2017-10-18 Richard Biener <rguenther@suse.de>
7989
7990 * graphite-isl-ast-to-gimple.c
7991 (translate_isl_ast_to_gimple::set_rename): Simplify.
7992 (translate_isl_ast_to_gimple::set_rename_for_each_def): Inline...
7993 (graphite_copy_stmts_from_block): ... here.
7994 (copy_bb_and_scalar_dependences): Simplify.
7995 (add_parameters_to_ivs_params): Canonicalize.
7996 (generate_entry_out_of_ssa_copies): Simplify.
7997 * graphite-sese-to-poly.c (extract_affine_name): Simplify
7998 by passing in ISL dimension.
7999 (parameter_index_in_region_1): Rename to ...
8000 (parameter_index_in_region): ... this.
8001 (extract_affine): Adjust assert, pass down parameter index.
8002 (add_param_constraints): Use range-info when available.
8003 (build_scop_context): Adjust.
8004 * sese.c (new_sese_info): Adjust.
8005 (free_sese_info): Likewise.
8006 * sese.h (bb_map_t, rename_map_t, phi_rename, init_back_edge_pair_t):
8007 Remove unused typedefs.
8008 (struct sese_info_t): Simplify rename_map, remove incomplete_phis.
8009
8010 2017-10-18 Martin Liska <mliska@suse.cz>
8011
8012 * combine.c (simplify_compare_const): Add gcc_fallthrough.
8013
8014 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
8015
8016 * config/s390/s390.c (s390_bb_fallthru_entry_likely): New function.
8017 (s390_sched_init): Do not reset s390_sched_state if we entered the
8018 current basic block via a fallthru edge and all others are unlikely.
8019
8020 2017-10-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
8021
8022 * config/s390/s390.c (NUM_SIDES): New variable.
8023 (LONGRUNNING_THRESHOLD): New variable.
8024 (LATENCY_FACTOR): New variable.
8025 (s390_sched_score): Decrease score for long-running instructions on
8026 wrong side.
8027 (s390_sched_variable_issue): Perform bookkeeping for long-running
8028 instructions.
8029
8030 2017-10-18 Richard Biener <rguenther@suse.de>
8031
8032 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
8033 Simplify with removal of the parameter rename map.
8034 (set_rename): Likewise.
8035 (should_copy_to_new_region): Likewise.
8036 (graphite_copy_stmts_from_block): Likewise.
8037 (copy_bb_and_scalar_dependences): Remove initialization of
8038 unused copied_bb_map.
8039 (copy_def): Remove.
8040 (copy_internal_parameters): Likewise.
8041 (graphite_regenerate_ast_isl): Do not call copy_internal_parameters.
8042 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p):
8043 Use INTEGRAL_TYPE_P.
8044 (parameter_index_in_region_1): Rename to ...
8045 (assign_parameter_index_in_region): ... this. Assert we have
8046 a parameter we handle.
8047 (scan_tree_for_params): Adjust.
8048 * sese.h (parameter_rename_map_t): Remove.
8049 (struct sese_info_t): Remove unused parameter_rename_map and
8050 copied_bb_map members.
8051 * sese.c (new_sese_info): Adjust.
8052 (free_sese_info): Likewise.
8053
8054 2017-10-18 Martin Liska <mliska@suse.cz>
8055
8056 PR sanitizer/82545
8057 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
8058 on an abnormal edge.
8059
8060 2017-10-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
8061
8062 * doc/invoke.texi (ffunction-sections and fdata-sections):
8063 Update.
8064
8065 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
8066
8067 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Bail out only if
8068 the use statement can throw internally.
8069
8070 2017-10-17 Eric Botcazou <ebotcazou@adacore.com>
8071
8072 * config/visium/visium.c (visium_select_cc_mode): Return CCmode for
8073 any RTX present on the RHS of a SET.
8074 * compare-elim.c (try_eliminate_compare): Restore comment.
8075
8076 2017-10-17 Jakub Jelinek <jakub@redhat.com>
8077
8078 * langhooks.h (struct lang_hooks): Document that tree_size langhook
8079 may be also called on tcc_type nodes.
8080 * langhooks.c (lhd_tree_size): Likewise.
8081
8082 2017-10-17 David Malcolm <dmalcolm@redhat.com>
8083
8084 * gimple-ssa-sprintf.c (fmtwarn): Update for changed signature of
8085 format_warning_at_substring.
8086 (maybe_warn): Convert source_range * param to a location_t. Pass
8087 UNKNOWN_LOCATION rather than NULL to fmtwarn.
8088 (format_directive): Remove code to extract source_ranges and
8089 source_range * in favor of just a location_t.
8090 (parse_directive): Pass UNKNOWN_LOCATION rather than NULL to
8091 fmtwarn.
8092 * substring-locations.c (format_warning_va): Convert
8093 source_range * param to a location_t.
8094 (format_warning_at_substring): Likewise.
8095 * substring-locations.h (format_warning_va): Likewise.
8096 (format_warning_at_substring): Likewise.
8097
8098 2017-10-17 Jan Hubicka <hubicka@ucw.cz>
8099
8100 * target.h (enum vect_cost_for_stmt): Add vec_gather_load and
8101 vec_scatter_store
8102 * tree-vect-stmts.c (record_stmt_cost): Make difference between normal
8103 and scatter/gather ops.
8104
8105 * aarch64/aarch64.c (aarch64_builtin_vectorization_cost): Add
8106 vec_gather_load and vec_scatter_store.
8107 * arm/arm.c (arm_builtin_vectorization_cost): Likewise.
8108 * powerpcspe/powerpcspe.c (rs6000_builtin_vectorization_cost): Likewise.
8109 * rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Likewise.
8110 * s390/s390.c (s390_builtin_vectorization_cost): Likewise.
8111 * spu/spu.c (spu_builtin_vectorization_cost): Likewise.
8112 * i386/i386.c (x86_builtin_vectorization_cost): Likewise.
8113
8114 2017-10-17 Uros Bizjak <ubizjak@gmail.com>
8115
8116 * reg-stack.c (compare_for_stack_reg): Add bool argument.
8117 Detect FTST instruction and handle its register pops. Only pop
8118 second operand if can_pop_second_op is true.
8119 (subst_stack_regs_pat) <case COMPARE>: Detect FCOMI instruction to
8120 set can_pop_second_op to false in the compare_for_stack_reg call.
8121
8122 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Only call
8123 output_fp_compare for stack register operands.
8124 * config/i386/i386.c (output_fp_compare): Do not output SSE compare
8125 instructions here. Do not emit stack register pops here. Assert
8126 that FCOMPP pops next to top stack register. Rewrite function.
8127
8128 2017-10-17 Nathan Sidwell <nathan@acm.org>
8129
8130 PR middle-end/82577
8131 * alias.c (compare_base_decls): Check HAS_DECL_ASSEMBLER_NAME_P,
8132 use DECL_ASSEMBLER_NAME_RAW.
8133
8134 PR middle-end/82546
8135 * tree.c (tree_code_size): Reformat. Punt to lang hook for unknown
8136 TYPE nodes.
8137
8138 2017-10-17 Qing Zhao <qing.zhao@oracle.com>
8139 Wilco Dijkstra <wilco.dijkstra@arm.com>
8140
8141 * builtins.c (expand_builtin_update_setjmp_buf): Add a
8142 converstion to Pmode from the buf_addr.
8143
8144 2017-10-17 Richard Biener <rguenther@suse.de>
8145
8146 * graphite-dependences.c (scop_get_reads_and_writes): Change
8147 output parameters to references.
8148
8149 2017-10-17 Jackson Woodruff <jackson.woodruff@arm.com>
8150
8151 PR 71026/tree-optimization
8152 * fold-const.c (distribute_real_division): Removed.
8153 (fold_binary_loc): Remove calls to distribute_real_divison.
8154
8155 2017-10-17 Richard Biener <rguenther@suse.de>
8156
8157 * graphite-scop-detection.c
8158 (scop_detection::stmt_has_simple_data_refs_p): Always use
8159 the full nest as region.
8160 (try_generate_gimple_bb): Likewise.
8161 * sese.c (scalar_evolution_in_region): Simplify now that
8162 SCEV can handle instantiation in regions.
8163 * tree-scalar-evolution.c (instantiate_scev_name): Also instantiate
8164 in the non-loop part of a function if requested.
8165
8166 2017-10-17 Richard Biener <rguenther@suse.de>
8167
8168 PR tree-optimization/82563
8169 * graphite-isl-ast-to-gimple.c (generate_entry_out_of_ssa_copies):
8170 New function.
8171 (graphite_regenerate_ast_isl): Call it.
8172 * graphite-scop-detection.c (build_scops): Remove entry edge split.
8173
8174 2017-10-17 Jakub Jelinek <jakub@redhat.com>
8175
8176 PR tree-optimization/82549
8177 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
8178 Formatting fixes. Instead of calling make_bit_field_ref with negative
8179 bitpos return 0.
8180
8181 2017-10-17 Olga Makhotina <olga.makhotina@intel.com>
8182
8183 * config/i386/avx512dqintrin.h (_mm_mask_reduce_sd,
8184 _mm_maskz_reduce_sd, _mm_mask_reduce_ss,=20
8185 _mm_maskz_reduce_ss): New.
8186 * config/i386/i386-builtin.def (__builtin_ia32_reducesd_mask,
8187 __builtin_ia32_reducess_mask): Ditto..
8188 (__builtin_ia32_reducesd, __builtin_ia32_reducess): Remove.
8189 * config/i386/sse.md (reduces<mode>): Renamed to ...
8190 (reduces<mode><mask_scalar_name>): ... this.
8191 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0|%0, %1, %2, %3}):
8192 Changed to ...
8193 (vreduce<ssescalarmodesuffix>\t{%3, %2, %1, %0<mask_scalar_operand4>|
8194 %0<mask_scalar_operand4>, %1, %2, %3}): ... this.
8195
8196 2017-10-16 David Malcolm <dmalcolm@redhat.com>
8197
8198 * Makefile.in (OBJS): Add unique-ptr-tests.o.
8199 * selftest-run-tests.c (selftest::run_tests): Call
8200 selftest::unique_ptr_tests_cc_tests.
8201 * selftest.h (selftest::unique_ptr_tests_cc_tests): New decl.
8202 * unique-ptr-tests.cc: New file.
8203
8204 2017-10-16 Vladimir Makarov <vmakarov@redhat.com>
8205
8206 PR sanitizer/82353
8207 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
8208 locations.
8209 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
8210 (make_hard_regno_born, make_hard_regno_dead): Update
8211 bb_killed_pseudos and bb_gen_pseudos for fixed regs.
8212
8213 2017-10-16 Jeff Law <law@redhat.com>
8214
8215 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
8216
8217 2017-10-16 Jan Hubicka <hubicka@ucw.cz>
8218
8219 * x86-tune-costs.h (znver1_cost): Fix move cost tables.
8220
8221 2017-10-16 Olivier Hainque <hainque@adacore.com>
8222
8223 * gcc/config.gcc (powerpc*-*-*spe*): Pick 8548 as the default
8224 with_cpu if we were configured for an e500v2 target cpu name.
8225
8226 2017-10-16 Thomas Preud'homme <thomas.preudhomme@arm.com>
8227
8228 * config/arm/arm-cpus.in (cortex-m33): Add nodsp option.
8229 * doc/invoke.texi: Document +nodsp as a valid extension for
8230 -mcpu=cortex-m33.
8231
8232 2017-10-16 Martin Liska <mliska@suse.cz>
8233
8234 * sbitmap.c (bitmap_bit_in_range_p_checking): New function.
8235 (test_set_range): Likewise.
8236 (test_range_functions): Rename to ...
8237 (test_bit_in_range): ... this.
8238 (sbitmap_c_tests): Add new test.
8239
8240 2017-10-16 Tamar Christina <tamar.christina@arm.com>
8241
8242 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
8243 New.
8244 (vdot_lane_u32, vdot_laneq_u32, vdotq_lane_u32, vdotq_laneq_u32): New.
8245 (vdot_lane_s32, vdot_laneq_s32, vdotq_lane_s32, vdotq_laneq_s32): New.
8246
8247 2017-10-16 Tamar Christina <tamar.christina@arm.com>
8248
8249 * config/aarch64/aarch64-builtins.c
8250 (aarch64_types_quadopu_lane_qualifiers): New.
8251 (TYPES_QUADOPU_LANE): New.
8252 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): New.
8253 (<sur>dot_prod<vsi2qi>, aarch64_<sur>dot_lane<vsi2qi>): New.
8254 (aarch64_<sur>dot_laneq<vsi2qi>): New.
8255 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): New.
8256 (sdot_lane, udot_lane, sdot_laneq, udot_laneq): New.
8257 * config/aarch64/iterators.md (sur): Add UNSPEC_SDOT, UNSPEC_UDOT.
8258 (Vdottype, DOTPROD): New.
8259 (sur): Add SDOT and UDOT.
8260
8261 2017-10-16 Tamar Christina <tamar.christina@arm.com>
8262
8263 * config/aarch64/aarch64.h (AARCH64_FL_DOTPROD): New.
8264 (AARCH64_ISA_DOTPROD, TARGET_DOTPROD): New.
8265 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
8266 Add TARGET_DOTPROD.
8267 * config/aarch64/aarch64-option-extensions.def (dotprod): New.
8268 * config/aarch64/aarch64-cores.def (cortex-a55, cortex-a75):
8269 Enable TARGET_DOTPROD.
8270 (cortex-a75.cortex-a55): Likewise.
8271 * doc/invoke.texi (aarch64-feature-modifiers): Document dotprod.
8272
8273 2017-10-16 Tamar Christina <tamar.christina@arm.com>
8274
8275 * config/arm/arm-builtins.c (arm_unsigned_uternop_qualifiers): New.
8276 (UTERNOP_QUALIFIERS, arm_umac_lane_qualifiers, UMAC_LANE_QUALIFIERS):
8277 New.
8278 * config/arm/arm_neon_builtins.def (sdot, udot, sdot_lane, udot_lane):
8279 New.
8280 * config/arm/iterators.md (DOTPROD, VSI2QI, vsi2qi): New.
8281 (UNSPEC_DOT_S, UNSPEC_DOT_U, opsuffix): New.
8282 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
8283 (neon_<sup>dot_lane<vsi2qi>, <sup>dot_prod<vsi2qi>): New.
8284 * config/arm/types.md (neon_dot, neon_dot_q): New.
8285 * config/arm/unspecs.md (sup): Add UNSPEC_DOT_S, UNSPEC_DOT_U.
8286
8287 2017-10-16 Tamar Christina <tamar.christina@arm.com>
8288
8289 * config/arm/arm.h (TARGET_DOTPROD): New.
8290 * config/arm/arm.c (arm_arch_dotprod): New.
8291 (arm_option_reconfigure_globals): Add arm_arch_dotprod.
8292 * config/arm/arm-c.c (__ARM_FEATURE_DOTPROD): New.
8293 * config/arm/arm-cpus.in (armv8.2-a): Enabled +dotprod.
8294 (feature dotprod, group dotprod, ALL_SIMD_INTERNAL): New.
8295 (ALL_FPU_INTERNAL): Use ALL_SIMD_INTERNAL.
8296 * config/arm/t-multilib (v8_2_a_simd_variants): Add dotprod.
8297 * doc/invoke.texi (armv8.2-a): Document dotprod
8298
8299 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
8300
8301 * i386.c (ix86_vec_cost): New function.
8302 (ix86_rtx_costs): Handle vector operations better.
8303 * i386.h (struct processor_costs): Add sse_op, fmasd, fmass.
8304 * x86-tune-costs.h: Add new costs to all tables.
8305
8306 2017-10-14 Jan Hubicka <hubicka@ucw.cz>
8307
8308 * i386.c (ix86_rtx_costs): Make difference between x87 and SSE
8309 operations.
8310 * i386.h (struct processor_costs): Add addss, mulss, mulsd, divss,
8311 divsd, sqrtss and sqrtsd
8312 * x86-tune-costs.h: Add new entries to all costs.
8313 (znver1_cost): Fix to match real instruction latencies.
8314
8315 2017-10-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8316 Michael Collison <michael.collison@arm.com>
8317
8318 * compare-elim.c: Include emit-rtl.h.
8319 (can_merge_compare_into_arith): New function.
8320 (try_validate_parallel): Likewise.
8321 (try_merge_compare): Likewise.
8322 (try_eliminate_compare): Call the above when no previous clobber
8323 is available.
8324 (execute_compare_elim_after_reload): Add DF_UD_CHAIN and DF_DU_CHAIN
8325 dataflow problems.
8326
8327 2017-10-14 Jakub Jelinek <jakub@redhat.com>
8328
8329 PR middle-end/62263
8330 PR middle-end/82498
8331 * tree-ssa-phiopt.c (value_replacement): Comment fix. Handle
8332 up to 2 preparation statements for ASSIGN in MIDDLE_BB.
8333
8334 PR middle-end/62263
8335 PR middle-end/82498
8336 * tree-ssa-forwprop.c (simplify_rotate): Allow def_arg1[N]
8337 to be any operand_equal_p operands. For & (B - 1) require
8338 B to be power of 2. Recognize
8339 (X << (Y & (B - 1))) | (X >> ((-Y) & (B - 1))) and similar patterns.
8340
8341 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
8342
8343 PR bootstrap/82553
8344 * optabs.c (expand_memory_blockage): Fix call of
8345 targetm.have_memory_blockage.
8346
8347 2017-10-14 Jakub Jelinek <jakub@redhat.com>
8348
8349 PR bootstrap/82548
8350 * config.gcc (*-*-solaris2*, i[34567]86-*-cygwin*,
8351 x86_64-*-cygwin*, i[34567]86-*-mingw* | x86_64-*-mingw*): Append
8352 objects to extra_objs instead of overwriting it.
8353
8354 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
8355
8356 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
8357 Use any_fp_register_operand as operand[3] predicate. Simplify
8358 equality test for operands[2] and operands[4] memory location.
8359 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
8360 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): New.
8361 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
8362 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): Use
8363 any_fp_register_operand as operand[1] predicate. Simplify
8364 equality test for operands[0] and operands[3] memory location.
8365 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
8366 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): New.
8367 (LDX_ATOMIC/LDX_ATOMIC FP storepeephole2 with mem blockage): Ditto.
8368
8369 2017-10-14 Uros Bizjak <ubizjak@gmail.com>
8370
8371 * target-insns.def: Add memory_blockage.
8372 * optabs.c (expand_memory_blockage): New function.
8373 (expand_asm_memory_barrier): Rename ...
8374 (expand_asm_memory_blockage): ... to this.
8375 (expand_mem_thread_fence): Call expand_memory_blockage
8376 instead of expand_asm_memory_barrier.
8377 (expand_mem_singnal_fence): Ditto.
8378 (expand_atomic_load): Ditto.
8379 (expand_atomic_store): Ditto.
8380 * doc/md.texi (Standard Pattern Names For Generation):
8381 Document memory_blockage instruction pattern.
8382
8383 2017-10-13 Sebastian Perta <sebastian.perta@renesas.com>
8384
8385 * config/rl78/rl78.c (rl78_emit_libcall): New function.
8386 * config/rl78/rl78-protos.h (rl78_emit_libcall): New function.
8387 * config/rl78/rl78.md: New define_expand "adddi3".
8388
8389 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
8390
8391 * cfghooks.c (verify_flow_info): Disable check that all probabilities
8392 are set correctly.
8393
8394 2017-10-13 Jeff Law <law@redhat.com>
8395
8396 * tree-ssa-reassoc.c (reassociate_bb): Clarify code slighly.
8397
8398 2017-10-13 Jakub Jelinek <jakub@redhat.com>
8399
8400 PR target/82274
8401 * internal-fn.c (expand_mul_overflow): If both operands have
8402 the same highpart of -1 or 0 and the topmost bit of lowpart
8403 is different, overflow is if res <= 0 rather than res < 0.
8404
8405 2017-10-13 Pat Haugen <pthaugen@us.ibm.com>
8406
8407 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Remove
8408 TARGET_P9_VECTOR code for unaligned_load case.
8409
8410 2017-10-13 Jan Hubicka <hubicka@ucw.cz>
8411
8412 * cfghooks.c (verify_flow_info): Check that edge probabilities are set.
8413
8414 2017-10-13 Nathan Sidwell <nathan@acm.org>
8415
8416 * tree-core.h (tree_contains_struct): Make bool.
8417 * tree.c (tree_contains_struct): Likewise.
8418 * tree.h (MARK_TS_BASE): Remove do ... while (0) idiom.
8419 (MARK_TS_TYPED, MARK_TS_COMMON, MARK_TS_TYPE_COMMON,
8420 MARK_TS_TYPE_WITH_LANG_SPECIFIC, MARK_TS_DECL_MINIMAL,
8421 MARK_TS_DECL_COMMON, MARK_TS_DECL_WRTL, MARK_TS_DECL_WITH_VIS,
8422 MARK_TS_DECL_NON_COMMON): Likewise, use comma operator.
8423
8424 2017-10-13 Richard Biener <rguenther@suse.de>
8425
8426 * graphite-isl-ast-to-gimple.c
8427 (translate_isl_ast_to_gimple::get_rename_from_scev): Remove unused
8428 parameters and dominance check.
8429 (translate_isl_ast_to_gimple::graphite_copy_stmts_from_block): Adjust.
8430 (translate_isl_ast_to_gimple::copy_bb_and_scalar_dependences): Likewise.
8431 (translate_isl_ast_to_gimple::graphite_regenerate_ast_isl):
8432 Do not update SSA form here or do intermediate IL verification.
8433 * graphite.c: Include tree-ssa.h and tree-into-ssa.h.
8434 (graphite_initialize): Remove check on the number of loops in
8435 the function and inline into graphite_transform_loops.
8436 (graphite_finalize): Inline into graphite_transform_loops.
8437 (graphite_transform_loops): Perform SSA update and IL verification
8438 here.
8439 * params.def (PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION): Remove.
8440
8441 2017-10-13 Richard Biener <rguenther@suse.de>
8442
8443 * graphite-isl-ast-to-gimple.c (max_mode_int_precision,
8444 graphite_expression_type_precision): Avoid global constructor
8445 by moving ...
8446 (translate_isl_ast_to_gimple::translate_isl_ast_to_gimple): Here.
8447 (translate_isl_ast_to_gimple::graphite_expr_type): Add type member.
8448 (translate_isl_ast_to_gimple::translate_isl_ast_node_for): Use it.
8449 (translate_isl_ast_to_gimple::build_iv_mapping): Likewise.
8450 (translate_isl_ast_to_gimple::graphite_create_new_guard): Likewise.
8451 * graphite-sese-to-poly.c (build_original_schedule): Return nothing.
8452
8453 2017-10-13 H.J. Lu <hongjiu.lu@intel.com>
8454
8455 PR target/82499
8456 * config/i386/i386.h (ix86_red_zone_size): New.
8457 * config/i386/i386.md (push peephole2s): Replace
8458 "!ix86_using_red_zone ()" with "ix86_red_zone_size == 0".
8459
8460 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
8461 Alan Hayward <alan.hayward@arm.com>
8462 David Sherwood <david.sherwood@arm.com>
8463
8464 * combine.c (can_change_dest_mode): Reject changes in
8465 REGMODE_NATURAL_SIZE.
8466
8467 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
8468 Alan Hayward <alan.hayward@arm.com>
8469 David Sherwood <david.sherwood@arm.com>
8470
8471 * cfgexpand.c (expand_debug_expr): Use GET_MODE_UNIT_BITSIZE.
8472 (expand_debug_source_expr): Likewise.
8473 * combine.c (combine_simplify_rtx): Likewise.
8474 * cse.c (fold_rtx): Likewise.
8475 * fwprop.c (canonicalize_address): Likewise.
8476 * targhooks.c (default_shift_truncation_mask): Likewise.
8477
8478 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
8479 Alan Hayward <alan.hayward@arm.com>
8480 David Sherwood <david.sherwood@arm.com>
8481
8482 * optabs.c (add_equal_note): Use GET_MODE_UNIT_SIZE.
8483 (widened_mode): Likewise.
8484 (expand_unop): Likewise.
8485 * ree.c (transform_ifelse): Likewise.
8486 (merge_def_and_ext): Likewise.
8487 (combine_reaching_defs): Likewise.
8488 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
8489
8490 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
8491 Alan Hayward <alan.hayward@arm.com>
8492 David Sherwood <david.sherwood@arm.com>
8493
8494 * caller-save.c (replace_reg_with_saved_mem): Use byte_lowpart_offset.
8495 * combine.c (gen_lowpart_for_combine): Likewise.
8496 * dwarf2out.c (rtl_for_decl_location): Likewise.
8497 * final.c (alter_subreg): Likewise.
8498 * rtlhooks.c (gen_lowpart_general): Likewise.
8499 (gen_lowpart_if_possible): Likewise.
8500
8501 2017-10-13 Richard Sandiford <richard.sandiford@linaro.org>
8502 Alan Hayward <alan.hayward@arm.com>
8503 David Sherwood <david.sherwood@arm.com>
8504
8505 * calls.c (expand_call): Use subreg_lowpart_offset.
8506 * cse.c (cse_insn): Likewise.
8507 * regcprop.c (copy_value): Likewise.
8508 (copyprop_hardreg_forward_1): Likewise.
8509
8510 2017-10-13 Jakub Jelinek <jakub@redhat.com>
8511
8512 PR target/82524
8513 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
8514 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
8515 =Q constraints to +Q and into insn condition add check
8516 that operands[0] and operands[1] are equal.
8517 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
8518 =Q constraints to +Q and into insn condition add check
8519 that operands[0] is equal to either operands[1] or operands[2].
8520
8521 PR target/82498
8522 * fold-const.c (fold_binary_loc) <bit_rotate>: Code cleanups,
8523 instead of handling MINUS_EXPR twice (once for each argument),
8524 canonicalize operand order and handle just once, use rtype where
8525 possible. Handle (A << B) | (A >> (-B & (Z - 1))).
8526
8527 PR target/82498
8528 * config/i386/ia32intrin.h (__rold, __rord, __rolq, __rorq): Allow
8529 any values of __C while still being pattern recognizable as a simple
8530 rotate instruction.
8531
8532 2017-10-13 Richard Biener <rguenther@suse.de>
8533
8534 PR tree-optimization/82451
8535 Revert
8536 2017-10-02 Richard Biener <rguenther@suse.de>
8537
8538 PR tree-optimization/82355
8539 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
8540 a mapping for the enclosing loop but avoid generating one for
8541 the loop tree root.
8542 (copy_bb_and_scalar_dependences): Remove premature codegen
8543 error on PHIs in blocks duplicated into multiple places.
8544 * graphite-scop-detection.c
8545 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
8546 in the region use it as loop and nest to analyze the DR in.
8547 (try_generate_gimple_bb): Likewise.
8548 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
8549 (add_loop_constraints): For blocks in a loop not in the region
8550 create a dimension with a single iteration.
8551 * sese.h (gbb_loop_at_index): Remove assert.
8552
8553 * cfgloop.c (loop_preheader_edge): For the loop tree root
8554 return the single successor of the entry block.
8555 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
8556 Reset the SCEV hashtable and niters.
8557 * graphite-scop-detection.c
8558 (scop_detection::graphite_can_represent_scev): Add SCOP parameter,
8559 assert that we only have POLYNOMIAL_CHREC that vary in loops
8560 contained in the region.
8561 (scop_detection::graphite_can_represent_expr): Adjust.
8562 (scop_detection::stmt_has_simple_data_refs_p): For loops
8563 not in the region set loop to NULL. The nest is now the
8564 entry edge to the region.
8565 (try_generate_gimple_bb): Likewise.
8566 * sese.c (scalar_evolution_in_region): Adjust for
8567 instantiate_scev change.
8568 * tree-data-ref.h (graphite_find_data_references_in_stmt):
8569 Make nest parameter the edge into the region.
8570 (create_data_ref): Likewise.
8571 * tree-data-ref.c (dr_analyze_indices): Make nest parameter an
8572 entry edge into a region and adjust instantiate_scev calls.
8573 (create_data_ref): Likewise.
8574 (graphite_find_data_references_in_stmt): Likewise.
8575 (find_data_references_in_stmt): Pass the loop preheader edge
8576 from the nest argument.
8577 * tree-scalar-evolution.h (instantiate_scev): Make instantiate_below
8578 parameter the edge into the region.
8579 (instantiate_parameters): Use the loop preheader edge as entry.
8580 * tree-scalar-evolution.c (analyze_scalar_evolution): Handle
8581 NULL loop.
8582 (get_instantiated_value_entry): Make instantiate_below parameter
8583 the edge into the region.
8584 (instantiate_scev_name): Likewise. Adjust dominance checks,
8585 when we cannot use loop-based instantiation instantiate by
8586 walking use-def chains.
8587 (instantiate_scev_poly): Adjust.
8588 (instantiate_scev_binary): Likewise.
8589 (instantiate_scev_convert): Likewise.
8590 (instantiate_scev_not): Likewise.
8591 (instantiate_array_ref): Remove.
8592 (instantiate_scev_3): Likewise.
8593 (instantiate_scev_2): Likewise.
8594 (instantiate_scev_1): Likewise.
8595 (instantiate_scev_r): Do not blindly handle N-operand trees.
8596 Do not instantiate array-refs. Handle all constants and invariants.
8597 (instantiate_scev): Make instantiate_below parameter
8598 the edge into the region.
8599 (resolve_mixers): Use the loop preheader edge for the region
8600 parameter to instantiate_scev_r.
8601 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Adjust.
8602
8603 2017-10-13 Richard Biener <rguenther@suse.de>
8604
8605 PR tree-optimization/82525
8606 * graphite-isl-ast-to-gimple.c
8607 (translate_isl_ast_to_gimple::widest_int_from_isl_expr_int): Split
8608 out from ...
8609 (translate_isl_ast_to_gimple::gcc_expression_from_isl_expr_int): Here.
8610 Fail code generation when we cannot represent the isl integer.
8611 (binary_op_to_tree): Elide modulo operations that are no-ops
8612 in the type we code generate. Remove now superfluous code
8613 generation errors.
8614
8615 2017-10-13 Richard Biener <rguenther@suse.de>
8616
8617 * graphite-scop-detection.c (loop_ivs_can_be_represented): Remove.
8618 (scop_detection::harmful_loop_in_region): Remove premature
8619 IV type restriction.
8620 (scop_detection::graphite_can_represent_scev): We can handle
8621 pointer IVs just fine.
8622
8623 2017-10-13 Alan Modra <amodra@gmail.com>
8624
8625 * doc/extend.texi (Extended Asm <Clobbers>): Rename to
8626 "Clobbers and Scratch Registers". Add paragraph on
8627 alternative to clobbers for scratch registers and OpenBLAS
8628 example.
8629
8630 2017-10-13 Alan Modra <amodra@gmail.com>
8631
8632 * doc/extend.texi (Clobbers): Correct vax example. Delete old
8633 example of a memory input for a string of known length. Move
8634 commentary out of table. Add a number of new examples
8635 covering array memory inputs.
8636
8637 2017-10-12 Martin Liska <mliska@suse.cz>
8638
8639 PR tree-optimization/82493
8640 * sbitmap.c (bitmap_bit_in_range_p): Fix the implementation.
8641 (test_range_functions): New function.
8642 (sbitmap_c_tests): Likewise.
8643 * selftest-run-tests.c (selftest::run_tests): Run new tests.
8644 * selftest.h (sbitmap_c_tests): New function.
8645
8646 * tree-ssa-dse.c (live_bytes_read): Fix thinko.
8647
8648 2017-10-12 Michael Meissner <meissner@linux.vnet.ibm.com>
8649
8650 * config/rs6000/amo.h: Fix spacing issue.
8651
8652 2017-10-12 Jakub Jelinek <jakub@redhat.com>
8653
8654 PR target/82498
8655 * config/i386/i386.md (*ashl<mode>3_mask_1,
8656 *<shift_insn><mode>3_mask_1, *<rotate_insn><mode>3_mask_1,
8657 *<btsc><mode>_mask_1, *btr<mode>_mask_1): New define_insn_and_split
8658 patterns.
8659
8660 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
8661
8662 * profile-count.h (safe_scale_64bit): Fix GCC4.x path.
8663 (profile_probability): Set max_probability
8664 to (uint32_t) 1 << (n_bits - 2) and update accessors to avoid overlfows
8665 in temporaries.
8666 * profile-count.c (profile_probability::differs_from_p): Do not
8667 rely on max_probaiblity == 10000
8668
8669 2017-10-12 Jeff Law <law@redhat.com>
8670
8671 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject ao_refs with
8672 negative offsets.
8673
8674 2017-10-12 Martin Sebor <msebor@redhat.com>
8675
8676 PR other/82301
8677 PR c/82435
8678 * cgraphunit.c (maybe_diag_incompatible_alias): New function.
8679 (handle_alias_pairs): Call it.
8680 * common.opt (-Wattribute-alias): New option.
8681 * doc/extend.texi (ifunc attribute): Discuss C++ specifics.
8682 * doc/invoke.texi (-Wattribute-alias): Document.
8683
8684 2017-10-12 Vladimir Makarov <vmakarov@redhat.com>
8685
8686 Revert
8687 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
8688 PR sanitizer/82353
8689 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
8690 locations.
8691 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
8692 (make_hard_regno_born, make_hard_regno_dead): Update
8693 bb_killed_pseudos and bb_gen_pseudos.
8694
8695 2017-10-12 Jan Hubicka <hubicka@ucw.cz>
8696
8697 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Fix Zen support.
8698
8699 2017-10-12 Uros Bizjak <ubizjak@gmail.com>
8700
8701 * config/alpha/alpha.c (alpha_split_conditional_move):
8702 Use std::swap instead of manually swapping.
8703 (alpha_stdarg_optimize_hook): Ditto.
8704 (alpha_canonicalize_comparison): Ditto.
8705
8706 2017-10-12 Bin Cheng <bin.cheng@arm.com>
8707
8708 * tree-loop-distribution.c (struct builtin_info): New struct.
8709 (struct partition): Refactor fields into struct builtin_info.
8710 (partition_free): Free struct builtin_info.
8711 (build_size_arg_loc, build_addr_arg_loc): Delete.
8712 (generate_memset_builtin, generate_memcpy_builtin): Get memory range
8713 information from struct builtin_info.
8714 (find_single_drs): New function refactored from classify_partition.
8715 Also moved builtin validity checks to this function.
8716 (compute_access_range, alloc_builtin): New functions.
8717 (classify_builtin_st, classify_builtin_ldst): New functions.
8718 (classify_partition): Refactor code into functions find_single_drs,
8719 classify_builtin_st and classify_builtin_ldst.
8720 (distribute_loop): Don't do runtime alias check when distributing
8721 loop nest.
8722 (find_seed_stmts_for_distribution): New function.
8723 (pass_loop_distribution::execute): Refactor code finding seed
8724 stmts into above function. Support distribution for the innermost
8725 two-level loop nest. Adjust dump information.
8726
8727 2017-10-12 Bin Cheng <bin.cheng@arm.com>
8728
8729 * tree-loop-distribution.c: Adjust the general comment.
8730 (NUM_PARTITION_THRESHOLD): New macro.
8731 (ssa_name_has_uses_outside_loop_p): Support loop nest distribution.
8732 (classify_partition): Skip builtin pattern of loop nest's inner loop.
8733 (merge_dep_scc_partitions): New parameter ignore_alias_p and use it
8734 in call to build_partition_graph.
8735 (finalize_partitions): New parameter. Make loop distribution more
8736 conservative by fusing more partitions.
8737 (distribute_loop): Don't do runtime alias check in case of loop nest
8738 distribution.
8739 (find_seed_stmts_for_distribution): New function.
8740 (prepare_perfect_loop_nest): New function.
8741 (pass_loop_distribution::execute): Refactor code finding seed stmts
8742 and loop nest into above functions. Support loop nest distribution.
8743 Adjust dump information accordingly.
8744
8745 2017-10-12 Bin Cheng <bin.cheng@arm.com>
8746
8747 * tree-loop-distribution.c (break_alias_scc_partitions): Add comment
8748 and set PTYPE_SEQUENTIAL for merged partition.
8749
8750 2017-10-12 Richard Biener <rguenther@suse.de>
8751
8752 PR tree-optimization/69728
8753 Revert
8754 2017-09-19 Richard Biener <rguenther@suse.de>
8755
8756 PR tree-optimization/69728
8757 * graphite-sese-to-poly.c (schedule_error): New global.
8758 (add_loop_schedule): Handle empty domain by failing the
8759 schedule.
8760 (build_original_schedule): Handle schedule_error.
8761
8762 * graphite-sese-to-poly.c (add_loop_schedule): Handle empty
8763 domain by returning an unchanged schedule.
8764
8765 2017-10-12 Jakub Jelinek <jakub@redhat.com>
8766
8767 * genrecog.c (validate_pattern): For VEC_SELECT verify that
8768 CONST_INT selectors are 0 to GET_MODE_NUNITS (imode) - 1.
8769
8770 2017-10-12 Aldy Hernandez <aldyh@redhat.com>
8771
8772 * Makefile.in (TAGS): Merge all the *.def files into one pattern.
8773 Handle params.def.
8774
8775 2017-10-12 Jakub Jelinek <jakub@redhat.com>
8776
8777 PR c++/82159
8778 * expr.c (store_field): Don't optimize away bitsize == 0 store
8779 from CALL_EXPR with addressable return type.
8780
8781 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
8782
8783 * config/rs6000/rs6000.h (TARGET_ISEL64): Delete.
8784 * config/rs6000/rs6000.md (sel): Delete mode attribute.
8785 (mov<mode>cc, isel_signed_<mode>, isel_unsigned_<mode>,
8786 *isel_reversed_signed_<mode>, *isel_reversed_unsigned_<mode>): Use
8787 TARGET_ISEL instead of TARGET_ISEL<sel>.
8788
8789 2017-10-11 David Edelsohn <dje.gcc@gmail.com>
8790
8791 * config/rs6000/rs6000.c
8792 (rs6000_xcoff_asm_output_aligned_decl_common): Test for NULL decl.
8793
8794 2017-10-11 Segher Boessenkool <segher@kernel.crashing.org>
8795
8796 * config/rs6000/predicates.md (zero_constant, all_ones_constant):
8797 Move up in file.
8798 (reg_or_cint_operand): Fix comment.
8799 (reg_or_zero_operand): New predicate.
8800 * config/rs6000/rs6000-protos.h (output_isel): Delete.
8801 * config/rs6000/rs6000.c (output_isel): Delete.
8802 * config/rs6000/rs6000.md (isel_signed_<mode>): Use reg_or_zero_operand
8803 instead of reg_or_cint_operand. Output instruction directly (not via
8804 output_isel).
8805 (isel_unsigned_<mode>): Ditto.
8806 (*isel_reversed_signed_<mode>): Use reg_or_zero_operand instead of
8807 gpc_reg_operand. Add an instruction alternative for this. Output
8808 instruction directly.
8809 (*isel_reversed_unsigned_<mode>): Ditto.
8810
8811 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
8812
8813 * config/i386/i386.c (ix86_canonicalize_comparison): New function.
8814 (TARGET_CANONICALIZE_COMPARISON): Define.
8815
8816 2017-10-11 Qing Zhao <qing.zhao@oracle.com>
8817
8818 PR target/81422
8819 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
8820 Check whether the dest is REG before adding REG_EQUIV note.
8821
8822 2017-10-11 Vladimir Makarov <vmakarov@redhat.com>
8823
8824 PR sanitizer/82353
8825 * lra.c (collect_non_operand_hard_regs): Don't ignore operator
8826 locations.
8827 * lra-lives.c (bb_killed_pseudos, bb_gen_pseudos): Move up.
8828 (make_hard_regno_born, make_hard_regno_dead): Update
8829 bb_killed_pseudos and bb_gen_pseudos.
8830
8831 2017-10-11 Nathan Sidwell <nathan@acm.org>
8832
8833 * incpath.h (enum incpath_kind): Name enum, prefix values.
8834 (add_path, add_cpp_dir_path, get_added_cpp_dirs): Use incpath_kind.
8835 * incpath.c (heads, tails): Use INC_MAX.
8836 (add_env_var_paths, add_standard_paths): Use incpath_kind.
8837 (merge_include_chains, split_quote_chain,
8838 register_include_chains): Update incpath_kind names.
8839 (add_cpp_dir_path, add_path, get_added_cpp_dirs): Use incpath_kind.
8840 * config/darwin-c.c (add_system_framework_path): Update incpath_kind
8841 names.
8842 (add_framework_path, darwin_register_objc_includes): Likewise.
8843 * config/vms/vms-c.c (vms_c_register_includes): Likewise.
8844
8845 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
8846
8847 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387):
8848 Do not use float_operator operator predicate.
8849 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto.
8850 * config/i386/predicates.md (float_operator): Remove predicate.
8851
8852 2017-10-11 Uros Bizjak <ubizjak@gmail.com>
8853
8854 * config/i386/i386.md (*jcc<mode>_0_i387): Remove insn pattern.
8855 (*jccxf_i387): Ditto.
8856 (*jcc<mode>_i387): Ditto.
8857 (*jccu<mode>_i387): Ditto.
8858 (*jcc<X87MODEF:mode>_<SWI24:mode>_i387): Ditto.
8859 (*jcc_*_i387 splitters): Remove.
8860 * config/i386/i386-protos.h (ix86_split_fp_branch): Remove prototype.
8861 * config/i386/i386.c (ix86_split_fp_branch): Remove.
8862 * config/i386/predicates.md (ix86_swapped_fp_comparison_operator):
8863 Remove predicate.
8864
8865 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
8866
8867 * profile-count.h (slow_safe_scale_64bit): New function.
8868 (safe_scale_64bit): New inline.
8869 (profile_count::max_safe_multiplier): Remove; use safe_scale_64bit.
8870 * profile-count.c: Include wide-int.h
8871 (slow_safe_scale_64bit): New.
8872
8873 2017-10-11 Nathan Sidwell <nathan@acm.org>
8874
8875 * tree.h (DECL_ASSEMBLER_NAME_SET_P): Don't check
8876 HAS_DECL_ASSEMBLER_NAME_P.
8877 * gimple-expr.c (gimple_decl_printable_name: Check
8878 HAS_DECL_ASSEMBLER_NAME_P too.
8879 * ipa-utils.h (type_in_anonymous_namespace_p): Check
8880 DECL_ASSEMBLER_NAME_SET_P of TYPE_NAME.
8881 (odr_type_p): No need to assert TYPE_NAME is a TYPE_DECL.
8882 * passes.c (rest_of_decl_compilation): Check
8883 HAS_DECL_ASSEMBLER_NAME_P too.
8884 * recog.c (verify_changes): Likewise.
8885 * tree-pretty-print.c (dump_decl_name): Likewise.
8886 * tree-ssa-structalias.c (alias_get_name): Likewise. Reimplement.
8887
8888 * tree.h (DECL_ASSEMBLER_NAME_RAW): New.
8889 (SET_DECL_ASSEMBLER_NAME): Use it.
8890 (DECL_ASSEMBLER_NAME_SET_P): Likewise.
8891 (COPY_DECL_ASSEMBLER_NAME): Likewise.
8892 * tree.c (decl_assembler_name): Use DECL_ASSEMBLER_NAME_RAW.
8893
8894 2017-10-11 Jan Hubicka <hubicka@ucw.cz>
8895
8896 * config.gcc (i386, x86_64): Add extra objects.
8897 * config/i386/i386-protos.h (ix86_rip_relative_addr_p): Declare.
8898 (ix86_min_insn_size): Declare.
8899 (ix86_issue_rate): Declare.
8900 (ix86_adjust_cost): Declare.
8901 (ia32_multipass_dfa_lookahead): Declare.
8902 (ix86_macro_fusion_p): Declare.
8903 (ix86_macro_fusion_pair_p): Declare.
8904 (ix86_bd_has_dispatch): Declare.
8905 (ix86_bd_do_dispatch): Declare.
8906 (ix86_core2i7_init_hooks): Declare.
8907 (ix86_atom_sched_reorder): Declare.
8908 * config/i386/i386.c Move all CPU cost tables to x86-tune-costs.h.
8909 (COSTS_N_BYTES): Move to x86-tune-costs.h.
8910 (DUMMY_STRINGOP_ALGS):Move to x86-tune-costs.h.
8911 (rip_relative_addr_p): Rename to ...
8912 (ix86_rip_relative_addr_p): ... this one; export.
8913 (memory_address_length): Update.
8914 (ix86_issue_rate): Move to x86-tune-sched.c.
8915 (ix86_flags_dependent): Move to x86-tune-sched.c.
8916 (ix86_agi_dependent): Move to x86-tune-sched.c.
8917 (exact_dependency_1): Move to x86-tune-sched.c.
8918 (exact_store_load_dependency): Move to x86-tune-sched.c.
8919 (ix86_adjust_cost): Move to x86-tune-sched.c.
8920 (ia32_multipass_dfa_lookahead): Move to x86-tune-sched.c.
8921 (ix86_macro_fusion_p): Move to x86-tune-sched.c.
8922 (ix86_macro_fusion_pair_p): Move to x86-tune-sched.c.
8923 (do_reorder_for_imul): Move to x86-tune-sched-atom.c.
8924 (swap_top_of_ready_list): Move to x86-tune-sched-atom.c.
8925 (ix86_sched_reorder): Move to x86-tune-sched-atom.c.
8926 (core2i7_first_cycle_multipass_init): Move to x86-tune-sched-core.c.
8927 (core2i7_dfa_post_advance_cycle): Move to x86-tune-sched-core.c.
8928 (min_insn_size): Rename to ...
8929 (ix86_min_insn_size): ... this one; export.
8930 (core2i7_first_cycle_multipass_begin): Move to x86-tune-sched-core.c.
8931 (core2i7_first_cycle_multipass_issue): Move to x86-tune-sched-core.c.
8932 (core2i7_first_cycle_multipass_backtrack): Move to
8933 x86-tune-sched-core.c.
8934 (core2i7_first_cycle_multipass_end): Move to x86-tune-sched-core.c.
8935 (core2i7_first_cycle_multipass_fini): Move to x86-tune-sched-core.c.
8936 (ix86_sched_init_global): Break up logic to ix86_core2i7_init_hooks.
8937 (ix86_avoid_jump_mispredicts): Update.
8938 (TARGET_SCHED_DISPATCH): Move to ix86-tune-sched-bd.c.
8939 (TARGET_SCHED_DISPATCH_DO): Move to ix86-tune-sched-bd.c.
8940 (TARGET_SCHED_REORDER): Move to ix86-tune-sched-bd.c.
8941 (DISPATCH_WINDOW_SIZE): Move to ix86-tune-sched-bd.c.
8942 (MAX_DISPATCH_WINDOWS): Move to ix86-tune-sched-bd.c.
8943 (MAX_INSN): Move to ix86-tune-sched-bd.c.
8944 (MAX_IMM): Move to ix86-tune-sched-bd.c.
8945 (MAX_IMM_SIZE): Move to ix86-tune-sched-bd.c.
8946 (MAX_IMM_32): Move to ix86-tune-sched-bd.c.
8947 (MAX_IMM_64): Move to ix86-tune-sched-bd.c.
8948 (MAX_LOAD): Move to ix86-tune-sched-bd.c.
8949 (MAX_STORE): Move to ix86-tune-sched-bd.c.
8950 (BIG): Move to ix86-tune-sched-bd.c.
8951 (enum dispatch_group): Move to ix86-tune-sched-bd.c.
8952 (enum insn_path): Move to ix86-tune-sched-bd.c.
8953 (get_mem_group): Move to ix86-tune-sched-bd.c.
8954 (is_cmp): Move to ix86-tune-sched-bd.c.
8955 (dispatch_violation): Move to ix86-tune-sched-bd.c.
8956 (is_branch): Move to ix86-tune-sched-bd.c.
8957 (is_prefetch): Move to ix86-tune-sched-bd.c.
8958 (init_window): Move to ix86-tune-sched-bd.c.
8959 (allocate_window): Move to ix86-tune-sched-bd.c.
8960 (init_dispatch_sched): Move to ix86-tune-sched-bd.c.
8961 (is_end_basic_block): Move to ix86-tune-sched-bd.c.
8962 (process_end_window): Move to ix86-tune-sched-bd.c.
8963 (allocate_next_window): Move to ix86-tune-sched-bd.c.
8964 (find_constant): Move to ix86-tune-sched-bd.c.
8965 (get_num_immediates): Move to ix86-tune-sched-bd.c.
8966 (has_immediate): Move to ix86-tune-sched-bd.c.
8967 (get_insn_path): Move to ix86-tune-sched-bd.c.
8968 (get_insn_group): Move to ix86-tune-sched-bd.c.
8969 (count_num_restricted): Move to ix86-tune-sched-bd.c.
8970 (fits_dispatch_window): Move to ix86-tune-sched-bd.c.
8971 (add_insn_window): Move to ix86-tune-sched-bd.c.
8972 (add_to_dispatch_window): Move to ix86-tune-sched-bd.c.
8973 (debug_dispatch_window_file): Move to ix86-tune-sched-bd.c.
8974 (debug_dispatch_window): Move to ix86-tune-sched-bd.c.
8975 (debug_insn_dispatch_info_file): Move to ix86-tune-sched-bd.c.
8976 (debug_ready_dispatch): Move to ix86-tune-sched-bd.c.
8977 (do_dispatch): Move to ix86-tune-sched-bd.c.
8978 (has_dispatch): Move to ix86-tune-sched-bd.c.
8979 * config/i386/t-i386: Add new object files.
8980 * config/i386/x86-tune-costs.h: New file.
8981 * config/i386/x86-tune-sched-atom.c: New file.
8982 * config/i386/x86-tune-sched-bd.c: New file.
8983 * config/i386/x86-tune-sched-core.c: New file.
8984 * config/i386/x86-tune-sched.c: New file.
8985
8986 2017-10-11 Liu Hao <lh_mouse@126.com>
8987
8988 * pretty-print.c [_WIN32] (colorize_init): Remove. Use
8989 the generic version below instead.
8990 (should_colorize): Recognize Windows consoles as terminals
8991 for MinGW targets.
8992 * pretty-print.c [__MINGW32__] (write_all): New function.
8993 [__MINGW32__] (find_esc_head): Likewise.
8994 [__MINGW32__] (find_esc_terminator): Likewise.
8995 [__MINGW32__] (eat_esc_sequence): Likewise.
8996 [__MINGW32__] (mingw_ansi_fputs): New function that handles
8997 ANSI escape codes.
8998 (pp_write_text_to_stream): Use mingw_ansi_fputs instead of fputs
8999 for MinGW targets.
9000
9001 2017-10-11 Richard Biener <rguenther@suse.de>
9002
9003 * tree-ssa-loop-niter.c (infer_loop_bounds_from_pointer_arith):
9004 Properly call analyze_scalar_evolution with the loop of the stmt.
9005
9006 2017-10-11 Richard Biener <rguenther@suse.de>
9007
9008 * tree.def (POLYNOMIAL_CHREC): Remove CHREC_VARIABLE tree operand.
9009 * tree-core.h (tree_base): Add chrec_var union member.
9010 * tree.h (CHREC_VAR): Remove.
9011 (CHREC_LEFT, CHREC_RIGHT, CHREC_VARIABLE): Adjust.
9012 * tree-chrec.h (build_polynomial_chrec): Adjust.
9013 * tree-chrec.c (reset_evolution_in_loop): Use build_polynomial_chrec.
9014 * tree-pretty-print.c (dump_generic_node): Use CHREC_VARIABLE.
9015
9016 2017-10-11 Marc Glisse <marc.glisse@inria.fr>
9017
9018 * fold-const.c (fold_binary_loc) [X +- Y CMP X]: Move ...
9019 * match.pd: ... here.
9020 ((T) X == (T) Y): Relax condition.
9021
9022 2017-10-11 Bin Cheng <bin.cheng@arm.com>
9023
9024 PR tree-optimization/82472
9025 * tree-loop-distribution.c (sort_partitions_by_post_order): Refine
9026 comment.
9027 (break_alias_scc_partitions): Update postorder number.
9028
9029 2017-10-11 Martin Liska <mliska@suse.cz>
9030
9031 PR sanitizer/82490
9032 * opts.c (parse_no_sanitize_attribute): Do not use error_value
9033 variable.
9034 * opts.h (parse_no_sanitize_attribute): Remove last argument.
9035
9036 2017-10-11 Martin Liska <mliska@suse.cz>
9037
9038 * print-rtl.c (print_insn): Move declaration of idbuf
9039 to same scope as name.
9040
9041 2017-10-11 Martin Liska <mliska@suse.cz>
9042
9043 Revert r253637:
9044
9045 PR sanitizer/82484
9046 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
9047 volatile arguments.
9048
9049 2017-10-11 Martin Liska <mliska@suse.cz>
9050
9051 PR sanitizer/82484
9052 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle
9053 volatile arguments.
9054
9055 2017-10-11 Adhemerval Zanella <adhemerval.zanella@linaro.org>
9056
9057 * config.gcc (default_gnu_indirect_function): Default to yes for
9058 arm*-*-linux* with glibc.
9059
9060 2017-10-11 Richard Biener <rguenther@suse.de>
9061
9062 * tree-scalar-evolution.c (get_scalar_evolution): Handle
9063 default-defs and types we do not want to analyze.
9064 (interpret_loop_phi): Replace unreachable code with an assert.
9065 (compute_scalar_evolution_in_loop): Remove and inline ...
9066 (analyze_scalar_evolution_1): ... here, replacing condition with
9067 what makes the intent clearer. Remove handling of cases
9068 get_scalar_evolution now handles.
9069
9070 2017-10-10 Jim Wilson <wilson@tuliptree.org>
9071
9072 PR rtl-optimization/81434
9073 * haifa-sched.c (prune_ready_list): Init min_cost_group to 0. Update
9074 comment for main loop. In sched_group_found if, also add checks for
9075 pass and min_cost_group.
9076
9077 2017-10-10 Segher Boessenkool <segher@kernel.crashing.org>
9078
9079 * config/rs6000/rs6000.c (TARGET_INSN_COST): New.
9080 (rs6000_insn_cost): New function.
9081 * config/rs6000/rs6000.md (cost): New attribute.
9082
9083 2017-10-10 Jakub Jelinek <jakub@redhat.com>
9084 H.J. Lu <hongjiu.lu@intel.com>
9085
9086 PR target/79565
9087 PR target/82483
9088 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Add
9089 OPTION_MASK_ISA_MMX for __builtin_ia32_maskmovq,
9090 __builtin_ia32_vec_ext_v4hi and __builtin_ia32_vec_set_v4hi.
9091 (ix86_expand_builtin): Treat OPTION_MASK_ISA_MMX similarly
9092 to OPTION_MASK_ISA_AVX512VL - builtins that have both
9093 OPTION_MASK_ISA_MMX and some other bit set require both
9094 mmx and the ISAs without the mmx bit.
9095 * config/i386/i386-builtin.def (__builtin_ia32_cvtps2pi,
9096 __builtin_ia32_cvttps2pi, __builtin_ia32_cvtpi2ps,
9097 __builtin_ia32_pavgb, __builtin_ia32_pavgw, __builtin_ia32_pmulhuw,
9098 __builtin_ia32_pmaxub, __builtin_ia32_pmaxsw, __builtin_ia32_pminub,
9099 __builtin_ia32_pminsw, __builtin_ia32_psadbw, __builtin_ia32_pmovmskb,
9100 __builtin_ia32_pshufw, __builtin_ia32_cvtpd2pi,
9101 __builtin_ia32_cvttpd2pi, __builtin_ia32_cvtpi2pd,
9102 __builtin_ia32_pmuludq, __builtin_ia32_pabsb, __builtin_ia32_pabsw,
9103 __builtin_ia32_pabsd, __builtin_ia32_phaddw, __builtin_ia32_phaddd,
9104 __builtin_ia32_phaddsw, __builtin_ia32_phsubw, __builtin_ia32_phsubd,
9105 __builtin_ia32_phsubsw, __builtin_ia32_pmaddubsw,
9106 __builtin_ia32_pmulhrsw, __builtin_ia32_pshufb, __builtin_ia32_psignb,
9107 __builtin_ia32_psignw, __builtin_ia32_psignd, __builtin_ia32_movntq,
9108 __builtin_ia32_paddq, __builtin_ia32_psubq, __builtin_ia32_palignr):
9109 Add OPTION_MASK_ISA_MMX.
9110
9111 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
9112
9113 * config.gcc (armv7*-*-freebsd*): New target.
9114 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
9115
9116 2017-10-10 Jan Hubicka <hubicka@ucw.cz>
9117
9118 * x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI,
9119 X86_TUNE_ADJUST_UNROLL, X86_TUNE_ONE_IF_CONV_INSN): Move to right
9120 spot in the file.
9121
9122 2017-10-10 Richard Sandiford <richard.sandiford@linaro.org>
9123
9124 * wide-int.h (wide_int_ref_storage): Make host_dependent_precision
9125 a template parameter.
9126 (WIDE_INT_REF_FOR): Update accordingly.
9127 * tree.h (wi::int_traits <const_tree>): Delete.
9128 (wi::tree_to_widest_ref, wi::tree_to_offset_ref): New typedefs.
9129 (wi::to_widest, wi::to_offset): Use them. Expand commentary.
9130 (wi::tree_to_wide_ref): New typedef.
9131 (wi::to_wide): New function.
9132 * calls.c (get_size_range): Use wi::to_wide when operating on
9133 trees as wide_ints.
9134 * cgraph.c (cgraph_node::create_thunk): Likewise.
9135 * config/i386/i386.c (ix86_data_alignment): Likewise.
9136 (ix86_local_alignment): Likewise.
9137 * dbxout.c (stabstr_O): Likewise.
9138 * dwarf2out.c (add_scalar_info, gen_enumeration_type_die): Likewise.
9139 * expr.c (const_vector_from_tree): Likewise.
9140 * fold-const-call.c (host_size_t_cst_p, fold_const_call_1): Likewise.
9141 * fold-const.c (may_negate_without_overflow_p, negate_expr_p)
9142 (fold_negate_expr_1, int_const_binop_1, const_binop)
9143 (fold_convert_const_int_from_real, optimize_bit_field_compare)
9144 (all_ones_mask_p, sign_bit_p, unextend, extract_muldiv_1)
9145 (fold_div_compare, fold_single_bit_test, fold_plusminus_mult_expr)
9146 (pointer_may_wrap_p, expr_not_equal_to, fold_binary_loc)
9147 (fold_ternary_loc, multiple_of_p, fold_negate_const, fold_abs_const)
9148 (fold_not_const, round_up_loc): Likewise.
9149 * gimple-fold.c (gimple_fold_indirect_ref): Likewise.
9150 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Likewise.
9151 (alloca_call_type): Likewise.
9152 * gimple.c (preprocess_case_label_vec_for_gimple): Likewise.
9153 * godump.c (go_output_typedef): Likewise.
9154 * graphite-sese-to-poly.c (tree_int_to_gmp): Likewise.
9155 * internal-fn.c (get_min_precision): Likewise.
9156 * ipa-cp.c (ipcp_store_vr_results): Likewise.
9157 * ipa-polymorphic-call.c
9158 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Likewise.
9159 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
9160 (ipa_modify_call_arguments): Likewise.
9161 * match.pd: Likewise.
9162 * omp-low.c (scan_omp_1_op, lower_omp_ordered_clauses): Likewise.
9163 * print-tree.c (print_node_brief, print_node): Likewise.
9164 * stmt.c (expand_case): Likewise.
9165 * stor-layout.c (layout_type): Likewise.
9166 * tree-affine.c (tree_to_aff_combination): Likewise.
9167 * tree-cfg.c (group_case_labels_stmt): Likewise.
9168 * tree-data-ref.c (dr_analyze_indices): Likewise.
9169 (prune_runtime_alias_test_list): Likewise.
9170 * tree-dump.c (dequeue_and_dump): Likewise.
9171 * tree-inline.c (remap_gimple_op_r, copy_tree_body_r): Likewise.
9172 * tree-predcom.c (is_inv_store_elimination_chain): Likewise.
9173 * tree-pretty-print.c (dump_generic_node): Likewise.
9174 * tree-scalar-evolution.c (iv_can_overflow_p): Likewise.
9175 (simple_iv_with_niters): Likewise.
9176 * tree-ssa-address.c (addr_for_mem_ref): Likewise.
9177 * tree-ssa-ccp.c (ccp_finalize, evaluate_stmt): Likewise.
9178 * tree-ssa-loop-ivopts.c (constant_multiple_of): Likewise.
9179 * tree-ssa-loop-niter.c (split_to_var_and_offset)
9180 (refine_value_range_using_guard, number_of_iterations_ne_max)
9181 (number_of_iterations_lt_to_ne, number_of_iterations_lt)
9182 (get_cst_init_from_scev, record_nonwrapping_iv)
9183 (scev_var_range_cant_overflow): Likewise.
9184 * tree-ssa-phiopt.c (minmax_replacement): Likewise.
9185 * tree-ssa-pre.c (compute_avail): Likewise.
9186 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Likewise.
9187 (vn_reference_maybe_forwprop_address, valueized_wider_op): Likewise.
9188 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Likewise.
9189 * tree-ssa-uninit.c (is_pred_expr_subset_of): Likewise.
9190 * tree-ssanames.c (set_nonzero_bits, get_nonzero_bits): Likewise.
9191 * tree-switch-conversion.c (collect_switch_conv_info, array_value_type)
9192 (dump_case_nodes, try_switch_expansion): Likewise.
9193 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): Likewise.
9194 (vect_do_peeling): Likewise.
9195 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise.
9196 * tree-vect-stmts.c (vectorizable_load): Likewise.
9197 * tree-vrp.c (compare_values_warnv, vrp_int_const_binop): Likewise.
9198 (zero_nonzero_bits_from_vr, ranges_from_anti_range): Likewise.
9199 (extract_range_from_binary_expr_1, adjust_range_with_scev): Likewise.
9200 (overflow_comparison_p_1, register_edge_assert_for_2): Likewise.
9201 (is_masked_range_test, find_switch_asserts, maybe_set_nonzero_bits)
9202 (vrp_evaluate_conditional_warnv_with_ops, intersect_ranges): Likewise.
9203 (range_fits_type_p, two_valued_val_range_p, vrp_finalize): Likewise.
9204 (evrp_dom_walker::before_dom_children): Likewise.
9205 * tree.c (cache_integer_cst, real_value_from_int_cst, integer_zerop)
9206 (integer_all_onesp, integer_pow2p, integer_nonzerop, tree_log2)
9207 (tree_floor_log2, tree_ctz, mem_ref_offset, tree_int_cst_sign_bit)
9208 (tree_int_cst_sgn, get_unwidened, int_fits_type_p): Likewise.
9209 (get_type_static_bounds, num_ending_zeros, drop_tree_overflow)
9210 (get_range_pos_neg): Likewise.
9211 * ubsan.c (ubsan_expand_ptr_ifn): Likewise.
9212 * config/darwin.c (darwin_mergeable_constant_section): Likewise.
9213 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
9214 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
9215 * config/avr/avr.c (avr_fold_builtin): Likewise.
9216 * config/bfin/bfin.c (bfin_local_alignment): Likewise.
9217 * config/msp430/msp430.c (msp430_attr): Likewise.
9218 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
9219 * config/powerpcspe/powerpcspe-c.c
9220 (altivec_resolve_overloaded_builtin): Likewise.
9221 * config/powerpcspe/powerpcspe.c (rs6000_aggregate_candidate)
9222 (rs6000_expand_ternop_builtin): Likewise.
9223 * config/rs6000/rs6000-c.c
9224 (altivec_resolve_overloaded_builtin): Likewise.
9225 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
9226 (rs6000_expand_ternop_builtin): Likewise.
9227 * config/s390/s390.c (s390_handle_hotpatch_attribute): Likewise.
9228
9229 2017-10-10 Bin Cheng <bin.cheng@arm.com>
9230
9231 * tree-vect-loop-manip.c (rename_variables_in_bb): Rename PHI nodes
9232 when copying loop nest with only one inner loop.
9233
9234 2017-10-10 Richard Biener <rguenther@suse.de>
9235
9236 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Avoid compacting
9237 blocks if SCEV is active.
9238 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Remove
9239 dead code.
9240 (analyze_scalar_evolution): Handle cached evolutions the obvious way.
9241 (scev_initialize): Assert we are not yet initialized.
9242
9243 2017-10-10 Bin Cheng <bin.cheng@arm.com>
9244
9245 * tree-loop-distribution.c (generate_loops_for_partition): Remove
9246 inner loop's exit stmt by making it always exit the loop, otherwise
9247 we would generate an infinite empty loop.
9248
9249 2017-10-10 Bin Cheng <bin.cheng@arm.com>
9250
9251 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg): Skip
9252 renaming variables in new preheader if it's deleted.
9253
9254 2017-10-10 Bin Cheng <bin.cheng@arm.com>
9255
9256 * tree-loop-distribution.c (struct partition): Remove unused field
9257 loops of the structure.
9258 (partition_alloc, partition_free): Ditto.
9259 (build_rdg_partition_for_vertex): Ditto.
9260
9261 2017-10-09 Jeff Law <law@redhat.com>
9262
9263 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): Fix
9264 return type to match prototype and documentation.
9265
9266 2010-10-09 Segher Boessenkool <segher@kernel.crashing.org>
9267
9268 * config/rs6000/rs6000.c (processor_costs): Move to ...
9269 * config/rs6000/rs6000.h: ... here.
9270 (rs6000_cost): Declare.
9271
9272 2017-10-09 Eric Botcazou <ebotcazou@adacore.com>
9273
9274 * except.c (setjmp_fn): New global variable.
9275 (init_eh): Initialize it if DONT_USE_BUILTIN_SETJMP is defined.
9276 (sjlj_emit_function_enter): Call it instead of BUILTIN_SETJMP
9277 if DONT_USE_BUILTIN_SETJMP is defined.
9278
9279 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
9280
9281 * target.def (insn_cost): New hook.
9282 * doc/tm.texi.in (TARGET_INSN_COST): New hook.
9283 * doc/tm.texi: Regenerate.
9284 * rtlanal.c (insn_cost): Use the new hook.
9285
9286 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
9287
9288 * combine.c (combine_validate_cost): Compute the new insn_cost,
9289 not just pattern_cost.
9290 (try_combine): Adjust comment.
9291
9292 2017-10-09 Segher Boessenkool <segher@kernel.crashing.org>
9293
9294 * cfgrtl.c (rtl_account_profile_record): Replace insn_rtx_cost with
9295 insn_cost.
9296 * combine.c (uid_insn_cost): Adjust comment.
9297 (combine_validate_cost): Adjust comment. Use pattern_cost instead
9298 of insn_rtx_cost
9299 (combine_instructions): Use insn_cost instead of insn_rtx_cost.
9300 * dse.c (find_shift_sequence): Ditto.
9301 * ifcvt.c (cheap_bb_rtx_cost_p): Ditto.
9302 (bb_valid_for_noce_process_p): Use pattern_cost.
9303 * rtl.h (insn_rtx_cost): Delete.
9304 (pattern_cost): New prototype.
9305 (insn_cost): New prototype.
9306 * rtlanal.c (insn_rtx_cost): Rename to...
9307 (pattern_cost): ... this.
9308 (insn_cost): New.
9309
9310 2017-10-09 Uros Bizjak <ubizjak@gmail.com>
9311
9312 * config/i386/i386.md (*jcc_2): Remove insn pattern.
9313 (*jcc<mode>_0_r_i387): Ditto.
9314 (*jccxf_r_i387): Ditto.
9315 (*jcc<mode>_r_i387): Ditto.
9316 (*jccu<mode>_r_i387): Ditto.
9317 (*jcc<X87MODEF:mode>_<SWI24:mode>_r_i387): Ditto.
9318 (*jcc): Rename from *jcc_1.
9319
9320 2017-10-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9321
9322 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Process
9323 deferred rescans after the lvx/stvx recombination pre-pass.
9324
9325 2017-10-09 Michael Meissner <meissner@linux.vnet.ibm.com>
9326
9327 * config/rs6000/amo.h: New include file to provide ISA 3.0 atomic
9328 memory operation instruction support.
9329 * config.gcc (powerpc*-*-*): Include amo.h as an extra header.
9330 (rs6000-ibm-aix[789]*): Likewise.
9331 * doc/extend.texi (PowerPC Atomic Memory Operation Functions):
9332 Document new functions.
9333
9334 2017-10-09 Richard Biener <rguenther@suse.de>
9335
9336 PR tree-optimization/82397
9337 * tree-data-ref.c (data_ref_compare_tree): Make sure to return
9338 equality only for semantically equal trees.
9339
9340 2017-10-09 Richard Biener <rguenther@suse.de>
9341
9342 PR tree-optimization/82449
9343 * sese.c (scev_analyzable_p): Check whether the SCEV is linear.
9344 * tree-chrec.h (evolution_function_is_constant_p): Adjust to
9345 allow constant addresses.
9346 * tree-chrec.c (scev_is_linear_expression): Constant evolutions
9347 are linear.
9348
9349 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9350
9351 * config/s390/s390-builtins.def (vec_nabs, vec_vfi): Fix builtin
9352 flags.
9353
9354 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9355
9356 PR target/82463
9357 * config/s390/vecintrin.h (vec_madd, vec_msub): Fix macro
9358 definitions.
9359
9360 2017-10-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9361
9362 PR target/82465
9363 * config/s390/s390-builtins.def (vec_sqrt): Fix builtin flags.
9364
9365 2017-10-09 Jakub Jelinek <jakub@redhat.com>
9366
9367 PR target/82464
9368 * config/s390/s390-builtins.def (s390_vec_xor_flt_a,
9369 s390_vec_xor_flt_b, s390_vec_xor_flt_c): New.
9370
9371 2017-10-09 Richard Sandiford <richard.sandiford@linaro.org>
9372
9373 * wide-int.h (WI_BINARY_OPERATOR_RESULT): New macro.
9374 (WI_BINARY_PREDICATE_RESULT): Likewise.
9375 (wi::binary_traits::operator_result): New type.
9376 (wi::binary_traits::predicate_result): Likewise.
9377 (generic_wide_int::operator~, unary generic_wide_int::operator-)
9378 (generic_wide_int::operator==, generic_wide_int::operator!=)
9379 (generic_wide_int::operator&, generic_wide_int::and_not)
9380 (generic_wide_int::operator|, generic_wide_int::or_not)
9381 (generic_wide_int::operator^, generic_wide_int::operator+
9382 (binary generic_wide_int::operator-, generic_wide_int::operator*):
9383 Delete.
9384 (operator~, unary operator-, operator==, operator!=, operator&)
9385 (operator|, operator^, operator+, binary operator-, operator*): New
9386 functions.
9387 * expr.c (get_inner_reference): Use wi::bit_and_not.
9388 * fold-const.c (fold_binary_loc): Likewise.
9389 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Likewise.
9390 * tree-ssa-ccp.c (get_value_from_alignment): Likewise.
9391 (bit_value_binop): Likewise.
9392 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
9393 * tree-vrp.c (zero_nonzero_bits_from_vr): Likewise.
9394 (extract_range_from_binary_expr_1): Likewise.
9395 (masked_increment): Likewise.
9396 (simplify_bit_ops_using_ranges): Likewise.
9397
9398 2017-10-09 Martin Jambor <mjambor@suse.cz>
9399
9400 PR hsa/82416
9401 * hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
9402 * hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
9403 (hsa_type_for_scalar_tree_type): Use it. Always force min32int for
9404 COMPLEX types.
9405 (hsa_fixup_mov_insn_type): New function.
9406 (hsa_op_with_type::get_in_type): Use it.
9407 (hsa_build_append_simple_mov): Likewise. Allow sub-32bit
9408 immediates in an assert.
9409 (hsa_op_with_type::extend_int_to_32bit): New method.
9410 (gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
9411 types. Convert to dest type if necessary.
9412 (gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
9413 (reg_for_gimple_ssa): Pass false as min32int to
9414 hsa_type_for_scalar_tree_type.
9415 (gen_hsa_addr): Fixup type when creating addresable temporary.
9416 (gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
9417 (gen_hsa_unary_operation): Extend operands and convert to dest type if
9418 necessary. Call hsa_fixup_mov_insn_type.
9419 (gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
9420 extend operands and convert to dest type if necessary.
9421 (gen_hsa_insns_for_operation_assignment): Extend operands and convert
9422 to dest type if necessary.
9423 (set_output_in_type): Call hsa_fixup_mov_insn_type. Just ude dest
9424 if conversion nt necessary and size matches.
9425 (gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
9426 to dest type if necessary.
9427 (gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
9428 (gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
9429 necessary.
9430 (gen_hsa_clrsb): Likewise.
9431 (gen_hsa_ffs): Likewise.
9432 (gen_hsa_divmod): Extend operands and convert to dest type if
9433 necessary.
9434 (gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
9435
9436 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
9437
9438 * config/rs6000/rs6000.md (conditional branch): Clean up formatting.
9439 Remove empty default arguments. Use a brace block as output
9440 statement.
9441 (conditional return): Ditto.
9442 (jump): Ditto.
9443 (indirect_jump): Ditto. Use b%T0 instead of bctr/blr.
9444 (tablejump, tablejumpsi, tablejumpdi, *tablejump<mode>_internal1):
9445 Ditto.
9446 (group_ending_nop): Ditto.
9447 (doloop_end): Ditto.
9448 (ctr<mode>, ctr<mode>_internal1, ctr<mode>_internal2): Ditto.
9449 (splitters for those): Ditto.
9450
9451 2017-10-08 Segher Boessenkool <segher@kernel.crashing.org>
9452
9453 * config/rs6000/rs6000-string.c (expand_strncmp_align_check): Invert
9454 a conditional jump (and the compare for it) so that pc_rtx is the
9455 last operand.
9456 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Adjust
9457 for the deleted and renamed ctr<mode>_internal[234] patterns.
9458 * config/rs6000/rs6000.md: Delete second conditional branch pattern.
9459 Delete second conditional return pattern.
9460 (ctr<mode>_internal2): Delete this second bdnz pattern.
9461 (ctr<mode>_internal3): Rename to ctr<mode>_internal2.
9462 (ctr<mode>_internal4): Delete this second bdz pattern.
9463
9464 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
9465
9466 * tree-outof-ssa.h (ssaexpand): Add partitions_for_undefined_values.
9467 (always_initialized_rtx_for_ssa_name_p): New predicate.
9468 * tree-outof-ssa.c (remove_ssa_form): Initialize new field of SA.
9469 (finish_out_of_ssa): Free new field of SA.
9470 * tree-ssa-coalesce.h (get_undefined_value_partitions): Declare.
9471 * tree-ssa-coalesce.c: Include tree-ssa.h.
9472 (get_parm_default_def_partitions): Remove extern keyword.
9473 (get_undefined_value_partitions): New function.
9474 * expr.c (expand_expr_real_1) <expand_decl_rtl>: For a SSA_NAME, do
9475 not set SUBREG_PROMOTED_VAR_P on the sub-register if it may contain
9476 uninitialized bits.
9477 * loop-iv.c (iv_get_reaching_def): Disqualify all subregs.
9478
9479 2017-10-08 Eric Botcazou <ebotcazou@adacore.com>
9480
9481 * builtins.def (BUILT_IN_SETJMP): Revert latest change.
9482
9483 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
9484
9485 * config/i386/i386.c (ix86_expand_set_or_movmem): Disable 512bit loops
9486 for targets that preffer 128bit.
9487
9488 2017-10-08 Jan Hubicka <hubicka@ucw.cz>
9489
9490 * config/i386/i386.c (has_dispatch): Disable for Ryzen.
9491
9492 2017-10-08 Olivier Hainque <hainque@adacore.com>
9493
9494 * config/arm/arm.c (arm_set_return_address): Use MEM_VOLATILE_P
9495 on the target mem instead of RTX_FRAME_RELATED_P on the insn to
9496 prevent DSE.
9497 (thumb_set_return_address): Likewise.
9498
9499 2017-10-08 Olivier Hainque <hainque@adacore.com>
9500
9501 * common/config/arm/arm-common.c (arm_except_unwind_info):
9502 Handle DWARF2_UNWIND_INFO.
9503
9504 2017-10-07 Michael Collison <michael.collison@arm.com>
9505
9506 * config/aarch64/aarch64.md (*aarch64_reg_<optab>_minus<mode>3):
9507 New pattern.
9508
9509 2017-10-07 Eric Botcazou <ebotcazou@adacore.com>
9510
9511 * builtins.def (BUILT_IN_SETJMP): Declare as library builtin instead
9512 of GCC builtin if DONT_USE_BUILTIN_SETJMP is defined.
9513 * except.c (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is
9514 defined, force the creation of a new block for a dispatch label.
9515
9516 2017-10-07 Jan Hubicka <hubicka@ucw.cz>
9517
9518 * invoke.texi (Wsuggest-attribute=cold): Document.
9519 * common.opt (Wsuggest-attribute=cold): New
9520 * ipa-pure-const.c (warn_function_cold): New function.
9521 * predict.c (compute_function_frequency): Use it.
9522 * predict.h (warn_function_cold): Declare.
9523
9524 2017-10-06 Jan Hubicka <hubicka@ucw.cz>
9525
9526 * tree-switch-conversion.c (do_jump_if_equal, emit_cmp_and_jump_insns):
9527 Update profile.
9528
9529 2017-10-06 Martin Liska <mliska@suse.cz>
9530
9531 * sanopt.c (struct sanopt_tree_triplet_hash): Remove inline
9532 keyword for member functions.
9533 (struct sanopt_tree_couple): New struct.
9534 (struct sanopt_tree_couple_hash): New function.
9535 (struct sanopt_ctx): Add new hash_map.
9536 (has_dominating_ubsan_ptr_check): New function.
9537 (record_ubsan_ptr_check_stmt): Likewise.
9538 (maybe_optimize_ubsan_ptr_ifn): Likewise.
9539 (sanopt_optimize_walker): Handle IFN_UBSAN_PTR.
9540 (pass_sanopt::execute): Handle also SANITIZE_POINTER_OVERFLOW.
9541
9542 2017-10-06 Sudakshina Das <sudi.das@arm.com>
9543
9544 PR target/82440
9545 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Only call
9546 aarch64_simd_valid_immediate on CONST_VECTORs.
9547 (aarch64_reg_or_bic_imm): Likewise.
9548
9549 2017-10-06 Wilco Dijkstra <wdijkstr@arm.com>
9550
9551 PR rtl-optimization/82396
9552 * haifa-sched.c (ready_sort_real): Disable qsort checking.
9553
9554 2017-10-06 Sebastian Pop <sebpop@gmail.com>
9555
9556 * graphite-dependences.c (scop_get_reads): Move code to...
9557 (scop_get_must_writes): Move code to...
9558 (scop_get_may_writes): Move code to...
9559 (scop_get_reads_and_writes): ... here.
9560 (scop_get_dependences): Call scop_get_reads_and_writes.
9561
9562 2017-10-06 Jakub Jelinek <jakub@redhat.com>
9563
9564 PR tree-optimization/82434
9565 * fold-const.h (can_native_encode_type_p,
9566 can_native_encode_string_p): Remove.
9567 * fold-const.c (native_encode_int): Formatting fixes. If ptr is NULL,
9568 don't encode anything, just return what would be otherwise returned.
9569 (native_encode_fixed, native_encode_complex, native_encode_vector):
9570 Likewise.
9571 (native_encode_string): Likewise. Inline by hand
9572 can_native_encode_string_p.
9573 (can_native_encode_type_p): Remove.
9574 (can_native_encode_string_p): Remove.
9575 * tree-vect-stmts.c (vectorizable_store): Instead of testing just
9576 STRING_CSTs using can_native_encode_string_p, test all
9577 CONSTANT_CLASS_P values using native_encode_expr with NULL ptr.
9578 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Remove last
9579 argument from native_encode_expr.
9580 (rhs_valid_for_store_merging_p): Use native_encode_expr with NULL ptr.
9581 (pass_store_merging::execute): Don't unnecessarily look for 3 stmts,
9582 but just 2.
9583
9584 2017-10-06 Richard Biener <rguenther@suse.de>
9585
9586 PR tree-optimization/82397
9587 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use
9588 operand_equal_p but rely on data_ref_compare_tree for detecting
9589 equalities.
9590 (vect_analyze_data_ref_accesses): Use data_ref_compare_tree
9591 to match up with dr_group_sort_cmp.
9592
9593 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9594
9595 PR target/82322
9596 * config/s390/s390-builtins.def (s390_vfi): Define new overloaded
9597 builtin.
9598 * config/s390/s390-builtin-types.def: Regenerate.
9599
9600 2017-10-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9601
9602 PR target/82317
9603 * config/s390/s390-builtin-types.def: Regenerate.
9604 * config/s390/s390-builtins.def (s390_vfmaxdb_4, s390_vfmindb_4):
9605 Change flag from B_VXE to B_VX.
9606 (s390_vec_min_dbl): Remove B_VXE flag.
9607
9608 2017-10-06 Richard Biener <rguenther@suse.de>
9609
9610 * graphite-isl-ast-to-gimple.c: Include ssa.h and tree-ssa.h.
9611 (translate_isl_ast_to_gimple::translate_pending_phi_nodes,
9612 translate_isl_ast_to_gimple::is_valid_rename,
9613 translate_isl_ast_to_gimple::get_rename,
9614 translate_isl_ast_to_gimple::get_def_bb_for_const,
9615 translate_isl_ast_to_gimple::get_new_name,
9616 translate_isl_ast_to_gimple::collect_all_ssa_names,
9617 translate_isl_ast_to_gimple::copy_loop_phi_args,
9618 translate_isl_ast_to_gimple::collect_all_ssa_names,
9619 translate_isl_ast_to_gimple::copy_loop_phi_args,
9620 translate_isl_ast_to_gimple::copy_loop_phi_nodes,
9621 translate_isl_ast_to_gimple::add_close_phis_to_merge_points,
9622 translate_isl_ast_to_gimple::add_close_phis_to_outer_loops,
9623 translate_isl_ast_to_gimple::copy_loop_close_phi_args,
9624 translate_isl_ast_to_gimple::copy_loop_close_phi_nodes,
9625 translate_isl_ast_to_gimple::copy_cond_phi_args,
9626 translate_isl_ast_to_gimple::copy_cond_phi_nodes,
9627 translate_isl_ast_to_gimple::edge_for_new_close_phis,
9628 translate_isl_ast_to_gimple::add_phi_arg_for_new_expr,
9629 translate_isl_ast_to_gimple::rename_uses,
9630 translate_isl_ast_to_gimple::rename_all_uses): Remove.
9631 (translate_isl_ast_to_gimple::get_rename_from_scev): Simplify.
9632 (set_rename_for_each_def): Likewise.
9633 (graphite_copy_stmts_from_block): Handle debug stmt resetting
9634 here. Handle rewriting SCEV analyzable uses here.
9635 (copy_bb_and_scalar_dependences): Generate code for PHI
9636 copy-in/outs.
9637 (graphite_regenerate_ast_isl): Adjust.
9638 * graphite-scop-detection.c (trivially_empty_bb_p): Move to sese.[ch].
9639 (add_write, add_read): New functions.
9640 (build_cross_bb_scalars_def): Use it and simplify.
9641 (build_cross_bb_scalars_use): Likewise.
9642 (graphite_find_cross_bb_scalar_vars): Inline into...
9643 (try_generate_gimple_bb): ...here. Add dependences for PHIs,
9644 simulating out-of-SSA. Compute liveout and add dependencies.
9645 (build_scops): Force an empty entry block.
9646 * sese.h (sese_info_t::liveout, sese_info_t::debug_liveout): New
9647 members.
9648 (sese_build_liveouts): Declare.
9649 (sese_trivially_empty_bb_p): Likewise.
9650 * sese.c (sese_build_liveouts_bb): Properly handle PHIs,
9651 compute liveout and debug_liveout.
9652 (sese_bad_liveouts_use): Remove.
9653 (sese_reset_debug_liveouts_bb): Likewise.
9654 (sese_reset_debug_liveouts): Rewrite in terms of debug_liveout.
9655 (sese_build_liveouts): Build liveout and debug_liveout and store
9656 it in region.
9657 (new_sese_info): Adjust.
9658 (free_sese_info): Likewise.
9659 (sese_insert_phis_for_liveouts): Reset debug stmts from here,
9660 do not build liveout here.
9661 (move_sese_in_condition): Adjust region entry.
9662 (scev_analyzable_p): Match up with chrec_apply requirements.
9663 (sese_trivially_empty_bb_p): New.
9664 * tree-into-ssa.c (get_reaching_def): Properly support generating
9665 default-defs for incremental rewrite of anonymous names.
9666
9667 2017-10-06 Richard Biener <rguenther@suse.de>
9668
9669 * graphite-sese-to-poly.c (extract_affine): For casts increasing
9670 precision do not perform modulo reduction.
9671
9672 2017-10-06 Richard Biener <rguenther@suse.de>
9673
9674 PR tree-optimization/82436
9675 * tree-vect-slp.c (vect_supported_load_permutation_p): More
9676 conservatively choose the vectorization factor when checking
9677 whether we can perform the required load permutation.
9678 (vect_transform_slp_perm_load): Assert when we may not fail.
9679
9680 2017-10-05 Segher Boessenkool <segher@kernel.crashing.org>
9681
9682 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Correct error
9683 message for incompatible -msdata=* and -mcall-* options.
9684
9685 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
9686
9687 * config/i386/i386.c (ia32_multipass_dfa_lookahead): Default to issue
9688 rate for post-reload scheduling.
9689
9690 2017-10-05 Tamar Christina <tamar.christina@arm.com>
9691
9692 * doc/sourcebuild.texi (vect_sizes_16B_8B, vect_sizes_32B_16B): New.
9693
9694 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
9695
9696 * config/i386/i386.c (znver1_cost): Set branch_cost to 3 (instead of 2)
9697 to improve monte carlo in scimark.
9698
9699 2017-10-05 Jan Hubicka <hubicka@ucw.cz>
9700
9701 * config/i386/i386.c (ix86_size_cost, i386_cost, i486_cost,
9702 pentium_cost, lakemont_cost, pentiumpro_cost, geode_cost, k6_cost,
9703 athlon_cost, k8_cost, amdfam10_cost, btver1_cost, btver2_cost,
9704 pentium4_cost, nocona_cost): Set reassociation width to 1.
9705 (bdver1_cost, bdver2_cost, bdver3_cost, bdver4_cost): Set reassociation
9706 width to 2 for fp operations and 1 otherwise.
9707 (znver1_cost): Set scalar reassoc width to 4 and vector to 3 and 6
9708 for int and fp.
9709 (atom_cost): Set reassociation width to 2.
9710 (slm_cost, generic_cost): Set fp reassociation width
9711 to 2 and 1 otherwise.
9712 (intel_cost): Set fp reassociation width to 4 and 1 otherwise.
9713 (core_cost): Set fp reassociation width to 4 and vector to 2.
9714 (ix86_reassociation_width): Rewrite using cost table; special case
9715 plus/minus on Zen; honor X86_TUNE_SSE_SPLIT_REGS
9716 and TARGET_AVX128_OPTIMAL.
9717 * config/i386/i386.h (processor_costs): Add
9718 reassoc_int, reassoc_fp, reassoc_vec_int, reassoc_vec_fp.
9719 (TARGET_VECTOR_PARALLEL_EXECUTION, TARGET_REASSOC_INT_TO_PARALLEL,
9720 TARGET_REASSOC_FP_TO_PARALLEL): Remove.
9721 * x86-tune.def (X86_TUNE_REASSOC_INT_TO_PARALLEL): Remove.
9722 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Remove.
9723 (X86_TUNE_VECTOR_PARALLEL_EXECUTION): Remove.
9724
9725 2017-10-05 Nathan Sidwell <nathan@acm.org>
9726
9727 * doc/invoke.texi (Wparentheses): Document C++ MVP behaviour.
9728
9729 2017-10-05 Tamar Christina <tamar.christina@arm.com>
9730
9731 * config/arm/arm.c (arm_test_fpu_data): New.
9732 (arm_run_selftests): Call arm_test_fpu_data.
9733
9734 2017-10-04 Nathan Sidwell <nathan@acm.org>
9735
9736 * toplev.c (toplev::main): Remove excess parens on pretty_printer
9737 decl.
9738 * caller-save.c (insert_save): Remove excess parens on TO_SAVE parm.
9739
9740 2017-10-04 Sudakshina Das <sudi.das@arm.com>
9741
9742 * config/aarch64/aarch64-protos.h (enum simd_immediate_check): New
9743 check type for aarch64_simd_valid_immediate.
9744 (aarch64_output_simd_mov_immediate): Update prototype.
9745 (aarch64_simd_valid_immediate): Update prototype.
9746 * config/aarch64/aarch64-simd.md (orr<mode>3): modified pattern to add
9747 support for ORR-immediate.
9748 (and<mode>3): modified pattern to add support for BIC-immediate.
9749 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Function
9750 now checks for valid immediate for BIC and ORR based on new enum
9751 argument.
9752 (aarch64_output_simd_mov_immediate): Function now used to output
9753 BIC/ORR imm as well based on new enum argument.
9754 * config/aarch64/constraints.md (Do): New vector immediate constraint.
9755 (Db) : Likewise.
9756 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): New predicate.
9757 (aarch64_reg_or_bic_imm): Likewise.
9758
9759 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9760
9761 * config/s390/vx-builtins.md ("vec_mergeh<mode>")
9762 ("vec_mergel<mode>"): Change mode iterator to V_128_NOSINGLE.
9763
9764 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
9765
9766 Revert r253399:
9767
9768 PR rtl-optimization/82396
9769 * haifa-sched.c (autopref_multipass_init): Simplify
9770 initialization.
9771 (autopref_rank_data): Simplify sort order.
9772 * sched-int.h (autopref_multipass_data_): Remove
9773 multi_mem_insn_p, min_offset and max_offset.
9774
9775 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9776
9777 * doc/sourcebuild.texi: Document vect_peeling_profitable.
9778
9779 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9780
9781 * doc/sourcebuild.texi: Document vect_intdouble_cvt and
9782 vect_doubleint_cvt.
9783
9784 2017-10-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9785
9786 * doc/sourcebuild.texi: Document vect_long_mult.
9787
9788 2017-10-04 Richard Sandiford <richard.sandiford@linaro.org>
9789
9790 PR tree-optimization/82413
9791 * fold-const.c (build_range_check): Use widest_int when comparing
9792 the maximum ETYPE value with HIGH.
9793
9794 2017-10-04 Wilco Dijkstra <wdijkstr@arm.com>
9795
9796 PR rtl-optimization/82396
9797 * haifa-sched.c (autopref_multipass_init): Simplify
9798 initialization.
9799 (autopref_rank_data): Simplify sort order.
9800 * sched-int.h (autopref_multipass_data_): Remove
9801 multi_mem_insn_p, min_offset and max_offset.
9802
9803 2017-10-04 Jakub Jelinek <jakub@redhat.com>
9804
9805 PR tree-optimization/82381
9806 * tree-ssa-reassoc.c (sort_by_operand_rank): Check for different
9807 oeN->rank first. Return 1 or -1 if one op is SSA_NAME and the other
9808 is not.
9809
9810 PR tree-optimization/82374
9811 * omp-low.c (create_omp_child_function): Copy DECL_ATTRIBUTES,
9812 DECL_FUNCTION_SPECIFIC_OPTIMIZATION,
9813 DECL_FUNCTION_SPECIFIC_TARGET and DECL_FUNCTION_VERSIONED from
9814 current_function_decl to the new decl.
9815
9816 2017-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
9817
9818 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2_HW): Define new
9819 helper macro for IEEE float128 hardware built-in functions.
9820 (SQRTF128_ODD): Add built-in functions with the round-to-odd
9821 semantics.
9822 (TRUNCF128_ODD): Likewise.
9823 (ADDF128_ODD): Likewise.
9824 (SUBF128_ODD): Likewise.
9825 (MULF128_ODD): Likewise.
9826 (DIVF128_ODD): Likewise.
9827 (FMAF128_ODD): Likewise.
9828 * config/rs6000/rs6000.md (UNSPEC_ROUND_TO_ODD): Rename to
9829 UNSPEC_TRUNC_ROUND_TO_ODD.
9830 (UNSPEC_TRUNC_ROUND_TO_ODD): Likewise.
9831 (UNSPEC_ADD_ROUND_TO_ODD): New unspec codes for the IEEE 128-bit
9832 floating point round to odd instructions.
9833 (UNSPEC_SUB_ROUND_TO_ODD): Likewise.
9834 (UNSPEC_MUL_ROUND_TO_ODD): Likewise.
9835 (UNSPEC_DIV_ROUND_TO_ODD): Likewise.
9836 (UNSPEC_FMA_ROUND_TO_ODD): Likewise.
9837 (UNSPEC_SQRT_ROUND_TO_ODD): Likewise.
9838 (trunc<mode>sf2_hw): Change the truncate with round to odd
9839 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD.
9840 (add<mode>3_odd): Add insns for IEEE 128-bit floating point round
9841 to odd hardware instructions.
9842 (sub<mode>3_odd): Likewise.
9843 (mul<mode>3_odd): Likewise.
9844 (div<mode>3_odd): Likewise.
9845 (sqrt<mode>2_odd): Likewise.
9846 (fma<mode>4_odd): Likewise.
9847 (fms<mode>4_odd): Likewise.
9848 (nfma<mode>4_odd): Likewise.
9849 (nfms<mode>4_odd): Likewise.
9850 (trunc<mode>df2_odd): Change the truncate with round to odd
9851 expansion to use UNSPEC_TRUNC_ROUND_TO_ODD. Add a generator
9852 function.
9853 * doc/extend.texi (PowerPC built-in functions): Update documentation
9854 for existing IEEE float128-bit built-in functions. Add built-in
9855 functions that generate the IEEE 128-bit floating point round to
9856 odd instructions.
9857
9858 2017-10-03 Segher Boessenkool <segher@kernel.crashing.org>
9859
9860 PR rtl-optimization/77729
9861 * simplify-rtx.c (simplify_binary_operation_1): Delete the (X&C1)|C2
9862 to (X&(C1&~C2))|C2 transformations.
9863
9864 2017-10-03 Martin Jambor <mjambor@suse.cz>
9865
9866 PR tree-optimization/82363
9867 * tree-sra.c (propagate_subaccesses_across_link): In unrecoverable
9868 mismatch, mark lacc written regardless of racc.
9869
9870 2017-10-03 Jakub Jelinek <jakub@redhat.com>
9871
9872 PR tree-optimization/82381
9873 * tree-ssa-reassoc.c (sort_by_operand_rank): Don't check
9874 stmt_to_insert nor wheather SSA_NAMEs are default defs.
9875 Return 1 or -1 if one of bba and bbb is NULL. If bb_rank is equal,
9876 fallthrough into reassoc_stmt_dominates_stmt_p.
9877
9878 PR target/82386
9879 * combine.c (combine_instructions): Don't combine in unreachable
9880 basic blocks.
9881
9882 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
9883
9884 PR target/80210
9885 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
9886 function to not use the have_cpu variable. Do not set cpu_index,
9887 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
9888 or the default cpu.
9889 (rs6000_valid_attribute_p): Remove duplicate initializations of
9890 old_optimize and func_optimize.
9891 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
9892 (rs6000_activate_target_options): Make global.
9893 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
9894 prototype.
9895
9896 2017-10-02 Jakub Jelinek <jakub@redhat.com>
9897
9898 * tree-dfa.c (get_ref_base_and_extent): Set *pmax_size to -1
9899 if *poffset + *pmax_size overflows in HOST_WIDE_INT.
9900 Set *poffset to 0 and *psize and *pmax_size to -1 if
9901 *poffset + *psize overflows in HOST_WIDE_INT.
9902
9903 PR tree-optimization/82387
9904 PR tree-optimization/82388
9905 PR tree-optimization/82389
9906 * tree-ssa-dse.c (dse_classify_store): Test byte_tracking_enabled
9907 instead of live_bytes non-NULL.
9908
9909 2017-10-02 Georg-Johann Lay <avr@gjlay.de>
9910
9911 PR target/41076
9912 * confg/avr/avr.md (*iorhi3.ashift8-ext.zerox): Add "r,r,0"
9913 alternative.
9914
9915 2017-10-02 Richard Biener <rguenther@suse.de>
9916
9917 * graphite-isl-ast-to-gimple.c (set_codegen_error): With
9918 -fchecking and --param graphite-allow-codegen-errors=0 ICE.
9919 * params.def (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): New param.
9920
9921 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
9922
9923 * tree.h (wi::int_traits <const_tree>::decompose): Assert that the
9924 requested precision matches the type's.
9925 * calls.c (alloc_max_size): Calculate the new candidate size as
9926 a widest_int and use wi::to_widest when comparing it with the
9927 current candidate size.
9928 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Compare with
9929 zero rather than integer_zero_node.
9930 * match.pd: Check for a no-op conversion before using wi::add
9931 rather than after. Use tree_to_uhwi when summing small shift
9932 counts into an unsigned int.
9933
9934 2017-10-02 Richard Sandiford <richard.sandiford@linaro.org>
9935 Alan Hayward <alan.hayward@arm.com>
9936 David Sherwood <david.sherwood@arm.com>
9937
9938 PR target/71307
9939 * config/aarch64/aarch64.h (POINTER_AND_FP_REGS): New reg class.
9940 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly.
9941 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
9942 POINTER_AND_FP_REGS.
9943
9944 2017-10-02 Richard Biener <rguenther@suse.de>
9945
9946 PR tree-optimization/82355
9947 * graphite-isl-ast-to-gimple.c (build_iv_mapping): Also build
9948 a mapping for the enclosing loop but avoid generating one for
9949 the loop tree root.
9950 (copy_bb_and_scalar_dependences): Remove premature codegen
9951 error on PHIs in blocks duplicated into multiple places.
9952 * graphite-scop-detection.c
9953 (scop_detection::stmt_has_simple_data_refs_p): For a loop not
9954 in the region use it as loop and nest to analyze the DR in.
9955 (try_generate_gimple_bb): Likewise.
9956 * graphite-sese-to-poly.c (extract_affine_chrec): Adjust.
9957 (add_loop_constraints): For blocks in a loop not in the region
9958 create a dimension with a single iteration.
9959 * sese.h (gbb_loop_at_index): Remove assert.
9960
9961 2017-10-01 Kevin Buettner <kevinb@redhat.com>
9962
9963 * omp-expand.c (adjust_context_scope): New function.
9964 (expand_parallel_call): Call adjust_context_scope.
9965
9966 2017-10-01 Jeff Law <law@redhat.com>
9967
9968 * tree-ssa-dom.c (optimize_stmt): Make this a method within the
9969 dom_opt_dom_walker class with direct access to private members.
9970 Add comments. Call test_for_singularity.
9971 (dom_opt_dom_walker::before_dom_children): Corresponding changes.
9972 (dom_opt_dom_walker::after_dom_children): Do not lazily initialize
9973 m_dummy_cond anymore.
9974 (class dom_opt_dom_walker): Initialize m_dummy_cond member in the
9975 class ctor.
9976 (pass_dominator:execute): Build the dummy_cond here and pass it
9977 to the dom_opt_dom_walker ctor.
9978 (test_for_singularity): New function.
9979
9980 2017-09-30 Krister Walfridsson <krister.walfridsson@gmail.com>
9981 Maya Rashish <coypu@sdf.org>
9982
9983 * config.gcc (*-*-netbsd*): New variable nbsd_tm_file containing
9984 netbsd.h, netbsd-stdint.h, and netbsd-elf.h.
9985 (alpha*-*-netbsd*) Use nbsd_tm_file.
9986 (arm*-*-netbsdelf*) Likewise.
9987 (i[34567]86-*-netbsdelf*) Likewise.
9988 (x86_64-*-netbsd*) Likewise.
9989 (mips*-*-netbsd*) Likewise.
9990 (powerpc-*-netbsd*) Likewise.
9991 (sh*-*-netbsd*) Likewise.
9992 (sparc-*-netbsdelf*) Likewise.
9993 (sparc64-*-netbsd*) Likewise.
9994 (m68k*-*-netbsdelf*) Use nbsd_tm_file and add CHAR_FAST8/SHORT_FAST16
9995 to tm_defines.
9996 (vax-*-netbsdelf*) Likewise.
9997 * config/netbsd-stdint.h (INT_FAST8_TYPE): Check CHAR_FAST8.
9998 (UINT_FAST8_TYPE) Likewise.
9999 (INT_FAST16_TYPE) Check CHAR_FAST16.
10000 (UINT_FAST16_TYPE) Likewise.
10001
10002 2017-09-30 Jakub Jelinek <jakub@redhat.com>
10003
10004 PR target/82361
10005 * config/i386/i386.md
10006 (TARGET_USE_8BIT_IDIV zext divmodsi4 splitter): New define_split.
10007 (divmodsi4_zext_1, divmodsi4_zext_2, *divmodsi4_zext_1,
10008 *divmodsi4_zext_2): New define_insn_and_split.
10009 (*divmodsi4_noext_zext_1, *divmodsi4_noext_zext_2): New define_insn.
10010 (TARGET_USE_8BIT_IDIV zext udivmodsi4 splitter): New define_split.
10011 (udivmodsi4_zext_1, udivmodsi4_zext_2, *udivmodsi4_zext_1,
10012 *udivmodsi4_zext_2, *udivmodsi4_pow2_zext_1, *udivmodsi4_pow2_zext_2):
10013 New define_insn_and_split.
10014 (*udivmodsi4_noext_zext_1, *udivmodsi4_noext_zext_2): New define_insn.
10015 * config/i386/i386.c (ix86_split_idivmod): Handle operands[0] or
10016 operands[1] having DImode when mode is SImode.
10017
10018 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
10019 always SImode for DIV and MOD in REG_EQUAL notes.
10020
10021 2017-09-29 Yury Gribov <tetra2005@gmail.com>
10022
10023 PR middle-end/82319
10024 * match.pd: Fix handling of NaNs in pattern.
10025
10026 2017-09-29 Jeff Law <law@redhat.com>
10027
10028 * sbitmap.c (bitmap_bit_in_range_p): New function.
10029 * sbitmap.h (bitmap_bit_in_range_p): Prototype.
10030 * tree-ssa-dse.c (live_bytes_read): New function.
10031 (dse_classify_store): Ignore reads of dead bytes.
10032
10033 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Fix
10034 typos and whitespace errors.
10035 * config/i386/predicates.md (address_no_seg_operand): Likewise.
10036 * config/s390/s390.c (s390_emit_prologue): Likewise.
10037
10038 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
10039
10040 PR target/81481
10041 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
10042 with a symbol for LRA.
10043
10044 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
10045
10046 PR rtl-optimization/82338
10047 * lra-constraints.c (inherit_in_ebb): Check usage_insns check.
10048
10049 2017-09-29 Alexander Monakov <amonakov@ispras.ru>
10050
10051 * genmodes.c (calc_wider_mode): Suppress qsort macro.
10052 * system.h [CHECKING_P] (qsort): Redirect to qsort_chk.
10053 (qsort_chk): Declare.
10054 * vec.c [CHECKING_P] (qsort_chk_error): New static function.
10055 (qsort_chk): New function.
10056
10057 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10058
10059 PR tree-optimization/82337
10060 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
10061 phi definition if the PHI result appears in an abnormal PHI.
10062 (find_basis_for_base_expr): Don't record a basis if the LHS of the
10063 basis appears in an abnormal PHI.
10064
10065 2017-09-29 Richard Biener <rguenther@suse.de>
10066
10067 * graphite-isl-ast-to-gimple.c
10068 (translate_isl_ast_to_gimple::set_codegen_error): New function.
10069 (binary_op_to_tree): Use it.
10070 (get_rename_from_scev): Likewise.
10071 (copy_loop_phi_nodes): Likewise.
10072 (copy_bb_and_scalar_dependences): Likewise.
10073 (translate_pending_phi_nodes): Likewise.
10074
10075 2017-09-29 Jakub Jelinek <jakub@redhat.com>
10076
10077 PR target/82339
10078 * config/i386/i386.md (*movdi_internal peephole2): New -Os peephole
10079 for movabsq $(i32 << shift), r64.
10080
10081 2017-09-28 Uros Bizjak <ubizjak@gmail.com>
10082
10083 * config/i386/i386.c (ix86_print_operand_address_as): Do not check
10084 index when encoding %esp as %rsp to avoid 0x67 prefix.
10085
10086 2017-09-28 Sergey Shalnov <Sergey.Shalnov@intel.com>
10087
10088 * config/i386/i386.md (*movsf_internal, *movdf_internal):
10089 Return 256-bit AVX modes for TARGET_PREFER_AVX256.
10090
10091 2017-09-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
10092
10093 * config/arm/arm.c (arm_option_override): Forbid ARMv8-M Security
10094 Extensions with more than 16 double VFP registers.
10095 (cmse_nonsecure_entry_clear_before_return): Remove second entry of
10096 to_clear_mask and all code related to it. Replace the remaining
10097 entry by a sbitmap and adapt code accordingly.
10098
10099 2017-09-28 Henry Linjamäki <henry.linjamaki@parmance.com>
10100
10101 * brig-builtins.def: Change pure attributes to const.
10102
10103 2017-09-28 Joseph Myers <joseph@codesourcery.com>
10104
10105 * config.gcc (default_gnu_indirect_function): Default to yes for
10106 sparc*-*-linux* with glibc.
10107
10108 2017-09-28 Joseph Myers <joseph@codesourcery.com>
10109
10110 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
10111 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
10112 when creating .init_array and .fini_array sections with priority
10113 specified.
10114
10115 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
10116
10117 PR target/71727
10118 * config/aarch64/aarch64.c
10119 (aarch64_builtin_support_vector_misalignment): Always return false
10120 when misalignment is unknown.
10121
10122 2017-09-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
10123
10124 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Revise
10125 this function to return false if the definition used by the swap
10126 instruction is artificial, or if the memory address from which the
10127 constant value is loaded is not represented by a base address held
10128 in a register or if the base address register is a frame or stack
10129 pointer. Additionally, return false if the base address of the
10130 loaded constant is a SYMBOL_REF but is not considered to be a
10131 constant.
10132 (replace_swapped_load_constant): New function.
10133 (rs6000_analyze_swaps): Add a new pass to replace a swap of a
10134 loaded constant vector with a load of a swapped constant vector.
10135
10136 2017-09-27 Carl Love <cel@us.ibm.com>
10137
10138 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro.
10139 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins.
10140 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the
10141 fctiw instruction.
10142
10143 2017-09-27 Alexander Monakov <amonakov@ispras.ru>
10144
10145 * haifa-sched.c (autopref_rank_for_schedule): Order 'irrelevant' insns
10146 first, always call autopref_rank_data otherwise.
10147
10148 2017-09-27 Richard Biener <rguenther@suse.de>
10149
10150 * graphite-scop-detection.c (find_scop_parameters): Move
10151 loop bound handling ...
10152 (gather_bbs::before_dom_children): ... here, avoiding the need
10153 to build scop_info->loop_nest.
10154 (record_loop_in_sese): Remove.
10155 * sese.h (sese_info_t::loop_nest): Remove.
10156 * sese.c (new_sese_info): Do not allocate loop_nest.
10157 (free_sese_info): Do not free loop_nest.
10158
10159 2017-09-27 Jakub Jelinek <jakub@redhat.com>
10160
10161 PR c++/82159
10162 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
10163 lhs from calls if the lhs has addressable type.
10164
10165 2017-09-27 Richard Biener <rguenther@suse.de>
10166
10167 * graphite.h (scop::max_alias_set): New member.
10168 * graphite-scop-detection.c: Remove references to non-existing
10169 --param in comments.
10170 (build_alias_sets): Record the maximum alias set used for drs.
10171 (build_scops): Support zero as unlimited for
10172 --param graphite-max-arrays-per-scop.
10173 * graphite-sese-to-poly.c (add_scalar_version_numbers): Remove
10174 and inline into ...
10175 (build_poly_sr_1): ... here. Compute alias set based on the
10176 maximum alias set used for drs rather than
10177 PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP
10178
10179 2017-09-27 Richard Biener <rguenther@suse.de>
10180
10181 * graphite-optimize-isl.c (get_schedule_for_node_st): Allow
10182 --param loop-block-tile-size=0 to disable tiling.
10183
10184 2017-09-27 Richard Biener <rguenther@suse.de>
10185
10186 * doc/invoke.texi (graphite-max-bbs-per-function): Remove.
10187 (graphite-max-nb-scop-params): Document special value zero.
10188 * domwalk.h (dom_walker::STOP): New symbolical constant.
10189 (dom_walker::dom_walker): Add optional parameter for bb to
10190 RPO mapping.
10191 (dom_walker::~dom_walker): Declare.
10192 (dom_walker::before_dom_children): Document STOP return value.
10193 (dom_walker::m_user_bb_to_rpo): New member.
10194 (dom_walker::m_bb_to_rpo): Likewise.
10195 * domwalk.c (dom_walker::dom_walker): Compute bb to RPO
10196 mapping here if not provided by the user.
10197 (dom_walker::~dom_walker): Free bb to RPO mapping if not
10198 provided by the user.
10199 (dom_walker::STOP): Define.
10200 (dom_walker::walk): Do not compute bb to RPO mapping here.
10201 Support STOP return value from before_dom_children to stop
10202 walking.
10203 * graphite-optimize-isl.c (optimize_isl): If the schedule
10204 is the same still generate code if -fgraphite-identity
10205 or -floop-parallelize-all are given.
10206 * graphite-scop-detection.c: Include cfganal.h.
10207 (gather_bbs::gather_bbs): Get and pass through bb to RPO
10208 mapping.
10209 (gather_bbs::before_dom_children): Return STOP for BBs
10210 not in the region.
10211 (build_scops): Compute bb to RPO mapping and pass it to
10212 the domwalk. Treat --param graphite-max-nb-scop-params=0
10213 as not limiting the number of params.
10214 * graphite.c (graphite_initialize): Remove limit on the
10215 number of basic-blocks in a function.
10216 * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Remove.
10217 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Adjust to documented
10218 default value of 10.
10219
10220 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
10221
10222 * config/rs6000/vsx.md (peephole for optimizing move SF to GPR):
10223 Adjust code to eliminate needing to do the shift right 32-bits
10224 operation after XSCVDPSPN.
10225
10226 2017-09-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10227
10228 * match.pd ((X / Y) == 0 -> X < Y): New pattern.
10229 ((X / Y) != 0 -> X >= Y): Likewise.
10230
10231 2017-09-26 Carl Love <cel@us.ibm.com>
10232
10233 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_XL_LEN_R,
10234 P9V_BUILTIN_VEC_XST_LEN_R): Add support for builtins
10235 vector unsigned char vec_xl_len_r (unsigned char *, size_t);
10236 void vec_xst_len_r (vector unsigned char, unsigned char *, size_t);
10237 * config/rs6000/altivec.h (vec_xl_len_r, vec_xst_len_r): Add defines.
10238 * config/rs6000/rs6000-builtin.def (XL_LEN_R, XST_LEN_R): Add
10239 definitions and overloading.
10240 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case
10241 statement for P9V_BUILTIN_XST_LEN_R.
10242 (altivec_init_builtins): Add def_builtin for P9V_BUILTIN_STXVLL.
10243 * config/rs6000/vsx.md (lxvll, stxvll, xl_len_r, xst_len_r): Add
10244 define_expand and define_insn for the instructions and builtins.
10245 * doc/extend.texi: Update the built-in documentation file for the new
10246 built-in functions.
10247 * config/rs6000/altivec.md (altivec_lvsl_reg, altivec_lvsr_reg): Add
10248 define_insn for the instructions
10249
10250 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
10251
10252 PR target/39570
10253 * gcc/config/netbsd-protos.h: New file.
10254 * gcc/config/netbsd.c: New file.
10255 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
10256 * gcc/config/t-netbsd: New file.
10257 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
10258 (tmake_file) Add t-netbsd.
10259 (extra_objs) Add netbsd.o.
10260
10261 2017-09-26 Janus Weil <janus@gcc.gnu.org>
10262
10263 PR fortran/82143
10264 PR fortran/82324
10265 * doc/sourcebuild.texi: Document fortran_real_10 and fortran_real_16.
10266
10267 2017-09-26 Michael Meissner <meissner@linux.vnet.ibm.com>
10268
10269 * config/rs6000/rs6000.md (extendsi<mode>2): Add a splitter to do
10270 sign extension from a vector register to a GPR by doing a 32-bit
10271 direct move and then an EXTSW.
10272 (extendsi<mode>2 splitter): Likewise.
10273 (movsi_from_sf): Adjust code to eliminate doing a 32-bit shift
10274 right or vector extract after doing XSCVDPSPN. Use
10275 zero_extendsidi2 instead of p8_mfvsrd_4_disf to move the value to
10276 the GPRs.
10277 (movdi_from_sf_zero_ext): Likewise.
10278 (reload_gpr_from_vsxsf): Likewise.
10279 (p8_mfvsrd_4_disf): Delete, no longer used.
10280 (movsi_from_df): Optimize converting a DFmode to a SFmode, and
10281 then needing to move the SFmode to a GPR to use the XSCVDPSP
10282 instruction instead of FRSP and XSCVDPSPN.
10283 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Move insn so that
10284 it is adjacent to the other XSCVSPDP insns.
10285 (vsx_xscvdpsp_scalar): Use "ww" constraint instead of "f" to allow
10286 SFmode to be in traditional Altivec registers.
10287 (vsx_xscvdpspn): Eliminate useless alternative constraint.
10288 (vsx_xscvspdpn): Likewise.
10289 (vsx_xscvspdpn_scalar): Likewise.
10290
10291 2017-09-26 Martin Jambor <mjambor@suse.cz>
10292
10293 * tree-sra.c (compare_access_positions): Put integral types first,
10294 stabilize sorting of integral types, remove conditions putting
10295 non-full-precision integers last.
10296 (sort_and_splice_var_accesses): Disable scalarization if a
10297 non-integert would be represented by a non-full-precision integer.
10298
10299 2017-09-26 Joseph Myers <joseph@codesourcery.com>
10300
10301 * config/microblaze/linux.h (TARGET_ASM_FILE_END): Likewise.
10302 * config/pa/pa.h (NEED_INDICATE_EXEC_STACK): Likewise.
10303 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Likewise.
10304 * config/pa/pa.c (pa_hpux_file_end): Rename to pa_file_end.
10305 Define unconditionally, with [ASM_OUTPUT_EXTERNAL_REAL]
10306 conditionals inside the function instead of around it. Call
10307 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK.
10308 (TARGET_ASM_FILE_END): Define unconditionally to pa_file_end.
10309
10310 2017-09-26 Richard Biener <rguenther@suse.de>
10311
10312 * graphite-scop-detection.c (scop_detection::build_scop_depth): Rewrite,
10313 fold in ...
10314 (scop_detection::build_scop_breadth): ... this. Removed.
10315 (scop_detection::loop_is_valid_in_scop): Fold into single caller.
10316 (scop_detection::harmful_stmt_in_bb): Likewise.
10317 (scop_detection::graphite_can_represent_stmt): Likewise.
10318 (scop_detection::loop_body_is_valid_scop): Likewise. Remove recursion.
10319 (scop_detection::can_represent_loop): Remove recursion, fold in ...
10320 (scop_detection::can_represent_loop_1): ... this. Removed.
10321 (scop_detection::harmful_loop_in_region): Simplify after inlining
10322 the above and remove more quadraticness.
10323 (build_scops): Adjust.
10324 * tree-data-ref.c (loop_nest_has_data_refs): Remove pointless
10325 quadraticness.
10326
10327 2017-09-26 Jakub Jelinek <jakub@redhat.com>
10328
10329 PR target/82267
10330 * config/i386/i386.c (ix86_print_operand_address_as): Only test
10331 REGNO (base) == SP_REG if base is a REG.
10332
10333 PR middle-end/35691
10334 * tree-ssa-reassoc.c (update_range_test): Dump r->exp each time
10335 if it is different SSA_NAME.
10336 (optimize_range_tests_cmp_bitwise): New function.
10337 (optimize_range_tests): Call it.
10338
10339 2017-09-26 Richard Biener <rguenther@suse.de>
10340
10341 PR tree-optimization/82321
10342 * graphite.c (canonicalize_loop_closed_ssa): Properly check
10343 for the def being inside the loop.
10344
10345 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10346
10347 * config/s390/vx-builtins.md ("vmslg"): Add missing operand in
10348 assembler output.
10349 * config/s390/s390-builtins.def: Fix constraint on op4.
10350
10351 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10352
10353 * config/s390/s390.c (s390_expand_vec_compare): Use the new mode
10354 independent expanders.
10355 * config/s390/vector.md ("vec_cmpuneq", "vec_cmpltgt")
10356 ("vec_ordered", "vec_unordered"): New expanders.
10357
10358 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10359
10360 * config/s390/s390.c (s390_preferred_simd_mode): Return V4SFmode
10361 for SFmode.
10362
10363 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10364
10365 * config/s390/vector.md ("vec_unpacks_low_v16qi"): Rename to
10366 vec_unpacks_lo_v16qi.
10367 ("vec_unpacku_low_v16qi"): Rename to vec_unpacku_lo_v16qi.
10368
10369 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10370
10371 * config/s390/vector.md ("vec_unpacks_lo_v4sf")
10372 ("vec_unpacks_hi_v4sf", "vec_unpacks_lo_v2df")
10373 ("vec_unpacks_hi_v2df", "vec_pack_trunc_v2df"): New expanders.
10374
10375 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10376
10377 * config/s390/predicates.md ("const_shift_by_byte_operand"): New
10378 predicate.
10379 * config/s390/vector.md ("*vec_srb<mode>"): Change modes to V_128
10380 and V16QI.
10381 ("*vec_slb<mode>"): New insn pattern.
10382 ("vec_shr_<mode>"): New expander.
10383 * config/s390/vx-builtins.md ("vec_slb<mode>"): Turn into expander
10384 and force the shift count operand to V16QImode.
10385 ("vec_srb<mode>"): Set shift count mode to V16QI.
10386
10387 2017-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10388
10389 * config/s390/vector.md ("vec_widen_umult_lo_<mode>")
10390 ("vec_widen_umult_hi_<mode>", "vec_widen_smult_lo_<mode>")
10391 ("vec_widen_smult_hi_<mode>"): New expander definitions.
10392
10393 2017-09-26 Richard Earnshaw <rearnsha@arm.com>
10394
10395 PR target/82175
10396 * config/arm/arm.h (DRIVER_SELF_SPECS): Separate sub-rules with commas.
10397
10398 2017-09-26 Richard Biener <rguenther@suse.de>
10399
10400 PR tree-optimization/82320
10401 * tree-ssa-sccvn.c (set_ssa_val_to): Changing undef to undef
10402 isn't a change.
10403
10404 2017-09-25 Jeff Law <law@redhat.com>
10405
10406 * config/rs6000/rs6000-protos.h (output_probe_stack_range): Update
10407 prototype for new argument.
10408 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack_1): New function,
10409 mostly extracted from rs6000_emit_allocate_stack.
10410 (rs6000_emit_probe_stack_range_stack_clash): New function.
10411 (rs6000_emit_allocate_stack): Call
10412 rs6000_emit_probe_stack_range_stack_clash as needed.
10413 (rs6000_emit_probe_stack_range): Add additional argument
10414 to call to gen_probe_stack_range{si,di}.
10415 (output_probe_stack_range): New.
10416 (output_probe_stack_range_1): Renamed from output_probe_stack_range.
10417 (output_probe_stack_range_stack_clash): New.
10418 (rs6000_emit_prologue): Emit notes into dump file as requested.
10419 * rs6000.md (allocate_stack): Handle -fstack-clash-protection.
10420 (probe_stack_range<P:mode>): Operand 0 is now early-clobbered.
10421 Add additional operand and pass it to output_probe_stack_range.
10422
10423 2017-09-25 Bin Cheng <bin.cheng@arm.com>
10424
10425 PR tree-optimization/82163
10426 * tree-ssa-loop-manip.h (verify_loop_closed_ssa): New parameter.
10427 (checking_verify_loop_closed_ssa): New parameter.
10428 * tree-ssa-loop-manip.c (check_loop_closed_ssa_use): Delete.
10429 (check_loop_closed_ssa_stmt): Delete.
10430 (check_loop_closed_ssa_def, check_loop_closed_ssa_bb): New functions.
10431 (verify_loop_closed_ssa): Check loop closed ssa form for LOOP.
10432 (tree_transform_and_unroll_loop): Check loop closed ssa form only for
10433 changed loops.
10434
10435 2017-09-25 Pekka Jaaskelainen <pekka@parmance.com>
10436
10437 * brig-builtins.def: Treat HSAIL barrier builtins as
10438 setjmp/longjump style functions.
10439
10440 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
10441
10442 * target.def (constant_alignment): New hook.
10443 * defaults.h (CONSTANT_ALIGNMENT): Delete.
10444 * doc/tm.texi.in (CONSTANT_ALIGNMENT): Replace with...
10445 (TARGET_CONSTANT_ALIGNMENT): ...this new hook.
10446 * doc/tm.texi: Regenerate.
10447 * targhooks.h (default_constant_alignment): Declare.
10448 (constant_alignment_word_strings): Likewise.
10449 * targhooks.c (default_constant_alignment): New function.
10450 (constant_alignment_word_strings): Likewise.
10451 * builtins.c (get_object_alignment_2): Use targetm.constant_alignment
10452 instead of CONSTANT_ALIGNMENT.
10453 * varasm.c (align_variable, get_variable_align, build_constant_desc)
10454 (force_const_mem): Likewise.
10455 * config/aarch64/aarch64.h (CONSTANT_ALIGNMENT): Delete.
10456 * config/aarch64/aarch64.c (aarch64_constant_alignment): New function.
10457 (aarch64_classify_address): Call it instead of CONSTANT_ALIGNMENT.
10458 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10459 * config/alpha/alpha.h (CONSTANT_ALIGNMENT): Delete commented-out
10460 definition.
10461 * config/arc/arc.h (CONSTANT_ALIGNMENT): Delete.
10462 * config/arc/arc.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10463 constant_alignment_word_strings.
10464 * config/arm/arm.h (CONSTANT_ALIGNMENT_FACTOR): Delete.
10465 (CONSTANT_ALIGNMENT): Likewise.
10466 * config/arm/arm.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10467 (arm_constant_alignment): New function.
10468 * config/bfin/bfin.h (CONSTANT_ALIGNMENT): Delete.
10469 * config/bfin/bfin.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10470 constant_alignment_word_strings.
10471 * config/cr16/cr16.h (CONSTANT_ALIGNMENT): Delete.
10472 * config/cr16/cr16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10473 constant_alignment_word_strings.
10474 * config/cris/cris.h (CONSTANT_ALIGNMENT): Delete.
10475 * config/cris/cris.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10476 (cris_constant_alignment): New function.
10477 * config/epiphany/epiphany.h (CONSTANT_ALIGNMENT): Delete.
10478 * config/epiphany/epiphany.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10479 (epiphany_constant_alignment): New function.
10480 * config/fr30/fr30.h (CONSTANT_ALIGNMENT): Delete.
10481 * config/fr30/fr30.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10482 constant_alignment_word_strings.
10483 * config/frv/frv.h (CONSTANT_ALIGNMENT): Delete.
10484 * config/frv/frv.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10485 constant_alignment_word_strings.
10486 * config/ft32/ft32.h (CONSTANT_ALIGNMENT): Delete.
10487 * config/ft32/ft32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10488 constant_alignment_word_strings.
10489 * config/i386/i386.h (CONSTANT_ALIGNMENT): Delete.
10490 * config/i386/i386-protos.h (ix86_constant_alignment): Delete.
10491 * config/i386/i386.c (ix86_constant_alignment): Make static.
10492 Use the same interface as the target hook.
10493 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10494 * config/ia64/ia64.h (CONSTANT_ALIGNMENT): Delete.
10495 * config/ia64/ia64.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10496 constant_alignment_word_strings.
10497 * config/iq2000/iq2000.h (CONSTANT_ALIGNMENT): Delete.
10498 * config/iq2000/iq2000.c (iq2000_constant_alignment): New function.
10499 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10500 * config/lm32/lm32.h (CONSTANT_ALIGNMENT): Delete.
10501 * config/lm32/lm32.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10502 constant_alignment_word_strings.
10503 * config/m32r/m32r.h (CONSTANT_ALIGNMENT): Delete.
10504 * config/m32r/m32r.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10505 constant_alignment_word_strings.
10506 * config/mcore/mcore.h (CONSTANT_ALIGNMENT): Delete.
10507 * config/mcore/mcore.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10508 constant_alignment_word_strings.
10509 * config/microblaze/microblaze.h (CONSTANT_ALIGNMENT): Delete.
10510 * config/microblaze/microblaze.c (microblaze_constant_alignment):
10511 New function.
10512 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10513 * config/mips/mips.h (CONSTANT_ALIGNMENT): Delete.
10514 * config/mips/mips.c (mips_constant_alignment): New function.
10515 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10516 * config/mmix/mmix.h (CONSTANT_ALIGNMENT): Delete.
10517 * config/mmix/mmix-protos.h (mmix_constant_alignment): Delete.
10518 * config/mmix/mmix.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10519 (mmix_constant_alignment): Make static. Use the same interface
10520 as the target hook.
10521 * config/moxie/moxie.h (CONSTANT_ALIGNMENT): Delete.
10522 * config/moxie/moxie.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10523 constant_alignment_word_strings.
10524 * config/nios2/nios2.h (CONSTANT_ALIGNMENT): Delete.
10525 * config/nios2/nios2.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10526 constant_alignment_word_strings.
10527 * config/pa/pa.h (CONSTANT_ALIGNMENT): Delete.
10528 * config/pa/pa.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10529 constant_alignment_word_strings.
10530 * config/powerpcspe/powerpcspe.h (CONSTANT_ALIGNMENT): Delete.
10531 * config/powerpcspe/powerpcspe.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10532 (rs6000_constant_alignment): New function.
10533 * config/riscv/riscv.h (CONSTANT_ALIGNMENT): Delete.
10534 * config/riscv/riscv.c (riscv_constant_alignment): New function.
10535 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10536 * config/rs6000/rs6000.h (CONSTANT_ALIGNMENT): Delete.
10537 * config/rs6000/rs6000.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10538 (rs6000_constant_alignment): New function.
10539 * config/s390/s390.h (CONSTANT_ALIGNMENT): Delete.
10540 * config/s390/s390.c (s390_constant_alignment): New function.
10541 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10542 * config/sh/sh.h (CONSTANT_ALIGNMENT): Delete.
10543 * config/sh/sh.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10544 constant_alignment_word_strings.
10545 * config/sparc/sparc.h (CONSTANT_ALIGNMENT): Delete.
10546 * config/sparc/sparc.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10547 (sparc_constant_alignment): New function.
10548 * config/spu/spu.h (CONSTANT_ALIGNMENT): Delete.
10549 * config/spu/spu.c (spu_constant_alignment): New function.
10550 (TARGET_CONSTANT_ALIGNMENT): Redefine.
10551 * config/stormy16/stormy16.h (CONSTANT_ALIGNMENT): Delete.
10552 * config/stormy16/stormy16.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10553 constant_alignment_word_strings.
10554 * config/tilegx/tilegx.h (CONSTANT_ALIGNMENT): Delete.
10555 * config/tilegx/tilegx.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10556 constant_alignment_word_strings.
10557 * config/tilepro/tilepro.h (CONSTANT_ALIGNMENT): Delete.
10558 * config/tilepro/tilepro.c (TARGET_CONSTANT_ALIGNMENT): Redefine to
10559 constant_alignment_word_strings.
10560 * config/visium/visium.h (CONSTANT_ALIGNMENT): Delete.
10561 * config/visium/visium.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10562 (visium_constant_alignment): New function.
10563 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT): Delete.
10564 * config/xtensa/xtensa.c (TARGET_CONSTANT_ALIGNMENT): Redefine.
10565 (xtensa_constant_alignment): New function.
10566 * system.h (CONSTANT_ALIGNMENT): Poison.
10567
10568 2017-09-25 Will Schmidt <will_schmidt@vnet.ibm.com>
10569
10570 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
10571 for early folding of vector stores (ALTIVEC_BUILTIN_ST_*).
10572 (rs6000_builtin_valid_without_lhs): New helper function.
10573 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10574 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_ST.
10575
10576 2017-09-25 Richard Sandiford <richard.sandiford@linaro.org>
10577
10578 * target.h (vec_perm_indices): Use unsigned short rather than
10579 unsigned char.
10580 (auto_vec_perm_indices): Likewise.
10581 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok):
10582 Use unsigned int rather than unsigned char.
10583 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise.
10584
10585 2017-09-25 Richard Biener <rguenther@suse.de>
10586
10587 * cfgloop.h (sort_sibling_loops): Declare.
10588 * cfgloop.c (sort_sibling_loops_cmp): New helper.
10589 (sort_sibling_loops): New function sorting the sibling loop list
10590 in RPO order.
10591 * graphite.c (graphite_transform_loops): Sort sibling loops.
10592
10593 2017-09-25 Richard Sandiford <richard.sandifird@linaro.org>
10594
10595 * target.def (vec_perm_const_ok): Change sel parameter to
10596 vec_perm_indices.
10597 * optabs-query.c (can_vec_perm_p): Update accordingly.
10598 * doc/tm.texi: Regenerate.
10599 * config/aarch64/aarch64.c (expand_vec_perm_d): Change perm to
10600 auto_vec_perm_indices and remove separate nelt field.
10601 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip)
10602 (aarch64_evpc_ext, aarch64_evpc_rev, aarch64_evpc_dup)
10603 (aarch64_evpc_tbl, aarch64_expand_vec_perm_const_1)
10604 (aarch64_expand_vec_perm_const): Update accordingly.
10605 (aarch64_vectorize_vec_perm_const_ok): Likewise. Change sel
10606 to vec_perm_indices.
10607 * config/arm/arm.c (expand_vec_perm_d): Change perm to
10608 auto_vec_perm_indices and remove separate nelt field.
10609 (arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev)
10610 (arm_evpc_neon_vtrn, arm_evpc_neon_vext, arm_evpc_neon_vtbl)
10611 (arm_expand_vec_perm_const_1, arm_expand_vec_perm_const): Update
10612 accordingly.
10613 (arm_vectorize_vec_perm_const_ok): Likewise. Change sel
10614 to vec_perm_indices.
10615 * config/i386/i386.c (ix86_vectorize_vec_perm_const_ok): Change
10616 sel to vec_perm_indices.
10617 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const_ok): Likewise.
10618 * config/mips/mips.c (mips_vectorize_vec_perm_const_ok): Likewise.
10619 * config/powerpcspe/powerpcspe.c (rs6000_vectorize_vec_perm_const_ok):
10620 Likewise.
10621 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const_ok):
10622 Likewise.
10623
10624 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
10625
10626 PR debug/82155
10627 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
10628 on the FUNCTION_DECL function context if it has a DIE that is a
10629 declaration.
10630
10631 2017-09-25 Richard Biener <rguenther@suse.de>
10632
10633 PR tree-optimization/82285
10634 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
10635 enumeral types.
10636
10637 2017-09-25 Tom de Vries <tom@codesourcery.com>
10638
10639 PR target/80035
10640 PR target/81069
10641 * config/nvptx/nvptx.c (nvptx_output_call_insn): Add exit after call to
10642 noreturn function.
10643
10644 2017-09-25 Richard Biener <rguenther@suse.de>
10645
10646 * graphite-optimize-isl.c (optimize_isl): Fail and dump if
10647 ISL errors other than isl_error_quota happen. Dump if the
10648 schedule is the same.
10649 * graphite-sese-to-poly.c (build_poly_scop): Fail on ISL
10650 errors instead of aborting inside ISL.
10651
10652 2017-09-25 Iain Sandoe <iain@codesourcery.com>
10653
10654 PR target/80556
10655 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
10656 of libgcc_eh for m64.
10657 * config/i386/darwin64.h: Likewise.
10658
10659 2017-09-25 Richard Biener <rguenther@suse.de>
10660
10661 PR middle-end/82144
10662 * dwarf2out.c (gen_enumeration_type_die): Do not add alignment
10663 attribute for incomplete types nor twice for complete ones.
10664
10665 2017-09-24 Uros Bizjak <ubizjak@gmail.com>
10666
10667 PR target/82267
10668 * config/i386/i386.c (ix86_print_operand_address_as): Encode
10669 %esp as %rsp to avoid 0x67 prefix if there is no index or base
10670 register.
10671
10672 2017-09-23 Uros Bizjak <ubizjak@gmail.com>
10673
10674 PR bootstrap/82306
10675 * config/i386/i386.opt (mprefer-avx256): Use
10676 ix86_target_flags variable.
10677 * config/i386/i386.c (ix86_target_string): Move
10678 -mprefer-avx256 to flag2_opts.
10679
10680 2017-09-22 Jakub Jelinek <jakub@redhat.com>
10681
10682 PR middle-end/35691
10683 * match.pd: Simplify x == -1 & y == -1 into (x & y) == -1
10684 and x != -1 | y != -1 into (x & y) != -1.
10685
10686 2017-09-22 Steve Ellcey <sellcey@cavium.com>
10687
10688 * config.gcc: Add new case statement to set
10689 default_gnu_indirect_function. Remove it from x86_64-*-linux*,
10690 i[34567]86-*, powerpc*-*-linux*spe*, powerpc*-*-linux*, s390-*-linux*,
10691 s390x-*-linux* case statements. Added aarch64 to the list of
10692 supported architectures.
10693
10694 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
10695
10696 PR tree-optimization/82289
10697 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Check
10698 STMT_VINFO_RELEVANT_P.
10699
10700 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
10701 Alan Hayward <alan.hayward@arm.com>
10702 David Sherwood <david.sherwood@arm.com>
10703
10704 * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert
10705 for VR_RANGE only; don't allow VR_ANTI_RANGE.
10706 (extract_range_from_binary_expr_1): Don't call
10707 extract_range_from_multiplicative_op_1 if !range_int_cst_p.
10708
10709 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
10710 Alan Hayward <alan.hayward@arm.com>
10711 David Sherwood <david.sherwood@arm.com>
10712
10713 * target.def (preferred_vector_alignment): New hook.
10714 * doc/tm.texi.in (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): New
10715 hook.
10716 * doc/tm.texi: Regenerate.
10717 * targhooks.h (default_preferred_vector_alignment): Declare.
10718 * targhooks.c (default_preferred_vector_alignment): New function.
10719 * tree-vectorizer.h (dataref_aux): Add a target_alignment field.
10720 Expand commentary.
10721 (DR_TARGET_ALIGNMENT): New macro.
10722 (aligned_access_p): Update commentary.
10723 (vect_known_alignment_in_bytes): New function.
10724 * tree-vect-data-refs.c (vect_calculate_required_alignment): New
10725 function.
10726 (vect_compute_data_ref_alignment): Set DR_TARGET_ALIGNMENT.
10727 Calculate the misalignment based on the target alignment rather than
10728 the vector size.
10729 (vect_update_misalignment_for_peel): Use DR_TARGET_ALIGMENT
10730 rather than TYPE_ALIGN / BITS_PER_UNIT to update the misalignment.
10731 (vect_enhance_data_refs_alignment): Mask the byte misalignment with
10732 the target alignment, rather than masking the element misalignment
10733 with the number of elements in a vector. Also use the target
10734 alignment when calculating the maximum number of peels.
10735 (vect_find_same_alignment_drs): Use vect_calculate_required_alignment
10736 instead of TYPE_ALIGN_UNIT.
10737 (vect_duplicate_ssa_name_ptr_info): Remove stmt_info parameter.
10738 Measure DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT.
10739 (vect_create_addr_base_for_vector_ref): Update call accordingly.
10740 (vect_create_data_ref_ptr): Likewise.
10741 (vect_setup_realignment): Realign by ANDing with
10742 -DR_TARGET_MISALIGNMENT.
10743 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Calculate
10744 the number of peels based on DR_TARGET_ALIGNMENT.
10745 * tree-vect-stmts.c (get_group_load_store_type): Compare the gap
10746 with the guaranteed alignment boundary when deciding whether
10747 overrun is OK.
10748 (vectorizable_mask_load_store): Interpret DR_MISALIGNMENT
10749 relative to DR_TARGET_ALIGNMENT instead of TYPE_ALIGN_UNIT.
10750 (ensure_base_align): Remove stmt_info parameter. Get the
10751 target base alignment from DR_TARGET_ALIGNMENT.
10752 (vectorizable_store): Update call accordingly. Interpret
10753 DR_MISALIGNMENT relative to DR_TARGET_ALIGNMENT instead of
10754 TYPE_ALIGN_UNIT.
10755 (vectorizable_load): Likewise.
10756
10757 2017-09-22 Richard Sandiford <richard.sandiford@linaro.org>
10758 Alan Hayward <alan.hayward@arm.com>
10759 David Sherwood <david.sherwood@arm.com>
10760
10761 * tree-vectorizer.h (vect_get_scalar_dr_size): New function.
10762 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use it.
10763 (vect_enhance_data_refs_alignment): Likewise.
10764
10765 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
10766
10767 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
10768 error. Only quit immediately if parsing is complete.
10769 (BEGIN): Initialize fatal_err and parse_done.
10770 (begin fpu, end fpu): Check number of arguments.
10771 (begin arch, end arch): Likewise.
10772 (begin cpu, end cpu): Likewise.
10773 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
10774 (optalias): Likewise.
10775
10776 2017-09-22 Richard Earnshaw <richard.earnshaw@arm.com>
10777
10778 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
10779 * config/arm/arm-isa.h: Delete. Move definitions to ...
10780 * arm-cpus.in: ... here. Use new feature and fgroup values.
10781 * config/arm/arm.c (arm_option_override): Use lower case for feature
10782 bit names.
10783 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
10784 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
10785 * config/arm/parsecpu.awk (END): Add new command 'isa'.
10786 (isa_pfx): Delete.
10787 (print_isa_bits_for): New function.
10788 (gen_isa): New function.
10789 (gen_comm_data): Use print_isa_bits_for.
10790 (define feature): New keyword.
10791 (define fgroup): New keyword.
10792 * config/arm/t-arm (TM_H): Remove.
10793 (GTM_H): Add arm-isa.h.
10794 (arm-isa.h): Add rule to generate file.
10795 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
10796 case for feature bit names.
10797
10798 2017-09-22 Richard Biener <rguenther@suse.de>
10799
10800 * graphite-isl-ast-to-gimple.c (graphite_verify): Inline into
10801 single caller.
10802 (graphite_regenerate_ast_isl): Do not reset SCEV. Move debug
10803 print of no dependency loops ...
10804 * graphite.c (graphite_transform_loops): ... here.
10805 (canonicalize_loop_closed_ssa_form): Work from inner to outer
10806 loops.
10807 (same_close_phi_node, remove_duplicate_close_phi,
10808 make_close_phi_nodes_unique, defined_in_loop_p): Fold into ...
10809 (canonicalize_loop_closed_ssa): ... here and simplify.
10810 * graphite-optimize-isl.c: Include tree-vectorizer.h.
10811 (optimize_isl): Use dump_printf_loc to tell when we stopped
10812 optimizing because of an ISL timeout.
10813
10814 2017-09-22 Richard Biener <rguenther@suse.de>
10815
10816 PR tree-optimization/82291
10817 * tree-if-conv.c (predicate_mem_writes): Make sure to
10818 remove writes in blocks predicated with false.
10819
10820 2017-09-22 Richard Biener <rguenther@suse.de>
10821
10822 * sese.c: Include cfganal.h.
10823 (if_region_set_false_region): Remove.
10824 (create_if_region_on_edge): Likewise.
10825 (move_sese_in_condition): Re-implement without destroying
10826 dominators.
10827
10828 2017-09-22 Richard Biener <rguenther@suse.de>
10829
10830 * graphite-isl-ast-to-gimple.c (translate_pending_phi_nodes):
10831 Verify both BBs contain loop PHI nodes before dispatching to
10832 copy_loop_phi_args.
10833 (graphite_regenerate_ast_isl): Do not recompute dominators,
10834 do not verify three times. Restructure for clarity.
10835 * graphite-scop-detection.c (same_close_phi_node,
10836 remove_duplicate_close_phi, make_close_phi_nodes_unique,
10837 defined_in_loop_p, canonicalize_loop_closed_ssa,
10838 canonicalize_loop_closed_ssa_form): Simplify, remove excess
10839 checking and SSA rewrite, move to ...
10840 * graphite.c: ... here. Include ssa.h and tree-ssa-loop-manip.h.
10841 (graphite_initialize): Do not pass in ctx, do not reset the
10842 SCEV cache, compute only dominators.
10843 (graphite_transform_loops): Allocate ISL ctx after
10844 graphite_initialize. Call canonicalize_loop_closed_ssa_form.
10845 Maintain post-dominators only around build_scops.
10846 * sese.c (if_region_set_false_region): Make static. Free
10847 and recompute dominators.
10848 (move_sese_in_condition): Assert we don't get called with
10849 post-dominators computed.
10850 * sese.h (if_region_set_false_region): Remove.
10851
10852 2017-09-22 Sergey Shalnov <sergey.shalnov@intel.com>
10853
10854 * config/i386/sse.md ("mov<mode>_internal"): Use <sseinsnmode>
10855 mode attribute for TARGET_AVX512VL.
10856
10857 2017-09-21 Sergey Shalnov <sergey.shalnov@intel.com>
10858
10859 * config/i386/i386.opt (mprefer-avx256): New option.
10860 * config/i386/i386.c (ix86_target_string): Add -mprefer-avx256
10861 to flag_opts.
10862 (ix86_preferred_simd_mode): Return 256-bit AVX modes
10863 for TARGET_PREFER_AVX256.
10864 * doc/invoke.texi (x86 Options): Document -mprefer-avx256.
10865
10866 2017-09-21 Jeff Law <law@redhat.com>
10867
10868 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash):
10869 Fix dump output if the only stack space is for pushed registers.
10870
10871 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
10872
10873 * config/spu/spu.c (spu_sched_adjust_cost): Update after renaming
10874 of insn_cost.
10875
10876 2017-09-21 Martin Sebor <msebor@redhat.com>
10877
10878 PR c/81882
10879 * doc/extend.texi (attribute ifunc): Avoid relying on ill-formed
10880 code (in C++) or code that triggers warnings.
10881
10882 2017-09-21 Eric Botcazou <ebotcazou@adacore.com>
10883
10884 * stor-layout.c (bit_from_pos): Do not distribute the conversion.
10885
10886 2017-09-21 Segher Boessenkool <segher@kernel.crashing.org>
10887
10888 * haifa-sched.c: Rename insn_cost to insn_sched_cost.
10889 * sched-rgn.c: Ditto.
10890 * sel-sched-ir.c: Ditto.
10891
10892 2017-09-21 Alexander Monakov <amonakov@ispras.ru>
10893
10894 * toplev.h (set_random_seed): Adjust return type.
10895 * toplev.c (init_local_tick): Move eager initialization of random_seed
10896 to get_random_seed. Adjust comment.
10897 (init_random_seed): Inline to get_random_seed, delete.
10898 (get_random_seed): Initialize random_seed lazily.
10899 (set_random_seed): Do not return previous value.
10900 (print_switch_value): Do not call get_random_seed.
10901
10902 2017-09-21 Evgeny Kudryashov <kudryashov@ispras.ru>
10903
10904 * cgraph.c (delete_function_version): New, broken out from...
10905 (cgraph_node::delete_function_version): ...here. Rename to
10906 cgraph_node::delete_function_version_by_decl. Update all uses.
10907 (cgraph_node::remove): Call delete_function_version.
10908
10909 2017-09-21 Jakub Jelinek <jakub@redhat.com>
10910
10911 PR sanitizer/81715
10912 * tree-inline.c (expand_call_inline): Emit clobber stmts for
10913 VAR_DECLs to which addressable non-volatile parameters are mapped
10914 and for id->retvar after the return value assignment. Clear
10915 id->retval and id->retbnd after inlining.
10916
10917 2017-09-21 Richard Biener <rguenther@suse.de>
10918
10919 PR tree-optimization/82276
10920 PR tree-optimization/82244
10921 * tree-vrp.c (build_assert_expr_for): Set
10922 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
10923 has it set.
10924 (remove_range_assertions): Revert earlier change.
10925
10926 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
10927
10928 PR target/71951
10929 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
10930
10931 2017-09-21 Richard Biener <rguenther@suse.de>
10932
10933 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
10934 Restore valid IL after code generation errors.
10935 * graphite.c (graphite_transform_loops): Diagnose code
10936 generation issues as MSG_MISSED_OPTIMIZATION and continue
10937 with processing SCOPs.
10938
10939 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
10940 Alan Hayward <alan.hayward@arm.com>
10941 David Sherwood <david.sherwood@arm.com>
10942
10943 * calls.c (compute_argument_addresses): Use simplify_gen_binary
10944 rather than choosing between plus_constant and gen_rtx_<CODE>.
10945 * expr.c (emit_push_insn): Likewise.
10946 (expand_expr_real_2): Likewise.
10947
10948 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
10949 Alan Hayward <alan.hayward@arm.com>
10950 David Sherwood <david.sherwood@arm.com>
10951
10952 * loop-unroll.c (split_iv): Call copy_rtx on the step.
10953
10954 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
10955 Alan Hayward <alan.hayward@arm.com>
10956 David Sherwood <david.sherwood@arm.com>
10957
10958 * tree.c (find_atomic_core_type): Check tree_fits_uhwi_p before
10959 calling tree_to_uhwi.
10960
10961 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
10962 Alan Hayward <alan.hayward@arm.com>
10963 David Sherwood <david.sherwood@arm.com>
10964
10965 * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for
10966 INTEGER_CST rather than a negative test for ADDR_EXPR.
10967
10968 2017-09-21 Richard Sandiford <richard.sandiford@linaro.org>
10969 Alan Hayward <alan.hayward@arm.com>
10970 David Sherwood <david.sherwood@arm.com>
10971
10972 * tree-vrp.c (extract_range_from_binary_expr_1): Check
10973 int_cst_rangeN before calling value_range_constant_singleton (&vrN).
10974
10975 2017-09-21 Richard Biener <rguenther@suse.de>
10976
10977 PR tree-optimization/71351
10978 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple::
10979 graphite_create_new_loop_guard): Remove, fold remaining parts
10980 into caller ...
10981 (translate_isl_ast_node_for): ... here and simplify.
10982
10983 2017-09-21 Jakub Jelinek <jakub@redhat.com>
10984
10985 PR target/82260
10986 * config/i386/i386.md (*movqi_internal): Replace (=q,q) alternative
10987 with (=Q,Q), (=R,R) and (=r,r) alternatives, only enable the
10988 latter two for 64-bit, renumber alternatives, for -Os imov (=q,n)
10989 alternative always use QI mode, for -Os imov (=R,R) alternative
10990 always use SI mode, for imov (=Q,Q) or (=r,r) alternatives
10991 ignore -Os.
10992
10993 2017-09-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10994 Jeff Law <law@redhat.com>
10995
10996 * config/s390/s390.c (MIN_UNROLL_PROBES): Define.
10997 (allocate_stack_space): New function, partially extracted from
10998 s390_emit_prologue.
10999 (s390_emit_prologue): Track offset to most recent stack probe.
11000 Code to allocate space moved into allocate_stack_space.
11001 Dump actions when no stack is allocated.
11002 (s390_prologue_plus_offset): New function.
11003 (s390_emit_stack_probe): Likewise.
11004
11005 2017-09-20 Alexandre Oliva <aoliva@redhat.com>
11006
11007 * common.opt (Wa, Wl, Wp, g, gz=): Add
11008 RejectNegative.
11009 (gno-column-info): Remove.
11010 (gcolumn-info): Drop RejectNegative.
11011 (gno-): New prefix.
11012 (gno-record-gcc-switches): Remove.
11013 (grecord-gcc-switches): Drop RejectNegative.
11014 (gno-split-dwarf): Remove.
11015 (gsplit-dwarf): Drop RejectNegative.
11016 (gno-strict-dwarf): Remove.
11017 (gstrict-dwarf): Drop RejectNegative.
11018 * config/darwin.opt (gfull, gused): Add RejectNegative.
11019 * dwarf2out.c (gen_producer_string): Drop
11020 gno-record-gcc-switches handler.
11021 * optc-gen.awk: Add g to prefixes with negative forms.
11022 * opts-common.c (remapping_prefix_p): New.
11023 (find_opt): Check it.
11024 (generate_canonical_option): Test g prefix.
11025 (option_map): Add -gno- mapping.
11026 (add_misspelling_candidates): Check remapping_prefix_p.
11027
11028 2017-09-20 Jeff Law <law@redhat.com>
11029
11030 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Fix
11031 thinko in stack clash protection support.
11032
11033 * explow.c (compute_stack_clash_protection_loop_data): Use
11034 CONST_INT_P instead of explicit test. Verify object is a
11035 CONST_INT_P before looking at INTVAL.
11036 (anti_adjust_stack_and_probe_stack_clash): Use CONST_INT_P
11037 instead of explicit test.
11038
11039 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
11040
11041 PR target/77687
11042 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
11043 address instead of to r1 and r11.
11044
11045 2017-09-20 Sebastian Peryt <sebastian.peryt@intel.com>
11046
11047 * config.gcc: Support "knm".
11048 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "knm".
11049 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
11050 PROCESSOR_KNM.
11051 * config/i386/i386.c (m_KNM): Define.
11052 (processor_target_table): Add "knm".
11053 (PTA_KNM): Define.
11054 (ix86_option_override_internal): Add "knm".
11055 (ix86_issue_rate): Add PROCESSOR_KNM.
11056 (ix86_adjust_cost): Ditto.
11057 (ia32_multipass_dfa_lookahead): Ditto.
11058 (get_builtin_code_for_version): Handle PROCESSOR_KNM.
11059 (fold_builtin_cpu): Add M_INTEL_KNM.
11060 * config/i386/i386.h (processor_costs): Define TARGET_KNM.
11061 (processor_type): Add PROCESSOR_KNM.
11062 * config/i386/x86-tune.def: Add m_KNM.
11063 * doc/invoke.texi: Add knm as x86 -march=/-mtune= CPU type.
11064
11065 2017-09-20 Richard Biener <rguenther@suse.de>
11066
11067 PR tree-optimization/80213
11068 * graphite-scop-detection.c (trivially_empty_bb_p): Labels
11069 are allowed in empty BBs as well.
11070 (canonicalize_loop_closed_ssa): Also look for other complex
11071 edges.
11072 (scop_detection::get_sese): Include the loop-closed PHI block
11073 in loop SESEs.
11074 (scop_detection::merge_sese): Remove code adding extra blocks.
11075 (scop_detection::region_has_one_loop): Adjust for get_sese changes.
11076 (build_scops): Assert the final returned scop is invalid.
11077
11078 2017-09-20 Richard Biener <rguenther@suse.de>
11079
11080 PR tree-optimization/82264
11081 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
11082 for GIMPLE_CONDs.
11083 (vn_phi_lookup): Likewise.
11084 (vn_phi_insert): Likewise.
11085
11086 2017-09-20 Jakub Jelinek <jakub@redhat.com>
11087
11088 * dwarf2out.c (tree_add_const_value_attribute): For INTEGER_CST
11089 that fits into uhwi or shwi, add DW_AT_const_value regardless
11090 of early_dwarf without going through RTL, using add_AT_unsigned
11091 or add_AT_int.
11092
11093 * dwarf2out.c (DEBUG_LTO_DWO_INFO_SECTION): Reorder defines.
11094 (DEBUG_LTO_ABBREV_SECTION): Likewise.
11095 (DEBUG_LTO_MACINFO_SECTION): Likewise.
11096 (DEBUG_MACRO_SECTION): Likewise.
11097 (DEBUG_LTO_MACRO_SECTION): Likewise.
11098 (DEBUG_STR_DWO_SECTION): Likewise.
11099 (DEBUG_LTO_STR_DWO_SECTION): Likewise.
11100 (DEBUG_LTO_LINE_SECTION): Drop .dwo suffix from the name.
11101 (DEBUG_LTO_DWO_LINE_SECTION): Define.
11102 (DEBUG_LTO_LINE_STR_SECTION): Define.
11103 (init_sections_and_labels): Initialize debug_line_str_section
11104 variable. Initialize debug_loc_section for -gdwarf-5 to
11105 DEBUG_LOCLISTS_SECTION. Formatting fixes.
11106
11107 2017-09-20 Richard Biener <rguenther@suse.de>
11108
11109 * graphite-sese-to-poly.c (extract_affine): Properly handle
11110 POINTER_PLUS_EXPR, BIT_NOT_EXPR and conversion to signed.
11111
11112 2017-09-20 Richard Biener <rguenther@suse.de>
11113
11114 PR tree-optimization/81373
11115 * graphite-scop-detection.c (build_cross_bb_scalars_def):
11116 Force SESE live-out defs to be handled even if they are
11117 scev_analyzable_p.
11118
11119 2017-09-19 Jeff Law <law@redhat.com>
11120
11121 * combine-stack-adj.c (combine_stack_adjustments_for_block): Do
11122 nothing for stack adjustments with REG_STACK_CHECK.
11123 * sched-deps.c (parse_add_or_inc): Reject insns with
11124 REG_STACK_CHECK from dependency breaking.
11125 * config/i386/i386.c (pro_epilogue_adjust_stack): Return insn.
11126 (ix86_adjust_satck_and_probe_stack_clash): Add REG_STACK_NOTEs.
11127 * reg-notes.def (STACK_CHECK): New note.
11128
11129 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): New.
11130 (ix86_expand_prologue): Dump stack clash info as needed.
11131 Call ix86_adjust_stack_and_probe_stack_clash as needed.
11132
11133 * function.c (dump_stack_clash_frame_info): New function.
11134 * function.h (dump_stack_clash_frame_info): Prototype.
11135 (enum stack_clash_probes): New enum.
11136
11137 * config/alpha/alpha.c (alpha_expand_prologue): Also check
11138 flag_stack_clash_protection.
11139 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Likewise.
11140 (arm_expand_prologue, thumb1_expand_prologue): Likewise.
11141 (arm_frame_pointer_required): Likewise.
11142 * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
11143 (ia64_expand_prologue): Likewise.
11144 * config/mips/mips.c (mips_expand_prologue): Likewise.
11145 * config/powerpcspe/powerpcspe.c (rs6000_expand_prologue): Likewise.
11146 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
11147 (sparc_flat_expand_prologue): Likewise.
11148 * config/spu/spu.c (spu_expand_prologue): Likewise.
11149
11150 * explow.c: Include "params.h".
11151 (anti_adjust_stack_and_probe_stack_clash): New function.
11152 (get_stack_check_protect): Likewise.
11153 (compute_stack_clash_protection_loop_data): Likewise.
11154 (emit_stack_clash_protection_loop_start): Likewise.
11155 (emit_stack_clash_protection_loop_end): Likewise.
11156 (allocate_dynamic_stack_space): Use get_stack_check_protect.
11157 Use anti_adjust_stack_and_probe_stack_clash.
11158 * explow.h (compute_stack_clash_protection_loop_data): Prototype.
11159 (emit_stack_clash_protection_loop_start): Likewise.
11160 (emit_stack_clash_protection_loop_end): Likewise.
11161 * rtl.h (get_stack_check_protect): Prototype.
11162 * target.def (stack_clash_protection_final_dynamic_probe): New hook.
11163 * targhooks.c (default_stack_clash_protection_final_dynamic_probe): New.
11164 * targhooks.h (default_stack_clash_protection_final_dynamic_probe):
11165 Prototype.
11166 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE):
11167 Add @hook.
11168 * doc/tm.texi: Rebuilt.
11169 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
11170 get_stack_check_protect.
11171 * config/alpha/alpha.c (alpha_expand_prologue): Likewise.
11172 * config/arm/arm.c (arm_expand_prologue): Likewise.
11173 (arm_frame_pointer_required): Likewise.
11174 * config/i386/i386.c (ix86_expand_prologue): Likewise.
11175 * config/ia64/ia64.c (ia64_expand_prologue): Likewise.
11176 * config/mips/mips.c (mips_expand_prologue): Likewise.
11177 * config/powerpcspe/powerpcspe.c (rs6000_emit_prologue): Likewise.
11178 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
11179 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
11180 (sparc_flat_expand_prologue): Likewise.
11181
11182 * common.opt (-fstack-clash-protection): New option.
11183 * flag-types.h (enum stack_check_type): Note difference between
11184 -fstack-check= and -fstack-clash-protection.
11185 * params.def (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE): New PARAM.
11186 (PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Likewise.
11187 * toplev.c (process_options): Issue warnings/errors for cases
11188 not handled with -fstack-clash-protection.
11189 * doc/invoke.texi (-fstack-clash-protection): Document new option.
11190 (-fstack-check): Note additional problem with -fstack-check=generic.
11191 Note that -fstack-check is primarily for Ada and refer users
11192 to -fstack-clash-protection for stack-clash-protection.
11193 Document new params for stack clash protection.
11194
11195 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
11196
11197 * config/i386/i386.c (ix86_split_long_move): Do not handle
11198 address used for LEA in a special way.
11199
11200 2017-09-19 Segher Boessenkool <segher@kernel.crashing.org>
11201
11202 * simplify-rtx.c (simplify_binary_operation_1): Fix typo in comment.
11203
11204 2017-09-19 Martin Sebor <msebor@redhat.com>
11205
11206 PR c/81854
11207 * cgraphunit.c (handle_alias_pairs): Reject aliases between functions
11208 of incompatible types.
11209
11210 2017-09-19 Will Schmidt <will_schmidt@vnet.ibm.com>
11211
11212 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
11213 for early folding of vector loads (ALTIVEC_BUILTIN_LVX_*).
11214 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11215 Remove obsoleted code for handling ALTIVEC_BUILTIN_VEC_LD.
11216
11217 2017-09-19 Richard Biener <rguenther@suse.de>
11218
11219 PR tree-optimization/82244
11220 * tree-vrp.c (remove_range_assertions): Do not propagate
11221 a constant to abnormals but replace the assert with a copy.
11222
11223 2017-09-19 Alexander Monakov <amonakov@ispras.ru>
11224
11225 PR rtl-optimization/57878
11226 PR rtl-optimization/68988
11227 * lra-assigns.c (reload_pseudo_compare_func): Remove fragmentation
11228 avoidance test involving non_reload_pseudos. Move frequency test
11229 below the general fragmentation avoidance test.
11230
11231 2017-09-19 Richard Biener <rguenther@suse.de>
11232
11233 PR tree-optimization/69728
11234 * graphite-sese-to-poly.c (schedule_error): New global.
11235 (add_loop_schedule): Handle empty domain by failing the
11236 schedule.
11237 (build_original_schedule): Handle schedule_error.
11238
11239 2017-09-19 Richard Biener <rguenther@suse.de>
11240
11241 * graphite-scop-detection.c (scop_detection::can_represent_loop):
11242 Do not iterate to sibling loops but only to siblings of inner
11243 loops.
11244
11245 2017-09-18 Andreas Schwab <schwab@linux-m68k.org>
11246
11247 PR target/81613
11248 * config/m68k/m68k.md (moveq feeding equality comparison): Check
11249 that the registers are different.
11250
11251 2017-09-18 Uros Bizjak <ubizjak@gmail.com>
11252
11253 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
11254 to processor_model and "amdfam17h" to arch_names_table.
11255 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
11256
11257 2017-09-18 Jakub Jelinek <jakub@redhat.com>
11258
11259 PR c/82234
11260 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
11261
11262 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
11263 Alan Hayward <alan.hayward@arm.com>
11264 David Sherwood <david.sherwood@arm.com>
11265
11266 * tree-vectorizer.h (vect_slp_analyze_operations): Replace parameters
11267 with a vec_info *.
11268 * tree-vect-loop.c (vect_analyze_loop_operations): Update call
11269 accordingly.
11270 * tree-vect-slp.c (vect_slp_analyze_node_operations): Add vec_info *
11271 parameter. Set SLP_TREE_NUMBER_OF_VEC_STMTS here rather than in
11272 vect_schedule_slp_instance.
11273 (vect_slp_analyze_operations): Replace parameters with a vec_info *.
11274 Update call to vect_slp_analyze_node_operations. Simplify return
11275 value.
11276 (vect_slp_analyze_bb_1): Update call accordingly.
11277 (vect_schedule_slp_instance): Remove vectorization_factor parameter.
11278 Don't calculate SLP_TREE_NUMBER_OF_VEC_STMTS here.
11279 (vect_schedule_slp): Update call accordingly.
11280
11281 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
11282 Alan Hayward <alan.hayward@arm.com>
11283 David Sherwood <david.sherwood@arm.com>
11284
11285 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Cope
11286 with types that aren't in fact scalar.
11287
11288 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
11289
11290 * tree-vect-slp.c (vect_record_max_nunits): New function,
11291 split out from...
11292 (vect_build_slp_tree_1): ...here.
11293 (vect_build_slp_tree_2): Call it for phis too.
11294
11295 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
11296
11297 * tree-vect-stmts.c (vectorizable_mask_load_store): Pass mask_vectype
11298 to vect_get_vec_def_for_operand when getting the mask operand.
11299
11300 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
11301 Alan Hayward <alan.hayward@arm.com>
11302 David Sherwood <david.sherwood@arm.com>
11303
11304 * tree-vect-loop.c (vectorizable_live_operation): Fix type of
11305 bitstart.
11306
11307 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
11308 Alan Hayward <alan.hayward@arm.com>
11309 David Sherwood <david.sherwood@arm.com>
11310
11311 * tree-vect-loop.c (vectorizable_live_operation): Fix element size
11312 calculation for vector booleans.
11313
11314 2017-09-18 Richard Sandiford <richard.sandiford@linaro.org>
11315 Alan Hayward <alan.hayward@arm.com>
11316 David Sherwood <david.sherwood@arm.com>
11317
11318 * tree-vect-stmts.c (can_vectorize_live_stmts): New function,
11319 split out from...
11320 (vect_transform_stmt): ...here.
11321 (vect_analyze_stmt): Use it instead of calling
11322 vectorizable_live_operation directly.
11323
11324 2017-09-18 Cesar Philippidis <cesar@codesourcery.com>
11325
11326 * omp-offload.c (oacc_xform_loop): Enable SIMD vectorization on
11327 non-SIMT targets in acc vector loops.
11328
11329 2017-09-18 Claudiu Zissulescu <claziss@synopsys.com>
11330
11331 * configure.ac: Add arc and check if assembler supports gdwarf2.
11332 * configure: Regenerate.
11333
11334 2017-09-18 Richard Biener <rguenther@suse.de>
11335
11336 PR tree-optimization/82220
11337 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Exclude
11338 epilogue niters from the min_profitable_iters compute.
11339
11340 2017-09-18 Jakub Jelinek <jakub@redhat.com>
11341
11342 PR target/82145
11343 * config/i386/i386.c (ix86_init_large_pic_reg): Revert 2017-09-01
11344 changes. Turn CODE_LABEL into NOTE_INSN_DELETED_LABEL immediately.
11345 (ix86_init_pic_reg): Revert 2017-09-01 changes.
11346
11347 2017-09-18 Eric Botcazou <ebotcazou@adacore.com>
11348
11349 PR target/81361
11350 * dwarf2cfi.c (add_cfis_to_fde): Do not generate DW_CFA_set_loc after
11351 switching to a new text section.
11352
11353 2017-09-18 Richard Biener <rguenther@suse.de>
11354
11355 * graphite-scop-detection.c (scop_detection::stmt_has_simple_data_ref):
11356 Simplify.
11357 (build_alias_set): Reject aliases with no access function.
11358
11359 2017-09-18 Richard Biener <rguenther@suse.de>
11360
11361 PR tree-optimization/79622
11362 * graphite-scop-detection.c (build_cross_bb_scalars_def): Properly
11363 handle PHIs.
11364 (build_cross_bb_scalars_use): Likewise.
11365
11366 2017-09-18 Pierre-Marie de Rodat <derodat@adacore.com>
11367
11368 * cgraph.h (cgraph_thunk_info): Fix a typo in a comment.
11369
11370 2017-09-18 Alan Modra <amodra@gmail.com>
11371
11372 PR target/81996
11373 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
11374 stack_pointer_rtx for count 0. Update comments. Break up
11375 large rtl expression.
11376
11377 2017-09-17 Daniel Santos <daniel.santos@pobox.com>
11378
11379 * config/i386/i386.c (xlogue_layout::STUB_NAME_MAX_LEN):
11380 Increase to 20 bytes.
11381 (xlogue_layout::s_stub_names): Add an additional size-2 diminsion.
11382 (xlogue_layout::get_stub_name): Modify to select the appropairate sse
11383 or avx version of the stub.
11384
11385 2017-09-17 H.J. Lu <hongjiu.lu@intel.com>
11386
11387 PR target/82166
11388 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Properly
11389 compute the minimum stack alignment. Also update preferred stack
11390 boundary for leaf functions.
11391
11392 2017-09-16 Richard Sandiford <richard.sandiford@linaro.org>
11393
11394 PR tree-optimization/82228
11395 * tree-vect-loop.c (vectorizable_live_operation): Move initialization
11396 of ncopies.
11397
11398 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
11399
11400 * common/config/nds32/nds32-common.c
11401 (nds32_option_optimization_table): Refine formatting.
11402 (nds32_option_optimization_table): Use -fsched-pressure and
11403 -fomit-frame-pointer for specific optimization level.
11404
11405 2017-09-16 Chung-Ju Wu <jasonwucj@gmail.com>
11406
11407 * config/nds32/nds32.c: Refine formatting and comments.
11408 * config/nds32/nds32.h: Likewise.
11409 * config/nds32/nds32.md: Likewise.
11410 * config/nds32/nds32-cost.c: Likewise.
11411 * config/nds32/nds32-isr.c: Likewise.
11412 * config/nds32/nds32-md-auxiliary.c: Likewise.
11413 * config/nds32/nds32-multiple.md: Likewise.
11414 * config/nds32/nds32-predicates.c: Likewise.
11415
11416 2017-09-15 Andrew Sutton <andrew.n.sutton@gmail.com>
11417 Jakub Jelinek <jakub@redhat.com>
11418
11419 Add support for -std=c++2a.
11420 * doc/cpp.texi (__cplusplus): Document value for -std=c++2a
11421 or -std=gnu+2a.
11422 * doc/invoke.texi: Document -std=c++2a and -std=gnu++2a.
11423
11424 2017-09-15 Steve Ellcey <sellcey@cavium.com>
11425
11426 PR target/82066
11427 * doc/extend.texi (Common Function Attributes): Add
11428 references to ARM, AArch64, and S/390 specific attributes.
11429 (Function Specific Option Pragmas): Add AArch64 and S/390
11430 to list of back ends that support the target pragma.
11431
11432 2017-09-15 Nathan Sidwell <nathan@acm.org>
11433
11434 * doc/standards.texi: Fix C++17 description. Update URLs for
11435 C++11 & 14.
11436
11437 2017-09-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
11438
11439 * common.opt (Wcast-align=strict): New warning option.
11440 * doc/invoke.texi: Document -Wcast-align=strict.
11441
11442 2017-09-15 Pierre-Marie de Rodat <derodat@adacore.com>
11443
11444 * cgraph.h (cgraph_thunk_info): Add comments.
11445 * cgraph.c (cgraph_node::create_thunk): Adjust comment, make
11446 assert for VIRTUAL_* arguments stricter.
11447
11448 2017-09-15 Jackson Woodruff <jackson.woodruff@arm.com>
11449
11450 PR tree-optimization/71026
11451 * match.pd: Move RDIV patterns from fold-const.c
11452 * fold-const.c (distribute_real_division): Removed.
11453 (fold_binary_loc): Remove calls to distribute_real_divison.
11454
11455 2017-09-15 Jakub Jelinek <jakub@redhat.com>
11456
11457 * doc/invoke.texi: Document -std=c++17 and -std=gnu++17 and document
11458 c++1z and gnu++1z as deprecated. Change other references to
11459 -std=c++1z to -std=c++17 and -std=gnu++1z to -std=gnu++17.
11460 Change -Wc++1z-compat to -Wc++17-compat.
11461 * doc/cpp.texi: Document -std=c++17 defines __cplusplus 201703L.
11462 * dwarf2out.c (highest_c_language): Handle C++17.
11463 (gen_compile_unit_die): Likewise.
11464
11465 2017-09-15 Jakub Jelinek <jakub@redhat.com>
11466
11467 PR rtl-optimization/82192
11468 * combine.c (make_extraction): Don't look through non-paradoxical
11469 SUBREGs or TRUNCATE if pos + len is or might be bigger than
11470 inner's mode.
11471
11472 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
11473 Alan Hayward <alan.hayward@arm.com>
11474 David Sherwood <david.sherwood@arm.com>
11475
11476 * target.def (function_arg_offset): New hook.
11477 * targhooks.h (default_function_arg_offset): Declare.
11478 * targhooks.c (default_function_arg_offset): New function.
11479 * function.c (locate_and_pad_parm): Use
11480 targetm.calls.function_arg_offset instead of FUNCTION_ARG_OFFSET.
11481 * doc/tm.texi.in (FUNCTION_ARG_OFFSET): Replace with...
11482 (TARGET_FUNCTION_ARG_OFFSET): ...this.
11483 * doc/tm.texi: Regenerate.
11484 * config/spu/spu.h (FUNCTION_ARG_OFFSET): Delete.
11485 * config/spu/spu.c (spu_function_arg_offset): New function.
11486 (TARGET_FUNCTION_ARG_OFFSET): Redefine.
11487 * system.h (FUNCTION_ARG_OFFSET): Poison.
11488
11489 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
11490 Alan Hayard <alan.hayward@arm.com>
11491 David Sherwood <david.sherwood@arm.com>
11492
11493 * target.def (truly_noop_truncation): New hook.
11494 (mode_rep_extended): Refer to TARGET_TRULY_NOOP_TRUNCATION rather
11495 than TRULY_NOOP_TRUNCATION.
11496 * hooks.h (hook_bool_uint_uint_true): Declare.
11497 * hooks.c (hook_bool_uint_uint_true): New function.
11498 * doc/tm.texi.in (TRULY_NOOP_TRUNCATION): Replace with...
11499 (TARGET_TRULY_NOOP_TRUNCATION): ...this.
11500 * doc/tm.texi: Regenerate.
11501 * combine.c (make_extraction): Refer to TARGET_TRULY_NOOP_TRUNCATION
11502 rather than TRULY_NOOP_TRUNCATION in comments.
11503 (simplify_comparison): Likewise.
11504 (record_truncated_value): Likewise.
11505 * expmed.c (extract_bit_field_1): Likewise.
11506 (extract_split_bit_field): Likewise.
11507 * convert.c (convert_to_integer_1): Use targetm.truly_noop_truncation
11508 instead of TRULY_NOOP_TRUNCATION.
11509 * function.c (assign_parm_setup_block): Likewise.
11510 * machmode.h (TRULY_NOOP_TRUNCATION_MODES_P): Likewise.
11511 * rtlhooks.c: Include target.h.
11512 * config/aarch64/aarch64.h (TRULY_NOOP_TRUNCATION): Delete.
11513 * config/alpha/alpha.h (TRULY_NOOP_TRUNCATION): Delete.
11514 * config/arc/arc.h (TRULY_NOOP_TRUNCATION): Delete.
11515 * config/arm/arm.h (TRULY_NOOP_TRUNCATION): Delete.
11516 * config/avr/avr.h (TRULY_NOOP_TRUNCATION): Delete.
11517 * config/bfin/bfin.h (TRULY_NOOP_TRUNCATION): Delete.
11518 * config/c6x/c6x.h (TRULY_NOOP_TRUNCATION): Delete.
11519 * config/cr16/cr16.h (TRULY_NOOP_TRUNCATION): Delete.
11520 * config/cris/cris.h (TRULY_NOOP_TRUNCATION): Delete.
11521 * config/epiphany/epiphany.h (TRULY_NOOP_TRUNCATION): Delete.
11522 * config/fr30/fr30.h (TRULY_NOOP_TRUNCATION): Delete.
11523 * config/frv/frv.h (TRULY_NOOP_TRUNCATION): Delete.
11524 * config/ft32/ft32.h (TRULY_NOOP_TRUNCATION): Delete.
11525 * config/h8300/h8300.h (TRULY_NOOP_TRUNCATION): Delete.
11526 * config/i386/i386.h (TRULY_NOOP_TRUNCATION): Delete.
11527 * config/ia64/ia64.h (TRULY_NOOP_TRUNCATION): Delete.
11528 * config/iq2000/iq2000.h (TRULY_NOOP_TRUNCATION): Delete.
11529 * config/lm32/lm32.h (TRULY_NOOP_TRUNCATION): Delete.
11530 * config/m32c/m32c.h (TRULY_NOOP_TRUNCATION): Delete.
11531 * config/m32r/m32r.h (TRULY_NOOP_TRUNCATION): Delete.
11532 * config/m68k/m68k.h (TRULY_NOOP_TRUNCATION): Delete.
11533 * config/mcore/mcore.h (TRULY_NOOP_TRUNCATION): Delete.
11534 * config/microblaze/microblaze.h (TRULY_NOOP_TRUNCATION): Delete.
11535 * config/mips/mips.h (TRULY_NOOP_TRUNCATION): Delete.
11536 * config/mips/mips.c (mips_truly_noop_truncation): New function.
11537 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
11538 * config/mips/mips.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
11539 rather than TRULY_NOOP_TRUNCATION in comments.
11540 * config/mmix/mmix.h (TRULY_NOOP_TRUNCATION): Delete.
11541 * config/mn10300/mn10300.h (TRULY_NOOP_TRUNCATION): Delete.
11542 * config/moxie/moxie.h (TRULY_NOOP_TRUNCATION): Delete.
11543 * config/msp430/msp430.h (TRULY_NOOP_TRUNCATION): Delete.
11544 * config/nds32/nds32.h (TRULY_NOOP_TRUNCATION): Delete.
11545 * config/nios2/nios2.h (TRULY_NOOP_TRUNCATION): Delete.
11546 * config/nvptx/nvptx.h (TRULY_NOOP_TRUNCATION): Delete.
11547 * config/pa/pa.h (TRULY_NOOP_TRUNCATION): Delete.
11548 * config/pdp11/pdp11.h (TRULY_NOOP_TRUNCATION): Delete.
11549 * config/powerpcspe/powerpcspe.h (TRULY_NOOP_TRUNCATION): Delete.
11550 * config/riscv/riscv.h (TRULY_NOOP_TRUNCATION): Delete.
11551 * config/riscv/riscv.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
11552 rather than TRULY_NOOP_TRUNCATION in comments.
11553 * config/rl78/rl78.h (TRULY_NOOP_TRUNCATION): Delete.
11554 * config/rs6000/rs6000.h (TRULY_NOOP_TRUNCATION): Delete.
11555 * config/rx/rx.h (TRULY_NOOP_TRUNCATION): Delete.
11556 * config/s390/s390.h (TRULY_NOOP_TRUNCATION): Delete.
11557 * config/sh/sh.h (MAYBE_BASE_REGISTER_RTX_P): Remove
11558 TRULY_NOOP_TRUNCATION condition.
11559 (MAYBE_INDEX_REGISTER_RTX_P): Likewise.
11560 (TRULY_NOOP_TRUNCATION): Delete.
11561 * config/sparc/sparc.h (TRULY_NOOP_TRUNCATION): Delete.
11562 * config/spu/spu.h (TRULY_NOOP_TRUNCATION): Delete.
11563 * config/spu/spu.c (spu_truly_noop_truncation): New function.
11564 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
11565 * config/stormy16/stormy16.h (TRULY_NOOP_TRUNCATION): Delete.
11566 * config/tilegx/tilegx.h (TRULY_NOOP_TRUNCATION): Delete.
11567 * config/tilegx/tilegx.c (tilegx_truly_noop_truncation): New fuction.
11568 (TARGET_TRULY_NOOP_TRUNCATION): Redefine.
11569 * config/tilegx/tilegx.md: Refer to TARGET_TRULY_NOOP_TRUNCATION
11570 rather than TRULY_NOOP_TRUNCATION in comments.
11571 * config/tilepro/tilepro.h (TRULY_NOOP_TRUNCATION): Delete.
11572 * config/v850/v850.h (TRULY_NOOP_TRUNCATION): Delete.
11573 * config/vax/vax.h (TRULY_NOOP_TRUNCATION): Delete.
11574 * config/visium/visium.h (TRULY_NOOP_TRUNCATION): Delete.
11575 * config/xtensa/xtensa.h (TRULY_NOOP_TRUNCATION): Delete.
11576 * system.h (TRULY_NOOP_TRUNCATION): Poison.
11577
11578 2017-09-15 Christophe Lyon <christophe.lyon@linaro.org>
11579
11580 PR target/67591
11581 * config/arm/arm.md (*cmp_and): Add enabled_for_depr_it attribute.
11582 (*cmp_ior): Likewise.
11583 (*ior_scc_scc): Add alternative for enabled_for_depr_it attribute.
11584 (*ior_scc_scc_cmp): Likewise.
11585 (*and_scc_scc): Likewise.
11586 (*and_scc_scc_cmp): Likewise.
11587
11588 2017-09-15 Richard Sandiford <richard.sandiford@linaro.org>
11589 Alan Hayard <alan.hayward@arm.com>
11590 David Sherwood <david.sherwood@arm.com>
11591
11592 * target.def (can_change_mode_class): New hook.
11593 (mode_rep_extended): Refer to it instead of CANNOT_CHANGE_MODE_CLASS.
11594 (hard_regno_nregs): Likewise.
11595 * hooks.h (hook_bool_mode_mode_reg_class_t_true): Declare.
11596 * hooks.c (hook_bool_mode_mode_reg_class_t_true): New function.
11597 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Replace with...
11598 (TARGET_CAN_CHANGE_MODE_CLASS): ...this.
11599 (LOAD_EXTEND_OP): Update accordingly.
11600 * doc/tm.texi: Regenerate.
11601 * doc/rtl.texi: Refer to TARGET_CAN_CHANGE_MODE_CLASS instead of
11602 CANNOT_CHANGE_MODE_CLASS.
11603 * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Replace with...
11604 (REG_CAN_CHANGE_MODE_P): ...this new macro.
11605 * combine.c (simplify_set): Update accordingly.
11606 * emit-rtl.c (validate_subreg): Likewise.
11607 * recog.c (general_operand): Likewise.
11608 * regcprop.c (mode_change_ok): Likewise.
11609 * reload1.c (choose_reload_regs): Likewise.
11610 (inherit_piecemeal_p): Likewise.
11611 * rtlanal.c (simplify_subreg_regno): Likewise.
11612 * postreload.c (reload_cse_simplify_set): Use REG_CAN_CHANGE_MODE_P
11613 instead of CANNOT_CHANGE_MODE_CLASS.
11614 (reload_cse_simplify_operands): Likewise.
11615 * reload.c (push_reload): Use targetm.can_change_mode_class
11616 instead of CANNOT_CHANGE_MODE_CLASS.
11617 (push_reload): Likewise. Also use REG_CAN_CHANGE_MODE_P instead of
11618 REG_CANNOT_CHANGE_MODE_P.
11619 * config/alpha/alpha.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11620 * config/alpha/alpha.c (alpha_can_change_mode_class): New function.
11621 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11622 * config/arm/arm.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11623 * config/arm/arm.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11624 (arm_can_change_mode_class): New function.
11625 * config/arm/neon.md: Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
11626 than CANNOT_CHANGE_MODE_CLASS in comments.
11627 * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11628 * config/i386/i386-protos.h (ix86_cannot_change_mode_class): Delete.
11629 * config/i386/i386.c (ix86_cannot_change_mode_class): Replace with...
11630 (ix86_can_change_mode_class): ...this new function, inverting the
11631 sense of the return value.
11632 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11633 * config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11634 * config/ia64/ia64.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11635 (ia64_can_change_mode_class): New function.
11636 * config/m32c/m32c.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11637 * config/m32c/m32c-protos.h (m32c_cannot_change_mode_class): Delete.
11638 * config/m32c/m32c.c (m32c_cannot_change_mode_class): Replace with...
11639 (m32c_can_change_mode_class): ...this new function, inverting the
11640 sense of the return value.
11641 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11642 * config/mips/mips.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11643 * config/mips/mips-protos.h (mips_cannot_change_mode_class): Delete.
11644 * config/mips/mips.c (mips_cannot_change_mode_class): Replace with...
11645 (mips_can_change_mode_class): ...this new function, inverting the
11646 sense of the return value.
11647 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11648 * config/msp430/msp430.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11649 * config/msp430/msp430.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11650 (msp430_can_change_mode_class): New function.
11651 * config/nvptx/nvptx.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11652 * config/nvptx/nvptx.c (nvptx_can_change_mode_class): New function.
11653 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11654 * config/pa/pa32-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11655 * config/pa/pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11656 * config/pa/pa-protos.h (pa_cannot_change_mode_class): Delete.
11657 * config/pa/pa.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11658 (pa_cannot_change_mode_class): Replace with...
11659 (pa_can_change_mode_class): ...this new function, inverting the
11660 sense of the return value.
11661 (pa_modes_tieable_p): Refer to TARGET_CAN_CHANGE_MODE_CLASS rather
11662 than CANNOT_CHANGE_MODE_CLASS in comments.
11663 * config/pdp11/pdp11.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11664 * config/pdp11/pdp11-protos.h (pdp11_cannot_change_mode_class): Delete.
11665 * config/pdp11/pdp11.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11666 (pdp11_cannot_change_mode_class): Replace with...
11667 (pdp11_can_change_mode_class): ...this new function, inverting the
11668 sense of the return value.
11669 * config/powerpcspe/powerpcspe.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11670 * config/powerpcspe/powerpcspe-protos.h
11671 (rs6000_cannot_change_mode_class_ptr): Delete.
11672 * config/powerpcspe/powerpcspe.c
11673 (rs6000_cannot_change_mode_class_ptr): Delete.
11674 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11675 (rs6000_option_override_internal): Assign to
11676 targetm.can_change_mode_class instead of
11677 rs6000_cannot_change_mode_class_ptr.
11678 (rs6000_cannot_change_mode_class): Replace with...
11679 (rs6000_can_change_mode_class): ...this new function, inverting the
11680 sense of the return value.
11681 (rs6000_debug_cannot_change_mode_class): Replace with...
11682 (rs6000_debug_can_change_mode_class): ...this new function.
11683 * config/riscv/riscv.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11684 * config/riscv/riscv.c (riscv_can_change_mode_class): New function.
11685 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11686 * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11687 * config/rs6000/rs6000-protos.h (rs6000_cannot_change_mode_class_ptr):
11688 Delete.
11689 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class_ptr): Delete.
11690 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11691 (rs6000_option_override_internal): Assign to
11692 targetm.can_change_mode_class instead of
11693 rs6000_cannot_change_mode_class_ptr.
11694 (rs6000_cannot_change_mode_class): Replace with...
11695 (rs6000_can_change_mode_class): ...this new function, inverting the
11696 sense of the return value.
11697 (rs6000_debug_cannot_change_mode_class): Replace with...
11698 (rs6000_debug_can_change_mode_class): ...this new function.
11699 * config/s390/s390.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11700 * config/s390/s390-protos.h (s390_cannot_change_mode_class): Delete.
11701 * config/s390/s390.c (s390_cannot_change_mode_class): Replace with...
11702 (s390_can_change_mode_class): ...this new function, inverting the
11703 sense of the return value.
11704 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11705 * config/sh/sh.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11706 * config/sh/sh-protos.h (sh_cannot_change_mode_class): Delete.
11707 * config/sh/sh.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11708 (sh_cannot_change_mode_class): Replace with...
11709 (sh_can_change_mode_class): ...this new function, inverting the
11710 sense of the return value.
11711 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11712 * config/sparc/sparc.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11713 (sparc_can_change_mode_class): New function.
11714 * config/spu/spu.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11715 * config/spu/spu.c (spu_can_change_mode_class): New function.
11716 (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11717 * config/visium/visium.h (CANNOT_CHANGE_MODE_CLASS): Delete.
11718 * config/visium/visium.c (TARGET_CAN_CHANGE_MODE_CLASS): Redefine.
11719 (visium_can_change_mode_class): New function.
11720 * system.h (CANNOT_CHANGE_MODE_CLASS): Poison.
11721
11722 2017-09-15 Richard Biener <rguenther@suse.de>
11723
11724 PR tree-optimization/82217
11725 * tree-ssa-sccvn.c (visit_phi): Properly handle all VN_TOP
11726 but not undefined case.
11727
11728 2017-09-15 Jakub Jelinek <jakub@redhat.com>
11729
11730 PR target/82145
11731 * postreload.c (reload_cse_simplify_operands): Skip
11732 NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
11733
11734 2017-09-15 Richard Biener <rguenther@suse.de>
11735
11736 PR tree-optimization/68823
11737 * graphite-scop-detection.c (build_alias_set): If we have a
11738 possible dependence check whether we can handle them by just
11739 looking at the DRs DR_ACCESS_FNs.
11740 (build_scops): If build_alias_set fails, fail the SCOP.
11741
11742 2017-09-14 Michael Meissner <meissner@linux.vnet.ibm.com>
11743
11744 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1_HW): New macros
11745 to support float128 built-in functions that require the ISA 3.0
11746 hardware.
11747 (BU_FLOAT128_3_HW): Likewise.
11748 (SQRTF128): Add support for the IEEE 128-bit square root and fma
11749 built-in functions.
11750 (FMAF128): Likewise.
11751 (FMAQ): Likewise.
11752 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
11753 support for built-in functions that need the ISA 3.0 IEEE 128-bit
11754 floating point instructions.
11755 (rs6000_invalid_builtin): Likewise.
11756 (rs6000_builtin_mask_names): Likewise.
11757 * config/rs6000/rs6000.h (MASK_FLOAT128_HW): Likewise.
11758 (RS6000_BTM_FLOAT128_HW): Likewise.
11759 (RS6000_BTM_COMMON): Likewise.
11760 * config/rs6000/rs6000.md (fma<mode>4_hw): Add a generator
11761 function.
11762 * doc/extend.texi (RS/6000 built-in functions): Document the
11763 IEEE 128-bit floating point square root and fused multiply-add
11764 built-in functions.
11765
11766 2017-09-14 Pat Haugen <pthaugen@us.ibm.com>
11767
11768 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): Make sure the TOC
11769 reg (r2) isn't in the set of registers defined in the prologue.
11770
11771 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11772 Alan Hayward <alan.hayward@arm.com>
11773 David Sherwood <david.sherwood@arm.com>
11774
11775 * tree-vectorizer.h (_loop_vec_info): Add max_vectorization_factor.
11776 (LOOP_VINFO_MAX_VECT_FACTOR): New macro.
11777 (LOOP_VINFO_ORIG_VECT_FACTOR): Replace with...
11778 (LOOP_VINFO_ORIG_MAX_VECT_FACTOR): ...this new macro.
11779 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Update
11780 accordingly.
11781 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
11782 max_vectorization_factor.
11783 (vect_analyze_loop_2): Set LOOP_VINFO_MAX_VECT_FACTOR.
11784
11785 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11786 Alan Hayward <alan.hayward@arm.com>
11787 David Sherwood <david.sherwood@arm.com>
11788
11789 * tree-vectorizer.h (vect_min_worthwhile_factor): Delete.
11790 (vect_worthwhile_without_simd_p): Declare.
11791 * tree-vect-loop.c (vect_worthwhile_without_simd_p): New function.
11792 (vectorizable_reduction): Use it.
11793 * tree-vect-stmts.c (vectorizable_shift): Likewise.
11794 (vectorizable_operation): Likewise.
11795
11796 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11797 Alan Hayward <alan.hayward@arm.com>
11798 David Sherwood <david.sherwood@arm.com>
11799
11800 * tree-vectorizer.h (vect_get_num_copies): New function.
11801 * tree-vect-data-refs.c (vect_get_data_access_cost): Use it.
11802 * tree-vect-loop.c (vectorizable_reduction): Likewise.
11803 (vectorizable_induction): Likewise.
11804 (vectorizable_live_operation): Likewise.
11805 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
11806 (vectorizable_bswap): Likewise.
11807 (vectorizable_call): Likewise.
11808 (vectorizable_conversion): Likewise.
11809 (vectorizable_assignment): Likewise.
11810 (vectorizable_shift): Likewise.
11811 (vectorizable_operation): Likewise.
11812 (vectorizable_store): Likewise.
11813 (vectorizable_load): Likewise.
11814 (vectorizable_condition): Likewise.
11815 (vectorizable_comparison): Likewise.
11816 (vect_analyze_stmt): Pass the slp node to vectorizable_live_operation.
11817
11818 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11819 Alan Hayward <alan.hayward@arm.com>
11820 David Sherwood <david.sherwood@arm.com>
11821
11822 * tree-vect-loop.c (vectorizable_induction): Use gimple_build instead
11823 of vect_init_vector.
11824
11825 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11826 Alan Hayward <alan.hayward@arm.com>
11827 David Sherwood <david.sherwood@arm.com>
11828
11829 * gimple-fold.h (gimple_build_vector_from_val): Declare, and provide
11830 an inline wrapper that provides a location.
11831 (gimple_build_vector): Likewise.
11832 * gimple-fold.c (gimple_build_vector_from_val): New function.
11833 (gimple_build_vector): Likewise.
11834 * tree-vect-loop.c (get_initial_def_for_reduction): Use the new
11835 functions to build the initial value. Always return a gimple value.
11836 (get_initial_defs_for_reduction): Likewise. Only compute
11837 neutral_vec once.
11838 (vect_create_epilog_for_reduction): Don't call force_gimple_operand or
11839 vect_init_vector on the results from get_initial_def(s)_for_reduction.
11840 (vectorizable_induction): Use gimple_build_vector rather than
11841 vect_init_vector.
11842
11843 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11844 Alan Hayward <alan.hayward@arm.com>
11845 David Sherwood <david.sherwood@arm.com>
11846
11847 * target.h (vec_perm_indices): New typedef.
11848 (auto_vec_perm_indices): Likewise.
11849 * optabs-query.h: Include target.h
11850 (can_vec_perm_p): Take a vec_perm_indices *.
11851 * optabs-query.c (can_vec_perm_p): Likewise.
11852 (can_mult_highpart_p): Update accordingly. Use auto_vec_perm_indices.
11853 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
11854 * tree-vect-generic.c (lower_vec_perm): Likewise.
11855 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise.
11856 (vect_grouped_load_supported): Likewise.
11857 (vect_shift_permute_load_chain): Likewise.
11858 (vect_permute_store_chain): Use auto_vec_perm_indices.
11859 (vect_permute_load_chain): Likewise.
11860 * fold-const.c (fold_vec_perm): Take vec_perm_indices.
11861 (fold_ternary_loc): Update accordingly. Use auto_vec_perm_indices.
11862 Update uses of can_vec_perm_p.
11863 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Replace the
11864 mode with a number of elements. Take a vec_perm_indices *.
11865 (vect_create_epilog_for_reduction): Update accordingly.
11866 Use auto_vec_perm_indices.
11867 (have_whole_vector_shift): Likewise. Update call to can_vec_perm_p.
11868 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
11869 (vect_transform_slp_perm_load): Likewise.
11870 (vect_schedule_slp_instance): Use auto_vec_perm_indices.
11871 * tree-vectorizer.h (vect_gen_perm_mask_any): Take a vec_perm_indices.
11872 (vect_gen_perm_mask_checked): Likewise.
11873 * tree-vect-stmts.c (vect_gen_perm_mask_any): Take a vec_perm_indices.
11874 (vect_gen_perm_mask_checked): Likewise.
11875 (vectorizable_mask_load_store): Use auto_vec_perm_indices.
11876 (vectorizable_store): Likewise.
11877 (vectorizable_load): Likewise.
11878 (perm_mask_for_reverse): Likewise. Update call to can_vec_perm_p.
11879 (vectorizable_bswap): Likewise.
11880
11881 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11882 Alan Hayward <alan.hayward@arm.com>
11883 David Sherwood <david.sherwood@arm.com>
11884
11885 * tree.h (build_vector): Take a vec<tree> instead of a tree *.
11886 * tree.c (build_vector): Likewise.
11887 (build_vector_from_ctor): Update accordingly.
11888 (build_vector_from_val): Likewise.
11889 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
11890 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise.
11891 * tree-vect-generic.c (add_rshift): Likewise.
11892 (expand_vector_divmod): Likewise.
11893 (optimize_vector_constructor): Likewise.
11894 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
11895 (vect_transform_slp_perm_load): Likewise.
11896 (vect_schedule_slp_instance): Likewise.
11897 * tree-vect-stmts.c (vectorizable_bswap): Likewise.
11898 (vectorizable_call): Likewise.
11899 (vect_gen_perm_mask_any): Likewise. Add elements in order.
11900 * expmed.c (make_tree): Likewise.
11901 * fold-const.c (fold_negate_expr_1): Use auto_vec<tree> when building
11902 a vector passed to build_vector.
11903 (fold_convert_const): Likewise.
11904 (exact_inverse): Likewise.
11905 (fold_ternary_loc): Likewise.
11906 (fold_relational_const): Likewise.
11907 (const_binop): Likewise. Use VECTOR_CST_ELT directly when operating
11908 on VECTOR_CSTs, rather than going through vec_cst_ctor_to_array.
11909 (const_unop): Likewise. Store the reduction accumulator in a
11910 variable rather than an array.
11911 (vec_cst_ctor_to_array): Take the number of elements as a parameter.
11912 (fold_vec_perm): Update calls accordingly. Use auto_vec<tree> for
11913 the new vector, rather than constructing it after the input arrays.
11914 (native_interpret_vector): Use auto_vec<tree> when building
11915 a vector passed to build_vector. Add elements in order.
11916 * tree-vect-loop.c (get_initial_defs_for_reduction): Use
11917 auto_vec<tree> when building a vector passed to build_vector.
11918 (vect_create_epilog_for_reduction): Likewise.
11919 (vectorizable_induction): Likewise.
11920 (get_initial_def_for_reduction): Likewise. Fix indentation of
11921 case statements.
11922 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Change n_elts
11923 to a vec<tree> *.
11924 (sparc_fold_builtin): Use auto_vec<tree> when building a vector
11925 passed to build_vector.
11926
11927 2017-09-14 Richard Sandiford <richard.sandiford@linaro.org>
11928 Alan Hayward <alan.hayward@arm.com>
11929 David Sherwood <david.sherwood@arm.com>
11930
11931 * tree-core.h (tree_base::u): Add an "nelts" field.
11932 (tree_vector): Use VECTOR_CST_NELTS as the length.
11933 * tree.c (tree_size): Likewise.
11934 (make_vector): Initialize VECTOR_CST_NELTS.
11935 * tree.h (VECTOR_CST_NELTS): Use the u.nelts field.
11936 * cfgexpand.c (expand_debug_expr): Use VECTOR_CST_NELTS instead of
11937 TYPE_VECTOR_SUBPARTS.
11938 * expr.c (const_vector_mask_from_tree): Consistently use "units"
11939 as the number of units, setting it from VECTOR_CST_NELTS.
11940 (const_vector_from_tree): Likewise.
11941 * fold-const.c (negate_expr_p): Use VECTOR_CST_NELTS instead of
11942 TYPE_VECTOR_SUBPARTS for the number of elements in a VECTOR_CST.
11943 (fold_negate_expr_1): Likewise.
11944 (fold_convert_const): Likewise.
11945 (const_binop): Likewise. Differentiate the number of output and
11946 input elements.
11947 (const_unop): Likewise.
11948 (fold_ternary_loc): Use VECTOR_CST_NELTS for the number of elements
11949 in a VECTOR_CST, asserting that it is the same as TYPE_VECTOR_SUBPARTS
11950 in cases that did the opposite.
11951
11952 2017-09-14 Richard Biener <rguenther@suse.de>
11953
11954 * tree-ssa-sccvn.c (visit_phi): Merge undefined values similar
11955 to VN_TOP.
11956
11957 2017-09-14 Eric Botcazou <ebotcazou@adacore.com>
11958
11959 * dwarf2out.c (dwarf2out_source_line): Remove superfluous test.
11960
11961 2017-09-14 Jakub Jelinek <jakub@redhat.com>
11962
11963 PR target/81325
11964 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
11965 if and where to split a bb, except for splitting before debug insn
11966 sequences followed by non-label real insn. Delete debug insns
11967 in between basic blocks.
11968
11969 * combine.c (make_compound_operation_int): Formatting fixes.
11970
11971 * config/alpha/elf.h (LINK_EH_SPEC): Add -static-pie support.
11972 * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
11973 * config/netbsd.h (LINK_EH_SPEC): Likewise.
11974 * config/sol2.h (LINK_EH_SPEC): Likewise.
11975 * config/arm/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
11976 * config/s390/linux.h (LINK_SPEC): Likewise.
11977 * config/freebsd.h (LINK_EH_SPEC): Likewise.
11978 * config/openbsd.h (LINK_EH_SPEC): Likewise.
11979 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
11980 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Likewise.
11981 * config/powerpcspe/sysv4.h (LINK_EH_SPEC): Likewise.
11982 * config/bfin/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
11983 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Fix a typo.
11984 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Formatting fix.
11985
11986 2017-09-13 Jakub Jelinek <jakub@redhat.com>
11987
11988 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Add -static-pie
11989 support.
11990 (ENDFILE_LINUX_SPEC): Likewise.
11991 (LINK_EH_SPEC): Likewise.
11992 * config/rs6000/linux64.h (LINK_SHLIB_SPEC): Likewise.
11993 (LINK_OS_LINUX_SPEC32): Likewise.
11994 (LINK_OS_LINUX_SPEC64): Likewise.
11995 * config/rs6000/linux.h (LINK_SHLIB_SPEC): Likewise.
11996 (LINK_OS_LINUX_SPEC): Likewise.
11997
11998 2017-09-13 Martin Liska <mliska@suse.cz>
11999
12000 PR middle-end/82154
12001 * stmt.c (expand_sjlj_dispatch_table): Use CASE_LOW when
12002 CASE_HIGH is NULL_TREE.
12003
12004 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
12005 Alan Hayward <alan.hayward@arm.com>
12006 David Sherwood <david.sherwood@arm.com>
12007
12008 * target.def (secondary_memory_needed): New hook.
12009 (secondary_reload): Refer to TARGET_SECONDARY_MEMORY_NEEDED
12010 instead of SECONDARY_MEMORY_NEEDED.
12011 (secondary_memory_needed_mode): Likewise.
12012 * hooks.h (hook_bool_mode_reg_class_t_reg_class_t_false): Declare.
12013 * hooks.c (hook_bool_mode_reg_class_t_reg_class_t_false): New function.
12014 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED): Replace with...
12015 (TARGET_SECONDARY_MEMORY_NEEDED): ...this.
12016 (SECONDARY_MEMORY_NEEDED_RTX): Update reference accordingly.
12017 * doc/tm.texi: Regenerate.
12018 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Delete.
12019 * config/alpha/alpha.c (alpha_secondary_memory_needed): New function.
12020 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12021 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED): Delete.
12022 * config/i386/i386-protos.h (ix86_secondary_memory_needed): Delete.
12023 * config/i386/i386.c (inline_secondary_memory_needed): Put the
12024 mode argument first and change the reg_class arguments to reg_class_t.
12025 (ix86_secondary_memory_needed): Likewise. Remove the strict parameter.
12026 Make static. Update the call to inline_secondary_memory_needed.
12027 (ix86_register_move_cost): Update the call to
12028 inline_secondary_memory_needed.
12029 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12030 * config/ia64/ia64.h (SECONDARY_MEMORY_NEEDED): Delete commented-out
12031 definition.
12032 * config/ia64/ia64.c (spill_xfmode_rfmode_operand): Refer to
12033 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
12034 in comment.
12035 * config/mips/mips.h (SECONDARY_MEMORY_NEEDED): Delete.
12036 * config/mips/mips-protos.h (mips_secondary_memory_needed): Delete.
12037 * config/mips/mips.c (mips_secondary_memory_needed): Make static
12038 and match hook interface. Add comment from mips.h.
12039 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12040 * config/mmix/mmix.md (truncdfsf2): Refer to
12041 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
12042 in comment.
12043 * config/pa/pa-64.h (SECONDARY_MEMORY_NEEDED): Rename to...
12044 (PA_SECONDARY_MEMORY_NEEDED): ...this, and put the mode argument first.
12045 * config/pa/pa.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12046 (pa_secondary_memory_needed): New function.
12047 * config/pdp11/pdp11.h (SECONDARY_MEMORY_NEEDED): Delete.
12048 * config/pdp11/pdp11-protos.h (pdp11_secondary_memory_needed): Delete.
12049 * config/pdp11/pdp11.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12050 (pdp11_secondary_memory_needed): Make static and match hook interface.
12051 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED): Delete.
12052 * config/powerpcspe/powerpcspe-protos.h
12053 (rs6000_secondary_memory_needed_ptr): Delete.
12054 * config/powerpcspe/powerpcspe.c (rs6000_secondary_memory_needed_ptr):
12055 Delete.
12056 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12057 (rs6000_option_override_internal): Assign to
12058 targetm.secondary_memory_needed rather than
12059 rs6000_secondary_memory_needed_ptr.
12060 (rs6000_secondary_memory_needed): Match hook interface.
12061 (rs6000_debug_secondary_memory_needed): Likewise.
12062 * config/riscv/riscv.h (SECONDARY_MEMORY_NEEDED): Delete.
12063 * config/riscv/riscv.c (riscv_secondary_memory_needed): New function.
12064 (riscv_register_move_cost): Use it instead of SECONDARY_MEMORY_NEEDED.
12065 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12066 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED): Delete.
12067 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_ptr):
12068 Delete.
12069 * config/rs6000/rs6000.c (rs6000_secondary_memory_needed_ptr): Delete.
12070 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12071 (rs6000_option_override_internal): Assign to
12072 targetm.secondary_memory_needed rather than
12073 rs6000_secondary_memory_needed_ptr.
12074 (rs6000_secondary_memory_needed): Match hook interface.
12075 (rs6000_debug_secondary_memory_needed): Likewise.
12076 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED): Delete.
12077 * config/s390/s390.c (s390_secondary_memory_needed): New function.
12078 (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12079 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Delete.
12080 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED): Redefine.
12081 (sparc_secondary_memory_needed): New function.
12082 * lra-constraints.c (check_and_process_move): Refer to
12083 TARGET_SECONDARY_MEMORY_NEEDED rather than SECONDARY_MEMORY_NEEDED
12084 in comment.
12085 (curr_insn_transform): Likewise.
12086 (process_alt_operands): Use targetm.secondary_memory_needed
12087 instead of TARGET_SECONDARY_MEMORY_NEEDED.
12088 (check_secondary_memory_needed_p): Likewise.
12089 (choose_split_class): Likewise.
12090 * reload.c: Unconditionally include code that was previously
12091 conditional on SECONDARY_MEMORY_NEEDED.
12092 (push_secondary_reload): Use targetm.secondary_memory_needed
12093 instead of TARGET_SECONDARY_MEMORY_NEEDED.
12094 (push_reload): Likewise.
12095 * reload1.c: Unconditionally include code that was previously
12096 conditional on SECONDARY_MEMORY_NEEDED.
12097 (choose_reload_regs): Use targetm.secondary_memory_needed
12098 instead of TARGET_SECONDARY_MEMORY_NEEDED.
12099 (gen_reload): Likewise.
12100 * system.h (SECONDARY_MEMORY_NEEDED): Poison.
12101
12102 2017-09-13 Richard Sandiford <richard.sandiford@linaro.org>
12103 Alan Hayward <alan.hayward@arm.com>
12104 David Sherwood <david.sherwood@arm.com>
12105
12106 * target.def (secondary_memory_needed_mode): New hook:
12107 * targhooks.c (default_secondary_memory_needed_mode): Declare.
12108 * targhooks.h (default_secondary_memory_needed_mode): New function.
12109 * doc/tm.texi.in (SECONDARY_MEMORY_NEEDED_MODE): Replace with...
12110 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): ...this.
12111 * doc/tm.texi: Regenerate.
12112 * lra-constraints.c (check_and_process_move): Use
12113 targetm.secondary_memory_needed_mode instead of
12114 TARGET_SECONDARY_MEMORY_NEEDED_MODE.
12115 (curr_insn_transform): Likewise.
12116 * reload.c (get_secondary_mem): Likewise.
12117 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
12118 * config/alpha/alpha.c (alpha_secondary_memory_needed_mode): New
12119 function.
12120 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
12121 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
12122 * config/i386/i386.c (ix86_secondary_memory_needed_mode): New function.
12123 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
12124 * config/powerpcspe/powerpcspe.h (SECONDARY_MEMORY_NEEDED_MODE):
12125 Delete.
12126 * config/powerpcspe/powerpcspe-protos.h
12127 (rs6000_secondary_memory_needed_mode): Delete.
12128 * config/powerpcspe/powerpcspe.c
12129 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
12130 (rs6000_secondary_memory_needed_mode): Make static.
12131 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
12132 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_mode):
12133 Delete.
12134 * config/rs6000/rs6000.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
12135 Redefine.
12136 (rs6000_secondary_memory_needed_mode): Make static.
12137 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
12138 * config/s390/s390.c (s390_secondary_memory_needed_mode): New function.
12139 (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Redefine.
12140 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Delete.
12141 * config/sparc/sparc.c (TARGET_SECONDARY_MEMORY_NEEDED_MODE):
12142 Redefine.
12143 (sparc_secondary_memory_needed_mode): New function.
12144 * system.h (TARGET_SECONDARY_MEMORY_NEEDED_MODE): Poison.
12145
12146 2017-09-13 Jackson Woodruff <jackson.woodruff@arm.com>
12147
12148 * config/aarch64/constraints.md (Umq): New constraint.
12149 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
12150 Change to use Umq.
12151 (mov<mode>): Update condition.
12152
12153 2017-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12154
12155 * gimple-ssa-store-merging.c (sort_by_bitpos): Compare store order
12156 when bitposition is the same.
12157
12158 2017-09-13 Richard Biener <rguenther@suse.de>
12159
12160 * dwarf2out.c (output_die_symbol): Remove.
12161 (output_die): Do not output a DIEs symbol.
12162
12163 2017-09-13 Richard Biener <rguenther@suse.de>
12164
12165 PR middle-end/82128
12166 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
12167 default-def to avoid breaking iterator update with the weird
12168 interaction with cgraph_update_edges_for_call_stmt_node.
12169
12170 2017-09-13 Richard Biener <rguenther@suse.de>
12171
12172 * tree-cfg.c (verify_gimple_assign_binary): Add verification
12173 for WIDEN_SUM_EXPR, VEC_WIDEN_MULT_{HI,LO,EVEN,ODD}_EXPR,
12174 VEC_PACK_{TRUNC,SAT,FIX_TRUNC}_EXPR.
12175 (verify_gimple_assign_ternary): Add verification for DOT_PROD_EXPR.
12176
12177 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
12178
12179 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
12180 Disable pc relative literal load irrespective of
12181 TARGET_FIX_ERR_A53_84341 for default.
12182
12183 2017-09-12 Eric Botcazou <ebotcazou@adacore.com>
12184
12185 * config/sparc/sparc.c (output_return): Output the source location of
12186 the insn in the delay slot, if any.
12187 (output_sibcall): Likewise.
12188
12189 2017-09-12 H.J. Lu <hongjiu.lu@intel.com>
12190
12191 PR driver/81498
12192 * common.opt (-static-pie): New alias.
12193 (shared): Negate static-pie.
12194 (-no-pie): Update help text.
12195 (-pie): Likewise.
12196 (static-pie): New option.
12197 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
12198 -static-pie support.
12199 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise.
12200 (LINK_EH_SPEC): Likewise.
12201 (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
12202 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
12203 * config/i386/gnu-user64.h (GNU_USER_TARGET_LINK_SPEC): Likewise.
12204 * gcc.c (LINK_COMMAND_SPEC): Likewise.
12205 (init_gcc_specs): Likewise.
12206 (init_spec): Likewise.
12207 (display_help): Update help message for -pie.
12208 * doc/invoke.texi: Update -pie, -no-pie and -static. Document
12209 -static-pie.
12210
12211 2017-09-12 Wilco Dijkstra <wdijkstr@arm.com>
12212
12213 * config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'.
12214 (movdi_aarch64): Likewise.
12215 (movti_aarch64): Likewise.
12216
12217 2017-09-12 Simon Wright <simon@pushface.org>
12218
12219 PR target/80204
12220 * config/darwin-driver.c (darwin_find_version_from_kernel): Eliminate
12221 calculation of the minor version, always output as 0.
12222
12223 2017-09-12 Jakub Jelinek <jakub@redhat.com>
12224
12225 PR target/82112
12226 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
12227 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
12228 on it early, rather than manual conversion late. For
12229 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
12230 instead of performing manual conversion.
12231
12232 2017-09-12 Carl Love <cel@us.ibm.com>
12233
12234 * config/rs6000/altivec.md (vec_widen_umult_even_v4si,
12235 vec_widen_smult_even_v4si): Add define expands for vmuleuw, vmulesw,
12236 vmulouw, vmulosw.
12237 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
12238 VMULOSW): Add definitions.
12239 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
12240 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
12241 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
12242 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
12243 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
12244
12245 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
12246
12247 * config/aarch64/aarch64.md (movdi_aarch64): Set load/store
12248 types correctly.
12249 (movti_aarch64): Likewise.
12250 (movdf_aarch64): Likewise.
12251 (movtf_aarch64): Likewise.
12252 (load_pairdi): Likewise.
12253 (store_pairdi): Likewise.
12254 (load_pairdf): Likewise.
12255 (store_pairdf): Likewise.
12256 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
12257 (storewb_pair<GPI:mode>_<P:mode>): Likewise.
12258 (ldr_got_small_<mode>): Likewise.
12259 (ldr_got_small_28k_<mode>): Likewise.
12260 (ldr_got_tiny): Likewise.
12261 * config/aarch64/iterators.md (ldst_sz): New.
12262 (ldpstp_sz): Likewise.
12263 * config/aarch64/thunderx.md (thunderx_storepair): Split store_8
12264 to store_16.
12265 (thunderx_load): Split load_8 to load_16.
12266 * config/aarch64/thunderx2t99.md (thunderx2t99_loadpair): Split
12267 load_8 to load_16.
12268 (thunderx2t99_storepair_basic): Split store_8 to store_16.
12269 * config/arm/xgene1.md (xgene1_load_pair): Split load_8 to load_16.
12270 (xgene1_store_pair): Split store_8 to store_16.
12271 * config/aarch64/falkor.md (falkor_ld_3_ld): Split load_8 to load_16.
12272 (falkor_st_0_st_sd): Split store_8 to store_16.
12273
12274 2017-09-12 James Greenhalgh <james.greenhalgh@arm.com>
12275
12276 * config/arm/types.md (type): Rename load1/2/3/4 to load_4/8/12/16
12277 and store1/2/3/4 to store_4/8/12/16.
12278 * config/aarch64/aarch64.md: Update for rename.
12279 * config/arm/arm.md: Likewise.: Likewise.
12280 * config/arm/arm.c: Likewise.
12281 * config/arm/thumb1.md: Likewise.
12282 * config/arm/thumb2.md: Likewise.
12283 * config/arm/vfp.md: Likewise.
12284 * config/arm/arm-generic.md: Likewise.
12285 * config/arm/arm1020e.md: Likewise.
12286 * config/arm/arm1026ejs.md: Likewise.
12287 * config/arm/arm1136jfs.md: Likewise.
12288 * config/arm/arm926ejs.md: Likewise.
12289 * config/arm/cortex-a15.md: Likewise.
12290 * config/arm/cortex-a17.md: Likewise.
12291 * config/arm/cortex-a5.md: Likewise.
12292 * config/arm/cortex-a53.md: Likewise.
12293 * config/arm/cortex-a57.md: Likewise.
12294 * config/arm/cortex-a7.md: Likewise.
12295 * config/arm/cortex-a8.md: Likewise.
12296 * config/arm/cortex-a9.md: Likewise.
12297 * config/arm/cortex-m4.md: Likewise.
12298 * config/arm/cortex-m7.md: Likewise.
12299 * config/arm/cortex-r4.md: Likewise.
12300 * config/arm/exynos-m1.md: Likewise.
12301 * config/arm/fa526.md: Likewise.
12302 * config/arm/fa606te.md: Likewise.
12303 * config/arm/fa626te.md: Likewise.
12304 * config/arm/fa726te.md: Likewise.
12305 * config/arm/fmp626.md: Likewise.
12306 * config/arm/iwmmxt.md: Likewise.
12307 * config/arm/ldmstm.md: Likewise.
12308 * config/arm/marvell-pj4.md: Likewise.
12309 * config/arm/xgene1.md: Likewise.
12310 * config/aarch64/thunderx.md: Likewise.
12311 * config/aarch64/thunderx2t99.md: Likewise.
12312 * config/aarch64/falkor.md: Likewise.
12313
12314 2017-09-12 Martin Liska <mliska@suse.cz>
12315
12316 * attribs.c (private_lookup_attribute): New function.
12317 * attribs.h (private_lookup_attribute): Declared here.
12318 (lookup_attribute): Called from this place.
12319
12320 2017-09-12 Richard Biener <rguenther@suse.de>
12321
12322 PR tree-optimization/82157
12323 * tree-ssa-pre.c (remove_dead_inserted_code): Do not remove
12324 stmts with side-effects.
12325
12326 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12327 Alan Hayward <alan.hayward@arm.com>
12328 David Sherwood <david.sherwood@arm.com>
12329
12330 * target.def (hard_regno_nregs): New hook.
12331 (class_max_nregs): Refer to it instead of HARD_REGNO_NREGS.
12332 * targhooks.h (default_hard_regno_nregs): Declare.
12333 * targhooks.c (default_hard_regno_nregs): New function.
12334 * doc/tm.texi.in (HARD_REGNO_NREGS): Replace with...
12335 (TARGET_HARD_REGNO_NREGS): ...this hook.
12336 (HARD_REGNO_NREGS_HAS_PADDING): Update accordingly.
12337 (CLASS_MAX_NREGS): Likewise.
12338 * doc/tm.texi: Regenerate.
12339 * reginfo.c (init_reg_modes_target): Use targetm.hard_regno_nregs
12340 instead of HARD_REGNO_NREGS.
12341 * rtl.h (REG_NREGS): Refer to TARGET_HARD_REGNO_NREGS rather than
12342 HARD_REGNO_NREGS in the comment.
12343 * config/aarch64/aarch64.h (HARD_REGNO_NREGS): Delete.
12344 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_nregs): Delete.
12345 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs): Make static.
12346 Return an unsigned int.
12347 (TARGET_HARD_REGNO_NREGS): Redefine.
12348 * config/alpha/alpha.h (HARD_REGNO_NREGS): Delete.
12349 * config/arc/arc.h (HARD_REGNO_NREGS): Delete.
12350 * config/arc/arc.c (TARGET_HARD_REGNO_NREGS): Redefine.
12351 (arc_hard_regno_nregs): New function.
12352 * config/arm/arm.h (HARD_REGNO_NREGS): Delete.
12353 * config/arm/arm.c (TARGET_HARD_REGNO_NREGS): Redefine.
12354 (arm_hard_regno_nregs): New function.
12355 * config/avr/avr.h (HARD_REGNO_NREGS): Delete.
12356 * config/bfin/bfin.h (HARD_REGNO_NREGS): Delete.
12357 * config/bfin/bfin.c (bfin_hard_regno_nregs): New function.
12358 (TARGET_HARD_REGNO_NREGS): Redefine.
12359 * config/c6x/c6x.h (HARD_REGNO_NREGS): Delete.
12360 * config/cr16/cr16.h (LONG_REG_P): Use targetm.hard_regno_nregs.
12361 (HARD_REGNO_NREGS): Delete.
12362 * config/cr16/cr16.c (TARGET_HARD_REGNO_NREGS): Redefine.
12363 (cr16_hard_regno_nregs): New function.
12364 (cr16_memory_move_cost): Use it instead of HARD_REGNO_NREGS.
12365 * config/cris/cris.h (HARD_REGNO_NREGS): Delete.
12366 * config/cris/cris.c (TARGET_HARD_REGNO_NREGS): Redefine.
12367 (cris_hard_regno_nregs): New function.
12368 * config/epiphany/epiphany.h (HARD_REGNO_NREGS): Delete.
12369 * config/fr30/fr30.h (HARD_REGNO_NREGS): Delete.
12370 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
12371 * config/frv/frv.h (HARD_REGNO_NREGS): Delete.
12372 (CLASS_MAX_NREGS): Remove outdated copy of documentation.
12373 * config/frv/frv-protos.h (frv_hard_regno_nregs): Delete.
12374 * config/frv/frv.c (TARGET_HARD_REGNO_NREGS): Redefine.
12375 (frv_hard_regno_nregs): Make static. Take and return an
12376 unsigned int.
12377 (frv_class_max_nregs): Remove outdated copy of documentation.
12378 * config/ft32/ft32.h (HARD_REGNO_NREGS): Delete.
12379 * config/h8300/h8300.h (HARD_REGNO_NREGS): Delete.
12380 * config/h8300/h8300-protos.h (h8300_hard_regno_nregs): Delete.
12381 * config/h8300/h8300.c (h8300_hard_regno_nregs): Delete.
12382 * config/i386/i386.h (HARD_REGNO_NREGS): Delete.
12383 * config/i386/i386.c (ix86_hard_regno_nregs): New function.
12384 (TARGET_HARD_REGNO_NREGS): Redefine.
12385 * config/ia64/ia64.h (HARD_REGNO_NREGS): Delete.
12386 (CLASS_MAX_NREGS): Update comment.
12387 * config/ia64/ia64.c (TARGET_HARD_REGNO_NREGS): Redefine.
12388 (ia64_hard_regno_nregs): New function.
12389 * config/iq2000/iq2000.h (HARD_REGNO_NREGS): Delete.
12390 * config/lm32/lm32.h (HARD_REGNO_NREGS): Delete.
12391 * config/m32c/m32c.h (HARD_REGNO_NREGS): Delete.
12392 * config/m32c/m32c-protos.h (m32c_hard_regno_nregs): Delete.
12393 * config/m32c/m32c.c (m32c_hard_regno_nregs_1): Take and return
12394 an unsigned int.
12395 (m32c_hard_regno_nregs): Likewise. Make static.
12396 (TARGET_HARD_REGNO_NREGS): Redefine.
12397 * config/m32r/m32r.h (HARD_REGNO_NREGS): Delete.
12398 * config/m68k/m68k.h (HARD_REGNO_NREGS): Delete.
12399 * config/m68k/m68k.c (TARGET_HARD_REGNO_NREGS): Redefine.
12400 (m68k_hard_regno_nregs): New function.
12401 * config/mcore/mcore.h (HARD_REGNO_NREGS): Delete.
12402 * config/microblaze/microblaze.h (HARD_REGNO_NREGS): Delete.
12403 * config/mips/mips.h (HARD_REGNO_NREGS): Delete.
12404 * config/mips/mips-protos.h (mips_hard_regno_nregs): Delete.
12405 * config/mips/mips.c (mips_hard_regno_nregs): Make static.
12406 Take and return an unsigned int.
12407 (TARGET_HARD_REGNO_NREGS): Redefine.
12408 * config/mmix/mmix.h (HARD_REGNO_NREGS): Delete.
12409 (CLASS_MAX_NREGS): Use targetm.hard_regno_nregs.
12410 * config/mn10300/mn10300.h (HARD_REGNO_NREGS): Delete.
12411 * config/moxie/moxie.h (HARD_REGNO_NREGS): Delete.
12412 * config/msp430/msp430.h (HARD_REGNO_NREGS): Delete.
12413 * config/msp430/msp430-protos.h (msp430_hard_regno_nregs): Delete.
12414 * config/msp430/msp430.c (TARGET_HARD_REGNO_NREGS): Redefine.
12415 (msp430_hard_regno_nregs): Make static. Take and return an
12416 unsigned int.
12417 * config/nds32/nds32.h (HARD_REGNO_NREGS): Delete.
12418 * config/nds32/nds32-protos.h (nds32_hard_regno_nregs): Delete.
12419 * config/nds32/nds32.c (nds32_hard_regno_nregs): Delete.
12420 (nds32_hard_regno_mode_ok): Use targetm.hard_regno_nregs.
12421 * config/nios2/nios2.h (HARD_REGNO_NREGS): Delete.
12422 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Delete.
12423 * config/nvptx/nvptx.c (nvptx_hard_regno_nregs): New function.
12424 (TARGET_HARD_REGNO_NREGS): Redefine.
12425 * config/pa/pa32-regs.h (HARD_REGNO_NREGS): Rename to...
12426 (PA_HARD_REGNO_NREGS): ...this.
12427 * config/pa/pa64-regs.h (HARD_REGNO_NREGS): Rename to...
12428 (PA_HARD_REGNO_NREGS): ...this.
12429 * config/pa/pa.c (TARGET_HARD_REGNO_NREGS): Redefine.
12430 (pa_hard_regno_nregs): New function.
12431 * config/pdp11/pdp11.h (HARD_REGNO_NREGS): Delete.
12432 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_NREGS): Redefine.
12433 (pdp11_hard_regno_nregs): New function.
12434 * config/powerpcspe/powerpcspe.h (HARD_REGNO_NREGS): Delete.
12435 * config/powerpcspe/powerpcspe.c (TARGET_HARD_REGNO_NREGS): Redefine.
12436 (rs6000_hard_regno_nregs_hook): New function.
12437 * config/riscv/riscv.h (HARD_REGNO_NREGS): Delete.
12438 * config/riscv/riscv-protos.h (riscv_hard_regno_nregs): Delete.
12439 * config/riscv/riscv.c (riscv_hard_regno_nregs): Make static.
12440 Take and return an unsigned int. Move earlier in file.
12441 (TARGET_HARD_REGNO_NREGS): Redefine.
12442 * config/rl78/rl78.h (HARD_REGNO_NREGS): Delete.
12443 * config/rl78/rl78-protos.h (rl78_hard_regno_nregs): Delete.
12444 * config/rl78/rl78.c (TARGET_HARD_REGNO_NREGS): Reefine.
12445 (rl78_hard_regno_nregs): Make static. Take and return an
12446 unsigned int.
12447 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Delete.
12448 * config/rs6000/rs6000.c (TARGET_HARD_REGNO_NREGS): Redefine.
12449 (rs6000_hard_regno_nregs_hook): New function.
12450 * config/rx/rx.h (HARD_REGNO_NREGS): Delete.
12451 * config/rx/rx.c (rx_hard_regno_nregs): New function.
12452 (TARGET_HARD_REGNO_NREGS): Redefine.
12453 * config/s390/s390.h (HARD_REGNO_NREGS): Delete.
12454 * config/s390/s390.c (REGNO_PAIR_OK): Use s390_hard_regno_nregs
12455 instead of HARD_REGNO_NREGS.
12456 (s390_hard_regno_nregs): New function.
12457 (s390_hard_regno_mode_ok): Add comment from s390.h.
12458 (TARGET_HARD_REGNO_NREGS): Redefine.
12459 * config/sh/sh.h (HARD_REGNO_NREGS): Delete.
12460 * config/sh/sh.c (TARGET_HARD_REGNO_NREGS): Redefine.
12461 (sh_hard_regno_nregs): New function.
12462 (sh_pass_in_reg_p): Use it.
12463 * config/sparc/sparc.h (HARD_REGNO_NREGS): Delete.
12464 * config/sparc/sparc.c (TARGET_HARD_REGNO_NREGS): Redefine.
12465 (sparc_hard_regno_nregs): New function.
12466 * config/spu/spu.h (HARD_REGNO_NREGS): Delete.
12467 * config/spu/spu.c (spu_hard_regno_nregs): New function.
12468 (spu_function_arg_advance): Use it, supplying a valid register number.
12469 (TARGET_HARD_REGNO_NREGS): Redefine.
12470 * config/stormy16/stormy16.h (HARD_REGNO_NREGS): Delete.
12471 * config/tilegx/tilegx.h (HARD_REGNO_NREGS): Delete.
12472 * config/tilepro/tilepro.h (HARD_REGNO_NREGS): Delete.
12473 * config/v850/v850.h (HARD_REGNO_NREGS): Delete.
12474 * config/vax/vax.h (HARD_REGNO_NREGS): Delete.
12475 * config/visium/visium.h (HARD_REGNO_NREGS): Delete.
12476 (CLASS_MAX_NREGS): Remove copy of old documentation.
12477 * config/visium/visium.c (TARGET_HARD_REGNO_NREGS): Redefine.
12478 (visium_hard_regno_nregs): New function.
12479 (visium_hard_regno_mode_ok): Use it instead of HARD_REGNO_NREGS.
12480 * config/xtensa/xtensa.h (HARD_REGNO_NREGS): Delete.
12481 * config/xtensa/xtensa.c (TARGET_HARD_REGNO_NREGS): Redefine.
12482 xtensa_hard_regno_nregs): New function.
12483 * system.h (HARD_REGNO_NREGS): Poison.
12484
12485 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12486
12487 * config/arm/arm.h (THUMB_SECONDARY_INPUT_RELOAD_CLASS): Use
12488 hard_regno_nregs instead of HARD_REGNO_NREGS.
12489 (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
12490 * config/c6x/c6x.c (c6x_expand_prologue): Likewise.
12491 (c6x_expand_epilogue): Likewise.
12492 * config/frv/frv.c (frv_alloc_temp_reg): Likewise.
12493 (frv_read_iacc_argument): Likewise.
12494 * config/sh/sh.c: Include regs.h.
12495 (sh_print_operand): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
12496 (regs_used): Likewise.
12497 (output_stack_adjust): Likewise.
12498 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Likewise.
12499 * expmed.c: Include regs.h.
12500 (store_bit_field_1): Use hard_regno_nregs instead of HARD_REGNO_NREGS.
12501 * ree.c: Include regs.h.
12502 (combine_reaching_defs): Use hard_regno_nregs instead of
12503 HARD_REGNO_NREGS.
12504 (add_removable_extension): Likewise.
12505
12506 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12507
12508 * regs.h (hard_regno_nregs): Turn into a function.
12509 (end_hard_regno): Update accordingly.
12510 * caller-save.c (setup_save_areas): Likewise.
12511 (save_call_clobbered_regs): Likewise.
12512 (replace_reg_with_saved_mem): Likewise.
12513 (insert_restore): Likewise.
12514 (insert_save): Likewise.
12515 * combine.c (can_change_dest_mode): Likewise.
12516 (move_deaths): Likewise.
12517 (distribute_notes): Likewise.
12518 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise.
12519 * config/powerpcspe/powerpcspe.c (rs6000_cannot_change_mode_class)
12520 (rs6000_split_multireg_move): Likewise.
12521 (rs6000_register_move_cost): Likewise.
12522 (rs6000_memory_move_cost): Likewise.
12523 * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Likewise.
12524 (rs6000_split_multireg_move): Likewise.
12525 (rs6000_register_move_cost): Likewise.
12526 (rs6000_memory_move_cost): Likewise.
12527 * cselib.c (cselib_reset_table): Likewise.
12528 (cselib_lookup_1): Likewise.
12529 * emit-rtl.c (set_mode_and_regno): Likewise.
12530 * function.c (aggregate_value_p): Likewise.
12531 * ira-color.c (setup_profitable_hard_regs): Likewise.
12532 (check_hard_reg_p): Likewise.
12533 (calculate_saved_nregs): Likewise.
12534 (assign_hard_reg): Likewise.
12535 (improve_allocation): Likewise.
12536 (calculate_spill_cost): Likewise.
12537 * ira-emit.c (modify_move_list): Likewise.
12538 * ira-int.h (ira_hard_reg_set_intersection_p): Likewise.
12539 (ira_hard_reg_in_set_p): Likewise.
12540 * ira.c (setup_reg_mode_hard_regset): Likewise.
12541 (clarify_prohibited_class_mode_regs): Likewise.
12542 (check_allocation): Likewise.
12543 * lra-assigns.c (find_hard_regno_for_1): Likewise.
12544 (lra_setup_reg_renumber): Likewise.
12545 (setup_try_hard_regno_pseudos): Likewise.
12546 (spill_for): Likewise.
12547 (assign_hard_regno): Likewise.
12548 (setup_live_pseudos_and_spill_after_risky_transforms): Likewise.
12549 * lra-constraints.c (in_class_p): Likewise.
12550 (lra_constraint_offset): Likewise.
12551 (simplify_operand_subreg): Likewise.
12552 (lra_constraints): Likewise.
12553 (split_reg): Likewise.
12554 (split_if_necessary): Likewise.
12555 (invariant_p): Likewise.
12556 (inherit_in_ebb): Likewise.
12557 * lra-lives.c (process_bb_lives): Likewise.
12558 * lra-remat.c (reg_overlap_for_remat_p): Likewise.
12559 (get_hard_regs): Likewise.
12560 (do_remat): Likewise.
12561 * lra-spills.c (assign_spill_hard_regs): Likewise.
12562 * mode-switching.c (create_pre_exit): Likewise.
12563 * postreload.c (reload_combine_recognize_pattern): Likewise.
12564 * recog.c (peep2_find_free_register): Likewise.
12565 * regcprop.c (kill_value_regno): Likewise.
12566 (set_value_regno): Likewise.
12567 (copy_value): Likewise.
12568 (maybe_mode_change): Likewise.
12569 (find_oldest_value_reg): Likewise.
12570 (copyprop_hardreg_forward_1): Likewise.
12571 * regrename.c (check_new_reg_p): Likewise.
12572 (regrename_do_replace): Likewise.
12573 * reload.c (push_reload): Likewise.
12574 (combine_reloads): Likewise.
12575 (find_dummy_reload): Likewise.
12576 (operands_match_p): Likewise.
12577 (find_reloads): Likewise.
12578 (find_equiv_reg): Likewise.
12579 (reload_adjust_reg_for_mode): Likewise.
12580 * reload1.c (count_pseudo): Likewise.
12581 (count_spilled_pseudo): Likewise.
12582 (find_reg): Likewise.
12583 (clear_reload_reg_in_use): Likewise.
12584 (free_for_value_p): Likewise.
12585 (allocate_reload_reg): Likewise.
12586 (choose_reload_regs): Likewise.
12587 (reload_adjust_reg_for_temp): Likewise.
12588 (emit_reload_insns): Likewise.
12589 (delete_output_reload): Likewise.
12590 * rtlanal.c (subreg_get_info): Likewise.
12591 * sched-deps.c (sched_analyze_reg): Likewise.
12592 * sel-sched.c (init_regs_for_mode): Likewise.
12593 (mark_unavailable_hard_regs): Likewise.
12594 (choose_best_reg_1): Likewise.
12595 (verify_target_availability): Likewise.
12596 * valtrack.c (dead_debug_insert_temp): Likewise.
12597 * var-tracking.c (track_loc_p): Likewise.
12598 (emit_note_insn_var_location): Likewise.
12599 * varasm.c (make_decl_rtl): Likewise.
12600 * reginfo.c (choose_hard_reg_mode): Likewise.
12601 (init_reg_modes_target): Refer directly to
12602 this_target_regs->x_hard_regno_nregs.
12603
12604 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12605
12606 * ira-costs.c (record_operand_costs): Use in_hard_reg_set_p
12607 instead of hard_regno_nregs.
12608
12609 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12610
12611 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Use
12612 end_hard_regno instead of hard_regno_nregs.
12613 * config/s390/s390.c (s390_reg_clobbered_rtx): Likewise.
12614 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Likewise.
12615 * config/visium/visium.c (visium_hard_regno_mode_ok): Likewise.
12616 * ira-color.c (improve_allocation): Likewise.
12617 * lra-assigns.c (find_hard_regno_for_1): Likewise.
12618 * lra-lives.c (mark_regno_live): Likewise.
12619 (mark_regno_dead): Likewise.
12620 * lra-remat.c (operand_to_remat): Likewise.
12621 * lra.c (collect_non_operand_hard_regs): Likewise.
12622 * postreload.c (reload_combine_note_store): Likewise.
12623 (move2add_valid_value_p): Likewise.
12624 * reload.c (regno_clobbered_p): Likewise.
12625
12626 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12627
12628 * config/frv/frv.c (FOR_EACH_REGNO): Use END_REGNO instead of
12629 hard_regno_nregs.
12630 * config/v850/v850.c (v850_reorg): Likewise.
12631 * reload.c (refers_to_regno_for_reload_p): Likewise.
12632 (find_equiv_reg): Likewise.
12633 * reload1.c (reload_reg_reaches_end_p): Likewise.
12634
12635 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12636
12637 * caller-save.c (add_used_regs): Use REG_NREGS instead of
12638 hard_regno_nregs.
12639 * config/aarch64/aarch64.c (aarch64_split_combinev16qi): Likewise.
12640 * config/arm/arm.c (output_move_neon): Likewise.
12641 (arm_attr_length_move_neon): Likewise.
12642 (neon_split_vcombine): Likewise.
12643 * config/c6x/c6x.c (c6x_mark_reg_read): Likewise.
12644 (c6x_mark_reg_written): Likewise.
12645 (c6x_dwarf_register_span): Likewise.
12646 * config/i386/i386.c (ix86_save_reg): Likewise.
12647 * config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
12648 (rws_access_reg): Likewise.
12649 * config/s390/s390.c (s390_call_saved_register_used): Likewise.
12650 * mode-switching.c (create_pre_exit): Likewise.
12651 * ree.c (combine_reaching_defs): Likewise.
12652 (add_removable_extension): Likewise.
12653 * regcprop.c (find_oldest_value_reg): Likewise.
12654 (copyprop_hardreg_forward_1): Likewise.
12655 * reload.c (reload_inner_reg_of_subreg): Likewise.
12656 (push_reload): Likewise.
12657 (combine_reloads): Likewise.
12658 (find_dummy_reload): Likewise.
12659 (reload_adjust_reg_for_mode): Likewise.
12660 * reload1.c (find_reload_regs): Likewise.
12661 (forget_old_reloads_1): Likewise.
12662 (reload_reg_free_for_value_p): Likewise.
12663 (reload_adjust_reg_for_temp): Likewise.
12664 (emit_reload_insns): Likewise.
12665 (delete_output_reload): Likewise.
12666 * sel-sched.c (choose_best_reg_1): Likewise.
12667 (choose_best_pseudo_reg): Likewise.
12668
12669 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12670 Alan Hayward <alan.hayward@arm.com>
12671 David Sherwood <david.sherwood@arm.com>
12672
12673 * defaults.h (SLOW_UNALIGNED_ACCESS): Delete.
12674 * target.def (slow_unaligned_access): New hook.
12675 * targhooks.h (default_slow_unaligned_access): Declare.
12676 * targhooks.c (default_slow_unaligned_access): New function.
12677 * doc/tm.texi.in (SLOW_UNALIGNED_ACCESS): Replace with...
12678 (TARGET_SLOW_UNALIGNED_ACCESS): ...this.
12679 * doc/tm.texi: Regenerate.
12680 * config/alpha/alpha.h (SLOW_UNALIGNED_ACCESS): Delete.
12681 * config/arm/arm.h (SLOW_UNALIGNED_ACCESS): Delete.
12682 * config/i386/i386.h (SLOW_UNALIGNED_ACCESS): Delete commented-out
12683 definition.
12684 * config/powerpcspe/powerpcspe.h (SLOW_UNALIGNED_ACCESS): Delete.
12685 * config/powerpcspe/powerpcspe.c (TARGET_SLOW_UNALIGNED_ACCESS):
12686 Redefine.
12687 (rs6000_slow_unaligned_access): New function.
12688 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
12689 (expand_block_compare): Likewise.
12690 (expand_strn_compare): Likewise.
12691 (rs6000_rtx_costs): Likewise.
12692 * config/riscv/riscv.h (SLOW_UNALIGNED_ACCESS): Delete.
12693 (riscv_slow_unaligned_access): Likewise.
12694 * config/riscv/riscv.c (riscv_slow_unaligned_access): Rename to...
12695 (riscv_slow_unaligned_access_p): ...this and make static.
12696 (riscv_option_override): Update accordingly.
12697 (riscv_slow_unaligned_access): New function.
12698 (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
12699 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Delete.
12700 * config/rs6000/rs6000.c (TARGET_SLOW_UNALIGNED_ACCESS): Redefine.
12701 (rs6000_slow_unaligned_access): New function.
12702 (rs6000_emit_move): Use it instead of SLOW_UNALIGNED_ACCESS.
12703 (rs6000_rtx_costs): Likewise.
12704 * config/rs6000/rs6000-string.c (expand_block_compare)
12705 (expand_strn_compare): Use targetm.slow_unaligned_access instead
12706 of SLOW_UNALIGNED_ACCESS.
12707 * config/tilegx/tilegx.h (SLOW_UNALIGNED_ACCESS): Delete.
12708 * config/tilepro/tilepro.h (SLOW_UNALIGNED_ACCESS): Delete.
12709 * calls.c (expand_call): Use targetm.slow_unaligned_access instead
12710 of SLOW_UNALIGNED_ACCESS.
12711 * expmed.c (simple_mem_bitfield_p): Likewise.
12712 * expr.c (alignment_for_piecewise_move): Likewise.
12713 (emit_group_load_1): Likewise.
12714 (emit_group_store): Likewise.
12715 (copy_blkmode_from_reg): Likewise.
12716 (emit_push_insn): Likewise.
12717 (expand_assignment): Likewise.
12718 (store_field): Likewise.
12719 (expand_expr_real_1): Likewise.
12720 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise.
12721 * lra-constraints.c (simplify_operand_subreg): Likewise.
12722 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
12723 * gimple-ssa-store-merging.c: Likewise in block comment at start
12724 of file.
12725 * tree-ssa-strlen.c: Include target.h.
12726 (handle_builtin_memcmp): Use targetm.slow_unaligned_access instead
12727 of SLOW_UNALIGNED_ACCESS.
12728 * system.h (SLOW_UNALIGNED_ACCESS): Poison.
12729
12730 2017-09-12 Richard Sandiford <richard.sandiford@linaro.org>
12731
12732 PR rtl-optimization/82185
12733 * expmed.c (emit_store_flag_int): Only test tem if it has been
12734 initialized.
12735
12736 2017-09-12 Richard Biener <rguenther@suse.de>
12737
12738 PR middle-end/82149
12739 * match.pd ((FTYPE) N CMP CST): Fix typo.
12740
12741 2017-09-12 Simon Atanasyan <simon.atanasyan@imgtec.com>
12742
12743 * config/mips/mips.c (mips_attribute_table): Add 'short_call'
12744 attribute.
12745 (mips_near_type_p): Add 'short_call' attribute as a synonym
12746 for 'near'.
12747 * doc/extend.texi (short_call): Document new function attribute.
12748
12749 2017-09-12 Jakub Jelinek <jakub@redhat.com>
12750
12751 PR target/82112
12752 * c-common.c (sync_resolve_size): Instead of c_dialect_cxx ()
12753 assertion check that in the condition.
12754 (get_atomic_generic_size): Likewise. Before testing if parameter
12755 has pointer type, if it has array type, call for C++
12756 default_conversion to perform array-to-pointer conversion.
12757
12758 2017-09-12 Richard Biener <rguenther@suse.de>
12759
12760 * tree-vect-generic.c (expand_vector_operations_1): Do nothing
12761 for operations we cannot scalarize.
12762
12763 2017-09-12 Aldy Hernandez <aldyh@redhat.com>
12764
12765 * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
12766 vectors heap vectors. Clean up comments.
12767 Make visited_bbs a reference.
12768 (profitable_jump_thread_path): Make GC
12769 vectors heap vectors. Clean up comments.
12770 Misc cleanups.
12771 (convert_and_register_jump_thread_path): Make GC vectors heap
12772 vectors.
12773 (check_subpath_and_update_thread_path): Same. Clean up comments.
12774 Make visited_bbs a reference.
12775 (handle_phi): Abstract common code to to
12776 register_jump_thread_path_if_profitable.
12777 Rename VAR_BB to DEF_BB.
12778 Update comments.
12779 Make GC vectors heap vectors.
12780 Make visited_bbs a reference.
12781 (handle_assignment): Same.
12782 (register_jump_thread_path_if_profitable): New.
12783 (fsm_find_control_statement_thread_paths): Rename VAR_BB to
12784 DEF_BB.
12785 Make GC vectors heap vectors. Clean up comments.
12786 Make visited_bbs a reference.
12787 (find_jump_threads_backwards): Make visited_bbs live in the stack.
12788 * tree-ssa-threadupdate.c (delete_jump_thread_path): Fix typo in
12789 comment.
12790
12791 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
12792
12793 PR target/82181
12794 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
12795 words of E_DImode object are reachable by xtensa_uimm8x4 access.
12796
12797 2017-09-11 Vidya Praveen <vidyapraveen@arm.com>
12798
12799 Revert r251800 and r251799.
12800
12801 2017-09-11 Martin Jambor <mjambor@suse.cz>
12802
12803 PR hsa/82119
12804 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
12805 arguments in advance.
12806 * hsa-regalloc.c (naive_process_phi): New parameter predecessors,
12807 use it to find predecessor edges.
12808 (naive_outof_ssa): Collect vector of predecessors.
12809
12810 2017-09-08 Jason Merrill <jason@redhat.com>
12811
12812 PR c++/70029 - ICE with ref-qualifier and -flto
12813 * langhooks.h (struct lang_hooks_for_types): Add
12814 copy_lang_qualifiers.
12815 * attribs.c (build_type_attribute_qual_variant): Use it.
12816 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
12817 NULL.
12818 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
12819 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
12820
12821 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
12822
12823 PR target/81988
12824 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
12825 (*mulsi3_sp64): New instruction.
12826 (mulsi3): New expander.
12827
12828 2017-09-08 Uros Bizjak <ubizjak@gmail.com>
12829
12830 * config/alpha/alpha.c (alpha_print_operand) <case 'S'>: Remove.
12831
12832 2017-09-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12833
12834 * sancov.c: Include memmodel.h.
12835
12836 2017-09-07 Eric Botcazou <ebotcazou@adacore.com>
12837
12838 PR target/80897
12839 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Deal with too
12840 large offsets.
12841
12842 2017-09-07 Carl Love <cel@us.ibm.com>
12843
12844 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
12845 the sldi instruction.
12846
12847 2017-09-07 David Edelsohn <dje.gcc@gmail.com>
12848
12849 * sancov.c: Include tm_p.h.
12850
12851 2017-09-07 Jakub Jelinek <jakub@redhat.com>
12852
12853 PR target/81979
12854 * output.h (switch_to_other_text_partition): New declaration.
12855 * varasm.c (switch_to_other_text_partition): New function.
12856 * config/rs6000/rs6000.c (uses_TOC): Return 2 if
12857 NOTE_INSN_SWITCH_TEXT_SECTIONS is seen before finding load_toc_* insn.
12858 (rs6000_elf_declare_function_name): If uses_TOC returned 2, switch
12859 to the other text partition before emitting LCL label and switch back
12860 after emitting the word after it.
12861
12862 2017-09-07 Richard Biener <rguenther@suse.de>
12863
12864 * passes.def (pass_split_crit_edges): Remove instance before PRE.
12865 * tree-ssa-pre.c (pass_pre::execute): Instead manually split
12866 critical edges here, after loop init.
12867 (pass_data_pre): Remove PROP_no_crit_edges flags.
12868 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use vn_valueize
12869 for valueization of call args to avoid leaking VN_TOP.
12870 (visit_use): Assert we do not visit default defs.
12871 (init_scc_vn): Use build_decl for VN_TOP to make name nicer.
12872 Use error_mark_node to more easily detect leaking VN_TOP.
12873 All default-defs are varying, not VN_TOP. Mark them visited.
12874 (run_scc_vn): Make code match comment.
12875
12876 2017-09-07 Michael Meissner <meissner@linux.vnet.ibm.com>
12877
12878 * config/rs6000/rs6000-cpus.def (OTHER_VSX_VECTOR_MASKS): Delete
12879 OPTION_MASK_FLOAT128_KEYWORD.
12880 (POWERPC_MASKS): Likewise.
12881 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Delete
12882 support for the -mfloat128-type option, and make -mfloat128
12883 default on PowerPC Linux systems. Define or undefine
12884 __FLOAT128__ and __FLOAT128_HARDWARE__ for the current options.
12885 Define __float128 to be __ieee128 if IEEE 128-bit support is
12886 enabled, or undefine it.
12887 (rs6000_cpu_cpp_builtins): Delete defining __FLOAT128__ here.
12888 Delete defining __FLOAT128_TYPE__.
12889 * config/rs6000/rs6000.opt (x_TARGET_FLOAT128_TYPE): Delete the
12890 -mfloat128-type option and make -mfloat128 default on PowerPC
12891 Linux systems.
12892 (TARGET_FLOAT128_TYPE): Likewise.
12893 (-mfloat128-type): Likewise.
12894 * config/rs6000/rs6000.c (rs6000_option_override_internal):
12895 Delete the -mfloat128-type option and make -mfloat128 default on
12896 PowerPC Linux systems. Always use __ieee128 to be the keyword for
12897 the IEEE 128-bit type, and map __float128 to __ieee128 if IEEE
12898 128-bit floating point is enabled. Change tests from using
12899 -mfloat128-type to -mfloat128.
12900 (rs6000_mangle_type): Use the correct mangling for the __float128
12901 type even if normal long double is restricted to 64-bits.
12902 (floatn_mode): Enable the _Float128 type by default on VSX Linux
12903 systems.
12904 * config/rs6000/rs6000.h (MASK_FLOAT128_TYPE): Delete.
12905 (MASK_FLOAT128_KEYWORD): Define new shortcut macro.
12906 (RS6000BTM_FLOAT128): Define in terms of -mfloat128, not
12907 -mfloat128-type.
12908 * doc/invoke.texi (RS/6000 and PowerPC Options): Update
12909 documentation for -mfloat128.
12910
12911 2017-09-06 Olivier Hainque <hainque@adacore.com>
12912
12913 * config.gcc (powerpc-wrs-vxworksspe): Now match as vxworks*spe.
12914
12915 2017-09-06 Wish Wu <wishwu007@gmail.com>
12916 Jakub Jelinek <jakub@redhat.com>
12917
12918 * asan.c (initialize_sanitizer_builtins): Add
12919 BT_FN_VOID_UINT8_UINT8, BT_FN_VOID_UINT16_UINT16,
12920 BT_FN_VOID_UINT32_UINT32, BT_FN_VOID_UINT64_UINT64,
12921 BT_FN_VOID_FLOAT_FLOAT, BT_FN_VOID_DOUBLE_DOUBLE and
12922 BT_FN_VOID_UINT64_PTR variables.
12923 * builtin-types.def (BT_FN_VOID_UINT8_UINT8): New fn type.
12924 (BT_FN_VOID_UINT16_UINT16): Likewise.
12925 (BT_FN_VOID_UINT32_UINT32): Likewise.
12926 (BT_FN_VOID_FLOAT_FLOAT): Likewise.
12927 (BT_FN_VOID_DOUBLE_DOUBLE): Likewise.
12928 (BT_FN_VOID_UINT64_PTR): Likewise.
12929 * common.opt (flag_sanitize_coverage): New variable.
12930 (fsanitize-coverage=trace-pc): Remove.
12931 (fsanitize-coverage=): Add.
12932 * flag-types.h (enum sanitize_coverage_code): New enum.
12933 * fold-const.c (fold_range_test): Disable non-short-circuit
12934 optimization if flag_sanitize_coverage.
12935 (fold_truth_andor): Likewise.
12936 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
12937 * opts.c (COVERAGE_SANITIZER_OPT): Define.
12938 (coverage_sanitizer_opts): New array.
12939 (get_closest_sanitizer_option): Add OPTS argument, handle also
12940 OPT_fsanitize_coverage_.
12941 (parse_sanitizer_options): Adjusted to also handle
12942 OPT_fsanitize_coverage_.
12943 (common_handle_option): Add OPT_fsanitize_coverage_.
12944 * sancov.c (instrument_comparison, instrument_switch): New function.
12945 (sancov_pass): Add trace-cmp support.
12946 * sanitizer.def (BUILT_IN_SANITIZER_COV_TRACE_CMP1,
12947 BUILT_IN_SANITIZER_COV_TRACE_CMP2, BUILT_IN_SANITIZER_COV_TRACE_CMP4,
12948 BUILT_IN_SANITIZER_COV_TRACE_CMP8,
12949 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP1,
12950 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP2,
12951 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP4,
12952 BUILT_IN_SANITIZER_COV_TRACE_CONST_CMP8,
12953 BUILT_IN_SANITIZER_COV_TRACE_CMPF, BUILT_IN_SANITIZER_COV_TRACE_CMPD,
12954 BUILT_IN_SANITIZER_COV_TRACE_SWITCH): New builtins.
12955 * doc/invoke.texi: Document -fsanitize-coverage=trace-cmp.
12956
12957 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
12958
12959 * config/arm/parsecpu.awk (fatal): Note that we've encountered an
12960 error. Only quit immediately if parsing is complete.
12961 (BEGIN): Initialize fatal_err and parse_done.
12962 (begin fpu, end fpu): Check number of arguments.
12963 (begin arch, end arch): Likewise.
12964 (begin cpu, end cpu): Likewise.
12965 (cname, tune for, tune flags, architecture, fpu, option): Likewise.
12966 (optalias): Likewise.
12967
12968 2017-09-06 Richard Earnshaw <rearnsha@arm.com>
12969
12970 * config.gcc (arm*-*-*): Don't add arm-isa.h to tm_p_file.
12971 * config/arm/arm-isa.h: Delete. Move definitions to ...
12972 * arm-cpus.in: ... here. Use new feature and fgroup values.
12973 * config/arm/arm.c (arm_option_override): Use lower case for feature
12974 bit names.
12975 * config/arm/arm.h (TARGET_HARD_FLOAT): Likewise.
12976 (TARGET_VFP3, TARGET_VFP5, TARGET_FMA): Likewise.
12977 * config/arm/parsecpu.awk (END): Add new command 'isa'.
12978 (isa_pfx): Delete.
12979 (print_isa_bits_for): New function.
12980 (gen_isa): New function.
12981 (gen_comm_data): Use print_isa_bits_for.
12982 (define feature): New keyword.
12983 (define fgroup): New keyword.
12984 * config/arm/t-arm (OPTIONS_H_EXTRA): Add arm-isa.h
12985 (arm-isa.h): Add rule to generate file.
12986 * common/config/arm/arm-common.c: (arm_canon_arch_option): Use lower
12987 case for feature bit names.
12988
12989 2017-09-06 Richard Biener <rguenther@suse.de>
12990
12991 * tree-ssa-pre.c (NECESSARY): Remove.
12992 (create_expression_by_pieces): Do not touch pass-local flags.
12993 (insert_into_preds_of_block): Likewise.
12994 (do_pre_regular_insertion): Likewise.
12995 (eliminate_insert): Likewise.
12996 (eliminate_dom_walker::before_dom_children): Likewise.
12997 (fini_eliminate): Do not look at inserted_exprs.
12998 (mark_operand_necessary): Remove.
12999 (remove_dead_inserted_code): Replace with simple work-list
13000 algorithm based on inserted_exprs and SSA uses.
13001 (pass_pre::execute): Re-order fini_eliminate and
13002 remove_dead_inserted_code.
13003
13004 2017-09-06 Olivier Hainque <hainque@adacore.com>
13005
13006 * config/powerpcspe/vxworks.h (VXCPU_FOR_8548): Correct definition
13007 for VxWorks 7. Adjust surrounding comments.
13008
13009 2017-09-06 Richard Biener <rguenther@suse.de>
13010
13011 * gimple-ssa-strength-reduction.c
13012 (find_candidates_dom_walker::before_dom_children): Also allow
13013 pointer types.
13014
13015 2017-09-06 Richard Biener <rguenther@suse.de>
13016
13017 PR tree-optimization/82108
13018 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
13019 for gap in the non-permutation SLP case.
13020
13021 2017-09-06 Martin Jambor <mjambor@suse.cz>
13022
13023 PR tree-optimization/82078
13024 * tree-sra.c (sort_and_splice_var_accesses): Move call to
13025 add_access_to_work_queue...
13026 (build_accesses_from_assign): ...here.
13027 (propagate_all_subaccesses): Make sure racc is the group
13028 representative, if there is one.
13029
13030 2017-09-06 Jakub Jelinek <jakub@redhat.com>
13031
13032 PR middle-end/82095
13033 * varasm.c (categorize_decl_for_section): Use SECCAT_TBSS for TLS vars with
13034 NULL DECL_INITIAL.
13035
13036 2017-09-06 Richard Biener <rguenther@suse.de>
13037
13038 * gimple-ssa-strength-reduction.c
13039 (find_candidates_dom_walker::before_doom_children): Use a
13040 type and not a mode check.
13041
13042 2017-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
13043
13044 PR target/77308
13045 * config/arm/predicates.md (arm_general_adddi_operand): Create new
13046 non-vfp predicate.
13047 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Use new predicates.
13048
13049 2017-09-05 Jeff Law <law@redhat.com>
13050
13051 PR tree-optimization/64910
13052 * tree-ssa-reassoc.c (reassociate_bb): Restrict last change to
13053 cases where we have 3 or more operands.
13054
13055 2017-09-05 Jakub Jelinek <jakub@redhat.com>
13056
13057 PR middle-end/81768
13058 * omp-low.c (lower_omp_for): Recompute tree invariant if
13059 gimple_omp_for_initial/final is ADDR_EXPR.
13060
13061 PR middle-end/81768
13062 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
13063 into gimple val before gimplification fo the COND_EXPR.
13064
13065 2017-09-05 Aldy Hernandez <aldyh@redhat.com>
13066
13067 * tree-ssa-threadupdate.c (duplicate_thread_path): Remove unused
13068 REGION_COPY argument.
13069 (thread_through_all_blocks): Remove unused argument to
13070 duplicate_thread_path.
13071
13072 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13073 Alan Hayward <alan.hayward@arm.com>
13074 David Sherwood <david.sherwood@arm.com>
13075
13076 * config/aarch64/aarch64-protos.h (aarch64_gen_adjusted_ldpstp):
13077 Take a scalar_mode rather than a machine_mode.
13078 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13079 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Likewise.
13080 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13081 (aarch64_gen_adjusted_ldpstp): Likewise.
13082 (aarch64_expand_vector_init): Use scalar_mode instead of machine_mode.
13083
13084 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13085 Alan Hayward <alan.hayward@arm.com>
13086 David Sherwood <david.sherwood@arm.com>
13087
13088 * config/aarch64/aarch64-protos.h (aarch64_is_extend_from_extract):
13089 Take a scalar_int_mode instead of a machine_mode.
13090 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
13091 (aarch64_output_scalar_simd_mov_immediate): Likewise.
13092 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
13093 (aarch64_simd_attr_length_rglist): Delete.
13094 * config/aarch64/aarch64.c (aarch64_is_extend_from_extract): Take
13095 a scalar_int_mode instead of a machine_mode.
13096 (aarch64_add_offset): Likewise.
13097 (aarch64_internal_mov_immediate): Likewise
13098 (aarch64_add_constant_internal): Likewise.
13099 (aarch64_add_constant): Likewise.
13100 (aarch64_movw_imm): Likewise.
13101 (aarch64_rtx_arith_op_extract_p): Likewise.
13102 (aarch64_mask_and_shift_for_ubfiz_p): Likewise.
13103 (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
13104 Remove assert that the mode isn't a vector.
13105 (aarch64_output_scalar_simd_mov_immediate): Likewise.
13106 (aarch64_expand_mov_immediate): Update calls after above changes.
13107 (aarch64_output_casesi): Use as_a <scalar_int_mode>.
13108 (aarch64_and_bitmask_imm): Check for scalar integer modes.
13109 (aarch64_move_imm): Likewise.
13110 (aarch64_can_const_movi_rtx_p): Likewise.
13111 (aarch64_strip_extend): Likewise.
13112 (aarch64_extr_rtx_p): Likewise.
13113 (aarch64_rtx_costs): Likewise, using wode_mode as the mode of
13114 a CONST_INT when the mode parameter is VOIDmode.
13115 (aarch64_float_const_rtx_p): Use scalar_int_mode for a temporary.
13116
13117 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13118
13119 * machmode.h (bitwise_mode_for_mode): Return opt_mode.
13120 * stor-layout.c (bitwise_mode_for_mode): Likewise.
13121 (bitwise_type_for_mode): Update accordingly.
13122
13123 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13124
13125 * stor-layout.h (mode_for_size_tree): Return an opt_mode.
13126 * stor-layout.c (mode_for_size_tree): Likewise.
13127 (mode_for_array): Update accordingly.
13128 (layout_decl): Likewise.
13129 (compute_record_mode): Likewise. Only set the mode once.
13130
13131 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13132
13133 * target.def (get_mask_mode): Change return type to opt_mode.
13134 Expand commentary.
13135 * doc/tm.texi: Regenerate.
13136 * targhooks.h (default_get_mask_mode): Return an opt_mode.
13137 * targhooks.c (default_get_mask_mode): Likewise.
13138 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
13139 * optabs-query.c (can_vec_mask_load_store_p): Update use of
13140 targetm.get_mask_mode.
13141 * tree.c (build_truth_vector_type): Likewise.
13142
13143 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13144
13145 * machmode.h (mode_for_vector): Return an opt_mode.
13146 * stor-layout.c (mode_for_vector): Likewise.
13147 (mode_for_int_vector): Update accordingly.
13148 (layout_type): Likewise.
13149 * config/i386/i386.c (emit_memmov): Likewise.
13150 (ix86_expand_set_or_movmem): Likewise.
13151 (ix86_expand_vector_init): Likewise.
13152 (ix86_get_mask_mode): Likewise.
13153 * config/powerpcspe/powerpcspe.c (rs6000_expand_vec_perm_const_1):
13154 Likewise.
13155 * config/rs6000/rs6000.c (rs6000_expand_vec_perm_const_1): Likewise.
13156 * expmed.c (extract_bit_field_1): Likewise.
13157 * expr.c (expand_expr_real_2): Likewise.
13158 * optabs-query.c (can_vec_perm_p): Likewise.
13159 (can_vec_mask_load_store_p): Likewise.
13160 * optabs.c (expand_vec_perm): Likewise.
13161 * targhooks.c (default_get_mask_mode): Likewise.
13162 * tree-vect-stmts.c (vectorizable_store): Likewise.
13163 (vectorizable_load): Likewise.
13164 (get_vectype_for_scalar_type_and_size): Likewise.
13165
13166 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13167
13168 * machmode.h (mode_for_int_vector): New function.
13169 * stor-layout.c (mode_for_int_vector): Likewise.
13170 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use it.
13171 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Likewise.
13172 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
13173 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
13174 (s390_expand_vcond): Likewise.
13175
13176 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13177
13178 * machmode.h (opt_machine_mode): New type.
13179 (opt_mode<T>): Allow construction from anything that can be
13180 converted to a T.
13181 (is_a, as_a, dyn_cast): Add overloads for opt_mode.
13182 (mode_for_size): Return an opt_machine_mode.
13183 * stor-layout.c (mode_for_size): Likewise.
13184 (mode_for_size_tree): Update call accordingly.
13185 (bitwise_mode_for_mode): Likewise.
13186 (make_fract_type): Likewise.
13187 (make_accum_type): Likewise.
13188 * caller-save.c (replace_reg_with_saved_mem): Update call
13189 accordingly.
13190 * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
13191 * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
13192 * config/s390/s390.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
13193 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_MODE): Likewise.
13194 * expmed.c (extract_bit_field_1): Likewise.
13195 * reload.c (get_secondary_mem): Likewise.
13196 * varasm.c (assemble_integer): Likewise.
13197 * lower-subreg.c (simplify_subreg_concatn): Likewise. Move
13198 early-out.
13199
13200 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13201
13202 * machmode.h (decimal_float_mode_for_size): New function.
13203 * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use float_mode_for_size.
13204 (REAL_VALUE_TO_TARGET_DOUBLE): Likewise.
13205 (REAL_VALUE_TO_TARGET_SINGLE): Likewise.
13206 (REAL_VALUE_TO_TARGET_DECIMAL128): Use decimal_float_mode_for_size.
13207 (REAL_VALUE_TO_TARGET_DECIMAL64): Likewise.
13208 (REAL_VALUE_TO_TARGET_DECIMAL32): Likewise.
13209
13210 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13211
13212 * builtins.c (expand_builtin_powi): Use int_mode_for_size.
13213 (get_builtin_sync_mode): Likewise.
13214 (expand_ifn_atomic_compare_exchange): Likewise.
13215 (expand_builtin_atomic_clear): Likewise.
13216 (expand_builtin_atomic_test_and_set): Likewise.
13217 (fold_builtin_atomic_always_lock_free): Likewise.
13218 * calls.c (compute_argument_addresses): Likewise.
13219 (emit_library_call_value_1): Likewise.
13220 (store_one_arg): Likewise.
13221 * combine.c (combine_instructions): Likewise.
13222 * config/aarch64/aarch64.c (aarch64_function_value): Likewise.
13223 * config/arm/arm.c (arm_function_value): Likewise.
13224 (aapcs_allocate_return_reg): Likewise.
13225 * config/c6x/c6x.c (c6x_expand_movmem): Likewise.
13226 * config/i386/i386.c (construct_container): Likewise.
13227 (ix86_gimplify_va_arg): Likewise.
13228 (ix86_expand_sse_cmp): Likewise.
13229 (emit_memmov): Likewise.
13230 (emit_memset): Likewise.
13231 (expand_small_movmem_or_setmem): Likewise.
13232 (ix86_expand_pextr): Likewise.
13233 (ix86_expand_pinsr): Likewise.
13234 * config/lm32/lm32.c (lm32_block_move_inline): Likewise.
13235 * config/microblaze/microblaze.c (microblaze_block_move_straight):
13236 Likewise.
13237 * config/mips/mips.c (mips_function_value_1) Likewise.
13238 (mips_block_move_straight): Likewise.
13239 (mips_expand_ins_as_unaligned_store): Likewise.
13240 * config/powerpcspe/powerpcspe.c
13241 (rs6000_darwin64_record_arg_advance_flush): Likewise.
13242 (rs6000_darwin64_record_arg_flush): Likewise.
13243 * config/rs6000/rs6000.c
13244 (rs6000_darwin64_record_arg_advance_flush): Likewise.
13245 (rs6000_darwin64_record_arg_flush): Likewise.
13246 * config/sparc/sparc.c (sparc_function_arg_1): Likewise.
13247 (sparc_function_value_1): Likewise.
13248 * config/spu/spu.c (adjust_operand): Likewise.
13249 (spu_emit_branch_or_set): Likewise.
13250 (arith_immediate_p): Likewise.
13251 * emit-rtl.c (gen_lowpart_common): Likewise.
13252 * expr.c (expand_expr_real_1): Likewise.
13253 * function.c (assign_parm_setup_block): Likewise.
13254 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Likewise.
13255 * reload1.c (alter_reg): Likewise.
13256 * stor-layout.c (mode_for_vector): Likewise.
13257 (layout_type): Likewise.
13258
13259 2017-09-05 Richard Sandiford <richard.sandiford@linaro.org>
13260
13261 * config/spu/spu.c (exp2_immediate_p): Use int_mode_for_mode.
13262 (spu_convert_move): Likewise.
13263 * lower-subreg.c (resolve_simple_move): Likewise.
13264
13265 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13266
13267 PR target/81833
13268 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
13269 define_insn to a define_expand.
13270 (altivec_vsum2sws_direct): New define_insn.
13271 (altivec_vsumsws): Convert from a define_insn to a define_expand.
13272
13273 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
13274
13275 * config/arm/arm.c (arm_option_params_internal): Improve setting of
13276 max_insns_skipped.
13277
13278 2017-09-05 H.J. Lu <hongjiu.lu@intel.com>
13279
13280 PR target/59501
13281 PR target/81624
13282 PR target/81769
13283 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't
13284 realign stack if stack alignment needed is less than incoming
13285 stack boundary.
13286
13287 2017-09-05 Marek Polacek <polacek@redhat.com>
13288
13289 PR sanitizer/82072
13290 * convert.c (convert_to_integer_1) <case NEGATE_EXPR>: Move the ubsan
13291 check earlier.
13292
13293 2017-09-05 Wilco Dijkstra <wdijkstr@arm.com>
13294
13295 * explow.c (get_dynamic_stack_size): Improve dynamic alignment.
13296
13297 2017-09-05 Richard Biener <rguenther@suse.de>
13298
13299 PR tree-optimization/82084
13300 * fold-const.c (can_native_encode_string_p): Handle wide characters.
13301
13302 2017-09-05 Richard Biener <rguenther@suse.de>
13303
13304 PR tree-optimization/82102
13305 * tree-ssa-pre.c (fini_eliminate): Check if lhs is NULL.
13306
13307 2017-09-05 Martin Liska <mliska@suse.cz>
13308
13309 PR tree-optimization/82032
13310 * tree-cfg.c (generate_range_test): New function.
13311 * tree-cfg.h (generate_range_test): Declared here.
13312 * tree-cfgcleanup.c (convert_single_case_switch): New function.
13313 (cleanup_control_expr_graph): Use it.
13314 * tree-switch-conversion.c (try_switch_expansion): Remove
13315 assert.
13316 (emit_case_nodes): Use generate_range_test.
13317
13318 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
13319
13320 PR target/82098
13321 * config/i386/i386.md (*<btsc><mode>_mask): Add
13322 TARGET_USE_BT to insn constraint.
13323 (*btr<mode>_mask): Ditto.
13324
13325 2017-09-04 Wilco Dijkstra <wdijkstr@arm.com>
13326
13327 * config/arm/arm.c (arm_legitimate_index_p): Add comment.
13328 (thumb2_legitimate_index_p): Use correct range for DI/DF mode.
13329
13330 2017-09-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
13331
13332 PR target/77308
13333 * config/arm/arm.md (*arm_adddi3, *arm_subdi3): Split early except for
13334 TARGET_NEON and TARGET_IWMMXT.
13335 (anddi3, iordi3, xordi3, one_cmpldi2): Split while expanding except for
13336 TARGET_NEON and TARGET_IWMMXT.
13337 (*one_cmpldi2_insn): Moved the body of one_cmpldi2 here.
13338
13339 2017-09-04 Uros Bizjak <ubizjak@gmail.com>
13340
13341 * config/i386/i386-protos.h (ix86_tls_address_pattern_p) New prototype.
13342 (ix86_rewrite_tls_address): Ditto.
13343 * config/i386/i386.c (ix86_tls_address_pattern_p) New function.
13344 (ix86_rewrite_tls_address_1): Ditto.
13345 (ix86_rewrite_tls_address): Ditto.
13346 * config/i386/predicates.md (tls_address_pattern): New predicate.
13347 * config/i386/i386.md (TLS address splitter): New splitter.
13348
13349 2017-09-04 Richard Biener <rguenther@suse.de>
13350
13351 PR tree-optimization/82084
13352 * fold-const.h (can_native_encode_string_p): Declare.
13353 * fold-const.c (can_native_encode_string_p): Factor out from ...
13354 (native_encode_string): ... here.
13355 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
13356 vectorizing stores from constants we later cannot handle.
13357
13358 2017-09-04 Marek Polacek <polacek@redhat.com>
13359
13360 PR c/81783
13361 * doc/invoke.texi: Update -Wtautological-compare documentation.
13362
13363 2017-09-04 Jeff Law <law@redhat.com>
13364
13365 PR tree-optimization/64910
13366 * tree-ssa-reassoc.c (reassociate_bb): For bitwise binary ops,
13367 swap the first and last operand if the last is a constant.
13368
13369 2017-09-04 Marek Polacek <polacek@redhat.com>
13370
13371 PR sanitizer/82072
13372 * convert.c (do_narrow): When sanitizing signed integer overflows,
13373 bail out for signed types.
13374 (convert_to_integer_1) <case NEGATE_EXPR>: Likewise.
13375
13376 2017-09-04 Richard Biener <rguenther@suse.de>
13377
13378 PR tree-optimization/82060
13379 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13380 Move devirtualization after stmt folding and before EH/AB/noreturn
13381 cleanup to get the stmt refs canonicalized. Use a bool instead
13382 of gimple_modified_p since that doesn't work for NOPs. Schedule
13383 NOPs generated by folding for removal.
13384
13385 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
13386 Alan Hayward <alan.hayward@arm.com>
13387 David Sherwood <david.sherwood@arm.com>
13388
13389 * coretypes.h (pad_direction): New enum.
13390 * defaults.h (DEFAULT_FUNCTION_ARG_PADDING): Delete.
13391 (FUNCTION_ARG_PADDING): Likewise.
13392 * target.def (function_arg_padding): New hook.
13393 * targhooks.h (default_function_arg_padding): Declare.
13394 * targhooks.c (default_function_arg_padding): New function.
13395 * doc/tm.texi.in (FUNCTION_ARG_PADDING): Replace with...
13396 (TARGET_FUNCTION_ARG_PADDING): ...this.
13397 * doc/tm.texi: Regenerate.
13398 * calls.c (store_unaligned_arguments_into_pseudos): Use pad_direction
13399 instead of direction.
13400 (compute_argument_addresses): Likewise.
13401 (load_register_parameters): Likewise.
13402 (emit_library_call_value_1): Likewise.
13403 (store_one_arg): Use targetm.calls.function_arg_padding instead
13404 of FUNCTION_ARG_PADDING.
13405 (must_pass_in_stack_var_size_or_pad): Likewise.
13406 * expr.c (emit_group_load_1): Use pad_direction instead of direction.
13407 (emit_group_store): Likewise.
13408 (emit_single_push_insn_1): Use targetm.calls.function_arg_padding
13409 instead of FUNCTION_ARG_PADDING.
13410 (emit_push_insn): Likewise, and propagate enum change throughout
13411 function.
13412 * function.h (direction): Delete.
13413 (locate_and_pad_arg_data::where_pad): Use pad_direction instead
13414 of direction.
13415 * function.c (assign_parm_find_stack_rtl): Likewise.
13416 (assign_parm_setup_block_p): Likewise.
13417 (assign_parm_setup_block): Likewise.
13418 (gimplify_parameters): Likewise.
13419 (locate_and_pad_parm): Use targetm.calls.function_arg_padding
13420 instead of FUNCTION_ARG_PADDING, and propagate enum change throughout
13421 function.
13422 * config/aarch64/aarch64.h (FUNCTION_ARG_PADDING): Delete.
13423 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
13424 * config/aarch64/aarch64-protos.h (aarch64_pad_arg_upward): Delete.
13425 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): Replace with...
13426 (aarch64_function_arg_padding): ...this new function.
13427 (aarch64_gimplify_va_arg_expr): Use pad_direction instead of direction.
13428 (TARGET_FUNCTION_ARG_PADDING): Redefine.
13429 * config/arm/arm.h (FUNCTION_ARG_PADDING): Delete.
13430 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
13431 * config/arm/arm-protos.h (arm_pad_arg_upward): Delete.
13432 * config/arm/arm.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
13433 (arm_pad_arg_upward): Replace with...
13434 (arm_function_arg_padding): ...this new function.
13435 * config/c6x/c6x.h (BLOCK_REG_PADDING): Use pad_direction instead
13436 of direction.
13437 * config/ia64/hpux.h (FUNCTION_ARG_PADDING): Delete.
13438 * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): Delete.
13439 * config/ia64/ia64.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
13440 (ia64_hpux_function_arg_padding): Replace with...
13441 (ia64_function_arg_padding): ...this new function. Use pad_direction
13442 instead of direction. Check for TARGET_HPUX.
13443 * config/iq2000/iq2000.h (FUNCTION_ARG_PADDING): Delete.
13444 * config/iq2000/iq2000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
13445 (iq2000_function_arg_padding): New function.
13446 * config/mips/mips-protos.h (mips_pad_arg_upward): Delete.
13447 * config/mips/mips.c (mips_pad_arg_upward): Replace with...
13448 (mips_function_arg_padding): ...this new function.
13449 (mips_pad_reg_upward): Update accordingly.
13450 (TARGET_FUNCTION_ARG_PADDING): Redefine.
13451 * config/mips/mips.h (PAD_VARARGS_DOWN): Use
13452 targetm.calls.function_arg_padding.
13453 (FUNCTION_ARG_PADDING): Delete.
13454 (BLOCK_REG_PADDING): Use pad_direction instead of direction.
13455 * config/nios2/nios2.h (FUNCTION_ARG_PADDING): Delete.
13456 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
13457 * config/nios2/nios2-protos.h (nios2_function_arg_padding): Delete.
13458 (nios2_block_reg_padding): Return pad_direction instead of direction.
13459 * config/nios2/nios2.c (nios2_block_reg_padding): Return pad_direction
13460 instead of direction.
13461 (nios2_function_arg_padding): Likewise. Make static.
13462 (TARGET_FUNCTION_ARG_PADDING): Redefine.
13463 * config/pa/pa.h (FUNCTION_ARG_PADDING): Delete.
13464 (BLOCK_REG_PADDING): Use targetm.calls.function_arg_padding.
13465 * config/pa/pa-protos.h (pa_function_arg_padding): Delete.
13466 * config/pa/pa.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
13467 (pa_function_arg_padding): Make static. Return pad_direction instead
13468 of direction.
13469 * config/powerpcspe/powerpcspe.h (FUNCTION_ARG_PADDING): Delete.
13470 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
13471 * config/powerpcspe/aix.h (BLOCK_REG_PADDING): Use pad_direction
13472 instead of direction. Use targetm.calls.function_arg_padding.
13473 * config/powerpcspe/darwin.h (BLOCK_REG_PADDING): Likewise.
13474 * config/powerpcspe/freebsd64.h (BLOCK_REG_PADDING): Likewise.
13475 * config/powerpcspe/linux64.h (BLOCK_REG_PADDING): Likewise.
13476 * config/powerpcspe/powerpcspe-protos.h (function_arg_padding): Delete.
13477 * config/powerpcspe/powerpcspe.c (TARGET_FUNCTION_ARG_PADDING):
13478 Redefine.
13479 (function_arg_padding): Rename to...
13480 (rs6000_function_arg_padding): ...this. Make static. Return
13481 pad_direction instead of direction.
13482 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
13483 * config/rs6000/rs6000.h (FUNCTION_ARG_PADDING): Delete.
13484 (PAD_VARARGS_DOWN): Use targetm.calls.function_arg_padding.
13485 * config/rs6000/aix.h (BLOCK_REG_PADDING): Use pad_direction
13486 instead of direction. Use targetm.calls.function_arg_padding.
13487 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Likewise.
13488 * config/rs6000/freebsd64.h (BLOCK_REG_PADDING): Likewise.
13489 * config/rs6000/linux64.h (BLOCK_REG_PADDING): Likewise.
13490 * config/rs6000/rs6000-protos.h (function_arg_padding): Delete.
13491 * config/rs6000/rs6000.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
13492 (function_arg_padding): Rename to...
13493 (rs6000_function_arg_padding): ...this. Make static. Return
13494 pad_direction instead of direction.
13495 (rs6000_return_in_msb): Use rs6000_function_arg_padding.
13496 * config/s390/s390.h (FUNCTION_ARG_PADDING): Delete.
13497 * config/s390/s390.c (s390_function_arg_padding): New function.
13498 (TARGET_FUNCTION_ARG_PADDING): Redefine.
13499 * config/sparc/sparc.h (FUNCTION_ARG_PADDING): Delete.
13500 * config/sparc/sparc-protos.h (function_arg_padding): Delete.
13501 * config/sparc/sparc.c (TARGET_FUNCTION_ARG_PADDING): Redefine.
13502 (function_arg_padding): Rename to...
13503 (sparc_function_arg_padding): ...this. Make static. Return
13504 pad_direction instead of direction.
13505 * config/spu/spu.h (FUNCTION_ARG_PADDING): Delete.
13506 * config/spu/spu.c (spu_function_arg_padding): New function.
13507 (TARGET_FUNCTION_ARG_PADDING): Redefine.
13508 * system.h (FUNCTION_ARG_PADDING): Poison.
13509
13510 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
13511 Alan Hayward <alan.hayward@arm.com>
13512 David Sherwood <david.sherwood@arm.com>
13513
13514 * target.def (modes_tieable_p): New hook.
13515 * doc/tm.texi (MODES_TIEABLE_P): Replace with...
13516 (TARGET_MODES_TIEABLE_P): ...this.
13517 * doc/tm.texi.in: Regenerate.
13518 * hooks.h (hook_bool_mode_mode_true): Declare.
13519 * hooks.c (hook_bool_mode_mode_true): New function.
13520 * combine.c (subst): Use targetm.modes_tieable_p instead of
13521 MODES_TIEABLE_P.
13522 * dse.c (find_shift_sequence): Likewise.
13523 * expmed.c (extract_low_bits): Likewise.
13524 * lower-subreg.c: Include target.h.
13525 (find_decomposable_subregs): Use targetm.modes_tieable_p instead of
13526 MODES_TIEABLE_P.
13527 * rtlanal.c (rtx_cost): Likewise.
13528 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Delete.
13529 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): Delete.
13530 * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Make static.
13531 (TARGET_MODES_TIEABLE_P): Redefine.
13532 * config/alpha/alpha.h (MODES_TIEABLE_P): Delete.
13533 * config/alpha/alpha.c (alpha_modes_tieable_p): New function.
13534 (TARGET_MODES_TIEABLE_P): Redefine.
13535 * config/arc/arc.h (MODES_TIEABLE_P): Delete.
13536 * config/arc/arc.c (TARGET_MODES_TIEABLE_P): Redefine.
13537 (arc_modes_tieable_p): New function.
13538 * config/arm/arm.h (MODES_TIEABLE_P): Delete.
13539 * config/arm/arm-protos.h (arm_modes_tieable_p): Delete.
13540 * config/arm/arm.c (TARGET_MODES_TIEABLE_P): Redefine.
13541 (arm_modes_tieable_p): Make static.
13542 * config/avr/avr.h (MODES_TIEABLE_P): Delete.
13543 * config/bfin/bfin.h (MODES_TIEABLE_P): Delete.
13544 * config/bfin/bfin.c (bfin_modes_tieable_p): New function.
13545 (TARGET_MODES_TIEABLE_P): Redefine.
13546 * config/c6x/c6x.h (MODES_TIEABLE_P): Delete.
13547 * config/c6x/c6x.c (c6x_modes_tieable_p): New function.
13548 (TARGET_MODES_TIEABLE_P): Redefine.
13549 * config/cr16/cr16.h (MODES_TIEABLE_P): Delete.
13550 * config/cr16/cr16.c (TARGET_MODES_TIEABLE_P): Redefine.
13551 (cr16_modes_tieable_p): New function.
13552 * config/cris/cris.h (MODES_TIEABLE_P): Delete.
13553 * config/epiphany/epiphany.h (MODES_TIEABLE_P): Delete.
13554 * config/fr30/fr30.h (MODES_TIEABLE_P): Delete.
13555 (TRULY_NOOP_TRUNCATION): Update comment.
13556 * config/frv/frv.h (MODES_TIEABLE_P): Delete.
13557 (TRULY_NOOP_TRUNCATION): Update comment.
13558 * config/frv/frv.c (TARGET_MODES_TIEABLE_P): Redefine.
13559 (frv_modes_tieable_p): New function.
13560 * config/ft32/ft32.h (MODES_TIEABLE_P): Delete.
13561 * config/h8300/h8300.h (MODES_TIEABLE_P): Delete.
13562 * config/h8300/h8300.c (h8300_modes_tieable_p): New function.
13563 (TARGET_MODES_TIEABLE_P): Redefine.
13564 * config/i386/i386.h (MODES_TIEABLE_P): Delete.
13565 * config/i386/i386-protos.h (ix86_modes_tieable_p): Delete.
13566 * config/i386/i386.c (ix86_modes_tieable_p): Make static.
13567 (TARGET_MODES_TIEABLE_P): Redefine.
13568 * config/ia64/ia64.h (MODES_TIEABLE_P): Delete.
13569 * config/ia64/ia64.c (TARGET_MODES_TIEABLE_P): Redefine.
13570 (ia64_modes_tieable_p): New function.
13571 * config/iq2000/iq2000.h (MODES_TIEABLE_P): Delete.
13572 * config/iq2000/iq2000.c (TARGET_MODES_TIEABLE_P): Redefine.
13573 (iq2000_modes_tieable_p): New function.
13574 * config/lm32/lm32.h (MODES_TIEABLE_P): Delete.
13575 * config/lm32/lm32.c (TARGET_MODES_TIEABLE_P): Redefine.
13576 (lm32_modes_tieable_p): New function.
13577 * config/m32c/m32c.h (MODES_TIEABLE_P): Delete.
13578 * config/m32c/m32c-protos.h (m32c_modes_tieable_p): Delete.
13579 * config/m32c/m32c.c (m32c_modes_tieable_p): Make static.
13580 (TARGET_MODES_TIEABLE_P): Redefine.
13581 * config/m32r/m32r.h (MODES_TIEABLE_P): Delete.
13582 * config/m32r/m32r.c (TARGET_MODES_TIEABLE_P): Redefine.
13583 (m32r_modes_tieable_p): New function.
13584 * config/m68k/m68k.h (MODES_TIEABLE_P): Delete.
13585 * config/m68k/m68k.c (TARGET_MODES_TIEABLE_P): Redefine.
13586 (m68k_modes_tieable_p): New function.
13587 * config/mcore/mcore.h (MODES_TIEABLE_P): Delete.
13588 * config/mcore/mcore.c (TARGET_MODES_TIEABLE_P): Redefine.
13589 (mcore_modes_tieable_p): New function.
13590 * config/microblaze/microblaze.h (MODES_TIEABLE_P): Delete.
13591 * config/microblaze/microblaze.c (microblaze_modes_tieable_p): New
13592 function.
13593 (TARGET_MODES_TIEABLE_P): Redefine.
13594 * config/mips/mips.h (MODES_TIEABLE_P): Delete.
13595 * config/mips/mips-protos.h (mips_modes_tieable_p): Delete.
13596 * config/mips/mips.c (mips_modes_tieable_p): Make static.
13597 (TARGET_MODES_TIEABLE_P): Redefine.
13598 * config/mmix/mmix.h (MODES_TIEABLE_P): Delete.
13599 * config/mn10300/mn10300.h (MODES_TIEABLE_P): Delete.
13600 * config/mn10300/mn10300-protos.h (mn10300_modes_tieable): Delete.
13601 * config/mn10300/mn10300.c (mn10300_modes_tieable): Rename to...
13602 (mn10300_modes_tieable_p): ...this and make static.
13603 (TARGET_MODES_TIEABLE_P): Redefine.
13604 * config/moxie/moxie.h (MODES_TIEABLE_P): Delete.
13605 * config/msp430/msp430.h (MODES_TIEABLE_P): Delete.
13606 * config/msp430/msp430-protos.h (msp430_modes_tieable_p): Delete.
13607 * config/msp430/msp430.c (TARGET_MODES_TIEABLE_P): Redefine.
13608 (msp430_modes_tieable_p): Make static.
13609 * config/nds32/nds32.h (MODES_TIEABLE_P): Delete.
13610 * config/nds32/nds32.c (nds32_modes_tieable_p): New function.
13611 (TARGET_MODES_TIEABLE_P): Redefine.
13612 * config/nios2/nios2.h (MODES_TIEABLE_P): Delete.
13613 * config/nvptx/nvptx.h (MODES_TIEABLE_P): Delete.
13614 * config/nvptx/nvptx.c (nvptx_modes_tieable_p): New function.
13615 (TARGET_MODES_TIEABLE_P): Redefine.
13616 * config/pa/pa.h (MODES_TIEABLE_P): Delete.
13617 * config/pa/pa-protos.h (pa_modes_tieable_p): Delete.
13618 * config/pa/pa.c (pa_modes_tieable_p): Make static.
13619 (TARGET_MODES_TIEABLE_P): Redefine.
13620 * config/pdp11/pdp11.h (MODES_TIEABLE_P): Delete.
13621 * config/pdp11/pdp11.c (TARGET_MODES_TIEABLE_P): Redefine.
13622 (pdp11_modes_tieable_p): New function.
13623 * config/powerpcspe/powerpcspe.h (MODES_TIEABLE_P): Delete.
13624 * config/powerpcspe/powerpcspe.c (TARGET_MODES_TIEABLE_P): Redefine.
13625 (rs6000_modes_tieable_p): New function.
13626 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
13627 * config/powerpcspe/powerpcspe.md: Update comment.
13628 * config/riscv/riscv.h (MODES_TIEABLE_P): Delete.
13629 * config/riscv/riscv.c (riscv_modes_tieable_p): New function.
13630 (TARGET_MODES_TIEABLE_P): Redefine.
13631 * config/rl78/rl78.h (MODES_TIEABLE_P): Delete.
13632 * config/rl78/rl78.c (TARGET_MODES_TIEABLE_P): Redefine.
13633 (rl78_modes_tieable_p): New function.
13634 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Delete.
13635 * config/rs6000/rs6000.c (TARGET_MODES_TIEABLE_P): Redefine.
13636 (rs6000_modes_tieable_p): New function.
13637 (rs6000_debug_reg_global): Use it instead of MODES_TIEABLE_P.
13638 * config/rs6000/rs6000.md: Update comment.
13639 * config/rx/rx.h (MODES_TIEABLE_P): Delete.
13640 * config/rx/rx.c (rx_modes_tieable_p): New function.
13641 (TARGET_MODES_TIEABLE_P): Redefine.
13642 * config/s390/s390.h (MODES_TIEABLE_P): Delete.
13643 * config/s390/s390.c (s390_modes_tieable_p): New function.
13644 (TARGET_MODES_TIEABLE_P): Redefine.
13645 * config/sh/sh.h (MODES_TIEABLE_P): Delete.
13646 * config/sh/sh.c (TARGET_MODES_TIEABLE_P): Redefine.
13647 (sh_modes_tieable_p): New function.
13648 * config/sparc/sparc.h (MODES_TIEABLE_P): Delete.
13649 * config/sparc/sparc-protos.h (sparc_modes_tieable_p): Delete.
13650 * config/sparc/sparc.c (TARGET_MODES_TIEABLE_P): Redefine.
13651 (sparc_modes_tieable_p): Make static.
13652 * config/spu/spu.h (MODES_TIEABLE_P): Delete.
13653 * config/spu/spu.c (spu_modes_tieable_p): New function.
13654 (TARGET_MODES_TIEABLE_P): Redefine.
13655 * config/stormy16/stormy16.h (MODES_TIEABLE_P): Delete.
13656 * config/stormy16/stormy16.c (xstormy16_modes_tieable_p): New function.
13657 (TARGET_MODES_TIEABLE_P): Redefine.
13658 * config/tilegx/tilegx.h (MODES_TIEABLE_P): Delete.
13659 * config/tilepro/tilepro.h (MODES_TIEABLE_P): Delete.
13660 * config/v850/v850.h (MODES_TIEABLE_P): Delete.
13661 * config/v850/v850.c (v850_modes_tieable_p): New function.
13662 (TARGET_MODES_TIEABLE_P): Redefine.
13663 * config/vax/vax.h (MODES_TIEABLE_P): Delete.
13664 * config/visium/visium.h (MODES_TIEABLE_P): Delete.
13665 * config/visium/visium.c (TARGET_MODES_TIEABLE_P): Redefine.
13666 (visium_modes_tieable_p): New function.
13667 * config/xtensa/xtensa.h (MODES_TIEABLE_P): Delete.
13668 * config/xtensa/xtensa.c (TARGET_MODES_TIEABLE_P): Redefine.
13669 (xtensa_modes_tieable_p): New function.
13670 * system.h (MODES_TIEABLE_P): Poison.
13671
13672 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
13673 Alan Hayward <alan.hayward@arm.com>
13674 David Sherwood <david.sherwood@arm.com>
13675
13676 * target.def (hard_regno_mode_ok): New hook.
13677 * doc/tm.texi (HARD_REGNO_MODE_OK): Replace with...
13678 (TARGET_HARD_REGNO_MODE_OK): ...this.
13679 * doc/tm.texi.in: Regenerate.
13680 * hooks.h (hook_bool_uint_mode_true): Declare.
13681 * hooks.c (hook_bool_uint_mode_true): New function.
13682 * doc/md.texi: Refer to targetm.hard_regno_mode_ok instead of
13683 HARD_REGNO_MODE_OK.
13684 * genpreds.c (write_insn_preds_c): Add an include of target.h.
13685 * alias.c (init_alias_target): Use targetm.hard_regno_mode_ok
13686 instead of HARD_REGNO_MODE_OK.
13687 * caller-save.c: Include target.h.
13688 (reg_save_code): Use targetm.hard_regno_mode_ok instead of
13689 HARD_REGNO_MODE_OK.
13690 * combine.c (can_combine_p): Likewise.
13691 (combinable_i3pat): Likewise.
13692 (can_change_dest_mode): Likewise.
13693 * expr.c (init_expr_target): Likewise.
13694 (convert_move): Likewise.
13695 (convert_modes): Likewise.
13696 * ira.c (setup_prohibited_class_mode_regs): Likewise.
13697 (setup_prohibited_mode_move_regs): Likewise.
13698 * ira.h (target_ira): Likewise.
13699 * lra-assigns.c (find_hard_regno_for_1): Likewise.
13700 * lra-constraints.c (process_alt_operands): Likewise.
13701 (split_reg): Likewise.
13702 * recog.c (peep2_find_free_register): Likewise.
13703 * ree.c (combine_reaching_defs): Likewise.
13704 * regcprop.c (maybe_mode_change): Likewise.
13705 * reginfo.c (init_reg_sets_1): Likewise.
13706 (choose_hard_reg_mode): Likewise.
13707 (simplifiable_subregs): Likewise.
13708 * regrename.c (check_new_reg_p): Likewise.
13709 * reload.c (find_valid_class): Likewise.
13710 (find_valid_class_1): Likewise.
13711 (reload_inner_reg_of_subreg): Likewise.
13712 (push_reload): Likewise.
13713 (combine_reloads): Likewise.
13714 (find_dummy_reload): Likewise.
13715 (find_reloads): Likewise.
13716 * reload1.c (find_reg): Likewise.
13717 (set_reload_reg): Likewise.
13718 (allocate_reload_reg): Likewise.
13719 (choose_reload_regs): Likewise.
13720 (reload_adjust_reg_for_temp): Likewise.
13721 * rtlanal.c (subreg_size_offset_from_lsb): Likewise.
13722 (simplify_subreg_regno): Likewise.
13723 * sel-sched.c (init_regs_for_mode): Likewise.
13724 * varasm.c (make_decl_rtl): Likewise.
13725 * config/aarch64/aarch64.h (HARD_REGNO_MODE_OK): Delete.
13726 (MODES_TIEABLE_P): Use targetm.hard_regno_mode_ok instead of
13727 HARD_REGNO_MODE_OK.
13728 * config/aarch64/aarch64-protos.h (aarch64_hard_regno_mode_ok): Delete.
13729 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Make static.
13730 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13731 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Delete.
13732 * config/alpha/alpha.c (alpha_hard_regno_mode_ok): New function.
13733 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13734 * config/arc/arc.h (arc_hard_regno_mode_ok): Delete.
13735 (arc_mode_class): Delete.
13736 (HARD_REGNO_MODE_OK): Delete.
13737 * config/arc/arc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13738 (arc_hard_regno_mode_ok): Rename old array to...
13739 (arc_hard_regno_mode_ok_modes): ...this.
13740 (arc_conditional_register_usage): Update accordingly.
13741 (arc_mode_class): Make static.
13742 (arc_hard_regno_mode_ok): New function.
13743 * config/arm/arm.h (HARD_REGNO_MODE_OK): Delete.
13744 * config/arm/arm-protos.h (arm_hard_regno_mode_ok): Delete.
13745 * config/arm/arm.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13746 (arm_hard_regno_mode_ok): Make static.
13747 * config/arm/arm.md (movdi): Use targetm.hard_regno_mode_ok instead of
13748 HARD_REGNO_MODE_OK.
13749 * config/avr/avr-protos.h (avr_hard_regno_mode_ok): Delete.
13750 * config/avr/avr.h (HARD_REGNO_MODE_OK): Delete.
13751 * config/avr/avr.c (avr_hard_regno_mode_ok): Make static and
13752 return a bool.
13753 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13754 * config/bfin/bfin-protos.h (hard_regno_mode_ok): Delete.
13755 * config/bfin/bfin.h (HARD_REGNO_MODE_OK): Delete.
13756 * config/bfin/bfin.c (hard_regno_mode_ok): Rename to...
13757 (bfin_hard_regno_mode_ok): ...this. Make static and return a bool.
13758 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13759 * config/bfin/predicates.md (valid_reg_operand): Use
13760 targetm.hard_regno_mode_ok instead of HARD_REGNO_MODE_OK.
13761 * config/c6x/c6x.h (HARD_REGNO_MODE_OK): Delete.
13762 * config/c6x/c6x.c (c6x_hard_regno_mode_ok): New function.
13763 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13764 * config/cr16/cr16.h (HARD_REGNO_MODE_OK): Delete.
13765 * config/cr16/cr16-protos.h (cr16_hard_regno_mode_ok): Delete.
13766 * config/cr16/cr16.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13767 (cr16_hard_regno_mode_ok): Make static and return a bool.
13768 * config/cris/cris.h (HARD_REGNO_MODE_OK): Delete.
13769 * config/cris/cris.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13770 (cris_hard_regno_mode_ok): New function.
13771 * config/epiphany/epiphany.h (epiphany_hard_regno_mode_ok): Delete.
13772 (epiphany_mode_class): Delete.
13773 (HARD_REGNO_MODE_OK): Delete.
13774 * config/epiphany/epiphany-protos.h (hard_regno_mode_ok): Delete.
13775 * config/epiphany/epiphany.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13776 (hard_regno_mode_ok): Rename to...
13777 (epiphany_hard_regno_mode_ok): ...this. Make static and return a bool.
13778 * config/fr30/fr30.h (HARD_REGNO_MODE_OK): Delete.
13779 * config/fr30/fr30.md: Refer to targetm.hard_regno_mode_ok instead of
13780 HARD_REGNO_MODE_OK.
13781 * config/frv/frv.h (HARD_REGNO_MODE_OK): Delete.
13782 * config/frv/frv-protos.h (frv_hard_regno_mode_ok): Delete.
13783 * config/frv/frv.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13784 (frv_hard_regno_mode_ok): Make static and return a bool.
13785 * config/frv/frv.md: Refer to targetm.hard_regno_mode_ok instead of
13786 HARD_REGNO_MODE_OK.
13787 * config/ft32/ft32.h (HARD_REGNO_MODE_OK): Delete.
13788 * config/h8300/h8300.h (HARD_REGNO_MODE_OK): Delete.
13789 * config/h8300/h8300-protos.h (h8300_hard_regno_mode_ok): Delete.
13790 * config/h8300/h8300.c (h8300_hard_regno_mode_ok): Make static
13791 and return a bool.
13792 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13793 * config/i386/i386.h (HARD_REGNO_MODE_OK): Delete.
13794 * config/i386/i386-protos.h (ix86_hard_regno_mode_ok): Delete.
13795 * config/i386/i386.c (ix86_hard_regno_mode_ok): Make static and
13796 return a bool.
13797 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13798 * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Delete.
13799 * config/ia64/ia64.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13800 (ia64_hard_regno_mode_ok): New function.
13801 * config/iq2000/iq2000.h (HARD_REGNO_MODE_OK): Delete.
13802 * config/iq2000/iq2000.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13803 (iq2000_hard_regno_mode_ok): New function.
13804 * config/lm32/lm32.h (HARD_REGNO_MODE_OK): Delete.
13805 * config/lm32/lm32.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13806 (lm32_hard_regno_mode_ok): New function.
13807 * config/m32c/m32c.h (HARD_REGNO_MODE_OK): Delete.
13808 * config/m32c/m32c-protos.h (m32c_hard_regno_ok): Delete.
13809 * config/m32c/m32c.c (class_can_hold_mode): Use m32c_hard_regno_mode_ok
13810 instead of HARD_REGNO_MODE_OK.
13811 (m32c_hard_regno_ok): Rename to...
13812 (m32c_hard_regno_mode_ok): ...this. Make static and return a bool.
13813 (m32c_cannot_change_mode_class): Update accordingly.
13814 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13815 * config/m32r/m32r.h (m32r_hard_regno_mode_ok): Delete.
13816 (m32r_mode_class): Delete.
13817 (HARD_REGNO_MODE_OK): Delete.
13818 * config/m32r/m32r.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13819 (m32r_hard_regno_mode_ok): Rename to...
13820 (m32r_hard_regno_modes): ...this.
13821 (m32r_mode_class): Make static.
13822 (m32r_hard_regno_mode_ok): New function.
13823 * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Delete.
13824 * config/m68k/m68k-protos.h (m68k_regno_mode_ok): Delete.
13825 * config/m68k/m68k.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13826 (m68k_hard_regno_mode_ok): Make static.
13827 * config/mcore/mcore.h (HARD_REGNO_MODE_OK): Delete.
13828 * config/mcore/mcore.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13829 (mcore_hard_regno_mode_ok): New function.
13830 * config/microblaze/microblaze.h (microblaze_hard_regno_mode_ok)
13831 (HARD_REGNO_MODE_OK): Delete.
13832 * config/microblaze/microblaze.c (microblaze_hard_regno_mode_ok):
13833 Rename to...
13834 (microblaze_hard_regno_mode_ok_p): ...this and make static.
13835 (microblaze_hard_regno_mode_ok): New function.
13836 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13837 * config/mips/mips.h (HARD_REGNO_MODE_OK): Delete.
13838 (mips_hard_regno_mode_ok): Delete.
13839 * config/mips/mips.c (mips_hard_regno_mode_ok): Rename to...
13840 (mips_hard_regno_mode_ok_p): ...this and make static.
13841 (mips_hard_regno_mode_ok_p): Rename to...
13842 (mips_hard_regno_mode_ok_uncached): ...this.
13843 (mips_hard_regno_mode_ok): New function.
13844 (mips_class_max_nregs): Use mips_hard_regno_mode_ok instead
13845 of HARD_REGNO_MODE_OK.
13846 (mips_option_override): Update after above name changes.
13847 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13848 * config/mmix/mmix.h (HARD_REGNO_MODE_OK): Delete.
13849 * config/mn10300/mn10300.h (HARD_REGNO_MODE_OK): Delete.
13850 * config/mn10300/mn10300-protos.h (mn10300_hard_regno_mode_ok): Delete.
13851 * config/mn10300/mn10300.c (mn10300_hard_regno_mode_ok): Make static.
13852 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13853 * config/moxie/moxie.h (HARD_REGNO_MODE_OK): Delete.
13854 * config/msp430/msp430.h (HARD_REGNO_MODE_OK): Delete.
13855 * config/msp430/msp430-protos.h (msp430_hard_regno_mode_ok): Delete.
13856 * config/msp430/msp430.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13857 (msp430_hard_regno_mode_ok): Make static and return a bool.
13858 * config/nds32/nds32.h (HARD_REGNO_MODE_OK): Delete.
13859 * config/nds32/nds32-protos.h (nds32_hard_regno_mode_ok): Delete.
13860 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Make static
13861 and return a bool.
13862 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13863 * config/nios2/nios2.h (HARD_REGNO_MODE_OK): Delete.
13864 * config/nvptx/nvptx.h (HARD_REGNO_MODE_OK): Delete.
13865 * config/pa/pa.h (MODES_TIEABLE_P): Update commentary.
13866 * config/pa/pa32-regs.h (HARD_REGNO_MODE_OK): Rename to...
13867 (PA_HARD_REGNO_MODE_OK): ...this
13868 * config/pa/pa64-regs.h (HARD_REGNO_MODE_OK): Rename to...
13869 (PA_HARD_REGNO_MODE_OK): ...this.
13870 * config/pa/pa.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13871 (pa_hard_regno_mode_ok): New function.
13872 * config/pdp11/pdp11.h (HARD_REGNO_MODE_OK): Delete.
13873 * config/pdp11/pdp11.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13874 (pdp11_hard_regno_mode_ok): New function.
13875 * config/powerpcspe/powerpcspe.h (HARD_REGNO_MODE_OK): Delete.
13876 * config/powerpcspe/powerpcspe-protos.h (rs6000_hard_regno_mode_ok_p):
13877 Delete.
13878 * config/powerpcspe/powerpcspe.c (rs6000_hard_regno_mode_ok_p):
13879 Make static.
13880 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13881 (rs6000_hard_regno_mode_ok): Rename to...
13882 (rs6000_hard_regno_mode_ok_uncached): ...this.
13883 (rs6000_init_hard_regno_mode_ok): Update accordingly.
13884 (rs6000_hard_regno_mode_ok): New function.
13885 * config/riscv/riscv.h (HARD_REGNO_MODE_OK): Delete.
13886 * config/riscv/riscv-protos.h (riscv_hard_regno_mode_ok_p): Delete.
13887 * config/riscv/riscv.c (riscv_hard_regno_mode_ok_p): Rename to...
13888 (riscv_hard_regno_mode_ok): ...this and make static.
13889 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13890 * config/rl78/rl78.h (HARD_REGNO_MODE_OK): Delete.
13891 * config/rl78/rl78-protos.h (rl78_hard_regno_mode_ok): Delete.
13892 * config/rl78/rl78.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13893 (rl78_hard_regno_mode_ok): Make static and return bool.
13894 * config/rs6000/rs6000.h (HARD_REGNO_MODE_OK): Delete.
13895 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
13896 Delete.
13897 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): Make static.
13898 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13899 (rs6000_hard_regno_mode_ok): Rename to...
13900 (rs6000_hard_regno_mode_ok_uncached): ...this.
13901 (rs6000_init_hard_regno_mode_ok): Update accordingly.
13902 (rs6000_hard_regno_mode_ok): New function.
13903 * config/rx/rx.h (HARD_REGNO_MODE_OK): Delete.
13904 * config/rx/rx.c (rx_hard_regno_mode_ok): New function.
13905 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13906 * config/s390/s390.h (HARD_REGNO_MODE_OK): Delete.
13907 * config/s390/s390-protos.h (s390_hard_regno_mode_ok): Delete.
13908 * config/s390/s390.c (s390_hard_regno_mode_ok): Make static.
13909 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13910 * config/sh/sh.h (HARD_REGNO_MODE_OK): Delete.
13911 * config/sh/sh-protos.h (sh_hard_regno_mode_ok): Delete.
13912 * config/sh/sh.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13913 (sh_hard_regno_mode_ok): Make static.
13914 * config/sparc/constraints.md: Refer to targetm.hard_regno_mode_ok
13915 instead of HARD_REGNO_MODE_OK.
13916 * config/sparc/sparc.h (hard_regno_mode_classes): Delete.
13917 (sparc_mode_class): Delete.
13918 (HARD_REGNO_MODE_OK): Delete.
13919 * config/sparc/sparc.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13920 (hard_regno_mode_classes): Make static.
13921 (sparc_mode_class): Likewise.
13922 (sparc_hard_regno_mode_ok): New function.
13923 * config/spu/spu.h (HARD_REGNO_MODE_OK): Delete.
13924 * config/stormy16/stormy16.h (HARD_REGNO_MODE_OK): Delete.
13925 * config/stormy16/stormy16.c (xstormy16_hard_regno_mode_ok): New
13926 function.
13927 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13928 * config/tilegx/tilegx.h (HARD_REGNO_MODE_OK): Delete.
13929 * config/tilepro/tilepro.h (HARD_REGNO_MODE_OK): Delete.
13930 * config/v850/v850.h (HARD_REGNO_MODE_OK): Delete.
13931 * config/v850/v850.c (v850_hard_regno_mode_ok): New function.
13932 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13933 * config/vax/vax.h (HARD_REGNO_MODE_OK): Delete.
13934 * config/visium/visium.h (HARD_REGNO_MODE_OK): Delete.
13935 * config/visium/visium.c (TARGET_HARD_REGNO_MODE_OK): Redefine.
13936 (visium_hard_regno_mode_ok): New function.
13937 * config/visium/visium.md: Refer to targetm.hard_regno_mode_ok
13938 instead of HARD_REGNO_MODE_OK.
13939 * config/xtensa/xtensa.h (xtensa_hard_regno_mode_ok): Delete.
13940 (HARD_REGNO_MODE_OK): Delete.
13941 * config/xtensa/xtensa.c (xtensa_hard_regno_mode_ok): Rename to...
13942 (xtensa_hard_regno_mode_ok_p): ...this and make static.
13943 (xtensa_option_override): Update accordingly.
13944 (TARGET_HARD_REGNO_MODE_OK): Redefine.
13945 (xtensa_hard_regno_mode_ok): New function.
13946 * system.h (HARD_REGNO_MODE_OK): Poison.
13947
13948 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
13949 Alan Hayward <alan.hayward@arm.com>
13950 David Sherwood <david.sherwood@arm.com>
13951
13952 * target.def (hard_regno_call_part_clobbered): New hook.
13953 * doc/tm.texi.in (HARD_REGNO_CALL_PART_CLOBBERED): Replace with...
13954 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): ...this hook.
13955 * doc/tm.texi: Regenerate.
13956 * hooks.h (hook_bool_uint_mode_false): Declare.
13957 * hooks.c (hook_bool_uint_mode_false): New function.
13958 * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
13959 * cselib.c (cselib_process_insn): Use
13960 targetm.hard_regno_call_part_clobbered instead of
13961 HARD_REGNO_CALL_PART_CLOBBERED.
13962 * ira-conflicts.c (ira_build_conflicts): Likewise.
13963 * ira-costs.c (ira_tune_allocno_costs): Likewise.
13964 * lra-constraints.c (need_for_call_save_p): Likewise.
13965 * lra-lives.c: Include target.h.
13966 (check_pseudos_live_through_calls): Use
13967 targetm.hard_regno_call_part_clobbered instead of
13968 HARD_REGNO_CALL_PART_CLOBBERED.
13969 * regcprop.c: Include target.h.
13970 (copyprop_hardreg_forward_1): Use
13971 targetm.hard_regno_call_part_clobbered instead of
13972 HARD_REGNO_CALL_PART_CLOBBERED.
13973 * reginfo.c (choose_hard_reg_mode): Likewise.
13974 * regrename.c (check_new_reg_p): Likewise.
13975 * reload.c (find_equiv_reg): Likewise.
13976 * reload1.c (emit_reload_insns): Likewise.
13977 * sched-deps.c (deps_analyze_insn): Likewise.
13978 * sel-sched.c (init_regs_for_mode): Likewise.
13979 (mark_unavailable_hard_regs): Likewise.
13980 * targhooks.c (default_dwarf_frame_reg_mode): Likewise.
13981 * config/aarch64/aarch64.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
13982 * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered):
13983 New function.
13984 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
13985 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
13986 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered):
13987 Delete.
13988 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Make static
13989 and return a bool.
13990 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
13991 * config/i386/i386.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
13992 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): New
13993 function.
13994 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
13995 * config/mips/mips.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
13996 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): New
13997 function.
13998 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
13999 * config/powerpcspe/powerpcspe.h (HARD_REGNO_CALL_PART_CLOBBERED):
14000 Delete.
14001 * config/powerpcspe/powerpcspe.c
14002 (rs6000_hard_regno_call_part_clobbered): New function.
14003 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
14004 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
14005 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered):
14006 New function.
14007 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
14008 * config/s390/s390.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
14009 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): New
14010 function.
14011 (TARGET_HARD_REGNO_CALL_PART_CLOBBERED): Redefine.
14012 * config/sh/sh.h (HARD_REGNO_CALL_PART_CLOBBERED): Delete.
14013 * system.h (HARD_REGNO_CALL_PART_CLOBBERED): Poison.
14014
14015 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
14016 Alan Hayward <alan.hayward@arm.com>
14017 David Sherwood <david.sherwood@arm.com>
14018
14019 * rtl.h (subreg_memory_offset): Declare.
14020 * emit-rtl.c (subreg_memory_offset): New function.
14021 * expmed.c (store_bit_field_1): Use it.
14022 * expr.c (undefined_operand_subword_p): Likewise.
14023 * simplify-rtx.c (simplify_subreg): Likewise.
14024
14025 2017-09-04 Alexander Monakov <amonakov@ispras.ru>
14026
14027 PR rtl-optimization/57448
14028 PR target/67458
14029 PR target/81316
14030 * optabs.c (expand_atomic_load): Place compiler memory barriers if
14031 using atomic_load pattern.
14032 (expand_atomic_store): Likewise.
14033
14034 2017-09-04 Jakub Jelinek <jakub@redhat.com>
14035
14036 PR sanitizer/81981
14037 * gimple-fold.c (gimple_fold_call): Optimize away useless UBSAN_PTR
14038 and UBSAN_BOUNDS internal calls. Clean up IFN_UBSAN_OBJECT_SIZE
14039 handling. Use replace_call_with_value with NULL instead of
14040 gsi_replace, unlink_stmt_vdef and release_defs.
14041
14042 * gdbhooks.py (OptMachineModePrinter.to_string): Use 8 spaces
14043 instead of tab.
14044
14045 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
14046
14047 2017-09-04 Richard Sandiford <richard.sandiford@linaro.org>
14048
14049 PR bootstrap/82045
14050 * rtl.h (emit_library_call_value_1): Declare.
14051 (emit_library_call): Replace declaration with a series of overloads.
14052 Remove the parameter count argument.
14053 (emit_library_call_value): Likewise.
14054 * calls.c (emit_library_call_value_1): Make global. Replace varargs
14055 with an "rtx_mode_t *".
14056 (emit_library_call_value): Delete.
14057 (emit_library_call): Likewise.
14058 * asan.c (asan_emit_stack_protection): Update calls accordingly.
14059 (asan_emit_allocas_unpoison): Likewise.
14060 * builtins.c (expand_builtin_powi): Likewise.
14061 (expand_asan_emit_allocas_unpoison): Likewise.
14062 * cfgexpand.c (expand_main_function): Likewise.
14063 * config/aarch64/aarch64.c (aarch64_trampoline_init): Likewise.
14064 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise.
14065 * config/alpha/alpha.c (alpha_trampoline_init): Likewise.
14066 * config/arm/arm.c (arm_trampoline_init): Likewise.
14067 (arm_call_tls_get_addr): Likewise.
14068 (arm_expand_divmod_libfunc): Likewise.
14069 * config/bfin/bfin.md (umulsi3_highpart): Likewise.
14070 (smulsi3_highpart): Likewise.
14071 * config/c6x/c6x.c (c6x_initialize_trampoline): Likewise.
14072 (c6x_expand_compare): Likewise.
14073 (c6x_expand_movmem): Likewise.
14074 * config/frv/frv.c (frv_trampoline_init): Likewise.
14075 * config/i386/i386.c (ix86_trampoline_init): Likewise.
14076 (ix86_expand_divmod_libfunc): Likewise.
14077 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
14078 (ia64_expand_compare): Likewise.
14079 (ia64_profile_hook): Likewise.
14080 * config/ia64/ia64.md (save_stack_nonlocal): Likewise.
14081 (nonlocal_goto): Likewise.
14082 (restore_stack_nonlocal): Likewise.
14083 * config/m32r/m32r.c (block_move_call): Likewise.
14084 (m32r_trampoline_init): Likewise.
14085 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
14086 * config/m68k/m68k.c (m68k_call_tls_get_addr): Likewise.
14087 (m68k_call_m68k_read_tp): Likewise.
14088 * config/microblaze/microblaze.c (microblaze_call_tls_get_addr)
14089 (microblaze_expand_divide): Likewise.
14090 * config/mips/mips.h (mips_args): Likewise.
14091 * config/mips/sdemtk.h (mips_sync_icache): Likewise.
14092 (MIPS_ICACHE_SYNC): Likewise.
14093 * config/nios2/nios2.c (nios2_emit_expensive_div): Likewise.
14094 (nios2_trampoline_init): Likewise.
14095 * config/pa/pa.c (hppa_tls_call): Likewise.
14096 (pa_trampoline_init): Likewise.
14097 * config/pa/pa.md (canonicalize_funcptr_for_compare): Likewise.
14098 * config/powerpcspe/powerpcspe.c (rs6000_legitimize_tls_address)
14099 (expand_strn_compare): Likewise.
14100 (rs6000_generate_compare): Likewise.
14101 (rs6000_expand_float128_convert): Likewise.
14102 (output_profile_hook): Likewise.
14103 (rs6000_trampoline_init): Likewise.
14104 * config/powerpcspe/powerpcspe.md (neg<mode>2): Likewise.
14105 * config/riscv/riscv.h (PROFILE_HOOK): Likewise.
14106 * config/rs6000/rs6000-string.c (expand_strn_compare): Likewise.
14107 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
14108 (rs6000_generate_compare): Likewise.
14109 (rs6000_expand_float128_convert): Likewise.
14110 (output_profile_hook): Likewise.
14111 (rs6000_trampoline_init): Likewise.
14112 * config/rs6000/rs6000.md (neg<mode>2): Likewise.
14113 * config/sh/sh.c (sh_trampoline_init): Likewise.
14114 * config/sparc/sparc.c (emit_soft_tfmode_libcall): Likewise.
14115 (sparc_emit_float_lib_cmp): Likewise.
14116 (sparc32_initialize_trampoline): Likewise.
14117 (sparc64_initialize_trampoline): Likewise.
14118 (sparc_profile_hook): Likewise.
14119 * config/spu/spu.c (ea_load_store): Likewise.
14120 * config/spu/spu.md (floatunssidf2): Likewise.
14121 * config/tilegx/tilegx.c (tilegx_trampoline_init): Likewise.
14122 * config/tilepro/tilepro.c (tilepro_trampoline_init): Likewise.
14123 * config/visium/visium.c (expand_block_move_4): Likewise.
14124 (expand_block_move_2): Likewise.
14125 (expand_block_move_1): Likewise.
14126 (expand_block_set_4): Likewise.
14127 (expand_block_set_2): Likewise.
14128 (expand_block_set_1): Likewise.
14129 (visium_trampoline_init): Likewise.
14130 (visium_profile_hook): Likewise.
14131 * config/xtensa/xtensa.c (xtensa_expand_nonlocal_goto): Likewise.
14132 (xtensa_setup_frame_addresses): Likewise.
14133 (xtensa_trampoline_init): Likewise.
14134 * except.c (sjlj_emit_function_enter): Likewise.
14135 (sjlj_emit_function_exit): Likewise.
14136 * explow.c (allocate_dynamic_stack_space): Likewise.
14137 (probe_stack_range): Likewise.
14138 * expr.c (convert_mode_scalar): Likewise.
14139 * optabs.c (expand_binop): Likewise.
14140 (expand_twoval_binop_libfunc): Likewise.
14141 (expand_unop): Likewise.
14142 (prepare_cmp_insn): Likewise.
14143 (prepare_float_lib_cmp): Likewise.
14144 (expand_float): Likewise.
14145 (expand_fix): Likewise.
14146 (expand_fixed_convert): Likewise.
14147 (maybe_emit_sync_lock_test_and_set): Likewise.
14148 (expand_atomic_compare_and_swap): Likewise.
14149 (expand_mem_thread_fence): Likewise.
14150 (expand_atomic_fetch_op): Likewise.
14151
14152 2017-09-03 Gerald Pfeifer <gerald@pfeifer.com>
14153
14154 * doc/generic.texi (OpenACC): Adjust URL.
14155 * doc/invoke.texi (C Dialect Options): Ditto.
14156
14157 2017-09-03 Uros Bizjak <ubizjak@gmail.com>
14158
14159 * config/i386/i386.md (*bt<mode>): Use nonimmediate_operand
14160 predicate for operand 1. Add (m,<S>) constraint.
14161 (*jcc_bt<mode>): Use nonimmediate_operand predicate for operand 1.
14162 Prevent memory operand 1 with register operand 2.
14163
14164 2017-09-01 Segher Boessenkool <segher@kernel.crashing.org>
14165
14166 PR rtl-optimization/82024
14167 * combine.c (try_combine): If the combination result is a PARALLEL,
14168 and we only need to retain the SET in there that would be placed
14169 at I2, check that we can place that at I3 instead, before doing so.
14170
14171 2017-09-01 Jakub Jelinek <jakub@redhat.com>
14172
14173 PR target/81766
14174 * config/i386/i386.c (ix86_init_large_pic_reg): Return label
14175 instead of void.
14176 (ix86_init_pic_reg): Remember label from ix86_init_large_pic_reg,
14177 if non-NULL and preceded by NOTE_INSN_BASIC_BLOCK, swap the note
14178 and label.
14179
14180 2017-09-01 Joerg Sonnenberger <joerg@bec.de>
14181 Jeff Law <law@redhat.com>
14182
14183 * varasm.c (bss_initializer_p): Do not put constants into .bss
14184 (categorize_decl_for_section): Handle bss_initializer_p returning
14185 false when DECL_INITIAL is NULL.
14186
14187 2017-09-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14188
14189 PR target/82012
14190 * config/s390/s390.c (s390_can_inline_p): New function.
14191
14192 2017-09-01 Jeff Law <law@redhat.com>
14193
14194 PR tree-optimization/82052
14195 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
14196 Always initialize the returned slot after a hash table miss
14197 when INSERT is true.
14198
14199 2017-09-01 Alexander Monakov <amonakov@ispras.ru>
14200
14201 * config/s390/s390.md (mem_signal_fence): Remove.
14202 * doc/md.texi (mem_signal_fence): Remove.
14203 * optabs.c (expand_mem_signal_fence): Remove uses of mem_signal_fence.
14204 Update comments.
14205 * target-insns.def (mem_signal_fence): Remove.
14206
14207 2017-09-01 Jakub Jelinek <jakub@redhat.com>
14208
14209 PR sanitizer/81902
14210 * doc/invoke.texi: Document -fsanitize=pointer-overflow.
14211
14212 PR sanitizer/81923
14213 * asan.c (create_odr_indicator): Strip name encoding from assembler
14214 name before appending it after __odr_asan_.
14215
14216 2017-09-01 Martin Liska <mliska@suse.cz>
14217
14218 PR tree-optimization/82059
14219 * gimple-ssa-isolate-paths.c (isolate_path): Add profile and
14220 frequency only when an edge is redirected.
14221
14222 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
14223
14224 * config/arc/arc-c.c (__ARC_LPC_WIDTH__): Add builtin define.
14225 * config/arc/arc.c (ARC_MAX_LOOP_LENGTH): Define.
14226 (arc_conditional_register_usage): Remove ARC600 lp_count
14227 exception.
14228 (arc_file_start): Emit Tag_ARC_CPU_variation.
14229 (arc_can_use_doloop_p): New conditions to use ZOLs.
14230 (hwloop_fail): New function.
14231 (hwloop_optimize): Likewise.
14232 (hwloop_pattern_reg): Likewise.
14233 (arc_doloop_hooks): New struct, to be used with reorg_loops.
14234 (arc_reorg_loops): New function, calls reorg_loops.
14235 (arc_reorg): Call arc_reorg_loops. Remove old ZOL handling.
14236 (arc600_corereg_hazard): Remove ZOL checking, case handled by
14237 hwloop_optimize.
14238 (arc_loop_hazard): Remove function, functionality moved into
14239 hwloop_optimize.
14240 (arc_hazard): Remove arc_loop_hazard call.
14241 (arc_adjust_insn_length): Remove ZOL handling, functionality moved
14242 into hwloop_optimize.
14243 (arc_label_align): Remove ZOL handling.
14244 * config/arc/arc.h (LOOP_ALIGN): Changed to 0.
14245 * config/arc/arc.md (doloop_begin): Remove pattern.
14246 (doloop_begin_i): Likewise.
14247 (doloop_end_i): Likewise.
14248 (doloop_fallback): Likewise.
14249 (doloop_fallback_m): Likewise.
14250 (doloop_end): Reimplement expand.
14251 (arc_lp): New pattern for LP instruction.
14252 (loop_end): New pattern.
14253 (loop_fail): Likewise.
14254 (decrement_and_branch_until_zero): Likewise.
14255 * config/arc/arc.opt (mlpc-width): New option.
14256 * doc/invoke.texi (mlpc-width): Document option.
14257
14258 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
14259
14260 * config/arc/arc.c (arc_ifcvt): Remove use of merge_blocks call.
14261 (arc_ccfsm_advance): Fix checking for delay slots.
14262 (arc_reorg): Add rtl dump after each call to arc_ifcvt.
14263
14264 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
14265
14266 * config/arc/arc.md (movqi_insn): Add stores to save constant long
14267 immediates.
14268 (movhi_insn): Update store instruction constraint which are saving
14269 6-bit short immediates.
14270 (movsi_insn): Consider also short scaled load operations.
14271 (zero_extendhisi2_i): Use Usd constraint instead of T.
14272 (extendhisi2_i): Add q constraint.
14273 (arc_clzsi2): Add type and length attributes.
14274 (arc_ctzsi2): Likewise.
14275 * config/arc/constraints.md (Usc): Update constraint, the
14276 assembler can parse two relocations for a single instruction.
14277
14278 2017-09-01 Claudiu Zissulescu <claziss@synopsys.com>
14279
14280 * config/arc/arc.c (arc_use_anchors_for_symbol_p): New function.
14281 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define.
14282
14283 2017-08-31 Olivier Hainque <hainque@adacore.com>
14284
14285 * config.gcc (powerpc-wrs-vxworks|vxworksae|vxworksmils): Now
14286 match as powerpc-wrs-vxworks*.
14287
14288 2017-08-31 James Greenhalgh <james.greenhalgh@arm.com>
14289
14290 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): Fix
14291 register constraint for by-element operand.
14292 (aarch64_mls_elt_merge<mode>): Likewise.
14293
14294 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
14295
14296 * config/arc/arc.c (arc_can_follow_jump): Check for short
14297 branches.
14298
14299 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
14300
14301 * config.gcc: Use g.opt for arc.
14302 * config/arc/arc.c (LEGITIMATE_SCALED_ADDRESS_P): Deleted,
14303 functionality moved to ...
14304 (legitimate_scaled_address_p): New function, ...here.
14305 (LEGITIMATE_SMALL_DATA_OFFSET_P): New define.
14306 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Use the above define.
14307 (legitimate_offset_address_p): Delete TARGET_NO_SDATA_SET
14308 condition.
14309 (arc_override_options): Handle G option.
14310 (arc_output_pic_addr_const): Correct function definition.
14311 (arc_legitimate_address_p): Use legitimate_scaled_address_p.
14312 (arc_decl_anon_ns_mem_p): Delete.
14313 (arc_in_small_data_p): Overhaul this function to take into
14314 consideration the value given via G option.
14315 (arc_rewrite_small_data_1): Renamed and corrected old
14316 arc_rewrite_small_data function.
14317 (arc_rewrite_small_data): New function.
14318 (small_data_pattern): Don't use pic_offset_table_rtx.
14319 * config/arc/arc.h (CC1_SPEC): Recognize G option.
14320 * config/arc/simdext.md (movmisalignv2hi): Use
14321 prepare_move_operands function.
14322 (mov*): Likewise.
14323 (movmisalign*): Likewise.
14324 * doc/invoke.texi (ARC options): Document -G option.
14325
14326 2017-08-31 Claudiu Zissulescu <claziss@synopsys.com>
14327
14328 * config/arc/arc-protos.h (compact_sda_memory_operand): Update
14329 prototype.
14330 * config/arc/arc.c (arc_print_operand): Output scalled address for
14331 sdata whenever is possible.
14332 (arc_in_small_data_p): Allow sdata for 64bit datum when double
14333 load/stores are available.
14334 (compact_sda_memory_operand): Check for the alignment required by
14335 code density instructions.
14336 * config/arc/arc.md (movsi_insn): Use newly introduced Us0
14337 constraint.
14338 * config/arc/constraints.md (Usd): Update constraint.
14339 (Us0): New constraint.
14340 (Usc): Update constraint.
14341
14342 2017-08-31 Richard Biener <rguenther@suse.de>
14343
14344 PR middle-end/82054
14345 * dwarf2out.c (dwarf2out_early_global_decl): Process each
14346 function only once.
14347
14348 2017-08-31 Tamar Christina <tamar.christina@arm.com>
14349
14350 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
14351 Resize type_signature.
14352
14353 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
14354 Alan Hayward <alan.hayward@arm.com>
14355 David Sherwood <david.sherwood@arm.com>
14356
14357 * config/aarch64/aarch64.c (aarch64_base_register_rtx_p): Only allow
14358 subregs whose inner modes can be stored in GPRs.
14359 (aarch64_classify_index): Likewise.
14360
14361 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
14362 Alan Hayward <alan.hayward@arm.com>
14363 David Sherwood <david.sherwood@arm.com>
14364
14365 * config/aarch64/iterators.md (V_cmp_result): Rename to...
14366 (V_INT_EQUIV): ...this.
14367 (v_cmp_result): Rename to...
14368 (v_int_equiv): ...this.
14369 * config/aarch64/aarch64.md (xorsign<mode>3): Update accordingly.
14370 * config/aarch64/aarch64-simd.md (xorsign<mode>3): Likewise.
14371 (copysign<mode>3): Likewise.
14372 (aarch64_simd_bsl<mode>_internal): Likewise.
14373 (aarch64_simd_bsl<mode>): Likewise.
14374 (vec_cmp<mode><mode>): Likewise.
14375 (vcond<mode><mode>): Likewise.
14376 (vcond<v_cmp_mixed><mode>): Likewise.
14377 (vcondu<mode><v_cmp_mixed>): Likewise.
14378 (aarch64_cm<optab><mode>): Likewise.
14379 (aarch64_cmtst<mode>): Likewise.
14380 (aarch64_fac<optab><mode>): Likewise.
14381 (vec_perm_const<mode>): Likewise.
14382 (vcond_mask_<mode><v_cmp_result>): Rename to...
14383 (vcond_mask_<mode><v_int_equiv>): ...this.
14384 (vec_cmp<mode><v_cmp_result>): Rename to...
14385 (vec_cmp<mode><v_int_equiv>): ...this.
14386
14387 2017-08-31 Richard Sandiford <richard.sandiford@linaro.org>
14388 Alan Hayward <alan.hayward@arm.com>
14389 David Sherwood <david.sherwood@arm.com>
14390
14391 * config/aarch64/aarch64-modes.def: Remove 32-, 48- and 64-byte
14392 vector modes.
14393 * config/aarch64/iterators.md (VRL2, VRL3, VRL4): Delete.
14394 * config/aarch64/aarch64.md (UNSPEC_LD2_DREG, UNSPEC_LD3_DREG)
14395 (UNSPEC_LD4_DREG): New unspecs.
14396 * config/aarch64/aarch64-simd.md (aarch64_ld2<mode>_dreg_le)
14397 (aarch64_ld2<mode>_dreg_be): Replace with...
14398 (aarch64_ld2<mode>_dreg): ...this pattern and use the new DREG
14399 unspec.
14400 (aarch64_ld3<mode>_dreg_le)
14401 (aarch64_ld3<mode>_dreg_be): Replace with...
14402 (aarch64_ld3<mode>_dreg): ...this pattern and use the new DREG
14403 unspec.
14404 (aarch64_ld4<mode>_dreg_le)
14405 (aarch64_ld4<mode>_dreg_be): Replace with...
14406 (aarch64_ld4<mode>_dreg): ...this pattern and use the new DREG
14407 unspec.
14408
14409 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14410
14411 PR tree-optimization/81987
14412 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
14413 insert an initializer in a location not dominated by the stride
14414 definition.
14415
14416 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
14417
14418 * tree-eh.c (lower_try_finally_switch): Set the location of the finally
14419 on the entire header of the finally block in the fallthru case.
14420
14421 2017-08-30 Eric Botcazou <ebotcazou@adacore.com>
14422
14423 * varasm.c (decode_addr_const): Deal with INDIRECT_REF <INTEGER_CST>.
14424
14425 2017-08-30 Pat Haugen <pthaugen@us.ibm.com>
14426
14427 * config/rs6000/rs6000.c (rs6000_emit_prologue_move_from_cr): Rename from
14428 rs6000_emit_move_from_cr and call renamed function.
14429 (rs6000_emit_prologue): Call renamed functions.
14430 * config/rs6000/rs6000.md (prologue_movesi_from_cr): Rename from
14431 movesi_from_cr, remove volatile CRs.
14432
14433 2017-08-30 Jon Beniston <jon@beniston.com>
14434 Richard Biener <rguenther@suse.de>
14435
14436 * tree-vect-patterns.c (vect_pattern_recog_1): Use VECTOR_TYPE_P instead
14437 of VECTOR_MODE_P check.
14438 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Allow single
14439 element vector types.
14440
14441 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14442
14443 * df.h (df_read_modify_subreg_p): Remove in favor of...
14444 * rtl.h (read_modify_subreg_p): ...this new function. Take a
14445 const_rtx instead of an rtx.
14446 * cprop.c (local_cprop_find_used_regs): Update accordingly.
14447 * df-problems.c (df_word_lr_mark_ref): Likewise.
14448 * ira-lives.c (mark_pseudo_reg_live): Likewise.
14449 (mark_pseudo_reg_dead): Likewise.
14450 (mark_ref_dead): Likewise.
14451 * reginfo.c (init_subregs_of_mode): Likewise.
14452 * sched-deps.c (sched_analyze_1): Likewise.
14453 * df-scan.c (df_def_record_1): Likewise.
14454 (df_uses_record): Likewise.
14455 (df_read_modify_subreg_p): Remove in favor of...
14456 * rtlanal.c (read_modify_subreg_p): ...this new function. Take a
14457 const_rtx instead of an rtx.
14458
14459 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14460 Alan Hayward <alan.hayward@arm.com>
14461 David Sherwood <david.sherwood@arm.com>
14462
14463 * rtl.h (partial_subreg_p): New function.
14464 * caller-save.c (save_call_clobbered_regs): Use it.
14465 * calls.c (expand_call): Likewise.
14466 * combine.c (combinable_i3pat): Likewise.
14467 (simplify_set): Likewise.
14468 (make_extraction): Likewise.
14469 (make_compound_operation_int): Likewise.
14470 (gen_lowpart_or_truncate): Likewise.
14471 (force_to_mode): Likewise.
14472 (make_field_assignment): Likewise.
14473 (reg_truncated_to_mode): Likewise.
14474 (record_truncated_value): Likewise.
14475 (move_deaths): Likewise.
14476 * cse.c (record_jump_cond): Likewise.
14477 (cse_insn): Likewise.
14478 * cselib.c (cselib_lookup_1): Likewise.
14479 * expmed.c (extract_bit_field_using_extv): Likewise.
14480 * function.c (assign_parm_setup_reg): Likewise.
14481 * ifcvt.c (noce_convert_multiple_sets): Likewise.
14482 * ira-build.c (create_insn_allocnos): Likewise.
14483 * lra-coalesce.c (merge_pseudos): Likewise.
14484 * lra-constraints.c (match_reload): Likewise.
14485 (simplify_operand_subreg): Likewise.
14486 (curr_insn_transform): Likewise.
14487 * lra-lives.c (process_bb_lives): Likewise.
14488 * lra.c (new_insn_reg): Likewise.
14489 (lra_substitute_pseudo): Likewise.
14490 * regcprop.c (mode_change_ok): Likewise.
14491 (maybe_mode_change): Likewise.
14492 (copyprop_hardreg_forward_1): Likewise.
14493 * reload.c (push_reload): Likewise.
14494 (find_reloads): Likewise.
14495 (find_reloads_subreg_address): Likewise.
14496 * reload1.c (alter_reg): Likewise.
14497 (eliminate_regs_1): Likewise.
14498 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
14499
14500 2017-08-30 David Edelsohn <dje.gcc@gmail.com>
14501
14502 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Revert
14503 back to if statements, including unpack.
14504
14505 2017-08-30 Martin Liska <mliska@suse.cz>
14506
14507 PR inline-asm/82001
14508 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
14509 Rename to ...
14510 (func_checker::compare_asm_inputs_outputs): ... this function.
14511 (func_checker::compare_gimple_asm): Use the function to compare
14512 also ASM constrains.
14513 * ipa-icf-gimple.h: Rename the function.
14514
14515 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14516 Alan Hayward <alan.hayward@arm.com>
14517 David Sherwood <david.sherwood@arm.com>
14518
14519 * coretypes.h (complex_mode): New type.
14520 * gdbhooks.py (build_pretty_printer): Handle it.
14521 * machmode.h (complex_mode): New class.
14522 (complex_mode::includes_p): New function.
14523 (is_complex_int_mode): Likewise.
14524 (is_complex_float_mode): Likewise.
14525 * genmodes.c (get_mode_class): Handle complex mode classes.
14526 * function.c (expand_function_end): Use is_complex_int_mode.
14527
14528 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14529 Alan Hayward <alan.hayward@arm.com>
14530 David Sherwood <david.sherwood@arm.com>
14531
14532 * coretypes.h (scalar_mode_pod): New typedef.
14533 * gdbhooks.py (build_pretty_printer): Handle it.
14534 * machmode.h (gt_ggc_mx, gt_pch_nx): New functions.
14535 * fixed-value.h (fixed_value::mode): Change type to scalar_mode_pod.
14536 * fold-const.c (fold_convert_const_int_from_fixed): Use scalar_mode.
14537 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields): Use
14538 as_a <scalar_mode>.
14539
14540 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14541 Alan Hayward <alan.hayward@arm.com>
14542 David Sherwood <david.sherwood@arm.com>
14543
14544 * machmode.h (mode_for_vector): Take a scalar_mode instead
14545 of a machine_mode.
14546 * stor-layout.c (mode_for_vector): Likewise.
14547 * explow.c (promote_mode): Use as_a <scalar_mode>.
14548 * sdbout.c (sdbout_parms): Use is_a <scalar_mode>.
14549
14550 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14551 Alan Hayward <alan.hayward@arm.com>
14552 David Sherwood <david.sherwood@arm.com>
14553
14554 * target.def (preferred_simd_mode): Take a scalar_mode
14555 instead of a machine_mode.
14556 * targhooks.h (default_preferred_simd_mode): Likewise.
14557 * targhooks.c (default_preferred_simd_mode): Likewise.
14558 * config/arc/arc.c (arc_preferred_simd_mode): Likewise.
14559 * config/arm/arm.c (arm_preferred_simd_mode): Likewise.
14560 * config/c6x/c6x.c (c6x_preferred_simd_mode): Likewise.
14561 * config/epiphany/epiphany.c (epiphany_preferred_simd_mode): Likewise.
14562 * config/i386/i386.c (ix86_preferred_simd_mode): Likewise.
14563 * config/mips/mips.c (mips_preferred_simd_mode): Likewise.
14564 * config/nvptx/nvptx.c (nvptx_preferred_simd_mode): Likewise.
14565 * config/powerpcspe/powerpcspe.c (rs6000_preferred_simd_mode):
14566 Likewise.
14567 * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Likewise.
14568 * config/s390/s390.c (s390_preferred_simd_mode): Likewise.
14569 * config/sparc/sparc.c (sparc_preferred_simd_mode): Likewise.
14570 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Likewise.
14571 (aarch64_simd_scalar_immediate_valid_for_move): Update accordingly.
14572 * doc/tm.texi: Regenerate.
14573 * optabs-query.c (can_vec_mask_load_store_p): Return false for
14574 non-scalar modes.
14575
14576 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14577 Alan Hayward <alan.hayward@arm.com>
14578 David Sherwood <david.sherwood@arm.com>
14579
14580 * target.def (scalar_mode_supported_p): Take a scalar_mode
14581 instead of a machine_mode.
14582 * targhooks.h (default_scalar_mode_supported_p): Likewise.
14583 * targhooks.c (default_scalar_mode_supported_p): Likewise.
14584 * config/aarch64/aarch64.c (aarch64_scalar_mode_supported_p): Likewise.
14585 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
14586 * config/arm/arm.c (arm_scalar_mode_supported_p): Likewise.
14587 * config/avr/avr.c (avr_scalar_mode_supported_p): Likewise.
14588 * config/c6x/c6x.c (c6x_scalar_mode_supported_p): Likewise.
14589 * config/i386/i386.c (ix86_scalar_mode_supported_p): Likewise.
14590 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): Likewise.
14591 * config/mips/mips.c (mips_scalar_mode_supported_p): Likewise.
14592 * config/msp430/msp430.c (msp430_scalar_mode_supported_p): Likewise.
14593 * config/pa/pa.c (pa_scalar_mode_supported_p): Likewise.
14594 * config/pdp11/pdp11.c (pdp11_scalar_mode_supported_p): Likewise.
14595 * config/powerpcspe/powerpcspe.c (rs6000_scalar_mode_supported_p):
14596 Likewise.
14597 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Likewise.
14598 * config/s390/s390.c (s390_scalar_mode_supported_p): Likewise.
14599 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
14600 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
14601 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p):
14602 Likewise.
14603 * doc/tm.texi: Regenerate.
14604
14605 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14606 Alan Hayward <alan.hayward@arm.com>
14607 David Sherwood <david.sherwood@arm.com>
14608
14609 * coretypes.h (opt_scalar_mode): New typedef.
14610 * gdbhooks.py (build_pretty_printers): Handle it.
14611 * machmode.h (mode_iterator::get_2xwider): Add overload for
14612 opt_mode<T>.
14613 * emit-rtl.c (init_emit_once): Use opt_scalar_mode when iterating
14614 over scalar modes.
14615 * expr.c (convert_mode_scalar): Likewise.
14616 * omp-low.c (omp_clause_aligned_alignment): Likewise.
14617 * optabs.c (expand_float): Likewise.
14618 (expand_fix): Likewise.
14619 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
14620
14621 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14622 Alan Hayward <alan.hayward@arm.com>
14623 David Sherwood <david.sherwood@arm.com>
14624
14625 * optabs.c (expand_float): Explicitly check for scalars before
14626 using a branching expansion.
14627 (expand_fix): Likewise.
14628
14629 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14630 Alan Hayward <alan.hayward@arm.com>
14631 David Sherwood <david.sherwood@arm.com>
14632
14633 * expr.c (convert_mode): Split scalar handling out into...
14634 (convert_mode_scalar): ...this new function. Treat the modes
14635 as scalar_modes.
14636
14637 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14638 Alan Hayward <alan.hayward@arm.com>
14639 David Sherwood <david.sherwood@arm.com>
14640
14641 * omp-expand.c (expand_omp_atomic): Use is_int_mode, is_float_mode
14642 and scalar_mode.
14643 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Likewise.
14644
14645 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14646 Alan Hayward <alan.hayward@arm.com>
14647 David Sherwood <david.sherwood@arm.com>
14648
14649 * fixed-value.h (fixed_from_double_int): Take a scalar_mode
14650 rather than a machine_mode.
14651 (fixed_from_string): Likewise.
14652 (fixed_convert): Likewise.
14653 (fixed_convert_from_int): Likewise.
14654 (fixed_convert_from_real): Likewise.
14655 (real_convert_from_fixed): Likewise.
14656 * fixed-value.c (fixed_from_double_int): Likewise.
14657 (fixed_from_string): Likewise.
14658 (fixed_convert): Likewise.
14659 (fixed_convert_from_int): Likewise.
14660 (fixed_convert_from_real): Likewise.
14661 (real_convert_from_fixed): Likewise.
14662 * config/avr/avr.c (avr_out_round): Use as_a <scalar_mode>.
14663
14664 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14665 Alan Hayward <alan.hayward@arm.com>
14666 David Sherwood <david.sherwood@arm.com>
14667
14668 * emit-rtl.c (immed_double_const): Use is_a <scalar_mode> instead
14669 of separate mode class checks. Do not allow vector modes here.
14670 (immed_wide_int_const): Use as_a <scalar_mode>.
14671 * explow.c (trunc_int_for_mode): Likewise.
14672 * rtl.h (wi::int_traits<rtx_mode_t>::get_precision): Likewise.
14673 (wi::shwi): Likewise.
14674 (wi::min_value): Likewise.
14675 (wi::max_value): Likewise.
14676 * dwarf2out.c (loc_descriptor): Likewise.
14677 * simplify-rtx.c (simplify_immed_subreg): Fix rtx_mode_t argument
14678 for CONST_WIDE_INT.
14679
14680 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14681 Alan Hayward <alan.hayward@arm.com>
14682 David Sherwood <david.sherwood@arm.com>
14683
14684 * tree.h (SCALAR_TYPE_MODE): New macro.
14685 * expr.c (expand_expr_addr_expr_1): Use it.
14686 (expand_expr_real_2): Likewise.
14687 * fold-const.c (fold_convert_const_fixed_from_fixed): Likeise.
14688 (fold_convert_const_fixed_from_int): Likewise.
14689 (fold_convert_const_fixed_from_real): Likewise.
14690 (native_encode_fixed): Likewise
14691 (native_encode_complex): Likewise
14692 (native_encode_vector): Likewise.
14693 (native_interpret_fixed): Likewise.
14694 (native_interpret_real): Likewise.
14695 (native_interpret_complex): Likewise.
14696 (native_interpret_vector): Likewise.
14697 * omp-simd-clone.c (simd_clone_adjust_return_type): Likewise.
14698 (simd_clone_adjust_argument_types): Likewise.
14699 (simd_clone_init_simd_arrays): Likewise.
14700 (simd_clone_adjust): Likewise.
14701 * stor-layout.c (layout_type): Likewise.
14702 * tree.c (build_minus_one_cst): Likewise.
14703 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
14704 * tree-inline.c (estimate_move_cost): Likewise.
14705 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Likewise.
14706 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise.
14707 (vectorizable_reduction): Likewise.
14708 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
14709 (vect_recog_mixed_size_cond_pattern): Likewise.
14710 (check_bool_pattern): Likewise.
14711 (adjust_bool_pattern): Likewise.
14712 (search_type_for_mask_1): Likewise.
14713 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise.
14714 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
14715 (vectorizable_load): Likewise.
14716 (vectorizable_store): Likewise.
14717 * ubsan.c (ubsan_encode_value): Likewise.
14718 * varasm.c (output_constant): Likewise.
14719
14720 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14721 Alan Hayward <alan.hayward@arm.com>
14722 David Sherwood <david.sherwood@arm.com>
14723
14724 * coretypes.h (scalar_mode): New class.
14725 * machmode.h (scalar_mode): Likewise.
14726 (scalar_mode::includes_p): New function.
14727 (mode_to_inner): Return a scalar_mode rather than a machine_mode.
14728 * gdbhooks.py (build_pretty_printers): Handle scalar_mode.
14729 * genmodes.c (get_mode_class): Handle remaining scalar modes.
14730 * cfgexpand.c (expand_debug_expr): Use scalar_mode.
14731 * expmed.c (store_bit_field_1): Likewise.
14732 (extract_bit_field_1): Likewise.
14733 * expr.c (write_complex_part): Likewise.
14734 (read_complex_part): Likewise.
14735 (emit_move_complex_push): Likewise.
14736 (expand_expr_real_2): Likewise.
14737 * function.c (assign_parm_setup_reg): Likewise.
14738 (assign_parms_unsplit_complex): Likewise.
14739 * optabs.c (expand_binop): Likewise.
14740 * rtlanal.c (subreg_get_info): Likewise.
14741 * simplify-rtx.c (simplify_immed_subreg): Likewise.
14742 * varasm.c (output_constant_pool_2): Likewise.
14743
14744 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14745 Alan Hayward <alan.hayward@arm.com>
14746 David Sherwood <david.sherwood@arm.com>
14747
14748 * expmed.c (extract_high_half): Use scalar_int_mode and remove
14749 assertion.
14750 (expmed_mult_highpart_optab): Likewise.
14751 (expmed_mult_highpart): Likewise.
14752
14753 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14754 Alan Hayward <alan.hayward@arm.com>
14755 David Sherwood <david.sherwood@arm.com>
14756
14757 * builtins.h (builtin_strncpy_read_str): Take a scalar_int_mode
14758 instead of a machine_mode.
14759 (builtin_memset_read_str): Likewise.
14760 * builtins.c (c_readstr): Likewise.
14761 (builtin_memcpy_read_str): Likewise.
14762 (builtin_strncpy_read_str): Likewise.
14763 (builtin_memset_read_str): Likewise.
14764 (builtin_memset_gen_str): Likewise.
14765 (expand_builtin_signbit): Use scalar_int_mode for local variables.
14766 * cfgexpand.c (convert_debug_memory_address): Take a scalar_int_mode
14767 instead of a machine_mode.
14768 * combine.c (simplify_if_then_else): Use scalar_int_mode for local
14769 variables.
14770 (make_extraction): Likewise.
14771 (try_widen_shift_mode): Take and return scalar_int_modes instead
14772 of machine_modes.
14773 * config/aarch64/aarch64.c (aarch64_libgcc_cmp_return_mode): Return
14774 a scalar_int_mode instead of a machine_mode.
14775 * config/avr/avr.c (avr_addr_space_address_mode): Likewise.
14776 (avr_addr_space_pointer_mode): Likewise.
14777 * config/cr16/cr16.c (cr16_unwind_word_mode): Likewise.
14778 * config/msp430/msp430.c (msp430_addr_space_pointer_mode): Likewise.
14779 (msp430_unwind_word_mode): Likewise.
14780 * config/spu/spu.c (spu_unwind_word_mode): Likewise.
14781 (spu_addr_space_pointer_mode): Likewise.
14782 (spu_addr_space_address_mode): Likewise.
14783 (spu_libgcc_cmp_return_mode): Likewise.
14784 (spu_libgcc_shift_count_mode): Likewise.
14785 * config/rl78/rl78.c (rl78_addr_space_address_mode): Likewise.
14786 (rl78_addr_space_pointer_mode): Likewise.
14787 (fl78_unwind_word_mode): Likewise.
14788 (rl78_valid_pointer_mode): Take a scalar_int_mode instead of a
14789 machine_mode.
14790 * config/alpha/alpha.c (vms_valid_pointer_mode): Likewise.
14791 * config/ia64/ia64.c (ia64_vms_valid_pointer_mode): Likewise.
14792 * config/mips/mips.c (mips_mode_rep_extended): Likewise.
14793 (mips_valid_pointer_mode): Likewise.
14794 * config/tilegx/tilegx.c (tilegx_mode_rep_extended): Likewise.
14795 * config/ft32/ft32.c (ft32_valid_pointer_mode): Likewise.
14796 (ft32_addr_space_pointer_mode): Return a scalar_int_mode instead
14797 of a machine_mode.
14798 (ft32_addr_space_address_mode): Likewise.
14799 * config/m32c/m32c.c (m32c_valid_pointer_mode): Take a
14800 scalar_int_mode instead of a machine_mode.
14801 (m32c_addr_space_pointer_mode): Return a scalar_int_mode instead
14802 of a machine_mode.
14803 (m32c_addr_space_address_mode): Likewise.
14804 * config/powerpcspe/powerpcspe.c (rs6000_abi_word_mode): Likewise.
14805 (rs6000_eh_return_filter_mode): Likewise.
14806 * config/rs6000/rs6000.c (rs6000_abi_word_mode): Likewise.
14807 (rs6000_eh_return_filter_mode): Likewise.
14808 * config/s390/s390.c (s390_libgcc_cmp_return_mode): Likewise.
14809 (s390_libgcc_shift_count_mode): Likewise.
14810 (s390_unwind_word_mode): Likewise.
14811 (s390_valid_pointer_mode): Take a scalar_int_mode rather than a
14812 machine_mode.
14813 * target.def (mode_rep_extended): Likewise.
14814 (valid_pointer_mode): Likewise.
14815 (addr_space.valid_pointer_mode): Likewise.
14816 (eh_return_filter_mode): Return a scalar_int_mode rather than
14817 a machine_mode.
14818 (libgcc_cmp_return_mode): Likewise.
14819 (libgcc_shift_count_mode): Likewise.
14820 (unwind_word_mode): Likewise.
14821 (addr_space.pointer_mode): Likewise.
14822 (addr_space.address_mode): Likewise.
14823 * doc/tm.texi: Regenerate.
14824 * dojump.c (prefer_and_bit_test): Take a scalar_int_mode rather than
14825 a machine_mode.
14826 (do_jump): Use scalar_int_mode for local variables.
14827 * dwarf2cfi.c (init_return_column_size): Take a scalar_int_mode
14828 rather than a machine_mode.
14829 * dwarf2out.c (convert_descriptor_to_mode): Likewise.
14830 (scompare_loc_descriptor_wide): Likewise.
14831 (scompare_loc_descriptor_narrow): Likewise.
14832 * emit-rtl.c (adjust_address_1): Use scalar_int_mode for local
14833 variables.
14834 * except.c (sjlj_emit_dispatch_table): Likewise.
14835 (expand_builtin_eh_copy_values): Likewise.
14836 * explow.c (convert_memory_address_addr_space_1): Likewise.
14837 Take a scalar_int_mode rather than a machine_mode.
14838 (convert_memory_address_addr_space): Take a scalar_int_mode rather
14839 than a machine_mode.
14840 (memory_address_addr_space): Use scalar_int_mode for local variables.
14841 * expmed.h (expand_mult_highpart_adjust): Take a scalar_int_mode
14842 rather than a machine_mode.
14843 * expmed.c (mask_rtx): Likewise.
14844 (init_expmed_one_conv): Likewise.
14845 (expand_mult_highpart_adjust): Likewise.
14846 (extract_high_half): Likewise.
14847 (expmed_mult_highpart_optab): Likewise.
14848 (expmed_mult_highpart): Likewise.
14849 (expand_smod_pow2): Likewise.
14850 (expand_sdiv_pow2): Likewise.
14851 (emit_store_flag_int): Likewise.
14852 (adjust_bit_field_mem_for_reg): Use scalar_int_mode for local
14853 variables.
14854 (extract_low_bits): Likewise.
14855 * expr.h (by_pieces_constfn): Take a scalar_int_mode rather than
14856 a machine_mode.
14857 * expr.c (pieces_addr::adjust): Likewise.
14858 (can_store_by_pieces): Likewise.
14859 (store_by_pieces): Likewise.
14860 (clear_by_pieces_1): Likewise.
14861 (expand_expr_addr_expr_1): Likewise.
14862 (expand_expr_addr_expr): Use scalar_int_mode for local variables.
14863 (expand_expr_real_1): Likewise.
14864 (try_casesi): Likewise.
14865 * final.c (shorten_branches): Likewise.
14866 * fold-const.c (fold_convert_const_int_from_fixed): Change the
14867 type of "mode" to machine_mode.
14868 * internal-fn.c (expand_arith_overflow_result_store): Take a
14869 scalar_int_mode rather than a machine_mode.
14870 (expand_mul_overflow): Use scalar_int_mode for local variables.
14871 * loop-doloop.c (doloop_modify): Likewise.
14872 (doloop_optimize): Likewise.
14873 * optabs.c (expand_subword_shift): Take a scalar_int_mode rather
14874 than a machine_mode.
14875 (expand_doubleword_shift_condmove): Likewise.
14876 (expand_doubleword_shift): Likewise.
14877 (expand_doubleword_clz): Likewise.
14878 (expand_doubleword_popcount): Likewise.
14879 (expand_doubleword_parity): Likewise.
14880 (expand_absneg_bit): Use scalar_int_mode for local variables.
14881 (prepare_float_lib_cmp): Likewise.
14882 * rtl.h (convert_memory_address_addr_space_1): Take a scalar_int_mode
14883 rather than a machine_mode.
14884 (convert_memory_address_addr_space): Likewise.
14885 (get_mode_bounds): Likewise.
14886 (get_address_mode): Return a scalar_int_mode rather than a
14887 machine_mode.
14888 * rtlanal.c (get_address_mode): Likewise.
14889 * stor-layout.c (get_mode_bounds): Take a scalar_int_mode rather
14890 than a machine_mode.
14891 * targhooks.c (default_mode_rep_extended): Likewise.
14892 (default_valid_pointer_mode): Likewise.
14893 (default_addr_space_valid_pointer_mode): Likewise.
14894 (default_eh_return_filter_mode): Return a scalar_int_mode rather
14895 than a machine_mode.
14896 (default_libgcc_cmp_return_mode): Likewise.
14897 (default_libgcc_shift_count_mode): Likewise.
14898 (default_unwind_word_mode): Likewise.
14899 (default_addr_space_pointer_mode): Likewise.
14900 (default_addr_space_address_mode): Likewise.
14901 * targhooks.h (default_eh_return_filter_mode): Likewise.
14902 (default_libgcc_cmp_return_mode): Likewise.
14903 (default_libgcc_shift_count_mode): Likewise.
14904 (default_unwind_word_mode): Likewise.
14905 (default_addr_space_pointer_mode): Likewise.
14906 (default_addr_space_address_mode): Likewise.
14907 (default_mode_rep_extended): Take a scalar_int_mode rather than
14908 a machine_mode.
14909 (default_valid_pointer_mode): Likewise.
14910 (default_addr_space_valid_pointer_mode): Likewise.
14911 * tree-ssa-address.c (addr_for_mem_ref): Use scalar_int_mode for
14912 local variables.
14913 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Take a scalar_int_mode
14914 rather than a machine_mode.
14915 * tree-switch-conversion.c (array_value_type): Use scalar_int_mode
14916 for local variables.
14917 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
14918 * var-tracking.c (use_narrower_mode): Take a scalar_int_mode rather
14919 than a machine_mode.
14920
14921 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14922 Alan Hayward <alan.hayward@arm.com>
14923 David Sherwood <david.sherwood@arm.com>
14924
14925 * dojump.c (do_jump_by_parts_greater_rtx): Change the type of
14926 the mode argument to scalar_int_mode.
14927 (do_jump_by_parts_zero_rtx): Likewise.
14928 (do_jump_by_parts_equality_rtx): Likewise.
14929 (do_jump_by_parts_greater): Take a mode argument.
14930 (do_jump_by_parts_equality): Likewise.
14931 (do_jump_1): Update calls accordingly.
14932
14933 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14934 Alan Hayward <alan.hayward@arm.com>
14935 David Sherwood <david.sherwood@arm.com>
14936
14937 * is-a.h (safe_dyn_cast): New function.
14938 * rtl.h (rtx_jump_table_data::get_data_mode): New function.
14939 (jump_table_for_label): Likewise.
14940 * final.c (final_addr_vec_align): Take an rtx_jump_table_data *
14941 instead of an rtx_insn *.
14942 (shorten_branches): Use dyn_cast instead of LABEL_P and
14943 JUMP_TABLE_DATA_P. Use jump_table_for_label and
14944 rtx_jump_table_data::get_data_mode.
14945 (final_scan_insn): Likewise.
14946
14947 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14948 Alan Hayward <alan.hayward@arm.com>
14949 David Sherwood <david.sherwood@arm.com>
14950
14951 * combine.c (try_combine): Use is_a <scalar_int_mode> when
14952 trying to combine a full-register integer set with a subreg
14953 integer set.
14954
14955 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14956 Alan Hayward <alan.hayward@arm.com>
14957 David Sherwood <david.sherwood@arm.com>
14958
14959 * expr.c (expand_expr_addr_expr): Add a new_tmode local variable
14960 that is always either address_mode or pointer_mode.
14961
14962 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14963 Alan Hayward <alan.hayward@arm.com>
14964 David Sherwood <david.sherwood@arm.com>
14965
14966 * expr.c (expand_expr_real_2): Use word_mode instead of innermode
14967 when the two are known to be equal.
14968
14969 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14970 Alan Hayward <alan.hayward@arm.com>
14971 David Sherwood <david.sherwood@arm.com>
14972
14973 * simplify-rtx.c (simplify_const_unary_operation): Use
14974 is_a <scalar_int_mode> instead of checking for a nonzero
14975 precision. Forcibly convert op_mode to a scalar_int_mode
14976 in that case. More clearly differentiate the operand and
14977 result modes and use the former when deciding what the value
14978 of a count-bits operation should be. Use is_int_mode instead
14979 of checking for a MODE_INT. Remove redundant check for whether
14980 this mode has a zero precision.
14981
14982 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14983 Alan Hayward <alan.hayward@arm.com>
14984 David Sherwood <david.sherwood@arm.com>
14985
14986 * optabs.c (widen_leading): Change the type of the mode argument
14987 to scalar_int_mode. Use opt_scalar_int_mode for the mode iterator.
14988 (widen_bswap): Likewise.
14989 (expand_parity): Likewise.
14990 (expand_ctz): Change the type of the mode argument to scalar_int_mode.
14991 (expand_ffs): Likewise.
14992 (epand_unop): Check for scalar integer modes before calling the
14993 above routines.
14994
14995 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
14996 Alan Hayward <alan.hayward@arm.com>
14997 David Sherwood <david.sherwood@arm.com>
14998
14999 * expr.c (const_scalar_mask_from_tree): Add a mode argument.
15000 Expand commentary.
15001 (expand_expr_real_1): Update call accordingly.
15002
15003 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15004 Alan Hayward <alan.hayward@arm.com>
15005 David Sherwood <david.sherwood@arm.com>
15006
15007 * expmed.c (store_bit_field_using_insv): Add op0_mode and
15008 value_mode arguments. Use scalar_int_mode internally.
15009 (store_bit_field_1): Rename the new integer mode from imode
15010 to op0_mode and use it instead of GET_MODE (op0). Update calls
15011 to store_split_bit_field, store_bit_field_using_insv and
15012 store_fixed_bit_field.
15013 (store_fixed_bit_field): Add op0_mode and value_mode arguments.
15014 Use scalar_int_mode internally. Use a bit count rather than a mode
15015 when calculating the largest bit size for get_best_mode.
15016 Update calls to store_split_bit_field and store_fixed_bit_field_1.
15017 (store_fixed_bit_field_1): Add mode and value_mode arguments.
15018 Remove assertion that OP0 has a scalar integer mode.
15019 (store_split_bit_field): Add op0_mode and value_mode arguments.
15020 Update calls to extract_fixed_bit_field.
15021 (extract_bit_field_using_extv): Add an op0_mode argument.
15022 Use scalar_int_mode internally.
15023 (extract_bit_field_1): Rename the new integer mode from imode to
15024 op0_mode and use it instead of GET_MODE (op0). Update calls to
15025 extract_split_bit_field, extract_bit_field_using_extv and
15026 extract_fixed_bit_field.
15027 (extract_fixed_bit_field): Add an op0_mode argument. Update calls
15028 to extract_split_bit_field and extract_fixed_bit_field_1.
15029 (extract_fixed_bit_field_1): Add a mode argument. Remove assertion
15030 that OP0 has a scalar integer mode. Use as_a <scalar_int_mode>
15031 on the target mode.
15032 (extract_split_bit_field): Add an op0_mode argument. Update call
15033 to extract_fixed_bit_field.
15034
15035 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15036 Alan Hayward <alan.hayward@arm.com>
15037 David Sherwood <david.sherwood@arm.com>
15038
15039 * cse.c (cse_insn): Use opt_scalar_int_mode for the mode iterator.
15040 * explow.c (hard_function_value): Likewise.
15041 * expmed.c (extract_fixed_bit_field_1): Likewise. Move the
15042 convert_to_mode call outside the loop.
15043 * expr.c (alignment_for_piecewise_move): Use opt_scalar_int_mode
15044 for the mode iterator. Require the mode specified by max_pieces
15045 to exist.
15046 (emit_block_move_via_movmem): Use opt_scalar_int_mode for the
15047 mode iterator.
15048 (copy_blkmode_to_reg): Likewise.
15049 (set_storage_via_setmem): Likewise.
15050 * optabs.c (prepare_cmp_insn): Likewise.
15051 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
15052 * stor-layout.c (finish_bitfield_representative): Likewise.
15053
15054 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15055 Alan Hayward <alan.hayward@arm.com>
15056 David Sherwood <david.sherwood@arm.com>
15057
15058 * rtl.h (subreg_unpromoted_mode, subreg_promoted_mode): New functions.
15059 * expr.c (convert_move): Use them.
15060 (convert_modes): Likewise.
15061 (store_expr_with_bounds): Likewise.
15062
15063 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15064 Alan Hayward <alan.hayward@arm.com>
15065 David Sherwood <david.sherwood@arm.com>
15066
15067 * rtl.h (rtl_hooks::reg_nonzero_bits): Add a scalar_int_mode
15068 parameter for the mode of "x". Remove the "known_x", "known_mode"
15069 and "known_ret" arguments. Change the type of the mode argument
15070 to scalar_int_mode.
15071 (rtl_hooks:reg_num_sign_bit_copies): Likewise.
15072 * combine.c (reg_nonzero_bits_for_combine): Update accordingly.
15073 (reg_num_sign_bit_copies_for_combine): Likewise.
15074 * rtlanal.c (nonzero_bits1): Likewise.
15075 (num_sign_bit_copies1): Likewise.
15076 * rtlhooks-def.h (reg_nonzero_bits_general): Likewise.
15077 (reg_num_sign_bit_copies_general): Likewise.
15078 * rtlhooks.c (reg_num_sign_bit_copies_general): Likewise.
15079 (reg_nonzero_bits_general): Likewise.
15080
15081 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15082 Alan Hayward <alan.hayward@arm.com>
15083 David Sherwood <david.sherwood@arm.com>
15084
15085 * rtlanal.c (num_sign_bit_copies): Handle VOIDmode here rather
15086 than in subroutines. Return 1 for non-integer modes.
15087 (cached_num_sign_bit_copies): Change the type of the mode parameter
15088 to scalar_int_mode.
15089 (num_sign_bit_copies1): Likewise. Remove early exit for other mode
15090 classes. Handle CONST_INT_P first and then check whether X also
15091 has a scalar integer mode. Check the same thing for inner registers
15092 of a SUBREG and for values that are being extended or truncated.
15093
15094 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15095 Alan Hayward <alan.hayward@arm.com>
15096 David Sherwood <david.sherwood@arm.com>
15097
15098 * rtlanal.c (nonzero_bits): Handle VOIDmode here rather than
15099 in subroutines. Return the mode mask for non-integer modes.
15100 (cached_nonzero_bits): Change the type of the mode parameter
15101 to scalar_int_mode.
15102 (nonzero_bits1): Likewise. Remove early exit for other mode
15103 classes. Handle CONST_INT_P first and then check whether X
15104 also has a scalar integer mode.
15105
15106 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15107 Alan Hayward <alan.hayward@arm.com>
15108 David Sherwood <david.sherwood@arm.com>
15109
15110 * expr.c (widest_int_mode_for_size): Make the comment match the code.
15111 Return a scalar_int_mode and assert that the size is greater than
15112 one byte.
15113 (by_pieces_ninsns): Update accordingly and remove VOIDmode handling.
15114 (op_by_pieces_d::op_by_pieces_d): Likewise.
15115 (op_by_pieces_d::run): Likewise.
15116 (can_store_by_pieces): Likewise.
15117
15118 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15119 Alan Hayward <alan.hayward@arm.com>
15120 David Sherwood <david.sherwood@arm.com>
15121
15122 * combine.c (extract_left_shift): Add a mode argument and update
15123 recursive calls.
15124 (make_compound_operation_int): Change the type of the mode parameter
15125 to scalar_int_mode and update the call to extract_left_shift.
15126
15127 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15128 Alan Hayward <alan.hayward@arm.com>
15129 David Sherwood <david.sherwood@arm.com>
15130
15131 * combine.c (simplify_and_const_int): Change the type of the mode
15132 parameter to scalar_int_mode.
15133 (simplify_and_const_int_1): Likewise. Update recursive call.
15134
15135 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15136 Alan Hayward <alan.hayward@arm.com>
15137 David Sherwood <david.sherwood@arm.com>
15138
15139 * combine.c (simplify_compare_const): Check that the mode is a
15140 scalar_int_mode (rather than VOIDmode) before testing its
15141 precision.
15142 (simplify_comparison): Move COMPARISON_P handling out of the
15143 loop and restrict the latter part of the loop to scalar_int_modes.
15144 Check is_a <scalar_int_mode> before calling HWI_COMPUTABLE_MODE_P
15145 and when considering SUBREG_REGs. Use is_int_mode instead of
15146 checking GET_MODE_CLASS against MODE_INT.
15147
15148 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15149 Alan Hayward <alan.hayward@arm.com>
15150 David Sherwood <david.sherwood@arm.com>
15151
15152 * combine.c (try_widen_shift_mode): Move check for equal modes to...
15153 (simplify_shift_const_1): ...here. Use scalar_int_mode for
15154 shift_unit_mode and for modes involved in scalar shifts.
15155
15156 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15157 Alan Hayward <alan.hayward@arm.com>
15158 David Sherwood <david.sherwood@arm.com>
15159
15160 * combine.c (force_int_to_mode): New function, split out from...
15161 (force_to_mode): ...here. Keep xmode up-to-date and use it
15162 instead of GET_MODE (x).
15163
15164 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15165 Alan Hayward <alan.hayward@arm.com>
15166 David Sherwood <david.sherwood@arm.com>
15167
15168 * optabs-query.h (extraction_insn::struct_mode): Change type to
15169 opt_scalar_int_mode and update comment.
15170 (extraction_insn::field_mode): Change type to scalar_int_mode.
15171 (extraction_insn::pos_mode): Likewise.
15172 * combine.c (make_extraction): Update accordingly.
15173 * optabs-query.c (get_traditional_extraction_insn): Likewise.
15174 (get_optab_extraction_insn): Likewise.
15175 * recog.c (simplify_while_replacing): Likewise.
15176 * expmed.c (narrow_bit_field_mem): Change the type of the mode
15177 parameter to opt_scalar_int_mode.
15178
15179 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15180 Alan Hayward <alan.hayward@arm.com>
15181 David Sherwood <david.sherwood@arm.com>
15182
15183 * machmode.h (bit_field_mode_iterator::next_mode): Take a pointer
15184 to a scalar_int_mode instead of a machine_mode.
15185 (bit_field_mode_iterator::m_mode): Change type to opt_scalar_int_mode.
15186 (get_best_mode): Return a boolean and use a pointer argument to store
15187 the selected mode. Replace the limit mode parameter with a bit limit.
15188 * expmed.c (adjust_bit_field_mem_for_reg): Use scalar_int_mode
15189 for the values returned by bit_field_mode_iterator::next_mode.
15190 (store_bit_field): Update call to get_best_mode.
15191 (store_fixed_bit_field): Likewise.
15192 (extract_fixed_bit_field): Likewise.
15193 * expr.c (optimize_bitfield_assignment_op): Likewise.
15194 * fold-const.c (optimize_bit_field_compare): Likewise.
15195 (fold_truth_andor_1): Likewise.
15196 * stor-layout.c (bit_field_mode_iterator::next_mode): As above.
15197 Update for new type of m_mode.
15198 (get_best_mode): As above.
15199
15200 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15201 Alan Hayward <alan.hayward@arm.com>
15202 David Sherwood <david.sherwood@arm.com>
15203
15204 * expmed.c (strict_volatile_bitfield_p): Change the type of fieldmode
15205 to scalar_int_mode. Remove check for SCALAR_INT_MODE_P.
15206 (store_bit_field): Check is_a <scalar_int_mode> before calling
15207 strict_volatile_bitfield_p.
15208 (extract_bit_field): Likewise.
15209
15210 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15211 Alan Hayward <alan.hayward@arm.com>
15212 David Sherwood <david.sherwood@arm.com>
15213
15214 * target.def (cstore_mode): Return a scalar_int_mode.
15215 * doc/tm.texi: Regenerate.
15216 * config/sparc/sparc.c (sparc_cstore_mode): Return a scalar_int_mode.
15217 * targhooks.h (default_cstore_mode): Likewise.
15218 * targhooks.c (default_cstore_mode): Likewise, using a forced
15219 conversion.
15220 * expmed.c (emit_cstore): Expect the target of the cstore to be
15221 a scalar_int_mode.
15222
15223 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15224 Alan Hayward <alan.hayward@arm.com>
15225 David Sherwood <david.sherwood@arm.com>
15226
15227 * cfgloop.h (rtx_iv): Change type of extend_mode and mode to
15228 scalar_int_mode.
15229 (niter_desc): Likewise mode.
15230 (iv_analyze): Add a mode parameter.
15231 (biv_p): Likewise.
15232 (iv_analyze_expr): Pass the mode paraeter before the rtx it describes
15233 and change its type to scalar_int_mode.
15234 * loop-iv.c: Update commentary at head of file.
15235 (iv_constant): Pass the mode paraeter before the rtx it describes
15236 and change its type to scalar_int_mode. Remove VOIDmode handling.
15237 (iv_subreg): Change the type of the mode parameter to scalar_int_mode.
15238 (iv_extend): Likewise.
15239 (shorten_into_mode): Likewise.
15240 (iv_add): Use scalar_int_mode.
15241 (iv_mult): Likewise.
15242 (iv_shift): Likewise.
15243 (canonicalize_iv_subregs): Likewise.
15244 (get_biv_step_1): Pass the outer_mode parameter before the rtx
15245 it describes and change its mode to scalar_int_mode. Also change
15246 the type of the returned inner_mode to scalar_int_mode.
15247 (get_biv_step): Likewise, turning outer_mode from a pointer
15248 into a direct parameter. Update call to get_biv_step_1.
15249 (iv_analyze_biv): Add an outer_mode parameter. Update calls to
15250 iv_constant and get_biv_step.
15251 (iv_analyze_expr): Pass the mode parameter before the rtx it describes
15252 and change its type to scalar_int_mode. Don't initialise iv->mode
15253 to VOIDmode and remove later checks for its still being VOIDmode.
15254 Update calls to iv_analyze_op and iv_analyze_expr. Check
15255 is_a <scalar_int_mode> when changing the mode under consideration.
15256 (iv_analyze_def): Ignore registers that don't have a scalar_int_mode.
15257 Update call to iv_analyze_expr.
15258 (iv_analyze_op): Add a mode parameter. Reject subregs whose
15259 inner register is not also a scalar_int_mode. Update call to
15260 iv_analyze_biv.
15261 (iv_analyze): Add a mode parameter. Update call to iv_analyze_op.
15262 (biv_p): Add a mode parameter. Update call to iv_analyze_biv.
15263 (iv_number_of_iterations): Use is_a <scalar_int_mode> instead of
15264 separate mode class checks. Update calls to iv_analyze. Remove
15265 fix-up of VOIDmodes after iv_analyze_biv.
15266 * loop-unroll.c (analyze_iv_to_split_insn): Reject registers that
15267 don't have a scalar_int_mode. Update call to biv_p.
15268
15269 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15270 Alan Hayward <alan.hayward@arm.com>
15271 David Sherwood <david.sherwood@arm.com>
15272
15273 * cfgexpand.c (convert_debug_memory_address): Use
15274 as_a <scalar_int_mode>.
15275 * combine.c (expand_compound_operation): Likewise.
15276 (make_extraction): Likewise.
15277 (change_zero_ext): Likewise.
15278 (simplify_comparison): Likewise.
15279 * cse.c (cse_insn): Likewise.
15280 * dwarf2out.c (minmax_loc_descriptor): Likewise.
15281 (mem_loc_descriptor): Likewise.
15282 (loc_descriptor): Likewise.
15283 * expmed.c (init_expmed_one_mode): Likewise.
15284 (synth_mult): Likewise.
15285 (emit_store_flag_1): Likewise.
15286 (expand_divmod): Likewise. Use HWI_COMPUTABLE_MODE_P instead
15287 of a comparison with size.
15288 * expr.c (expand_assignment): Use as_a <scalar_int_mode>.
15289 (reduce_to_bit_field_precision): Likewise.
15290 * function.c (expand_function_end): Likewise.
15291 * internal-fn.c (expand_arith_overflow_result_store): Likewise.
15292 * loop-doloop.c (doloop_modify): Likewise.
15293 * optabs.c (expand_binop): Likewise.
15294 (expand_unop): Likewise.
15295 (expand_copysign_absneg): Likewise.
15296 (prepare_cmp_insn): Likewise.
15297 (maybe_legitimize_operand): Likewise.
15298 * recog.c (const_scalar_int_operand): Likewise.
15299 * rtlanal.c (get_address_mode): Likewise.
15300 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
15301 (simplify_cond_clz_ctz): Likewise.
15302 * tree-nested.c (get_nl_goto_field): Likewise.
15303 * tree.c (build_vector_type_for_mode): Likewise.
15304 * var-tracking.c (use_narrower_mode): Likewise.
15305
15306 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15307 Alan Hayward <alan.hayward@arm.com>
15308 David Sherwood <david.sherwood@arm.com>
15309
15310 * tree.h (SCALAR_INT_TYPE_MODE): New macro.
15311 * builtins.c (expand_builtin_signbit): Use it.
15312 * cfgexpand.c (expand_debug_expr): Likewise.
15313 * dojump.c (do_jump): Likewise.
15314 (do_compare_and_jump): Likewise.
15315 * dwarf2cfi.c (expand_builtin_init_dwarf_reg_sizes): Likewise.
15316 * expmed.c (make_tree): Likewise.
15317 * expr.c (expand_expr_real_2): Likewise.
15318 (expand_expr_real_1): Likewise.
15319 (try_casesi): Likewise.
15320 * fold-const-call.c (fold_const_call_ss): Likewise.
15321 * fold-const.c (unextend): Likewise.
15322 (extract_muldiv_1): Likewise.
15323 (fold_single_bit_test): Likewise.
15324 (native_encode_int): Likewise.
15325 (native_encode_string): Likewise.
15326 (native_interpret_int): Likewise.
15327 * gimple-fold.c (gimple_fold_builtin_memset): Likewise.
15328 * internal-fn.c (expand_addsub_overflow): Likewise.
15329 (expand_neg_overflow): Likewise.
15330 (expand_mul_overflow): Likewise.
15331 (expand_arith_overflow): Likewise.
15332 * match.pd: Likewise.
15333 * stor-layout.c (layout_type): Likewise.
15334 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
15335 * tree-ssa-math-opts.c (convert_mult_to_widen): Likewise.
15336 * tree-ssanames.c (get_range_info): Likewise.
15337 * tree-switch-conversion.c (array_value_type) Likewise.
15338 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
15339 (vect_recog_divmod_pattern): Likewise.
15340 (vect_recog_mixed_size_cond_pattern): Likewise.
15341 * tree-vrp.c (extract_range_basic): Likewise.
15342 (simplify_float_conversion_using_ranges): Likewise.
15343 * tree.c (int_fits_type_p): Likewise.
15344 * ubsan.c (instrument_bool_enum_load): Likewise.
15345 * varasm.c (mergeable_string_section): Likewise.
15346 (narrowing_initializer_constant_valid_p): Likewise.
15347 (output_constant): Likewise.
15348
15349 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15350 Alan Hayward <alan.hayward@arm.com>
15351 David Sherwood <david.sherwood@arm.com>
15352
15353 * machmode.h (NARROWEST_INT_MODE): New macro.
15354 * expr.c (alignment_for_piecewise_move): Use it instead of
15355 GET_CLASS_NARROWEST_MODE (MODE_INT).
15356 (push_block): Likewise.
15357 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
15358 Likewise.
15359 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
15360
15361 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15362 Alan Hayward <alan.hayward@arm.com>
15363 David Sherwood <david.sherwood@arm.com>
15364
15365 * postreload.c (move2add_valid_value_p): Change the type of the
15366 mode parameter to scalar_int_mode.
15367 (move2add_use_add2_insn): Add a mode parameter and use it instead
15368 of GET_MODE (reg).
15369 (move2add_use_add3_insn): Likewise.
15370 (reload_cse_move2add): Update accordingly.
15371
15372 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15373 Alan Hayward <alan.hayward@arm.com>
15374 David Sherwood <david.sherwood@arm.com>
15375
15376 * expr.c (expand_expr_real_2): Use scalar_int_mode for the
15377 double-word mode.
15378 * lower-subreg.c (resolve_shift_zext): Use is_a <scalar_int_mode>.
15379 * optabs.c (expand_unop): Likewise.
15380
15381 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15382 Alan Hayward <alan.hayward@arm.com>
15383 David Sherwood <david.sherwood@arm.com>
15384
15385 * dwarf2out.c (typed_binop): Change mode parameter to scalar_int_mode.
15386 (clz_loc_descriptor): Likewise. Remove SCALAR_INT_MODE_P check.
15387 (popcount_loc_descriptor): Likewise.
15388 (bswap_loc_descriptor): Likewise.
15389 (rotate_loc_descriptor): Likewise.
15390 (mem_loc_descriptor): Add is_a <scalar_int_mode> checks before
15391 calling the functions above.
15392
15393 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15394 Alan Hayward <alan.hayward@arm.com>
15395 David Sherwood <david.sherwood@arm.com>
15396
15397 * combine.c (sign_extend_short_imm): Add is_a <scalar_int_mode>
15398 checks.
15399 (try_combine): Likewise.
15400 (simplify_if_then_else): Likewise.
15401 * cse.c (cse_insn): Likewise.
15402 * dwarf2out.c (mem_loc_descriptor): Likewise.
15403 * emit-rtl.c (gen_lowpart_common): Likewise.
15404 * simplify-rtx.c (simplify_truncation): Likewise.
15405 (simplify_binary_operation_1): Likewise.
15406 (simplify_const_relational_operation): Likewise.
15407 (simplify_ternary_operation): Likewise.
15408 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Likewise.
15409
15410 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15411 Alan Hayward <alan.hayward@arm.com>
15412 David Sherwood <david.sherwood@arm.com>
15413
15414 * cse.c (cse_insn): Add is_a <scalar_int_mode> checks.
15415 * reload.c (push_reload): Likewise.
15416 (find_reloads): Likewise.
15417
15418 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15419 Alan Hayward <alan.hayward@arm.com>
15420 David Sherwood <david.sherwood@arm.com>
15421
15422 * combine.c (find_split_point): Add is_a <scalar_int_mode> checks.
15423 (make_compound_operation_int): Likewise.
15424 (change_zero_ext): Likewise.
15425 * expr.c (convert_move): Likewise.
15426 (convert_modes): Likewise.
15427 * fwprop.c (forward_propagate_subreg): Likewise.
15428 * loop-iv.c (get_biv_step_1): Likewise.
15429 * optabs.c (widen_operand): Likewise.
15430 * postreload.c (move2add_valid_value_p): Likewise.
15431 * recog.c (simplify_while_replacing): Likewise.
15432 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
15433 (simplify_binary_operation_1): Likewise. Remove redundant
15434 mode equality check.
15435
15436 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15437 Alan Hayward <alan.hayward@arm.com>
15438 David Sherwood <david.sherwood@arm.com>
15439
15440 * combine.c (combine_simplify_rtx): Add checks for
15441 is_a <scalar_int_mode>.
15442 (simplify_if_then_else): Likewise.
15443 (make_field_assignment): Likewise.
15444 (simplify_comparison): Likewise.
15445 * ifcvt.c (noce_try_bitop): Likewise.
15446 * loop-invariant.c (canonicalize_address_mult): Likewise.
15447 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
15448
15449 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15450 Alan Hayward <alan.hayward@arm.com>
15451 David Sherwood <david.sherwood@arm.com>
15452
15453 * gimple-fold.c (gimple_fold_builtin_memory_op): Use
15454 is_a <scalar_int_mode> instead of != BLKmode.
15455
15456 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15457 Alan Hayward <alan.hayward@arm.com>
15458 David Sherwood <david.sherwood@arm.com>
15459
15460 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>
15461 instead of != VOIDmode.
15462 * combine.c (if_then_else_cond): Likewise.
15463 (change_zero_ext): Likewise.
15464 * dwarf2out.c (mem_loc_descriptor): Likewise.
15465 (loc_descriptor): Likewise.
15466 * rtlanal.c (canonicalize_condition): Likewise.
15467 * simplify-rtx.c (simplify_relational_operation_1): Likewise.
15468
15469 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15470 Alan Hayward <alan.hayward@arm.com>
15471 David Sherwood <david.sherwood@arm.com>
15472
15473 * simplify-rtx.c (simplify_binary_operation_1): Use
15474 is_a <scalar_int_mode> instead of !VECTOR_MODE_P.
15475
15476 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15477 Alan Hayward <alan.hayward@arm.com>
15478 David Sherwood <david.sherwood@arm.com>
15479
15480 * wide-int.h (int_traits<unsigned char>) New class.
15481 (int_traits<unsigned short>) Likewise.
15482 * cfgexpand.c (expand_debug_expr): Use is_a <scalar_int_mode>.
15483 Use GET_MODE_UNIT_PRECISION and remove redundant test for
15484 SCALAR_INT_MODE_P.
15485 * combine.c (set_nonzero_bits_and_sign_copies): Use
15486 is_a <scalar_int_mode>.
15487 (find_split_point): Likewise.
15488 (combine_simplify_rtx): Likewise.
15489 (simplify_logical): Likewise.
15490 (expand_compound_operation): Likewise.
15491 (expand_field_assignment): Likewise.
15492 (make_compound_operation): Likewise.
15493 (extended_count): Likewise.
15494 (change_zero_ext): Likewise.
15495 (simplify_comparison): Likewise.
15496 * dwarf2out.c (scompare_loc_descriptor): Likewise.
15497 (ucompare_loc_descriptor): Likewise.
15498 (minmax_loc_descriptor): Likewise.
15499 (mem_loc_descriptor): Likewise.
15500 (loc_descriptor): Likewise.
15501 * expmed.c (init_expmed_one_mode): Likewise.
15502 * lra-constraints.c (lra_constraint_offset): Likewise.
15503 * optabs.c (prepare_libcall_arg): Likewise.
15504 * postreload.c (move2add_note_store): Likewise.
15505 * reload.c (operands_match_p): Likewise.
15506 * rtl.h (load_extend_op): Likewise.
15507 * rtlhooks.c (gen_lowpart_general): Likewise.
15508 * simplify-rtx.c (simplify_truncation): Likewise.
15509 (simplify_unary_operation_1): Likewise.
15510 (simplify_binary_operation_1): Likewise.
15511 (simplify_const_binary_operation): Likewise.
15512 (simplify_const_relational_operation): Likewise.
15513 (simplify_subreg): Likewise.
15514 * stor-layout.c (bitwise_mode_for_mode): Likewise.
15515 * var-tracking.c (adjust_mems): Likewise.
15516 (prepare_call_arguments): Likewise.
15517
15518 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15519 Alan Hayward <alan.hayward@arm.com>
15520 David Sherwood <david.sherwood@arm.com>
15521
15522 * machmode.h (is_int_mode): New fuction.
15523 * combine.c (find_split_point): Use it.
15524 (combine_simplify_rtx): Likewise.
15525 (simplify_if_then_else): Likewise.
15526 (simplify_set): Likewise.
15527 (simplify_shift_const_1): Likewise.
15528 (simplify_comparison): Likewise.
15529 * config/aarch64/aarch64.c (aarch64_rtx_costs): Likewise.
15530 * cse.c (notreg_cost): Likewise.
15531 (cse_insn): Likewise.
15532 * cselib.c (cselib_lookup_1): Likewise.
15533 * dojump.c (do_jump_1): Likewise.
15534 (do_compare_rtx_and_jump): Likewise.
15535 * dse.c (get_call_args): Likewise.
15536 * dwarf2out.c (rtl_for_decl_init): Likewise.
15537 (native_encode_initializer): Likewise.
15538 * expmed.c (emit_store_flag_1): Likewise.
15539 (emit_store_flag): Likewise.
15540 * expr.c (convert_modes): Likewise.
15541 (store_field): Likewise.
15542 (expand_expr_real_1): Likewise.
15543 * fold-const.c (fold_read_from_constant_string): Likewise.
15544 * gimple-ssa-sprintf.c (get_format_string): Likewise.
15545 * optabs-libfuncs.c (gen_int_libfunc): Likewise.
15546 * optabs.c (expand_binop): Likewise.
15547 (expand_unop): Likewise.
15548 (expand_abs_nojump): Likewise.
15549 (expand_one_cmpl_abs_nojump): Likewise.
15550 * simplify-rtx.c (mode_signbit_p): Likewise.
15551 (val_signbit_p): Likewise.
15552 (val_signbit_known_set_p): Likewise.
15553 (val_signbit_known_clear_p): Likewise.
15554 (simplify_relational_operation_1): Likewise.
15555 * tree.c (vector_type_mode): Likewise.
15556
15557 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15558 Alan Hayward <alan.hayward@arm.com>
15559 David Sherwood <david.sherwood@arm.com>
15560
15561 * machmode.h (smallest_mode_for_size): Fix formatting.
15562 (smallest_int_mode_for_size): New function.
15563 * cfgexpand.c (expand_debug_expr): Use smallest_int_mode_for_size
15564 instead of smallest_mode_for_size.
15565 * combine.c (make_extraction): Likewise.
15566 * config/arc/arc.c (arc_expand_movmem): Likewise.
15567 * config/arm/arm.c (arm_expand_divmod_libfunc): Likewise.
15568 * config/i386/i386.c (ix86_get_mask_mode): Likewise.
15569 * config/s390/s390.c (s390_expand_insv): Likewise.
15570 * config/sparc/sparc.c (assign_int_registers): Likewise.
15571 * config/spu/spu.c (spu_function_value): Likewise.
15572 (spu_function_arg): Likewise.
15573 * coverage.c (get_gcov_type): Likewise.
15574 (get_gcov_unsigned_t): Likewise.
15575 * dse.c (find_shift_sequence): Likewise.
15576 * expmed.c (store_bit_field_1): Likewise.
15577 * expr.c (convert_move): Likewise.
15578 (store_field): Likewise.
15579 * internal-fn.c (expand_arith_overflow): Likewise.
15580 * optabs-query.c (get_best_extraction_insn): Likewise.
15581 * optabs.c (expand_twoval_binop_libfunc): Likewise.
15582 * stor-layout.c (layout_type): Likewise.
15583 (initialize_sizetypes): Likewise.
15584 * targhooks.c (default_get_mask_mode): Likewise.
15585 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Likewise.
15586
15587 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15588 Alan Hayward <alan.hayward@arm.com>
15589 David Sherwood <david.sherwood@arm.com>
15590
15591 * machmode.h (opt_mode::else_blk): New function.
15592 (int_mode_for_mode): Declare.
15593 * stor-layout.c (int_mode_for_mode): Return an opt_scalar_int_mode.
15594 * builtins.c (expand_builtin_signbit): Adjust for new int_mode_for_mode
15595 return type.
15596 * cfgexpand.c (expand_debug_expr): Likewise.
15597 * combine.c (gen_lowpart_or_truncate): Likewise.
15598 (gen_lowpart_for_combine): Likewise.
15599 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise.
15600 * config/avr/avr.c (avr_to_int_mode): Likewise.
15601 (avr_out_plus_1): Likewise.
15602 (avr_out_plus): Likewise.
15603 (avr_out_round): Likewise.
15604 * config/i386/i386.c (ix86_split_to_parts): Likewise.
15605 * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise.
15606 (s390_expand_vcond): Likewise.
15607 * config/spu/spu.c (spu_split_immediate): Likewise.
15608 (spu_expand_mov): Likewise.
15609 * dse.c (get_stored_val): Likewise.
15610 * expmed.c (store_bit_field_1): Likewise.
15611 (convert_extracted_bit_field): Use int_mode_for_mode instead of
15612 int_mode_for_size.
15613 (extract_bit_field_1): Adjust for new int_mode_for_mode return type.
15614 (extract_low_bits): Likewise.
15615 * expr.c (emit_group_load_1): Likewise. Separate out the BLKmode
15616 handling rather than repeating the check.
15617 (emit_group_store): Likewise.
15618 (emit_move_via_integer): Adjust for new int_mode_for_mode return type.
15619 * optabs.c (expand_absneg_bit): Likewise.
15620 (expand_copysign_absneg): Likewise.
15621 (expand_copysign_bit): Likewise.
15622 * tree-if-conv.c (ifcvt_can_use_mask_load_store): Likewise.
15623 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
15624 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise.
15625 * var-tracking.c (prepare_call_arguments): Likewise.
15626 * config/powerpcspe/powerpcspe.c (rs6000_do_expand_vec_perm): Use
15627 int_mode_for_mode instead of mode_for_size.
15628 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
15629
15630 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15631 Alan Hayward <alan.hayward@arm.com>
15632 David Sherwood <david.sherwood@arm.com>
15633
15634 * machmode.h (int_mode_for_size): New function.
15635 * builtins.c (set_builtin_user_assembler_name): Use int_mode_for_size
15636 instead of mode_for_size.
15637 * calls.c (save_fixed_argument_area): Likewise. Make use of BLKmode
15638 explicit.
15639 * combine.c (expand_field_assignment): Use int_mode_for_size
15640 instead of mode_for_size.
15641 (make_extraction): Likewise.
15642 (simplify_shift_const_1): Likewise.
15643 (simplify_comparison): Likewise.
15644 * dojump.c (do_jump): Likewise.
15645 * dwarf2out.c (mem_loc_descriptor): Likewise.
15646 * emit-rtl.c (init_derived_machine_modes): Likewise.
15647 * expmed.c (flip_storage_order): Likewise.
15648 (convert_extracted_bit_field): Likewise.
15649 * expr.c (copy_blkmode_from_reg): Likewise.
15650 * graphite-isl-ast-to-gimple.c (max_mode_int_precision): Likewise.
15651 * internal-fn.c (expand_mul_overflow): Likewise.
15652 * lower-subreg.c (simple_move): Likewise.
15653 * optabs-libfuncs.c (init_optabs): Likewise.
15654 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
15655 * tree.c (vector_type_mode): Likewise.
15656 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise.
15657 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Likewise.
15658 * tree-vect-generic.c (expand_vector_parallel): Likewise.
15659 * tree-vect-stmts.c (vectorizable_load): Likewise.
15660 (vectorizable_store): Likewise.
15661
15662 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15663 Alan Hayward <alan.hayward@arm.com>
15664 David Sherwood <david.sherwood@arm.com>
15665
15666 * coretypes.h (pod_mode): New type.
15667 (scalar_int_mode_pod): New typedef.
15668 * machmode.h (pod_mode): New class.
15669 (int_n_data_t::m): Change type to scalar_int_mode_pod.
15670 * genmodes.c (emit_mode_int_n): Update accordingly.
15671 * lower-subreg.h (target_lower_subreg): Change type to
15672 scalar_int_mode_pod.
15673 * gdbhooks.py (build_pretty_printer): Handle pod_mode and
15674 scalar_int_mode_pod.
15675
15676 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15677 Alan Hayward <alan.hayward@arm.com>
15678 David Sherwood <david.sherwood@arm.com>
15679
15680 * config/powerpcspe/powerpcspe.h (rs6000_pmode): Change type from
15681 machine_mode to scalar_int_mode.
15682 * config/powerpcspe/powerpcspe.c (rs6000_pmode): Likewise.
15683 (rs6000_option_override_internal): Remove cast to int.
15684 * config/rs6000/rs6000.h (rs6000_pmode): Change type from
15685 machine_mode to scalar_int_mode.
15686 * config/rs6000/rs6000.c (rs6000_pmode): Likewise.
15687 (rs6000_option_override_internal): Remove cast to int.
15688 * config/s390/s390.h (Pmode): Remove cast to machine_mode.
15689 * config/epiphany/epiphany.h (RTX_OK_FOR_OFFSET_P): Add cast
15690 to machine_mode.
15691 * config/s390/s390.c (s390_expand_builtin): Likewise.
15692 * coretypes.h (scalar_int_mode): New type.
15693 (opt_scalar_int_mode): New typedef.
15694 * machmode.h (scalar_int_mode): New class.
15695 (scalar_int_mode::includes_p): New function.
15696 (byte_mode): Change type to scalar_int_mode.
15697 (word_mode): Likewise.
15698 (ptr_mode): Likewise.
15699 * emit-rtl.c (byte_mode): Likewise.
15700 (word_mode): Likewise.
15701 (ptr_mode): Likewise.
15702 (init_derived_machine_modes): Update accordingly.
15703 * genmodes.c (get_mode_class): Return scalar_int_mode for MODE_INT
15704 and MODE_PARTIAL_INT.
15705 * gdbhooks.py (build_pretty_printer): Handle scalar_int_mode and
15706 opt_scalar_int_mode.
15707
15708 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15709 Alan Hayward <alan.hayward@arm.com>
15710 David Sherwood <david.sherwood@arm.com>
15711
15712 * target.def (libgcc_floating_mode_supported_p): Take a
15713 scalar_float_mode.
15714 * doc/tm.texi: Regenerate.
15715 * targhooks.h (default_libgcc_floating_mode_supported_p): Take a
15716 scalar_float_mode.
15717 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
15718 * config/aarch64/aarch64.c (aarch64_libgcc_floating_mode_supported_p):
15719 Likewise.
15720
15721 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15722 Alan Hayward <alan.hayward@arm.com>
15723 David Sherwood <david.sherwood@arm.com>
15724
15725 * target.def (default_floatn_mode): Return an opt_scalar_float_mode.
15726 * doc/tm.texi: Regenerate.
15727 * config/arm/arm.c (arm_floatn_mode): Return an opt_scalar_float_mode.
15728 * config/powerpcspe/powerpcspe.c (rs6000_floatn_mode): Likewise.
15729 * config/rs6000/rs6000.c (rs6000_floatn_mode): Likewise.
15730 * targhooks.h (default_floatn_mode): Likewise.
15731 * targhooks.c (default_floatn_mode): Likewise.
15732 * tree.c (build_common_tree_nodes): Update accordingly.
15733
15734 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15735 Alan Hayward <alan.hayward@arm.com>
15736 David Sherwood <david.sherwood@arm.com>
15737
15738 * machmode.h (mode_iterator::start): Provide overload for opt_modes.
15739 (mode_iterator::iterate_p): Likewise.
15740 (mode_iterator::get_wider): Likewise.
15741 * expr.c (init_expr_target): Use opt_scalar_float_mode.
15742
15743 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15744 Alan Hayward <alan.hayward@arm.com>
15745 David Sherwood <david.sherwood@arm.com>
15746
15747 * coretypes.h (opt_scalar_float_mode): New typedef.
15748 * machmode.h (float_mode_for_size): New function.
15749 * emit-rtl.c (double_mode): Delete.
15750 (init_emit_once): Use float_mode_for_size.
15751 * stor-layout.c (layout_type): Likewise.
15752 * gdbhooks.py (build_pretty_printer): Handle opt_scalar_float_mode.
15753
15754 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15755 Alan Hayward <alan.hayward@arm.com>
15756 David Sherwood <david.sherwood@arm.com>
15757
15758 * output.h (assemble_real): Take a scalar_float_mode.
15759 * config/arm/arm.c (arm_assemble_integer): Update accordingly.
15760 * config/arm/arm.md (consttable_4): Likewise.
15761 (consttable_8): Likewise.
15762 (consttable_16): Likewise.
15763 * config/mips/mips.md (consttable_float): Likewise.
15764 * config/s390/s390.c (s390_output_pool_entry): Likewise.
15765 * varasm.c (assemble_real): Take a scalar_float_mode.
15766 (output_constant_pool_2): Update accordingly.
15767 (output_constant): Likewise.
15768
15769 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15770 Alan Hayward <alan.hayward@arm.com>
15771 David Sherwood <david.sherwood@arm.com>
15772
15773 * tree.h (SCALAR_FLOAT_TYPE_MODE): New macro.
15774 * builtins.c (expand_builtin_signbit): Use it instead of TYPE_MODE.
15775 * fold-const.c (fold_convert_const_real_from_fixed): Likewise.
15776 (native_encode_real): Likewise.
15777 (native_interpret_real): Likewise.
15778 * hsa-brig.c (emit_immediate_scalar_to_buffer): Likewise.
15779 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
15780
15781 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15782 Alan Hayward <alan.hayward@arm.com>
15783 David Sherwood <david.sherwood@arm.com>
15784
15785 * optabs-libfuncs.c (gen_trunc_conv_libfunc): Use is_a
15786 <scalar_float_mode>. Simplify.
15787 (gen_extend_conv_libfunc): Likewise.
15788
15789 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15790 Alan Hayward <alan.hayward@arm.com>
15791 David Sherwood <david.sherwood@arm.com>
15792
15793 * coretypes.h (scalar_float_mode): New type.
15794 * machmode.h (mode_traits::from_int): Use machine_mode if
15795 USE_ENUM_MODES is defined.
15796 (is_a): New function.
15797 (as_a): Likewise.
15798 (dyn_cast): Likewise.
15799 (scalar_float_mode): New class.
15800 (scalar_float_mode::includes_p): New function.
15801 (is_float_mode): Likewise.
15802 * gdbhooks.py (MachineModePrinter): New class.
15803 (build_pretty_printer): Use it for scalar_float_mode.
15804 * real.h (FLOAT_MODE_FORMAT): Use as_a <scalar_float_mode>.
15805 (format_helper::format_helper): Turn into a template.
15806 * genmodes.c (get_mode_class): New function.
15807 (emit_insn_modes_h): Give modes the class returned by get_mode_class,
15808 or machine_mode if none.
15809 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Use
15810 as_a <scalar_float_mode>.
15811 * dwarf2out.c (mem_loc_descriptor): Likewise.
15812 (insert_float): Likewise.
15813 (add_const_value_attribute): Likewise.
15814 * simplify-rtx.c (simplify_immed_subreg): Likewise.
15815 * optabs.c (expand_absneg_bit): Take a scalar_float_mode.
15816 (expand_unop): Update accordingly.
15817 (expand_abs_nojump): Likewise.
15818 (expand_copysign_absneg): Take a scalar_float_mode.
15819 (expand_copysign_bit): Likewise.
15820 (expand_copysign): Update accordingly.
15821
15822 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15823 Alan Hayward <alan.hayward@arm.com>
15824 David Sherwood <david.sherwood@arm.com>
15825
15826 * coretypes.h (opt_mode): New class.
15827 * machmode.h (opt_mode): Likewise.
15828 (opt_mode::else_void): New function.
15829 (opt_mode::require): Likewise.
15830 (opt_mode::exists): Likewise.
15831 (GET_MODE_WIDER_MODE): Turn into a function and return an opt_mode.
15832 (GET_MODE_2XWIDER_MODE): Likewise.
15833 (mode_iterator::get_wider): Update accordingly.
15834 (mode_iterator::get_2xwider): Likewise.
15835 (mode_iterator::get_known_wider): Likewise, turning into a template.
15836 * combine.c (make_extraction): Update use of GET_MODE_WIDER_MODE,
15837 forcing a wider mode to exist.
15838 * config/cr16/cr16.h (LONG_REG_P): Likewise.
15839 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
15840 * config/c6x/c6x.c (c6x_rtx_costs): Update use of
15841 GET_MODE_2XWIDER_MODE, forcing a wider mode to exist.
15842 * lower-subreg.c (init_lower_subreg): Likewise.
15843 * optabs-libfuncs.c (init_sync_libfuncs_1): Likewise, but not
15844 on the final iteration.
15845 * config/i386/i386.c (ix86_expand_set_or_movmem): Check whether
15846 a wider mode exists before asking for a move pattern.
15847 (get_mode_wider_vector): Update use of GET_MODE_WIDER_MODE,
15848 forcing a wider mode to exist.
15849 (expand_vselect_vconcat): Update use of GET_MODE_2XWIDER_MODE,
15850 returning false if no such mode exists.
15851 * config/ia64/ia64.c (expand_vselect_vconcat): Likewise.
15852 * config/mips/mips.c (mips_expand_vselect_vconcat): Likewise.
15853 * expmed.c (init_expmed_one_mode): Update use of GET_MODE_WIDER_MODE.
15854 Avoid checking for a MODE_INT if we already know the mode is not a
15855 SCALAR_INT_MODE_P.
15856 (extract_high_half): Update use of GET_MODE_WIDER_MODE,
15857 forcing a wider mode to exist.
15858 (expmed_mult_highpart_optab): Likewise.
15859 (expmed_mult_highpart): Likewise.
15860 * expr.c (expand_expr_real_2): Update use of GET_MODE_WIDER_MODE,
15861 using else_void.
15862 * lto-streamer-in.c (lto_input_mode_table): Likewise.
15863 * optabs-query.c (find_widening_optab_handler_and_mode): Likewise.
15864 * stor-layout.c (bit_field_mode_iterator::next_mode): Likewise.
15865 * internal-fn.c (expand_mul_overflow): Update use of
15866 GET_MODE_2XWIDER_MODE.
15867 * omp-low.c (omp_clause_aligned_alignment): Likewise.
15868 * tree-ssa-math-opts.c (convert_mult_to_widen): Update use of
15869 GET_MODE_WIDER_MODE.
15870 (convert_plusminus_to_widen): Likewise.
15871 * tree-switch-conversion.c (array_value_type): Likewise.
15872 * var-tracking.c (emit_note_insn_var_location): Likewise.
15873 * tree-vrp.c (simplify_float_conversion_using_ranges): Likewise.
15874 Return false inside rather than outside the loop if no wider mode
15875 exists
15876 * optabs.c (expand_binop): Update use of GET_MODE_WIDER_MODE
15877 and GET_MODE_2XWIDER_MODE
15878 (can_compare_p): Use else_void.
15879 * gdbhooks.py (OptMachineModePrinter): New class.
15880 (build_pretty_printer): Use it for opt_mode.
15881
15882 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15883 Alan Hayward <alan.hayward@arm.com>
15884 David Sherwood <david.sherwood@arm.com>
15885
15886 * tree-switch-conversion.c (array_value_type): Only read TYPE_MODE
15887 once. Use get_narrowest_mode instead of GET_CLASS_NARROWEST_MODE.
15888
15889 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15890 Alan Hayward <alan.hayward@arm.com>
15891 David Sherwood <david.sherwood@arm.com>
15892
15893 * machmode.h (mode_traits): New structure.
15894 (get_narrowest_mode): New function.
15895 (mode_iterator::start): Likewise.
15896 (mode_iterator::iterate_p): Likewise.
15897 (mode_iterator::get_wider): Likewise.
15898 (mode_iterator::get_known_wider): Likewise.
15899 (mode_iterator::get_2xwider): Likewise.
15900 (FOR_EACH_MODE_IN_CLASS): New mode iterator.
15901 (FOR_EACH_MODE): Likewise.
15902 (FOR_EACH_MODE_FROM): Likewise.
15903 (FOR_EACH_MODE_UNTIL): Likewise.
15904 (FOR_EACH_WIDER_MODE): Likewise.
15905 (FOR_EACH_2XWIDER_MODE): Likewise.
15906 * builtins.c (expand_builtin_strlen): Use new mode iterators.
15907 * combine.c (simplify_comparison): Likewise
15908 * config/i386/i386.c (type_natural_mode): Likewise.
15909 * cse.c (cse_insn): Likewise.
15910 * dse.c (find_shift_sequence): Likewise.
15911 * emit-rtl.c (init_derived_machine_modes): Likewise.
15912 (init_emit_once): Likewise.
15913 * explow.c (hard_function_value): Likewise.
15914 * expmed.c (extract_fixed_bit_field_1): Likewise.
15915 (extract_bit_field_1): Likewise.
15916 (expand_divmod): Likewise.
15917 (emit_store_flag_1): Likewise.
15918 * expr.c (init_expr_target): Likewise.
15919 (convert_move): Likewise.
15920 (alignment_for_piecewise_move): Likewise.
15921 (widest_int_mode_for_size): Likewise.
15922 (emit_block_move_via_movmem): Likewise.
15923 (copy_blkmode_to_reg): Likewise.
15924 (set_storage_via_setmem): Likewise.
15925 (compress_float_constant): Likewise.
15926 * omp-low.c (omp_clause_aligned_alignment): Likewise.
15927 * optabs-query.c (get_best_extraction_insn): Likewise.
15928 * optabs.c (expand_binop): Likewise.
15929 (expand_twoval_unop): Likewise.
15930 (expand_twoval_binop): Likewise.
15931 (widen_leading): Likewise.
15932 (widen_bswap): Likewise.
15933 (expand_parity): Likewise.
15934 (expand_unop): Likewise.
15935 (prepare_cmp_insn): Likewise.
15936 (prepare_float_lib_cmp): Likewise.
15937 (expand_float): Likewise.
15938 (expand_fix): Likewise.
15939 (expand_sfix_optab): Likewise.
15940 * postreload.c (move2add_use_add2_insn): Likewise.
15941 * reg-stack.c (reg_to_stack): Likewise.
15942 * reginfo.c (choose_hard_reg_mode): Likewise.
15943 * rtlanal.c (init_num_sign_bit_copies_in_rep): Likewise.
15944 * stor-layout.c (mode_for_size): Likewise.
15945 (smallest_mode_for_size): Likewise.
15946 (mode_for_vector): Likewise.
15947 (finish_bitfield_representative): Likewise.
15948 * tree-ssa-math-opts.c (target_supports_divmod_p): Likewise.
15949 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise.
15950 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
15951 * var-tracking.c (prepare_call_arguments): Likewise.
15952
15953 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15954 Alan Hayward <alan.hayward@arm.com>
15955 David Sherwood <david.sherwood@arm.com>
15956
15957 * genconditions.c (write_header): Add a "#define USE_ENUM_MODES".
15958 * genmodes.c (emit_insn_modes_h): Define FOOmode to E_FOOmode if
15959 USE_ENUM_MODES is defined and to ((void) 0, E_FOOmode) otherwise.
15960 * machmode.h (mode_size): Move earlier in file.
15961 (mode_precision): Likewise.
15962 (mode_inner): Likewise.
15963 (mode_nunits): Likewise.
15964 (mode_unit_size): Likewise.
15965 (unit_unit_precision): Likewise.
15966 (mode_wider): Likewise.
15967 (mode_2xwider): Likewise.
15968 (machine_mode): New class.
15969 (mode_to_bytes): New function.
15970 (mode_to_bits): Likewise.
15971 (mode_to_precision): Likewise.
15972 (mode_to_inner): Likewise.
15973 (mode_to_unit_size): Likewise.
15974 (mode_to_unit_precision): Likewise.
15975 (mode_to_nunits): Likewise.
15976 (GET_MODE_SIZE): Use mode_to_bytes.
15977 (GET_MODE_BITSIZE): Use mode_to_bits.
15978 (GET_MODE_PRECISION): Use mode_to_precision.
15979 (GET_MODE_INNER): Use mode_to_inner.
15980 (GET_MODE_UNIT_SIZE): Use mode_to_unit_size.
15981 (GET_MODE_UNIT_PRECISION): Use mode_to_unit_precision.
15982 (GET_MODE_NUNITS): Use mode_to_nunits.
15983 * system.h (ALWAYS_INLINE): New macro.
15984 * config/powerpcspe/powerpcspe-c.c
15985 (altivec_resolve_overloaded_builtin): Use machine_mode instead of
15986 int for arg1_mode and arg2_mode.
15987
15988 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
15989 Alan Hayward <alan.hayward@arm.com>
15990 David Sherwood <david.sherwood@arm.com>
15991
15992 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
15993 Prefix mode names with E_ in case statements.
15994 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
15995 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Likewise.
15996 (aarch64_split_simd_move): Likewise.
15997 (aarch64_gen_storewb_pair): Likewise.
15998 (aarch64_gen_loadwb_pair): Likewise.
15999 (aarch64_gen_store_pair): Likewise.
16000 (aarch64_gen_load_pair): Likewise.
16001 (aarch64_get_condition_code_1): Likewise.
16002 (aarch64_constant_pool_reload_icode): Likewise.
16003 (get_rsqrte_type): Likewise.
16004 (get_rsqrts_type): Likewise.
16005 (get_recpe_type): Likewise.
16006 (get_recps_type): Likewise.
16007 (aarch64_gimplify_va_arg_expr): Likewise.
16008 (aarch64_simd_container_mode): Likewise.
16009 (aarch64_emit_load_exclusive): Likewise.
16010 (aarch64_emit_store_exclusive): Likewise.
16011 (aarch64_expand_compare_and_swap): Likewise.
16012 (aarch64_gen_atomic_cas): Likewise.
16013 (aarch64_emit_bic): Likewise.
16014 (aarch64_emit_atomic_swap): Likewise.
16015 (aarch64_emit_atomic_load_op): Likewise.
16016 (aarch64_evpc_trn): Likewise.
16017 (aarch64_evpc_uzp): Likewise.
16018 (aarch64_evpc_zip): Likewise.
16019 (aarch64_evpc_ext): Likewise.
16020 (aarch64_evpc_rev): Likewise.
16021 (aarch64_evpc_dup): Likewise.
16022 (aarch64_gen_ccmp_first): Likewise.
16023 (aarch64_gen_ccmp_next): Likewise.
16024 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): Likewise.
16025 (alpha_emit_xfloating_libcall): Likewise.
16026 (emit_insxl): Likewise.
16027 (alpha_arg_type): Likewise.
16028 * config/arc/arc.c (arc_vector_mode_supported_p): Likewise.
16029 (arc_preferred_simd_mode): Likewise.
16030 (arc_secondary_reload): Likewise.
16031 (get_arc_condition_code): Likewise.
16032 (arc_print_operand): Likewise.
16033 (arc_legitimate_constant_p): Likewise.
16034 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16035 * config/arc/arc.md (casesi_load): Likewise.
16036 (casesi_compact_jump): Likewise.
16037 * config/arc/predicates.md (proper_comparison_operator): Likewise.
16038 (cc_use_register): Likewise.
16039 * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16040 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
16041 (arm_init_iwmmxt_builtins): Likewise.
16042 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
16043 (neon_expand_vector_init): Likewise.
16044 (arm_attr_length_move_neon): Likewise.
16045 (maybe_get_arm_condition_code): Likewise.
16046 (arm_emit_vector_const): Likewise.
16047 (arm_preferred_simd_mode): Likewise.
16048 (arm_output_iwmmxt_tinsr): Likewise.
16049 (thumb1_output_casesi): Likewise.
16050 (thumb2_output_casesi): Likewise.
16051 (arm_emit_load_exclusive): Likewise.
16052 (arm_emit_store_exclusive): Likewise.
16053 (arm_expand_compare_and_swap): Likewise.
16054 (arm_evpc_neon_vuzp): Likewise.
16055 (arm_evpc_neon_vzip): Likewise.
16056 (arm_evpc_neon_vrev): Likewise.
16057 (arm_evpc_neon_vtrn): Likewise.
16058 (arm_evpc_neon_vext): Likewise.
16059 (arm_validize_comparison): Likewise.
16060 * config/arm/neon.md (neon_vc<cmp_op><mode>): Likewise.
16061 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
16062 * config/avr/avr.c (avr_rtx_costs_1): Likewise.
16063 * config/c6x/c6x.c (c6x_vector_mode_supported_p): Likewise.
16064 (c6x_preferred_simd_mode): Likewise.
16065 * config/epiphany/epiphany.c (get_epiphany_condition_code): Likewise.
16066 (epiphany_rtx_costs): Likewise.
16067 * config/epiphany/predicates.md (proper_comparison_operator):
16068 Likewise.
16069 * config/frv/frv.c (condexec_memory_operand): Likewise.
16070 (frv_emit_move): Likewise.
16071 (output_move_single): Likewise.
16072 (output_condmove_single): Likewise.
16073 (frv_hard_regno_mode_ok): Likewise.
16074 (frv_matching_accg_mode): Likewise.
16075 * config/h8300/h8300.c (split_adds_subs): Likewise.
16076 (h8300_rtx_costs): Likewise.
16077 (h8300_print_operand): Likewise.
16078 (compute_mov_length): Likewise.
16079 (output_logical_op): Likewise.
16080 (compute_logical_op_length): Likewise.
16081 (compute_logical_op_cc): Likewise.
16082 (h8300_shift_needs_scratch_p): Likewise.
16083 (output_a_shift): Likewise.
16084 (compute_a_shift_length): Likewise.
16085 (compute_a_shift_cc): Likewise.
16086 (expand_a_rotate): Likewise.
16087 (output_a_rotate): Likewise.
16088 * config/i386/i386.c (classify_argument): Likewise.
16089 (function_arg_advance_32): Likewise.
16090 (function_arg_32): Likewise.
16091 (function_arg_64): Likewise.
16092 (function_value_64): Likewise.
16093 (ix86_gimplify_va_arg): Likewise.
16094 (ix86_legitimate_constant_p): Likewise.
16095 (put_condition_code): Likewise.
16096 (split_double_mode): Likewise.
16097 (ix86_avx256_split_vector_move_misalign): Likewise.
16098 (ix86_expand_vector_logical_operator): Likewise.
16099 (ix86_split_idivmod): Likewise.
16100 (ix86_expand_adjust_ufix_to_sfix_si): Likewise.
16101 (ix86_build_const_vector): Likewise.
16102 (ix86_build_signbit_mask): Likewise.
16103 (ix86_match_ccmode): Likewise.
16104 (ix86_cc_modes_compatible): Likewise.
16105 (ix86_expand_branch): Likewise.
16106 (ix86_expand_sse_cmp): Likewise.
16107 (ix86_expand_sse_movcc): Likewise.
16108 (ix86_expand_int_sse_cmp): Likewise.
16109 (ix86_expand_vec_perm_vpermi2): Likewise.
16110 (ix86_expand_vec_perm): Likewise.
16111 (ix86_expand_sse_unpack): Likewise.
16112 (ix86_expand_int_addcc): Likewise.
16113 (ix86_split_to_parts): Likewise.
16114 (ix86_vectorize_builtin_gather): Likewise.
16115 (ix86_vectorize_builtin_scatter): Likewise.
16116 (avx_vpermilp_parallel): Likewise.
16117 (inline_memory_move_cost): Likewise.
16118 (ix86_tieable_integer_mode_p): Likewise.
16119 (x86_maybe_negate_const_int): Likewise.
16120 (ix86_expand_vector_init_duplicate): Likewise.
16121 (ix86_expand_vector_init_one_nonzero): Likewise.
16122 (ix86_expand_vector_init_one_var): Likewise.
16123 (ix86_expand_vector_init_concat): Likewise.
16124 (ix86_expand_vector_init_interleave): Likewise.
16125 (ix86_expand_vector_init_general): Likewise.
16126 (ix86_expand_vector_set): Likewise.
16127 (ix86_expand_vector_extract): Likewise.
16128 (emit_reduc_half): Likewise.
16129 (ix86_emit_i387_round): Likewise.
16130 (ix86_mangle_type): Likewise.
16131 (ix86_expand_round_sse4): Likewise.
16132 (expand_vec_perm_blend): Likewise.
16133 (canonicalize_vector_int_perm): Likewise.
16134 (ix86_expand_vec_one_operand_perm_avx512): Likewise.
16135 (expand_vec_perm_1): Likewise.
16136 (expand_vec_perm_interleave3): Likewise.
16137 (expand_vec_perm_even_odd_pack): Likewise.
16138 (expand_vec_perm_even_odd_1): Likewise.
16139 (expand_vec_perm_broadcast_1): Likewise.
16140 (ix86_vectorize_vec_perm_const_ok): Likewise.
16141 (ix86_expand_vecop_qihi): Likewise.
16142 (ix86_expand_mul_widen_hilo): Likewise.
16143 (ix86_expand_sse2_abs): Likewise.
16144 (ix86_expand_pextr): Likewise.
16145 (ix86_expand_pinsr): Likewise.
16146 (ix86_preferred_simd_mode): Likewise.
16147 (ix86_simd_clone_compute_vecsize_and_simdlen): Likewise.
16148 * config/i386/sse.md (*andnot<mode>3): Likewise.
16149 (<mask_codefor><code><mode>3<mask_name>): Likewise.
16150 (*<code><mode>3): Likewise.
16151 * config/ia64/ia64.c (ia64_expand_vecint_compare): Likewise.
16152 (ia64_expand_atomic_op): Likewise.
16153 (ia64_arg_type): Likewise.
16154 (ia64_mode_to_int): Likewise.
16155 (ia64_scalar_mode_supported_p): Likewise.
16156 (ia64_vector_mode_supported_p): Likewise.
16157 (expand_vec_perm_broadcast): Likewise.
16158 * config/iq2000/iq2000.c (iq2000_move_1word): Likewise.
16159 (iq2000_function_arg_advance): Likewise.
16160 (iq2000_function_arg): Likewise.
16161 * config/m32c/m32c.c (m32c_preferred_reload_class): Likewise.
16162 * config/m68k/m68k.c (output_dbcc_and_branch): Likewise.
16163 (m68k_libcall_value): Likewise.
16164 (m68k_function_value): Likewise.
16165 (sched_attr_op_type): Likewise.
16166 * config/mcore/mcore.c (mcore_output_move): Likewise.
16167 * config/microblaze/microblaze.c (microblaze_function_arg_advance):
16168 Likewise.
16169 (microblaze_function_arg): Likewise.
16170 * config/mips/mips.c (mips16_build_call_stub): Likewise.
16171 (mips_print_operand): Likewise.
16172 (mips_mode_ok_for_mov_fmt_p): Likewise.
16173 (mips_vector_mode_supported_p): Likewise.
16174 (mips_preferred_simd_mode): Likewise.
16175 (mips_expand_vpc_loongson_even_odd): Likewise.
16176 (mips_expand_vec_unpack): Likewise.
16177 (mips_expand_vi_broadcast): Likewise.
16178 (mips_expand_vector_init): Likewise.
16179 (mips_expand_vec_reduc): Likewise.
16180 (mips_expand_msa_cmp): Likewise.
16181 * config/mips/mips.md (casesi_internal_mips16_<mode>): Likewise.
16182 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
16183 (cc_flags_for_mode): Likewise.
16184 * config/msp430/msp430.c (msp430_print_operand): Likewise.
16185 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Likewise.
16186 (nds32_output_casesi_pc_relative): Likewise.
16187 * config/nds32/nds32.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16188 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Likewise.
16189 (nvptx_gen_unpack): Likewise.
16190 (nvptx_gen_pack): Likewise.
16191 (nvptx_gen_shuffle): Likewise.
16192 (nvptx_gen_wcast): Likewise.
16193 (nvptx_preferred_simd_mode): Likewise.
16194 * config/pa/pa.c (pa_secondary_reload): Likewise.
16195 * config/pa/predicates.md (base14_operand): Likewise.
16196 * config/powerpcspe/powerpcspe-c.c
16197 (altivec_resolve_overloaded_builtin): Likewise.
16198 * config/powerpcspe/powerpcspe.c (rs6000_setup_reg_addr_masks):
16199 Likewise.
16200 (rs6000_preferred_simd_mode): Likewise.
16201 (output_vec_const_move): Likewise.
16202 (rs6000_expand_vector_extract): Likewise.
16203 (rs6000_split_vec_extract_var): Likewise.
16204 (reg_offset_addressing_ok_p): Likewise.
16205 (rs6000_legitimate_offset_address_p): Likewise.
16206 (rs6000_legitimize_address): Likewise.
16207 (rs6000_emit_set_const): Likewise.
16208 (rs6000_const_vec): Likewise.
16209 (rs6000_emit_move): Likewise.
16210 (spe_build_register_parallel): Likewise.
16211 (rs6000_darwin64_record_arg_recurse): Likewise.
16212 (swap_selector_for_mode): Likewise.
16213 (spe_init_builtins): Likewise.
16214 (paired_init_builtins): Likewise.
16215 (altivec_init_builtins): Likewise.
16216 (do_load_for_compare): Likewise.
16217 (rs6000_generate_compare): Likewise.
16218 (rs6000_expand_float128_convert): Likewise.
16219 (emit_load_locked): Likewise.
16220 (emit_store_conditional): Likewise.
16221 (rs6000_output_function_epilogue): Likewise.
16222 (rs6000_handle_altivec_attribute): Likewise.
16223 (rs6000_function_value): Likewise.
16224 (emit_fusion_gpr_load): Likewise.
16225 (emit_fusion_p9_load): Likewise.
16226 (emit_fusion_p9_store): Likewise.
16227 * config/powerpcspe/predicates.md (easy_fp_constant): Likewise.
16228 (fusion_gpr_mem_load): Likewise.
16229 (fusion_addis_mem_combo_load): Likewise.
16230 (fusion_addis_mem_combo_store): Likewise.
16231 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
16232 (fusion_gpr_mem_load): Likewise.
16233 (fusion_addis_mem_combo_load): Likewise.
16234 (fusion_addis_mem_combo_store): Likewise.
16235 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16236 Likewise.
16237 * config/rs6000/rs6000-string.c (do_load_for_compare): Likewise.
16238 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
16239 (rs6000_preferred_simd_mode): Likewise.
16240 (output_vec_const_move): Likewise.
16241 (rs6000_expand_vector_extract): Likewise.
16242 (rs6000_split_vec_extract_var): Likewise.
16243 (reg_offset_addressing_ok_p): Likewise.
16244 (rs6000_legitimate_offset_address_p): Likewise.
16245 (rs6000_legitimize_address): Likewise.
16246 (rs6000_emit_set_const): Likewise.
16247 (rs6000_const_vec): Likewise.
16248 (rs6000_emit_move): Likewise.
16249 (rs6000_darwin64_record_arg_recurse): Likewise.
16250 (swap_selector_for_mode): Likewise.
16251 (paired_init_builtins): Likewise.
16252 (altivec_init_builtins): Likewise.
16253 (rs6000_expand_float128_convert): Likewise.
16254 (emit_load_locked): Likewise.
16255 (emit_store_conditional): Likewise.
16256 (rs6000_output_function_epilogue): Likewise.
16257 (rs6000_handle_altivec_attribute): Likewise.
16258 (rs6000_function_value): Likewise.
16259 (emit_fusion_gpr_load): Likewise.
16260 (emit_fusion_p9_load): Likewise.
16261 (emit_fusion_p9_store): Likewise.
16262 * config/rx/rx.c (rx_gen_move_template): Likewise.
16263 (flags_from_mode): Likewise.
16264 * config/s390/predicates.md (s390_alc_comparison): Likewise.
16265 (s390_slb_comparison): Likewise.
16266 * config/s390/s390.c (s390_handle_vectorbool_attribute): Likewise.
16267 (s390_vector_mode_supported_p): Likewise.
16268 (s390_cc_modes_compatible): Likewise.
16269 (s390_match_ccmode_set): Likewise.
16270 (s390_canonicalize_comparison): Likewise.
16271 (s390_emit_compare_and_swap): Likewise.
16272 (s390_branch_condition_mask): Likewise.
16273 (s390_rtx_costs): Likewise.
16274 (s390_secondary_reload): Likewise.
16275 (__SECONDARY_RELOAD_CASE): Likewise.
16276 (s390_expand_cs): Likewise.
16277 (s390_preferred_simd_mode): Likewise.
16278 * config/s390/vx-builtins.md (vec_packsu_u<mode>): Likewise.
16279 * config/sh/sh.c (sh_print_operand): Likewise.
16280 (dump_table): Likewise.
16281 (sh_secondary_reload): Likewise.
16282 * config/sh/sh.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16283 * config/sh/sh.md (casesi_worker_1): Likewise.
16284 (casesi_worker_2): Likewise.
16285 * config/sparc/predicates.md (icc_comparison_operator): Likewise.
16286 (fcc_comparison_operator): Likewise.
16287 * config/sparc/sparc.c (sparc_expand_move): Likewise.
16288 (emit_soft_tfmode_cvt): Likewise.
16289 (sparc_preferred_simd_mode): Likewise.
16290 (output_cbranch): Likewise.
16291 (sparc_print_operand): Likewise.
16292 (sparc_expand_vec_perm_bmask): Likewise.
16293 (vector_init_bshuffle): Likewise.
16294 * config/spu/spu.c (spu_scalar_mode_supported_p): Likewise.
16295 (spu_vector_mode_supported_p): Likewise.
16296 (spu_expand_insv): Likewise.
16297 (spu_emit_branch_or_set): Likewise.
16298 (spu_handle_vector_attribute): Likewise.
16299 (spu_builtin_splats): Likewise.
16300 (spu_builtin_extract): Likewise.
16301 (spu_builtin_promote): Likewise.
16302 (spu_expand_sign_extend): Likewise.
16303 * config/tilegx/tilegx.c (tilegx_scalar_mode_supported_p): Likewise.
16304 (tilegx_simd_int): Likewise.
16305 * config/tilepro/tilepro.c (tilepro_scalar_mode_supported_p): Likewise.
16306 (tilepro_simd_int): Likewise.
16307 * config/v850/v850.c (const_double_split): Likewise.
16308 (v850_print_operand): Likewise.
16309 (ep_memory_offset): Likewise.
16310 * config/vax/vax.c (vax_rtx_costs): Likewise.
16311 (vax_output_int_move): Likewise.
16312 (vax_output_int_add): Likewise.
16313 (vax_output_int_subtract): Likewise.
16314 * config/visium/predicates.md (visium_branch_operator): Likewise.
16315 * config/visium/visium.c (rtx_ok_for_offset_p): Likewise.
16316 (visium_print_operand_address): Likewise.
16317 * config/visium/visium.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
16318 * config/xtensa/xtensa.c (xtensa_mem_offset): Likewise.
16319 (xtensa_expand_conditional_branch): Likewise.
16320 (xtensa_copy_incoming_a7): Likewise.
16321 (xtensa_output_literal): Likewise.
16322 * dfp.c (decimal_real_maxval): Likewise.
16323 * targhooks.c (default_libgcc_floating_mode_supported_p): Likewise.
16324
16325 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
16326 Alan Hayward <alan.hayward@arm.com>
16327 David Sherwood <david.sherwood@arm.com>
16328
16329 * genmodes.c (mode_size_inline): Add an E_ prefix to mode names.
16330 (mode_nunits_inline): Likewise.
16331 (mode_inner_inline): Likewise.
16332 (mode_unit_size_inline): Likewise.
16333 (mode_unit_precision_inline): Likewise.
16334 (emit_insn_modes_h): Likewise. Also emit a #define of the
16335 unprefixed name.
16336 (emit_mode_wider): Add an E_ prefix to mode names.
16337 (emit_mode_complex): Likewise.
16338 (emit_mode_inner): Likewise.
16339 (emit_mode_adjustments): Likewise.
16340 (emit_mode_int_n): Likewise.
16341 * config/aarch64/aarch64-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP)
16342 (v2si_UP, v2sf_UP, v1df_UP, di_UP, df_UP, v16qi_UP, v8hi_UP, v8hf_UP)
16343 (v4si_UP, v4sf_UP, v2di_UP, v2df_UP, ti_UP, oi_UP, ci_UP, xi_UP)
16344 (si_UP, sf_UP, hi_UP, hf_UP, qi_UP): Likewise.
16345 (CRC32_BUILTIN, ENTRY): Likewise.
16346 * config/aarch64/aarch64.c (aarch64_push_regs): Likewise.
16347 (aarch64_pop_regs): Likewise.
16348 (aarch64_process_components): Likewise.
16349 * config/alpha/alpha.c (alpha_emit_conditional_move): Likewise.
16350 * config/arm/arm-builtins.c (v8qi_UP, v4hi_UP, v4hf_UP, v2si_UP)
16351 (v2sf_UP, di_UP, v16qi_UP, v8hi_UP, v8hf_UP, v4si_UP, v4sf_UP)
16352 (v2di_UP, ti_UP, ei_UP, oi_UP, hf_UP, si_UP, void_UP): Likewise.
16353 * config/arm/arm.c (arm_init_libfuncs): Likewise.
16354 * config/i386/i386-builtin-types.awk (ix86_builtin_type_vect_mode):
16355 Likewise.
16356 * config/i386/i386-builtin.def (pcmpestr): Likewise.
16357 (pcmpistr): Likewise.
16358 * config/microblaze/microblaze.c (double_memory_operand): Likewise.
16359 * config/mmix/mmix.c (mmix_output_condition): Likewise.
16360 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
16361 Likewise.
16362 * config/rl78/rl78.c (mduc_regs): Likewise.
16363 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
16364 (htm_expand_builtin): Likewise.
16365 * config/sh/sh.h (REGISTER_NATURAL_MODE): Likewise.
16366 * config/sparc/sparc.c (emit_save_or_restore_regs): Likewise.
16367 * config/xtensa/xtensa.c (print_operand): Likewise.
16368 * expmed.h (NUM_MODE_PARTIAL_INT): Likewise.
16369 (NUM_MODE_VECTOR_INT): Likewise.
16370 * genoutput.c (null_operand): Likewise.
16371 (output_operand_data): Likewise.
16372 * genrecog.c (print_parameter_value): Likewise.
16373 * lra.c (debug_operand_data): Likewise.
16374
16375 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
16376
16377 * dwarf2out.c (scompare_loc_descriptor_wide)
16378 (scompare_loc_descriptor_narrow): New functions, split out from...
16379 (scompare_loc_descriptor): ...here.
16380 * expmed.c (emit_store_flag_int): New function, split out from...
16381 (emit_store_flag): ...here.
16382
16383 2017-08-30 Richard Biener <rguenther@suse.de>
16384
16385 * dwarf2out.c (dwarf2out_finish): Remove setting AT_pubnames.
16386 (dwarf2out_early_finish): Move setting of AT_pubnames from
16387 early debug output to early finish.
16388
16389 2017-08-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
16390
16391 * gcc/config/msp430/msp430.h: Pass -mcode/data-region to the linker
16392 and -mdata-region to the assembler.
16393
16394 2017-08-30 Richard Biener <rguenther@suse.de>
16395
16396 * dwarf2out.c (add_dwarf_attr): Check we don't add duplicate
16397 attributes.
16398 (gen_subprogram_die): Add DW_AT_object_pointer only early.
16399 (dwarf2out_early_global_decl): Only generate a DIE for the
16400 abstract origin if it doesn't already exist or is a declaration DIE.
16401 (resolve_addr): Do not add the linkage name twice when
16402 generating a stub DIE for the DW_TAG_GNU_call_site target.
16403
16404 2017-08-30 Richard Sandiford <richard.sandiford@linaro.org>
16405
16406 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16407 Use machine_mode rather than int for arg1_mode.
16408
16409 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
16410
16411 PR target/82015
16412 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Insure
16413 that the second argument of the built-in functions to unpack
16414 128-bit scalar types to 64-bit values is 0 or 1. Change to use a
16415 switch statement instead a lot of if statements.
16416 * config/rs6000/rs6000.md (unpack<mode>, FMOVE128_VSX iterator):
16417 Allow 64-bit values to be in Altivec registers as well as
16418 traditional floating point registers.
16419 (pack<mode>, FMOVE128_VSX iterator): Likewise.
16420
16421 2017-08-29 Alexander Monakov <amonakov@ispras.ru>
16422
16423 * ira-costs.c (record_address_regs): Handle both operands of PLUS for
16424 MAX_REGS_PER_ADDRESS == 1.
16425
16426 2017-08-29 Uros Bizjak <ubizjak@gmail.com>
16427
16428 * config/i386/i386.opt (flag_fentry): Do not init to -1.
16429 * config/i386/i386.c (ix86_option_override_internal): Simplify
16430 setting of opts->x_flag_entry.
16431
16432 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16433 Jakub Jelinek <jakub@redhat.com>
16434 Richard Biener <rguenther@suse.de>
16435
16436 PR tree-optimization/81503
16437 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
16438 folded constant fits in the target type; reorder tests for clarity.
16439
16440 2017-08-29 Martin Liska <mliska@suse.cz>
16441
16442 * passes.def: Include pass_lower_switch.
16443 * stmt.c (dump_case_nodes): Remove and move to
16444 tree-switch-conversion.
16445 (case_values_threshold): Likewise.
16446 (expand_switch_as_decision_tree_p): Likewise.
16447 (emit_case_decision_tree): Likewise.
16448 (expand_case): Likewise.
16449 (balance_case_nodes): Likewise.
16450 (node_has_low_bound): Likewise.
16451 (node_has_high_bound): Likewise.
16452 (node_is_bounded): Likewise.
16453 (emit_case_nodes): Likewise.
16454 (struct simple_case_node): New struct.
16455 (add_case_node): Remove.
16456 (emit_case_dispatch_table): Use vector instead of case_list.
16457 (reset_out_edges_aux): Remove.
16458 (compute_cases_per_edge): Likewise.
16459 (expand_case): Build list of simple_case_node.
16460 (expand_sjlj_dispatch_table): Use it.
16461 * tree-switch-conversion.c (struct case_node): Moved from
16462 stmt.c and adjusted.
16463 (emit_case_nodes): Likewise.
16464 (node_has_low_bound): Likewise.
16465 (node_has_high_bound): Likewise.
16466 (node_is_bounded): Likewise.
16467 (case_values_threshold): Likewise.
16468 (reset_out_edges_aux): Likewise.
16469 (compute_cases_per_edge): Likewise.
16470 (add_case_node): Likewise.
16471 (dump_case_nodes): Likewise.
16472 (balance_case_nodes): Likewise.
16473 (expand_switch_as_decision_tree_p): Likewise.
16474 (emit_jump): Likewise.
16475 (emit_case_decision_tree): Likewise.
16476 (try_switch_expansion): Likewise.
16477 (do_jump_if_equal): Likewise.
16478 (emit_cmp_and_jump_insns): Likewise.
16479 (fix_phi_operands_for_edge): New function.
16480 (record_phi_operand_mapping): Likewise.
16481 (class pass_lower_switch): New pass.
16482 (pass_lower_switch::execute): New function.
16483 (make_pass_lower_switch): Likewise.
16484 (conditional_probability):
16485 * timevar.def: Add TV_TREE_SWITCH_LOWERING.
16486 * tree-pass.h: Add make_pass_lower_switch.
16487
16488 2017-08-29 Jozef Lawrynowicz <jozef.l@somniumtech.com>
16489
16490 PR target/80993
16491 * gcc/config/msp430/msp430.c (msp430_attr): Mark interrupt
16492 handlers as used.
16493
16494 2017-08-29 Richard Biener <rguenther@suse.de>
16495
16496 * dwarf2out.c (add_dwarf_attr): When checking is enabled verify
16497 we do not add a DW_AT_inline attribute twice.
16498 (gen_subprogram_die): Remove code setting DW_AT_inline on
16499 DECL_ABSTRACT_P nodes.
16500
16501 2017-08-29 Richard Sandiford <richard.sandiford@linaro.org>
16502
16503 * gimplify.c (gimplify_call_expr): Copy the nothrow flag to
16504 calls to internal functions.
16505 (gimplify_modify_expr): Likewise.
16506 * tree-call-cdce.c (use_internal_fn): Likewise.
16507 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
16508 (convert_to_divmod): Set the nothrow flag.
16509 * tree-if-conv.c (predicate_mem_writes): Likewise.
16510 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
16511 (vectorizable_call): Likewise.
16512 (vectorizable_store): Likewise.
16513 (vectorizable_load): Likewise.
16514 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
16515 (vect_recog_mask_conversion_pattern): Likewise.
16516
16517 2017-08-29 Martin Liska <mliska@suse.cz>
16518
16519 PR other/39851
16520 * gcc.c (driver_handle_option): Add new argument.
16521 * opts-common.c (handle_option): Pass
16522 target_option_override_hook.
16523 * opts-global.c (lang_handle_option): Add new option.
16524 (set_default_handlers): Add new argument.
16525 (decode_options): Likewise.
16526 * opts.c (target_handle_option): Likewise.
16527 (common_handle_option): Call target_option_override_hook.
16528 * opts.h (struct cl_option_handler_func): Add hook for
16529 target option override.
16530 (struct cl_option_handlers): Likewise.
16531 (set_default_handlers): Add new argument.
16532 (decode_options): Likewise.
16533 (common_handle_option): Likewise.
16534 (target_handle_option): Likewise.
16535 * toplev.c (toplev::main): Pass targetm.target_option.override
16536 hook.
16537
16538 2017-08-29 Richard Biener <rguenther@suse.de>
16539 Dominik Infuehr <dominik.infuehr@theobroma-systems.com>
16540
16541 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Properly confine
16542 life to the active subtree.
16543
16544 2017-08-28 Jeff Law <law@redhat.com>
16545
16546 * tree-ssa-dom.c (edge_info::record_simple_equiv): Call
16547 derive_equivalences.
16548 (derive_equivalences_from_bit_ior, record_temporary_equivalences):
16549 Code moved into....
16550 (edge_info::derive_equivalences): New private member function
16551
16552 * tree-ssa-dom.c (class edge_info): Changed from a struct
16553 to a class. Add ctor/dtor, methods and data members.
16554 (edge_info::edge_info): Renamed from allocate_edge_info.
16555 Initialize additional members.
16556 (edge_info::~edge_info): New.
16557 (free_dom_edge_info): Delete the edge info.
16558 (record_edge_info): Use new class & associated member functions.
16559 Tighten forms for testing for edge equivalences.
16560 (record_temporary_equivalences): Iterate over the simple
16561 equivalences rather than assuming there's only one per edge.
16562 (cprop_into_successor_phis): Iterate over the simple
16563 equivalences rather than assuming there's only one per edge.
16564 (optimize_stmt): Use operand_equal_p rather than pointer
16565 equality for mini-DSE code.
16566
16567 2017-08-28 Nathan Sidwell <nathan@acm.org>
16568
16569 * gcc.c (execute): Fold SIGPIPE handling into switch
16570 statement. Adjust internal error message.
16571
16572 2017-08-28 Richard Biener <rguenther@suse.de>
16573
16574 PR debug/81993
16575 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
16576 Do nothing for removed DIEs.
16577
16578 2017-08-28 Richard Biener <rguenther@suse.de>
16579
16580 PR tree-optimization/81977
16581 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
16582 memcpy.
16583
16584 2017-08-28 Alexander Monakov <amonakov@ispras.ru>
16585
16586 PR target/80640
16587 * doc/md.texi (mem_thread_fence): Remove mention of mode. Rewrite.
16588 * optabs.c (expand_mem_thread_fence): Emit a compiler barrier when
16589 using targetm.gen_mem_thread_fence.
16590
16591 2017-08-27 Uros Bizjak <ubizjak@gmail.com>
16592
16593 PR target/81995
16594 * config/i386/i386.md (*<btsc><mode>): Change operand 2
16595 predicate to register_operand. Reorder operands.
16596 (*btr<mode>): Ditto.
16597 (*<btsc><mode>_mask): Change operand 3 predicate to register_operand.
16598 (*btr<mode>_mask): Ditto.
16599
16600 2017-08-25 Steven Munroe <munroesj@gcc.gnu.org>
16601
16602 * config.gcc (powerpc*-*-*): Add xmmintrin.h and mm_malloc.h.
16603 * config/rs6000/xmmintrin.h: New file.
16604 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include xmmintrin.h.
16605
16606 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16607
16608 PR target/81504
16609 * config/rs6000/rs6000-p8swap.c (find_alignment_op): Add reference
16610 parameter and_insn and return it.
16611 (recombine_lvx_pattern): Insert a copy to ensure availability of
16612 the base register of the copied masking operation at the point of
16613 the instruction replacement.
16614 (recombine_stvx_pattern): Likewise.
16615
16616 2017-08-25 Michael Meissner <meissner@linux.vnet.ibm.com>
16617
16618 * config/rs6000/rs6000.opt (-mpower9-dform-scalar): Delete
16619 undocumented switches.
16620 (-mpower9-dform-vector): Likewise.
16621 (-mpower9-dform): Likewise.
16622 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update
16623 comments to delete references to -mpower9-dform* switches.
16624 * config/rs6000/predicates.md (vsx_quad_dform_memory_operand):
16625 Delete reference to -mpower9-dform* switches, test for
16626 -mpower9-vector instead.
16627 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Likewise.
16628 (OTHER_P9_VECTOR_MASKS): Likewise.
16629 (POWERPC_MASKS): Likewise.
16630 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Change
16631 tests against -mpower9-dform* to -mpower9-vector. Delete code
16632 that checked for -mpower9-dform* consistancy with other options.
16633 Add test for -mpower9-misc to enable other power9 switches.
16634 (rs6000_init_hard_regno_mode_ok): Likewise.
16635 (rs6000_option_override_internal): Likewise.
16636 (rs6000_emit_prologue): Likewise.
16637 (rs6000_emit_epilogue): Likewise.
16638 (rs6000_opt_masks): Delete -mpower9-dform-{scalar,vector}.
16639 (rs6000_disable_incompatiable_switches): Delete -mpower9-dform.
16640 (emit_fusion_p9_load): Change tests for -mpower9-dform-scalar
16641 -mpower9-vector.
16642 (emit_fusion_p9_store): Likewise.
16643 * config/rs6000/rs6000.h (TARGET_P9_DFORM_SCALAR): Delete
16644 resetting these macros if the assembler does not support ISA 3.0
16645 instructions.
16646 (TARGET_P9_DFORM_VECTOR): Likewise.
16647 * config/rs6000/rs6000.md (peepholes to optimize altivec memory):
16648 Change to use -mpower9-vector instead of -mpower9-dform-scalar.
16649
16650 2017-08-25 Alan Modra <amodra@gmail.com>
16651
16652 PR rtl-optimization/81747
16653 * cse.c (cse_extended_basic_block): Don't attempt to record
16654 equivalences for degenerate conditional branches that branch
16655 to their fall-through.
16656
16657 2017-08-24 Martin Sebor <msebor@redhat.com>
16658
16659 PR middle-end/81908
16660 * gimple-fold.c (size_must_be_zero_p): New function.
16661 (gimple_fold_builtin_memory_op): Call it.
16662
16663 2017-08-24 Steven Munroe <munroesj@gcc.gnu.org>
16664
16665 * config/rs6000/mm_malloc.h: New file.
16666
16667 2017-08-24 Bin Cheng <bin.cheng@arm.com>
16668
16669 PR tree-optimization/81913
16670 * tree-ssa-loop-niter.c (number_of_iterations_cond): Skip niter
16671 analysis when either IVs in condition can wrap.
16672
16673 2017-08-24 Uros Bizjak <ubizjak@gmail.com>
16674
16675 * dwarf2out.c (MAX_ARTIFICIAL_LABEL_BYTES): Increase to 40.
16676 * dwarf2cfi.c (MAX_ARTIFICIAL_LABEL_BYTES): Remove.
16677
16678 2017-08-24 Richard Biener <rguenther@suse.de>
16679
16680 PR target/81921
16681 * targhooks.c (default_target_can_inline_p): Properly
16682 use target_option_default_node when no DECL_FUNCTION_SPECIFIC_TARGET
16683 is present and always compare.
16684 * config/i386/i386.c (ix86_valid_target_attribute_tree): Do not
16685 infer -mfpmath=sse from TARGET_SSE_P.
16686 (ix86_can_inline_p): Properly use target_option_default_node when
16687 no DECL_FUNCTION_SPECIFIC_TARGET is present and always compare.
16688
16689 2017-08-24 Richard Biener <rguenther@suse.de>
16690
16691 PR debug/81936
16692 * dwarf2out.c (output_die): Handle flag_generate_offload like
16693 flag_generate_lto.
16694 (output_comp_unit): Likewise.
16695 (gen_array_type_die): Likewise.
16696 (dwarf2out_early_finish): Likewise.
16697 (note_variable_value_in_expr): Likewise.
16698 (dwarf2out_finish): Likewise. Adjust assert.
16699 * cgraphunit.c (symbol_table::compile): Move setting of
16700 flag_generate_offload earlier ...
16701 (symbol_table::finalize_compilation_unit): ... here, before
16702 early debug finalization.
16703
16704 2017-08-24 Richard Biener <rguenther@suse.de>
16705
16706 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
16707 and ipa-fnsummary.h.
16708 (ix86_can_inline_p): When ix86_fpmath flags do not match
16709 check whether the callee uses FP math at all.
16710
16711 2017-08-24 Aldy Hernandez <aldyh@redhat.com>
16712
16713 PR middle-end/81931
16714 * tree-ssanames.c (get_nonzero_bits): Use element_precision
16715 instead of TYPE_PRECISION.
16716
16717 2017-08-24 Richard Sandiford <richard.sandiford@linaro.org>
16718 Alan Hayward <alan.hayward@arm.com>
16719 David Sherwood <david.sherwood@arm.com>
16720
16721 * combine.c (make_extraction): Use subreg_offset_from_lsb.
16722
16723 2017-08-23 Daniel Santos <daniel.santos@pobox.com>
16724
16725 * config/i386/i386.h (ix86_frame::stack_realign_allocate_offset):
16726 Remove field.
16727 (ix86_frame::stack_realign_allocate): New field.
16728 (struct machine_frame_state): Modify comments.
16729 (machine_frame_state::sp_realigned_fp_end): New field.
16730 * config/i386/i386.c (ix86_compute_frame_layout): Rework stack frame
16731 layout calculation.
16732 (sp_valid_at): Add assertion to assure no attempt to access invalid
16733 offset of a realigned stack.
16734 (fp_valid_at): Likewise.
16735 (choose_baseaddr): Modify comments.
16736 (ix86_emit_outlined_ms2sysv_save): Adjust to changes in
16737 ix86_expand_prologue.
16738 (ix86_expand_prologue): Modify stack realignment and allocation.
16739 (ix86_expand_epilogue): Modify comments.
16740 * doc/sourcebuild.texi: Add documentation for target selectors avx2,
16741 avx2_runtime, avx512f, and avx512f_runtime.
16742
16743 2017-08-23 Uros Bizjak <ubizjak@gmail.com>
16744
16745 * config/i386/i386.opt: Remove unneeded Init(0) initializations.
16746 (mstackrealign): Do not init to -1.
16747 * config/i386/i386.c (ix86_option_override_internal):
16748 Check opts_set, not opts when setting default value of
16749 opts->x_ix86_force_align_arg_pointer.
16750
16751 2017-08-23 Richard Biener <rguenther@suse.de>
16752
16753 * function.c (fndecl_name): Use verbosity 1 (no arguments) for
16754 lang_hooks.decl_printable_name.
16755 * print-rtl-function.c (print_rtx_function): Likewise.
16756 * tree-pretty-print.c (dump_function_header): Likewise.
16757
16758 2017-08-23 Richard Biener <rguenther@suse.de>
16759
16760 PR lto/81940
16761 * dwarf2out.c (dwarf2out_abstract_function): Handle LTO with
16762 -g0 at compile-time.
16763
16764 2017-08-23 Tamar Christina <tamar.christina@arm.com>
16765
16766 PR middle-end/19706
16767 * doc/sourcebuild.texi (Other hardware attributes):
16768 Document xorsign.
16769
16770 2017-08-23 Tamar Christina <tamar.christina@arm.com>
16771
16772 PR middle-end/19706
16773 * tree-ssa-math-opts.c (convert_expand_mult_copysign):
16774 Fix single-use check.
16775
16776 2017-08-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
16777
16778 * gcc.c (execute): Only test for SIGKILL and SIGQUIT if available.
16779
16780 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
16781
16782 * doc/install.texi: Modify to add more details on running selected
16783 tests.
16784
16785 2017-08-22 Daniel Santos <daniel.santos@pobox.com>
16786
16787 * config/i386/i386.c (ix86_option_override_internal): Error when -mx32
16788 is combined with -mabi=ms.
16789 (ix86_function_type_abi): Limit errors for mixing -mx32 with attribute
16790 ms_abi.
16791
16792 2017-08-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16793
16794 PR tree-optimization/81488
16795 * gimple-ssa-strength-reduction (struct slsr_cand_d): Add visited
16796 and cached_basis fields.
16797 (MAX_SPREAD): New constant.
16798 (alloc_cand_and_find_basis): Initialize new fields.
16799 (clear_visited): New function.
16800 (create_phi_basis_1): Rename from create_phi_basis, set visited
16801 and cached_basis fields.
16802 (create_phi_basis): New wrapper function.
16803 (phi_add_costs_1): Rename from phi_add_costs, add spread
16804 parameter, set visited field, short-circuit when limits reached.
16805 (phi_add_costs): New wrapper function.
16806 (record_phi_increments_1): Rename from record_phi_increments, set
16807 visited field.
16808 (record_phi_increments): New wrapper function.
16809 (phi_incr_cost_1): Rename from phi_incr_cost, set visited field.
16810 (phi_incr_cost): New wrapper function.
16811 (all_phi_incrs_profitable_1): Rename from
16812 all_phi_incrs_profitable, set visited field.
16813 (all_phi_incrs_profitable): New wrapper function.
16814
16815 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
16816 Alan Hayward <alan.hayward@arm.com>
16817 David Sherwood <david.sherwood@arm.com>
16818
16819 * rtl.h (paradoxical_subreg_p): Define inline, and add a version
16820 that takes the outer and inner modes.
16821 * doc/rtl.texi: Use paradoxical_subreg_p instead of a GET_MODE_SIZE
16822 comparison as the canonical test for a paradoxical subreg.
16823 * combine.c (simplify_set): Use paradoxical_subreg_p.
16824 (make_extraction): Likewise.
16825 (force_to_mode): Likewise.
16826 (rtx_equal_for_field_assignment_p): Likewise.
16827 (gen_lowpart_for_combine): Likewise.
16828 (simplify_comparison): Likewise.
16829 * cse.c (equiv_constant): Likewise.
16830 * expmed.c (store_bit_field_1): Likewise.
16831 * final.c (alter_subreg): Likewise.
16832 * fwprop.c (propagate_rtx): Likewise.
16833 (forward_propagate_subreg): Likewise.
16834 * ira-conflicts.c (ira_build_conflicts): Likewise.
16835 * lower-subreg.c (simplify_gen_subreg_concatn): Likewise.
16836 * lra-constraints.c (curr_insn_transform): Likewise.
16837 (split_reg): Likewise.
16838 * lra-eliminations.c (move_plus_up): Likewise.
16839 (lra_eliminate_regs_1): Likewise.
16840 * recog.c (general_operand): Likewise.
16841 * ree.c (combine_reaching_defs): Likewise.
16842 * reload.c (push_reload): Likewise.
16843 (find_reloads): Likewise.
16844 * reload1.c (elimination_effects): Likewise.
16845 (compute_reload_subreg_offset): Likewise.
16846 (choose_reload_regs): Likewise.
16847 * rtlanal.c (subreg_lsb_1): Likewise.
16848 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
16849 (simplify_subreg): Likewise.
16850 * var-tracking.c (track_loc_p): Likewise.
16851 * emit-rtl.c (byte_lowpart_offset): Likewise.
16852 (paradoxical_subreg_p): Delete out-of-line definition.
16853
16854 2017-08-22 Jeff Law <law@redhat.com>
16855
16856 PR tree-optimization/81741
16857 PR tree-optimization/71947
16858 * tree-ssa-dom.c: Include tree-inline.h.
16859 (record_temporary_equivalences): Only record SSA_NAME = SSA_NAME
16860 equivalences if one is more expensive to compute than the other.
16861 * tree-ssa-scopedtables.h (class const_or_copies): Make
16862 record_const_or_copy_raw method private.
16863 (class avail_exprs_stack): New method simplify_binary_operation.
16864 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Call
16865 avail_exprs_stack::simplify_binary_operation as needed.
16866 (avail_exprs_stack::simplify_binary_operation): New function.
16867
16868 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
16869
16870 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
16871 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
16872 (DOT_SYMBOLS): Likewise.
16873 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
16874 (RELOCATABLE_NEEDS_FIXUP): Likewise.
16875 (RS6000_ABI_NAME): Likewise.
16876 (TARGET_CMODEL): Likewise.
16877 (TOC_SECTION_ASM_OP): Likewise.
16878 (SET_CMODEL): New macro.
16879 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
16880
16881 2017-08-22 Richard Biener <rguenther@suse.de>
16882
16883 * tree-inline.c (remap_type_1): Change asserts on TYPE_SIZE[_UNIT]
16884 to allow for free-lang-data replacements similar to verify_type_variant.
16885
16886 2017-08-22 Richard Sandiford <richard.sandiford@linaro.org>
16887 Alan Hayward <alan.hayward@arm.com>
16888 David Sherwood <david.sherwood@arm.com>
16889
16890 * config/aarch64/aarch64.md (casesi): Use DImode rather than
16891 VOIDmode for the LABEL_REF.
16892
16893 2017-08-22 Richard Biener <rguenther@suse.de>
16894
16895 * tree-cfg.c (gimple_split_edge): Avoid reallocating target PHI nodes.
16896
16897 2017-08-22 Richard Biener <rguenther@suse.de>
16898
16899 * common.opt (feliminate-dwarf2-dups): Ignore.
16900 * doc/invoke.texi (feliminate-dwarf2-dups): Remove documentation.
16901 * dwarf2out.c (push_new_compile_unit, pop_compile_unit,
16902 same_die_p_wrap, compute_section_prefix,
16903 is_symbol_die, assign_symbol_names, break_out_includes): Remove.
16904 (comdat_symbol_id, comdat_symbol_number): Likewise.
16905 (cu_hash_table_entry, cu_hash_table_entry_hasher, cu_hash_type):
16906 Likewise.
16907 (check_duplicate_cu, record_comdat_symbol_number): Likewise.
16908 (output_die): Mark unreachable path unreachable.
16909 (dwarf2out_start_source_file): Do not create DW_TAG_GNU_BINCL.
16910 (dwarf2out_end_source_file): Do not create DW_TAG_GNU_EINCL.
16911 (dwarf2out_init): Remove code handling flag_eliminate_dwarf2_dups.
16912 (dwarf2out_early_finish): Likewise.
16913
16914 2017-08-22 Aldy Hernandez <aldyh@redhat.com>
16915
16916 * wide-int.h (hwi_with_prec::hwi_with_prec): Sign extend.
16917
16918 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
16919
16920 PR target/81910
16921 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
16922 not VAR_P. Filter attribute warnings with OPT_Wattributes.
16923 (avr_attribute_table) <io, io_low, address>: Initialize
16924 .decl_required with true.
16925
16926 2017-08-21 Michael Meissner <meissner@linux.vnet.ibm.com>
16927
16928 * config/rs6000/rs6000-cpus.def (-mvsx-scalar-float): Delete
16929 undocumented debugging options.
16930 (-mvsx-scalar-double): Likewise.
16931 (-mallow-df-permute): Likewise.
16932 (-mvectorize-builtins): Likewise.
16933 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
16934 (rs6000_builtin_vectorized_function): Likewise.
16935 (rs6000_builtin_md_vectorized_function): Likewise.
16936 (rs6000_opt_vars): Likewise.
16937
16938 2017-08-21 Uros Bizjak <ubizjak@gmail.com>
16939
16940 PR target/46091
16941 * config/i386/i386.md (*btsq_imm): Rename from *btsq.
16942 (*btrq_imm): Rename from *btrq.
16943 (*btcq_imm): Rename from *btcq.
16944 (btsc): New code attribute.
16945 (*<btsc><mode>): New insn pattern.
16946 (*btr<mode>): Ditto.
16947 (*<btsc><mode>_mask): New insn_and_split pattern.
16948 (*btr<mode>_mask): Ditto.
16949
16950 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
16951 Alan Hayward <alan.hayward@arm.com>
16952 David Sherwood <david.sherwood@arm.com>
16953
16954 * function.c (pad_below): Simplify padding calculation.
16955
16956 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
16957 Alan Hayward <alan.hayward@arm.com>
16958 David Sherwood <david.sherwood@arm.com>
16959
16960 * target.def (function_prologue): Remove frame size argument.
16961 (function_epilogue): Likewise.
16962 * doc/tm.texi: Regenerate.
16963 * final.c (final_start_function): Update call to function_prologue.
16964 (final_end_function): Update call to function_epilogue.
16965 (default_function_pro_epilogue): Remove frame size argument.
16966 * output.h (default_function_pro_epilogue): Likewise.
16967 * config/arm/arm.c (arm_output_function_epilogue): Likewise.
16968 (arm_output_function_prologue): Likewise.
16969 * config/frv/frv.c (frv_function_prologue): Likewise.
16970 (frv_function_epilogue): Likewise.
16971 * config/i386/i386.c (ix86_output_function_epilogue): Likewise.
16972 * config/ia64/ia64.c (ia64_output_function_prologue): Likewise.
16973 (ia64_output_function_epilogue): Likewise.
16974 * config/m32r/m32r.c (m32r_output_function_prologue): Likewise.
16975 (m32r_output_function_epilogue): Likewise.
16976 * config/microblaze/microblaze.c (microblaze_function_prologue)
16977 (microblaze_function_epilogue): Likewise.
16978 * config/mips/mips.c (mips_output_function_prologue): Likewise.
16979 (mips_output_function_epilogue): Likewise.
16980 * config/mmix/mmix.c (mmix_target_asm_function_prologue): Likewise.
16981 (mmix_target_asm_function_epilogue): Likewise.
16982 * config/msp430/msp430.c (msp430_start_function): Likewise.
16983 * config/nds32/nds32.c (nds32_asm_function_prologue): Likewise.
16984 (nds32_asm_function_epilogue): Likewise.
16985 * config/nios2/nios2.c (nios2_asm_function_prologue): Likewise.
16986 * config/pa/pa.c (pa_output_function_prologue): Likewise.
16987 (pa_output_function_epilogue): Likewise.
16988 * config/powerpcspe/powerpcspe.c (rs6000_output_function_prologue)
16989 (rs6000_output_function_epilogue): Likewise.
16990 * config/rl78/rl78.c (rl78_start_function): Likewise.
16991 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Likewise.
16992 (rs6000_output_function_epilogue): Likewise.
16993 * config/rx/rx.c (rx_output_function_prologue): Likewise.
16994 * config/sh/sh.c (sh_output_function_epilogue): Likewise.
16995 * config/sparc/sparc.c (sparc_asm_function_prologue): Likewise.
16996 (sparc_asm_function_epilogue): Likewise.
16997
16998 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
16999
17000 * tree.h (type_has_mode_precision_p): New function.
17001 * convert.c (convert_to_integer_1): Use it.
17002 * expr.c (expand_expr_real_2): Likewise.
17003 (expand_expr_real_1): Likewise.
17004 * fold-const.c (fold_single_bit_test_into_sign_test): Likewise.
17005 * match.pd: Likewise.
17006 * tree-ssa-forwprop.c (simplify_rotate): Likewise.
17007 * tree-ssa-math-opts.c (convert_mult_to_fma): Likewise.
17008 * tree-tailcall.c (process_assignment): Likewise.
17009 * tree-vect-loop.c (vectorizable_reduction): Likewise.
17010 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern)
17011 (vect_recog_mult_pattern, vect_recog_divmod_pattern): Likewise.
17012 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
17013 (vectorizable_assignment): Likewise.
17014 (vectorizable_shift): Likewise.
17015 (vectorizable_operation): Likewise.
17016 * tree-vrp.c (register_edge_assert_for_2): Likewise.
17017
17018 2017-08-21 Wilco Dijkstra <wdijkstr@arm.com>
17019
17020 * match.pd: Add pow (C, x) simplification.
17021
17022 2017-08-21 Richard Biener <rguenther@suse.de>
17023
17024 PR tree-optimization/81900
17025 * tree-ssa-pre.c (compute_antic_aux): Properly compute changed
17026 for blocks with abnormal predecessors.
17027 (compute_antic): Do not set visited flag prematurely.
17028
17029 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
17030
17031 PR target/79883
17032 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
17033
17034 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
17035
17036 * stor-layout.h (vector_type_mode): Move to...
17037 * tree.h (vector_type_mode): ...here.
17038 * stor-layout.c (vector_type_mode): Move to...
17039 * tree.c (vector_type_mode): ...here. Include rtl.h and regs.h.
17040
17041 2017-08-21 Richard Biener <rguenther@suse.de>
17042
17043 * debug.h (struct gcc_debug_hooks): Add die_ref_for_decl and
17044 register_external_die hooks.
17045 (debug_false_tree_charstarstar_uhwistar): Declare.
17046 (debug_nothing_tree_charstar_uhwi): Likewise.
17047 * debug.c (do_nothing_debug_hooks): Adjust.
17048 (debug_false_tree_charstarstar_uhwistar): New do nothing.
17049 (debug_nothing_tree_charstar_uhwi): Likewise.
17050 * dbxout.c (dbx_debug_hooks): Adjust.
17051 (xcoff_debug_hooks): Likewise.
17052 * sdbout.c (sdb_debug_hooks): Likewise.
17053 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
17054 * dwarf2out.c (macinfo_label_base): New global.
17055 (dwarf2out_register_external_die): New function for the
17056 register_external_die hook.
17057 (dwarf2out_die_ref_for_decl): Likewise for die_ref_for_decl.
17058 (dwarf2_debug_hooks): Use them.
17059 (dwarf2_lineno_debug_hooks): Adjust.
17060 (struct die_struct): Add with_offset flag.
17061 (DEBUG_LTO_DWO_INFO_SECTION, DEBUG_LTO_INFO_SECTION,
17062 DEBUG_LTO_DWO_ABBREV_SECTION, DEBUG_LTO_ABBREV_SECTION,
17063 DEBUG_LTO_DWO_MACINFO_SECTION, DEBUG_LTO_MACINFO_SECTION,
17064 DEBUG_LTO_DWO_MACRO_SECTION, DEBUG_LTO_MACRO_SECTION,
17065 DEBUG_LTO_LINE_SECTION, DEBUG_LTO_DWO_STR_OFFSETS_SECTION,
17066 DEBUG_LTO_STR_DWO_SECTION, DEBUG_STR_LTO_SECTION): New macros
17067 defining section names for the early LTO debug variants.
17068 (reset_indirect_string): New helper.
17069 (add_AT_external_die_ref): Helper for dwarf2out_register_external_die.
17070 (print_dw_val): Add support for offsetted symbol references.
17071 (get_ultimate_context): Split out from is_cxx.
17072 (is_cxx): Use get_ultimate_context.
17073 (is_fortran): Add decl overload.
17074 (compute_comp_unit_symbol): Split out worker from
17075 compute_section_prefix.
17076 (compute_section_prefix): Call compute_comp_unit_symbol and
17077 set comdat_type_p here.
17078 (output_die): Skip DIE symbol output for the LTO added one.
17079 Handle DIE symbol references with offset.
17080 (output_comp_unit): Guard section name mangling properly.
17081 For LTO debug sections emit a symbol at the section beginning
17082 which we use to refer to its DIEs.
17083 (add_abstract_origin_attribute): For DIEs registered via
17084 dwarf2out_register_external_die directly refer to the early
17085 DIE rather than indirectly through the shadow one we created.
17086 Remove obsolete call to dwarf2out_abstract_function for
17087 non-function/block origins.
17088 (gen_array_type_die): When generating early LTO debug do
17089 not emit DW_AT_string_length.
17090 (gen_formal_parameter_die): Do not re-create DIEs for PARM_DECLs
17091 late when in LTO. As suggested place a gcc_unreachable for
17092 the DECL_ABSTRACT_P case.
17093 (gen_subprogram_die): Avoid another specification DIE
17094 for early built declarations/definitions for the late LTO case.
17095 (gen_variable_die): Add type references for late duplicated VLA dies
17096 when in late LTO.
17097 (gen_inlined_subroutine_die): Do not call dwarf2out_abstract_function,
17098 we have the abstract instance already.
17099 (process_scope_var): Adjust decl DIE contexts in LTO which
17100 first puts them in limbo.
17101 (gen_decl_die): Do not generate type DIEs late apart from
17102 types for VLAs or for decls we do not yet have a DIE. Do not
17103 call dwarf2out_abstract_function late.
17104 (dwarf2out_early_global_decl): Make sure to create DIEs
17105 for abstract instances of a decl first.
17106 (dwarf2out_late_global_decl): Adjust comment.
17107 (output_macinfo_op): With multiple macro sections use
17108 macinfo_label_base to distinguish labels.
17109 (output_macinfo): Likewise. Update macinfo_label_base.
17110 Pass in the line info label.
17111 (note_variable_value_in_expr): When generating LTO resolve
17112 all variable values here by generating DIEs as needed.
17113 (init_sections_and_labels): Add early LTO debug flag parameter
17114 and generate different sections and names if set. Add generation
17115 counter for the labels so we can have multiple of them.
17116 (reset_dies): Helper to allow DIEs to be output multiple times.
17117 (dwarf2out_finish): When outputting DIEs to the fat part of an
17118 LTO object first reset DIEs.
17119 (dwarf2out_early_finish): Output early DIEs when generating LTO.
17120 (modified_type_die): Check for decl_ultimate_origin being self
17121 before recursing.
17122 (gen_type_die_with_usage): Likewise.
17123 (gen_typedef_die): Allow decl_ultimate_origin being self.
17124 (set_decl_abstract_flags): Remove.
17125 (set_block_abstract_flags): Likewise.
17126 (dwarf2out_abstract_function): Treat the early generated DIEs
17127 as the abstract copy and only add DW_AT_inline and
17128 DW_AT_artificial here and call set_decl_origin_self.
17129 If the DIE has an abstract origin don't do anything.
17130 * tree.c (free_lang_data): Build a dummy TRANSLATION_UNIT_DECL
17131 if we have none yet (Go fails to build one, PR78628).
17132 (variably_modified_type_p): Prevent endless recursion for Ada
17133 cyclic pointer types.
17134 * lto-streamer-in.c: Include debug.h.
17135 (dref_queue): New global.
17136 (lto_read_tree_1): Stream in DIE references.
17137 (lto_input_tree): Register DIE references.
17138 (input_function): Stream DECL_DEBUG_ARGS.
17139 * lto-streamer-out.c: Include debug.h.
17140 (lto_write_tree_1): Output DIE references.
17141 (DFS::DFS_write_tree_body): Follow DECL_ABSTRACT_ORIGIN.
17142 Force a TRANSLATION_UNIT_DECL DECL_CONTEXT for file-scope decls.
17143 (output_function): Stream DECL_DEBUG_ARGS.
17144 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers):
17145 Stream DECL_ABSTRACT_ORIGIN.
17146 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise.
17147 (write_ts_decl_minimal_tree_pointers): Force a TRANSLATION_UNIT_DECL
17148 DECL_CONTEXT for file-scope decls.
17149 * lto-streamer.h (struct dref_entry): Declare.
17150 (dref_queue): Likewise.
17151 * cfgexpand.c (pass_expand::execute): Do not call the
17152 outlining_inline_function hook here.
17153 * lto-wrapper.c (debug_obj): New global.
17154 (tool_cleanup): Unlink it if required.
17155 (debug_objcopy): New function.
17156 (run_gcc): Handle early debug sections in the IL files by
17157 extracting them to separate files, partially linkin them and
17158 feeding the result back as result to the linker.
17159 * config/darwin.h (DEBUG_LTO_INFO_SECTION, DEBUG_LTO_ABBREV_SECTION,
17160 DEBUG_LTO_MACINFO_SECTION, DEBUG_LTO_LINE_SECTION,
17161 DEBUG_STR_LTO_SECTION, DEBUG_LTO_MACRO_SECTION): Put early debug
17162 sections into a separate segment.
17163 * config/darwin.c (darwin_asm_named_section): Handle __GNU_DWARF_LTO
17164 segments.
17165 (darwin_asm_dwarf_section): Likewise.
17166 (darwin_asm_output_dwarf_offset): Likewise.
17167 * config/i386/i386.c (make_resolver_func): Set DECL_IGNORED_P.
17168
17169 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
17170 Alan Hayward <alan.hayward@arm.com>
17171 David Sherwood <david.sherwood@arm.com>
17172
17173 * read-md.h (md_reader::record_potential_iterator_use): Replace
17174 pointer argument with an rtx and an index.
17175 * read-rtl.c (iterator_group::apply_iterator): Likewise.
17176 (apply_mode_iterator): Likewise.
17177 (apply_code_iterator): Likewise.
17178 (apply_int_iterator): Likewise.
17179 (apply_subst_iterator): Likewise.
17180 (record_iterator_use): Likewise.
17181 (record_attribute_use): Likewise.
17182 (md_reader::record_potential_iterator_use): Likewise. Update calls
17183 to record_iterator_use and apply_iterator.
17184 (iterator_use): Replace ptr with x and index.
17185 (attribute_use): Likewise.
17186 (apply_attribute_uses): Update calls to apply_iterator.
17187 (apply_iterators): Likewise. Update initialization of iterator_use.
17188 (rtx_reader::read_rtx_code): Update calls to record_iterator_use
17189 and record_potential_iterator_use.
17190 (rtx_reader::read_rtx_operand): Likewise.
17191
17192 2017-08-21 Richard Sandiford <richard.sandiford@linaro.org>
17193 Alan Hayward <alan.hayward@arm.com>
17194 David Sherwood <david.sherwood@arm.com>
17195
17196 * varasm.c (const_rtx_hash_1): Don't hash in the mode of a
17197 CONST_WIDE_INT.
17198
17199 2017-08-21 Richard Biener <rguenther@suse.de>
17200
17201 PR middle-end/81884
17202 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
17203 at struct end conservatively when comparing common bases.
17204
17205 2017-08-21 Richard Biener <rguenther@suse.de>
17206
17207 * tree-ssa-loop-im.c (struct lim_aux_data): Add ref index member.
17208 (mem_ref_in_stmt): Remove.
17209 (determine_max_movement): Use ref index to get at the reference.
17210 (invariantness_dom_walker::before_dom_children): Deal with
17211 lim data already initialized.
17212 (gather_mem_refs_stmt): Initialize lim data and record ref index.
17213
17214 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
17215
17216 * config/i386/i386.h (OPTION_MASK_ISA_ROUND): Remove.
17217 (TARGET_ISA_ROUND): Ditto.
17218 (TARGET_ROUND): Ditto.
17219 * config/i386/i386.c: Substitute TARGET_ROUND with TARGET_SSE4_1.
17220 * config/i386/i386.md: Ditto.
17221 * config/i386/sse.md: Ditto.
17222 * config/i386/i386-builtin.def: Substitute OPTION_MASK_ISA_ROUND
17223 with OPTION_MASK_ISA_SSE4_1.
17224
17225 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
17226
17227 PR target/81894
17228 * doc/extend.texi (x86 Built-in Functions): Correct the name of
17229 __builtin_ia32_lzcnt_u16.
17230
17231 2017-08-18 Peter Bergner <bergner@vnet.ibm.com>
17232
17233 PR target/80210
17234 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
17235 (rs6000_set_current_function): Rewrite function to use it.
17236
17237 2017-08-18 H.J. Lu <hongjiu.lu@intel.com>
17238
17239 PR c/53037
17240 * print-tree.c (print_node): Support DECL_WARN_IF_NOT_ALIGN
17241 and TYPE_WARN_IF_NOT_ALIGN.
17242 * stor-layout.c (do_type_align): Merge DECL_WARN_IF_NOT_ALIGN.
17243 (handle_warn_if_not_align): New.
17244 (place_union_field): Call handle_warn_if_not_align.
17245 (place_field): Call handle_warn_if_not_align.
17246 Copy TYPE_WARN_IF_NOT_ALIGN.
17247 (finish_builtin_struct): Copy TYPE_WARN_IF_NOT_ALIGN.
17248 (layout_type): Likewise.
17249 * tree-core.h (tree_type_common): Add warn_if_not_align. Set
17250 spare to 18.
17251 (tree_decl_common): Add warn_if_not_align.
17252 * tree.c (build_range_type_1): Copy TYPE_WARN_IF_NOT_ALIGN.
17253 * tree.h (TYPE_WARN_IF_NOT_ALIGN): New.
17254 (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
17255 (DECL_WARN_IF_NOT_ALIGN): Likewise.
17256 (SET_DECL_WARN_IF_NOT_ALIGN): Likewise.
17257 * doc/extend.texi: Document warn_if_not_aligned attribute.
17258 * doc/invoke.texi: Document -Wif-not-aligned and -Wpacked-not-aligned.
17259
17260 2017-08-17 Martin Liska <mliska@suse.cz>
17261
17262 PR bootstrap/81864
17263 * tree-loop-distribution.c (ddrs_table): Change type to pointer type.
17264 (get_data_dependence): Use it as pointer type.
17265 (distribute_loop): Likewise.
17266
17267 2017-08-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17268
17269 * config/rs6000/altivec.md (UNSPEC_VMRGOW_DIRECT): New constant.
17270 (p8_vmrgew_v4sf_direct): Generalize to p8_vmrgew_<mode>_direct.
17271 (p8_vmrgow_<mode>_direct): New define_insn.
17272 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Properly
17273 handle endianness for vmrgew and vmrgow permute patterns.
17274
17275 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
17276
17277 * config/rs6000/altivec.md (VParity): Remove TARGET_VSX_TIMODE.
17278 * config/rs6000/rs6000-cpus.def: Remove comment.
17279 (ISA_2_7_MASKS_SERVER): Delete OPTION_MASK_VSX_TIMODE;
17280 (POWERPC_MASKS): Likewise.
17281 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Remove unneeded
17282 use of TARGET_VSX_TIMODE.
17283 (rs6000_setup_reg_addr_masks): Change TARGET_VSX_TIMODE to TARGET_VSX.
17284 (rs6000_init_hard_regno_mode_ok): Remove unneeded uses of
17285 TARGET_VSX_TIMODE. Change use of TARGET_VSX_TIMODE to TARGET_VSX.
17286 (rs6000_option_override_internal): Remove dead code.
17287 (rs6000_legitimize_address): Change TARGET_VSX_TIMODE to TARGET_VSX.
17288 (rs6000_legitimize_reload_address): Likewise.
17289 (rs6000_legitimate_address_p): Likewise.
17290 (rs6000_opt_masks): Delete "vsx-timode".
17291 (rs6000_disable_incompatible_switches): Remove mention of -mvsx-timode
17292 from function comment.
17293 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Delete.
17294 * config/rs6000/rs6000.md (FMOVE128_GPR): Remove TARGET_VSX_TIMODE.
17295 (V16QI, V8HI, V4SI, V4SF, V2DI, V2DF, V1TI): Remove useless empty
17296 condition.
17297 * config/rs6000/rs6000.opt (mvsx-timode): Replace with stub.
17298 * config/rs6000/vector.md (VEC_IP): Remove TARGET_VSX_TIMODE.
17299 * config/rs6000/vsx.md (VSX_LE_128): Likewise.
17300 (VSX_TI): Likewise.
17301 (VSX_M): Likewise.
17302 (define_peephole2): Likewise.
17303
17304 2017-08-17 Martin Sebor <msebor@redhat.com>
17305
17306 PR c/81859
17307 * pretty-print.c (pp_format): Use strnlen in %.*s to avoid reading
17308 past the end of an array.
17309 (test_pp_format): Add test cases.
17310
17311 2017-08-17 Richard Sandiford <richard.sandiford@linaro.org>
17312
17313 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY, POPCOUNT): Add
17314 missing ECF_NOTHROW flags.
17315
17316 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
17317
17318 PR target/72804
17319 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
17320 operands residing in integer registers.
17321 (*vsx_le_perm_load_<mode>): Likewise.
17322 (*vsx_le_perm_store_<mode>): Likewise.
17323 (define_peephole2): Add peepholes to optimize the above.
17324
17325 2017-08-17 Marek Polacek <polacek@redhat.com>
17326
17327 PR middle-end/81814
17328 * fold-const.c (operand_equal_for_comparison_p): Remove code that used
17329 to mimic what shorten_compare did. Change the return type to bool.
17330 (fold_cond_expr_with_comparison): Update call to
17331 operand_equal_for_comparison_p.
17332 (fold_ternary_loc): Likewise.
17333
17334 2017-08-17 Jackson Woodruff <jackson.woodruff@arm.com>
17335
17336 * aarch64-simd.md (mov<mode>): No longer force zero immediate into
17337 register.
17338 (*aarch64_simd_mov<mode>): Add new case for stp using zero immediate.
17339
17340 2017-08-17 Richard Biener <rguenther@suse.de>
17341
17342 * tree-ssa-structalias.c (solve_graph): When propagating
17343 to successors update the graphs succ edges and avoid duplicate work.
17344
17345 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
17346
17347 PR target/81861
17348 * config/i386/i386.c (ix86_option_override_internal): Save target
17349 specific options after ix86_stack_protector_guard_reg was changed.
17350
17351 2017-08-17 Richard Biener <rguenther@suse.de>
17352
17353 PR tree-optimization/81827
17354 * tree-ssa-structalias.c (struct variable_info): Add is_reg_var flag.
17355 (new_var_info): Initialize it conservatively.
17356 (get_call_vi): Mark register vars.
17357 (new_scalar_tmp_constraint_exp): Likewise.
17358 (handle_rhs_call): Likewise.
17359 (handle_const_call): Likewise.
17360 (create_function_info_for): Likewise.
17361 (solve_constraints): Sort varinfos to separate register from
17362 non-register vars to pack points-to solution bitmaps during
17363 iteration.
17364
17365 2017-08-17 Marek Polacek <polacek@redhat.com>
17366
17367 * gimplify.c (gimplify_adjust_omp_clauses): Compare with 0 instead of 1.
17368
17369 2017-08-17 Richard Biener <rguenther@suse.de>
17370
17371 * tree-vrp.c (vrp_int_const_binop): Do not set *overflow_p
17372 to true when overflow is undefined and we saturated the result.
17373
17374 2017-08-17 Alan Modra <amodra@gmail.com>
17375
17376 PR target/80938
17377 * config/rs6000/rs6000.c (rs6000_savres_strategy): Revert 2017-08-09.
17378 Don't use store multiple if only one reg needs saving.
17379 (interesting_frame_related_regno): New function.
17380 (rs6000_frame_related): Don't emit frame info for regs that
17381 don't need saving.
17382 (rs6000_emit_epilogue): Likewise.
17383
17384 2017-08-16 Nathan Sidwell <nathan@acm.org>
17385
17386 * tree-core.h (tree_type_non_common): Rename binfo to lang_1.
17387 * tree.h (TYPE_BINFO): Use type_non_common.maxval.
17388 (TYPE_LANG_SLOT_1): Use type_non_common.lang_1, for any type.
17389 * tree.c (free_lang_data_in_type): Use else-if chain. Always
17390 clear TYPE_LANG_1. Remove obsolete member-function stripping.
17391 (find_decls_types_r): Comment about TYPE_MAX_VALUES_RAW.
17392 (verify_type): Adjust for TYPE_BINFO move.
17393 * lto-streamer-out.c (DFS::DFS_write_tree_body): No need to
17394 process TYPE_BINFO directly.
17395 (hash_tree): Likewise.
17396 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
17397 Likewise.
17398 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
17399 Likewise.
17400
17401 2017-08-16 David Malcolm <dmalcolm@redhat.com>
17402
17403 * diagnostic-show-locus.c (colorizer::m_caret): Remove unused field.
17404
17405 2017-08-16 Uros Bizjak <ubizjak@gmail.com>
17406
17407 PR target/46091
17408 * config/i386/i386.md (*anddi_1_btr): Change predicates of
17409 operand 0 and operand 1 to nomimmediate_operand. Add "m" constraint.
17410 Add ix86_binary_operator_ok to insn constraint.
17411 (*iordi_1_bts): Ditto.
17412 (*xordi_1_btc): Ditto.
17413 (*btsq): Change predicate of operand 0 to nonimmediate_operand.
17414 Update corresponding peephole2 pattern.
17415 (*btrq): Ditto.
17416 (*btcq): Ditto.
17417
17418 2017-08-16 Bin Cheng <bin.cheng@arm.com>
17419
17420 PR tree-optimization/81832
17421 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Don't
17422 copy loop header which has IFN_LOOP_DIST_ALIAS call.
17423
17424 2017-08-16 Marek Polacek <polacek@redhat.com>
17425
17426 PR middle/81695
17427 * fold-const.c (fold_indirect_ref_1): Restore original behavior
17428 regarding size_zero_node.
17429
17430 2017-08-16 Martin Liska <mliska@suse.cz>
17431
17432 PR target/81753
17433 * config.gcc: Respect previously set extra_objs in case
17434 of darwin target.
17435
17436 2017-08-16 Richard Sandiford <richard.sandiford@linaro.org>
17437
17438 PR tree-optimization/81835
17439 * tree-vect-loop.c (vect_is_simple_reduction): Simply checks for
17440 the phi SSA_NAME. Check that the condition in a COND_EXPR does
17441 not depend on the phi.
17442
17443 2017-08-16 Alan Modra <amodra@gmail.com>
17444
17445 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Delete
17446 dead code.
17447
17448 2017-08-16 Alan Modra <amodra@gmail.com>
17449
17450 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Merge..
17451 (save_reg_p): ..into this. Update all callers.
17452 (first_reg_to_save): Simplify.
17453
17454 2017-08-16 Alan Modra <amodra@gmail.com>
17455
17456 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't restore
17457 fixed regs.
17458
17459 2017-08-15 Joseph Myers <joseph@codesourcery.com>
17460
17461 PR target/78460
17462 PR target/67712
17463 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
17464 constant count if that count is less than 32.
17465
17466 2017-08-15 Nathan Sidwell <nathan@acm.org>
17467
17468 * gcc.c (execute): Emit friendlier message if inferior is killed
17469 by an external cause.
17470
17471 2017-08-15 Richard Biener <rguenther@suse.de>
17472
17473 PR tree-optimization/81790
17474 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
17475 CONSTRUCTORs from simplifying and VN.
17476
17477 2017-08-14 Martin Sebor <msebor@redhat.com>
17478
17479 * builtin-attrs.def: Add comments.
17480
17481 2017-08-14 Martin Sebor <msebor@redhat.com>
17482
17483 PR c/81117
17484 * doc/extend.texi (attribute nonstring): Document new attribute.
17485
17486 2017-08-14 Martin Sebor <msebor@redhat.com>
17487
17488 PR c/81117
17489 * tree-diagnostic.c (default_tree_printer): Handle %G.
17490 * gimple-pretty-print.h (percent_G_format): Declare new function.
17491 * gimple-pretty-print.c (percent_G_format): Define.
17492 * tree-pretty-print.c (percent_K_format): Add argument.
17493
17494 2017-08-14 Martin Sebor <msebor@redhat.com>
17495
17496 PR translation/79998
17497 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
17498 Remove a stray space.
17499
17500 2017-08-14 Uros Bizjak <ubizjak@gmail.com>
17501
17502 PR target/46091
17503 * config/i386/i386.md (*anddi_1_btr): New insn_and_split pattern.
17504 (*iordi_1_bts): Ditto.
17505 (*xordi_1_btc): Ditto.
17506
17507 2017-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17508
17509 PR target/79845
17510 * config/rs6000/linux64.h (INVALID_64BIT): Use quoted strings.
17511 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
17512 Likewise.
17513 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Use
17514 quoted strings, and make more translator-friendly.
17515 (darwin_rs6000_override_options): Likewise.
17516 (rs6000_option_override_internal): Likewise.
17517 (rs6000_return_in_memory): Fix overlong line.
17518 (init_cmulative_args): Use quoted strings, and make more
17519 translator-friendly.
17520 (rs6000_pass_by_reference): Fix overlong line.
17521 (def_builtin): Use quoted strings.
17522 (altivec_expand_predicate_builtin): Use quoted strings, and make
17523 more translator-friendly.
17524 (htm_expand_builtin): Use quoted strings.
17525 (cpu_expand_builtin): Use quoted strings, and make more
17526 translator-friendly.
17527 (altivec_expand_builtin): Likewise.
17528 (paired_expand_predicate_builtin): Likewise.
17529 (rs6000_invalid_builtin): Likewise.
17530 (builtin_function_type): Use quoted strings.
17531 (rs6000_expand_split_stack_prologue): Use quoted strings, and make
17532 more translator-friendly.
17533 (rs6000_trampoline_init): Likewise.
17534 (rs6000_handle_altivec_attribute): Likewise.
17535 (rs6000_inner_target_options): Use quoted strings.
17536 (rs6000_disable_incompatible_switches): Likewise.
17537 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Use quoted
17538 strings, and make more translator-friendly.
17539 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use quoted strings.
17540
17541 2017-08-14 Bin Cheng <bin.cheng@arm.com>
17542
17543 PR tree-optimization/81799
17544 * tree-loop-distribution.c (version_loop_by_alias_check): Force
17545 cond_expr to simple gimple operand.
17546
17547 2017-08-14 Wilco Dijkstra <wdijkstr@arm.com>
17548
17549 PR middle-end/46932
17550 * doc/sourcebuild.texi (autoincdec): Add autoincdec description.
17551
17552 2017-08-14 Georg-Johann Lay <avr@gjlay.de>
17553
17554 PR target/81754
17555 PR target/81268
17556 * config/avr/avr.opt (mgas-isr-prologues): New Var avr_gasisr_prologues.
17557 * config/avr/avr.md (gasisr, *gasisr): Use it instead of
17558 TARGET_GASISR_PROLOGUES.
17559 * config/avr/avr.c (avr_option_override): Same.
17560 (avr_pass_pre_proep::execute): Same.
17561
17562 2017-08-13 H.J. Lu <hongjiu.lu@intel.com>
17563
17564 PR target/81820
17565 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Replace
17566 frame pointer with stack pointer - UNITS_PER_WORD in debug insns.
17567
17568 2017-08-13 Uros Bizjak <ubizjak@gmail.com>
17569
17570 * config/i386/i386.md (*load_tp_<mode>): Redefine as
17571 define_insn_and_split. Split to a memory load from 0 in
17572 DEFAULT_TLS_SEG_REG address space. Merge with *load_tp_x32
17573 using PTR mode iterator.
17574 (*load_tp_x32_zext"): Redefine as define_insn_and_split.
17575 Split to a memory load from 0 in DEFAULT_TLS_SEG_REG address space.
17576 (*add_tp_<mode>): Redefine as define_insn_and_split.
17577 Split to an add with a memory load from 0 in DEFAULT_TLS_SEG_REG
17578 address space. Merge with *add_tp_x32 using PTR mode iterator.
17579 (*add_tp_x32_zext"): Redefine as define_insn_and_split.
17580 Split to an add with a memory load from 0 in
17581 DEFAULT_TLS_SEG_REG address space.
17582
17583 2017-08-12 Andrew Pinski <apinski@cavium.com>
17584
17585 * config/aarch64/aarch64-option-extensions.def (rdma):
17586 Fix feature string to what Linux prints out in /proc/cpuinfo.
17587
17588 2017-08-12 Pierre-Marie de Rodat <derodat@adacore.com>
17589
17590 PR ada/79542
17591 * dwarf2out.c (modified_type_die): For C typedef types that have
17592 an ultimate origin, process the ultimate origin instead of the
17593 input type.
17594 (gen_typedef_die): Assert that input DECLs have no ultimate
17595 origin.
17596 (gen_type_die_with_usage): For typedef variants that have an
17597 ultimate origin, just call gen_decl_die on the original DECL.
17598 (process_scope_var): Avoid creating DIEs for local typedefs and
17599 concrete static variables.
17600
17601 2017-08-12 Alan Modra <amodra@gmail.com>
17602
17603 PR target/81170
17604 PR target/81295
17605 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
17606 match gnu-user.h startfile.
17607 (ENDFILE_LINUX_SPEC): Similarly.
17608
17609 2017-08-11 Thomas Schwinge <thomas@codesourcery.com>
17610
17611 PR lto/81430
17612 * config/nvptx/nvptx.c (nvptx_override_options_after_change):
17613 Remove function.
17614 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Remove definition.
17615
17616 2017-08-11 Tamar Christina <tamar.christina@arm.com>
17617 * config/aarch64/aarch64.md (mov<mode>): Change.
17618 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
17619 aarch64_reg_or_fp_float into aarch64_reg_or_fp_zero.
17620 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): Removed.
17621
17622 2017-08-11 Eric Botcazou <ebotcazou@adacore.com>
17623
17624 * tree-sra.c (build_access_from_expr_1): Use more precise diagnostics
17625 for storage order barriers.
17626
17627 2017-08-11 Martin Liska <mliska@suse.cz>
17628
17629 PR tree-opt/79987
17630 * tree-chkp.c (chkp_get_bounds_for_decl_addr): Do not instrument
17631 variables of void type.
17632
17633 2017-08-11 Martin Liska <mliska@suse.cz>
17634
17635 * asan.c (asan_protect_global): Replace ASM_OUTPUT_DEF with
17636 TARGET_SUPPORTS_ALIASES.
17637 * cgraph.c (cgraph_node::create_same_body_alias): Likewise.
17638 * ipa-visibility.c (can_replace_by_local_alias): Likewise.
17639 (optimize_weakref): Likewise.
17640 * symtab.c (symtab_node::noninterposable_alias): Likewise.
17641 * varpool.c (varpool_node::create_extra_name_alias): Likewise.
17642 * defaults.h: Introduce TARGET_SUPPORTS_ALIASES.
17643
17644 2017-08-11 Martin Liska <mliska@suse.cz>
17645
17646 PR ipa/81213
17647 * config/i386/i386.c (make_resolver_func): Do complete
17648 refactoring of the function.
17649
17650 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
17651
17652 PR target/81708
17653 * config/i386/i386.opt (mstack-protector-guard-symbol=): New option
17654 * config/i386/i386.c (ix86_stack_protect_guard): Use
17655 ix86_stack_protect_guard_symbol_str to generate varible declaration.
17656 * doc/invoke.texi (x86 Options): Document
17657 -mstack-protector-guard-symbol= option.
17658
17659 2017-08-10 Uros Bizjak <ubizjak@gmail.com>
17660
17661 * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
17662 * config/i386/i386.c (ix86_split_stack_guard): New function.
17663 (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
17664 (ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
17665 (i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
17666 (optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
17667 * config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
17668 (split_stack_space_check): Call ix86_split_stack_guard.
17669
17670 2017-08-10 Martin Sebor <msebor@redhat.com>
17671
17672 * print-tree.c (print_node): Print location using the established
17673 format %s:%i%i.
17674 Replace spaces with colons.
17675 (debug_raw, debug): Ditto.
17676
17677 2017-08-10 Martin Sebor <msebor@redhat.com>
17678
17679 PR c++/81586
17680 * pretty-print.c (pp_format): Correct the handling of %s precision.
17681
17682 2017-08-10 H.J. Lu <hongjiu.lu@intel.com>
17683
17684 PR target/81736
17685 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
17686 to ...
17687 (ix86_finalize_stack_frame_flags): This. Also clear
17688 frame_pointer_needed if -fno-omit-frame-pointer is used without
17689 stack access.
17690 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
17691 with ix86_finalize_stack_frame_flags.
17692 (ix86_expand_epilogue): Likewise.
17693 (ix86_expand_split_stack_prologue): Likewise.
17694 * doc/invoke.texi: Add a note for -fno-omit-frame-pointer.
17695
17696 2017-08-10 Martin Liska <mliska@suse.cz>
17697
17698 PR c++/81355
17699 * c-attribs.c (handle_target_attribute):
17700 Report warning for an empty string argument of target attribute.
17701
17702 2017-08-09 Jakub Jelinek <jakub@redhat.com>
17703
17704 PR c/81687
17705 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
17706 LABEL_DECLs.
17707 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
17708 or DECL_NONLOCAL labels.
17709 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
17710 or DECL_NONLOCAL labels here.
17711
17712 2017-08-09 Will Schmidt <will_schmidt@vnet.ibm.com>
17713
17714 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add blurb
17715 to indicate when early gimple folding has been disabled.
17716 (rs6000_gimple_fold_builtin): Add debug content.
17717 (rs6000_invalid_builtin): Fix whitespace.
17718 (rs6000_expand_builtin): Fix whitespace.
17719 * config/rs6000/rs6000.opt: Add option for -mfold-gimple.
17720
17721 2017-08-09 Segher Boessenkool <segher@kernel.crashing.org>
17722
17723 PR target/80938
17724 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
17725 SAVE_MULTIPLE if not all the registers that saves, should be saved.
17726
17727 2017-08-09 Jim Wilson <jim.wilson@linaro.org>
17728
17729 * config/aarch64/aarch64-cores.def (falkor): Use falkor pipeline.
17730 (qdf24xx): Likewise.
17731 * config/aarch64/aarch64.md: Include falkor.md.
17732 * config/aarch64/falkor.md: New.
17733
17734 2017-08-09 Marek Polacek <polacek@redhat.com>
17735
17736 PR c/81233
17737 * diagnostic-core.h (emit_diagnostic_valist): Add declaration.
17738 * diagnostic.c (emit_diagnostic): Add a comment.
17739 (emit_diagnostic_valist): New function.
17740
17741 2017-08-09 Marek Polacek <polacek@redhat.com>
17742
17743 PR c/81417
17744 * input.c (make_location): New overload.
17745 * input.h (make_location): Declare.
17746
17747 2017-08-08 Alan Modra <amodra@gmail.com>
17748 H.J. Lu <hongjiu.lu@intel.com>
17749
17750 PR driver/81523
17751 * gcc.c (NO_PIE_SPEC): Delete.
17752 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
17753 exclusion..
17754 (LINK_PIE_SPEC): ..to here.
17755 (LINK_COMMAND_SPEC): Support -no-pie.
17756 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
17757 chain of crtbegin*.o selection, update for PIE_SPEC changes and
17758 format.
17759 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
17760 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
17761 (ENDFILE_CRTEND_SPEC): Similarly.
17762
17763 2017-08-08 Uros Bizjak <ubizjak@gmail.com>
17764
17765 PR target/81708
17766 * config/i386/i386.opt (mstack-protector-guard-reg=): New option
17767 (mstack-protector-guard-offset=): Ditto.
17768 * config/i386/i386.c (ix86_option_override): Handle
17769 -mstack-protector-guard-reg= and -mstack-protector-guard-offset=
17770 options.
17771 (ix86_stack_protect_guard): Use ix86_stack_protect_guard_reg and
17772 ix86_stack_protect_guard_offset variables.
17773 (TARGET_STACK_PROTECT_GUARD): Always define.
17774 * doc/invoke.texi (x86 Options): Document -mstack-protector-guard-reg=
17775 and -mstack-protector-guard-offset= options.
17776
17777 2017-08-08 Bin Cheng <bin.cheng@arm.com>
17778
17779 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): Handle
17780 boundary case for the last candidate.
17781
17782 2017-08-08 Bin Cheng <bin.cheng@arm.com>
17783
17784 * doc/invoke.texi: Document -ftree-loop-distribution for O3.
17785 * opts.c (default_options_table): Add OPT_ftree_loop_distribution.
17786
17787 2017-08-08 Tamar Christina <tamar.christina@arm.com>
17788
17789 PR middle-end/19706
17790 * config/aarch64/aarch64.md (xorsign<mode>3): New optabs.
17791 * config/aarch64/aarch64-builtins.c
17792 (aarch64_builtin_vectorized_function): Added CASE_CFN_XORSIGN.
17793 * config/aarch64/aarch64-simd-builtins.def: Added xorsign BINOP.
17794 * config/aarch64/aarch64-simd.md: Added xorsign<mode>3
17795
17796 2017-08-08 Tamar Christina <tamar.christina@arm.com>
17797 Andrew Pinski <pinskia@gmail.com>
17798
17799 PR middle-end/19706
17800 * internal-fn.def (XORSIGN): New.
17801 * optabs.def (xorsign_optab): New.
17802 * tree-ssa-math-opts.c (is_copysign_call_with_1): New.
17803 (convert_expand_mult_copysign): New.
17804 (pass_optimize_widening_mul::execute): Call
17805 convert_expand_mult_copysign.
17806
17807 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17808
17809 PR tree-optimization/81354
17810 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
17811 Insert on edges rather than explicitly creating landing pads.
17812 (analyze_candidates_and_replace): Commit edge inserts.
17813
17814 2017-08-08 Richard Biener <rguenther@suse.de>
17815
17816 PR middle-end/81719
17817 * tree-ssa-loop-niter.c: Include tree-dfa.h.
17818 (expand_simple_operations): Also look through ADDR_EXPRs with
17819 MEM_REF bases treating them as POINTER_PLUS_EXPR.
17820
17821 2017-08-08 Richard Biener <rguenther@suse.de>
17822
17823 PR tree-optimization/81723
17824 * tree-vect-slp.c (struct bst_traits): New hash traits.
17825 (bst_fail): New global.
17826 (vect_build_slp_tree_2): New worker, split out from ...
17827 (vect_build_slp_tree): ... this now wrapping it with using
17828 bst_fail set to cache SLP tree build fails. Properly handle
17829 max_tree_size.
17830 (vect_analyze_slp_instance): Allocate and free bst_fail.
17831
17832 2017-08-08 Martin Liska <mliska@suse.cz>
17833
17834 PR tree-opt/81696
17835 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
17836 LABEL_DECLs that can be from a different function.
17837
17838 2017-08-08 Bin Cheng <bin.cheng@arm.com>
17839
17840 PR tree-optimization/81744
17841 * tree-predcom.c (prepare_finalizers_chain): Deep copy expr of
17842 loop's number of iterations.
17843
17844 2017-08-08 Martin Liska <mliska@suse.cz>
17845
17846 * asan.c: Include header files.
17847 * attribs.c (build_decl_attribute_variant): New function moved
17848 from tree.[ch].
17849 (build_type_attribute_qual_variant): Likewise.
17850 (cmp_attrib_identifiers): Likewise.
17851 (simple_cst_list_equal): Likewise.
17852 (omp_declare_simd_clauses_equal): Likewise.
17853 (attribute_value_equal): Likewise.
17854 (comp_type_attributes): Likewise.
17855 (build_type_attribute_variant): Likewise.
17856 (lookup_ident_attribute): Likewise.
17857 (remove_attribute): Likewise.
17858 (merge_attributes): Likewise.
17859 (merge_type_attributes): Likewise.
17860 (merge_decl_attributes): Likewise.
17861 (merge_dllimport_decl_attributes): Likewise.
17862 (handle_dll_attribute): Likewise.
17863 (attribute_list_equal): Likewise.
17864 (attribute_list_contained): Likewise.
17865 * attribs.h (lookup_attribute): New function moved from tree.[ch].
17866 (lookup_attribute_by_prefix): Likewise.
17867 * bb-reorder.c: Include header files.
17868 * builtins.c: Likewise.
17869 * calls.c: Likewise.
17870 * cfgexpand.c: Likewise.
17871 * cgraph.c: Likewise.
17872 * cgraphunit.c: Likewise.
17873 * convert.c: Likewise.
17874 * dwarf2out.c: Likewise.
17875 * final.c: Likewise.
17876 * fold-const.c: Likewise.
17877 * function.c: Likewise.
17878 * gimple-expr.c: Likewise.
17879 * gimple-fold.c: Likewise.
17880 * gimple-pretty-print.c: Likewise.
17881 * gimple.c: Likewise.
17882 * gimplify.c: Likewise.
17883 * hsa-common.c: Likewise.
17884 * hsa-gen.c: Likewise.
17885 * internal-fn.c: Likewise.
17886 * ipa-chkp.c: Likewise.
17887 * ipa-cp.c: Likewise.
17888 * ipa-devirt.c: Likewise.
17889 * ipa-fnsummary.c: Likewise.
17890 * ipa-inline.c: Likewise.
17891 * ipa-visibility.c: Likewise.
17892 * ipa.c: Likewise.
17893 * lto-cgraph.c: Likewise.
17894 * omp-expand.c: Likewise.
17895 * omp-general.c: Likewise.
17896 * omp-low.c: Likewise.
17897 * omp-offload.c: Likewise.
17898 * omp-simd-clone.c: Likewise.
17899 * opts-global.c: Likewise.
17900 * passes.c: Likewise.
17901 * predict.c: Likewise.
17902 * sancov.c: Likewise.
17903 * sanopt.c: Likewise.
17904 * symtab.c: Likewise.
17905 * toplev.c: Likewise.
17906 * trans-mem.c: Likewise.
17907 * tree-chkp.c: Likewise.
17908 * tree-eh.c: Likewise.
17909 * tree-into-ssa.c: Likewise.
17910 * tree-object-size.c: Likewise.
17911 * tree-parloops.c: Likewise.
17912 * tree-profile.c: Likewise.
17913 * tree-ssa-ccp.c: Likewise.
17914 * tree-ssa-live.c: Likewise.
17915 * tree-ssa-loop.c: Likewise.
17916 * tree-ssa-sccvn.c: Likewise.
17917 * tree-ssa-structalias.c: Likewise.
17918 * tree-ssa.c: Likewise.
17919 * tree-streamer-in.c: Likewise.
17920 * tree-vectorizer.c: Likewise.
17921 * tree-vrp.c: Likewise.
17922 * tsan.c: Likewise.
17923 * ubsan.c: Likewise.
17924 * varasm.c: Likewise.
17925 * varpool.c: Likewise.
17926 * tree.c: Remove functions moved to attribs.[ch].
17927 * tree.h: Likewise.
17928 * config/aarch64/aarch64.c: Add attrs.h header file.
17929 * config/alpha/alpha.c: Likewise.
17930 * config/arc/arc.c: Likewise.
17931 * config/arm/arm.c: Likewise.
17932 * config/avr/avr.c: Likewise.
17933 * config/bfin/bfin.c: Likewise.
17934 * config/c6x/c6x.c: Likewise.
17935 * config/cr16/cr16.c: Likewise.
17936 * config/cris/cris.c: Likewise.
17937 * config/darwin.c: Likewise.
17938 * config/epiphany/epiphany.c: Likewise.
17939 * config/fr30/fr30.c: Likewise.
17940 * config/frv/frv.c: Likewise.
17941 * config/ft32/ft32.c: Likewise.
17942 * config/h8300/h8300.c: Likewise.
17943 * config/i386/winnt.c: Likewise.
17944 * config/ia64/ia64.c: Likewise.
17945 * config/iq2000/iq2000.c: Likewise.
17946 * config/lm32/lm32.c: Likewise.
17947 * config/m32c/m32c.c: Likewise.
17948 * config/m32r/m32r.c: Likewise.
17949 * config/m68k/m68k.c: Likewise.
17950 * config/mcore/mcore.c: Likewise.
17951 * config/microblaze/microblaze.c: Likewise.
17952 * config/mips/mips.c: Likewise.
17953 * config/mmix/mmix.c: Likewise.
17954 * config/mn10300/mn10300.c: Likewise.
17955 * config/moxie/moxie.c: Likewise.
17956 * config/msp430/msp430.c: Likewise.
17957 * config/nds32/nds32-isr.c: Likewise.
17958 * config/nds32/nds32.c: Likewise.
17959 * config/nios2/nios2.c: Likewise.
17960 * config/nvptx/nvptx.c: Likewise.
17961 * config/pa/pa.c: Likewise.
17962 * config/pdp11/pdp11.c: Likewise.
17963 * config/powerpcspe/powerpcspe.c: Likewise.
17964 * config/riscv/riscv.c: Likewise.
17965 * config/rl78/rl78.c: Likewise.
17966 * config/rx/rx.c: Likewise.
17967 * config/s390/s390.c: Likewise.
17968 * config/sh/sh.c: Likewise.
17969 * config/sol2.c: Likewise.
17970 * config/sparc/sparc.c: Likewise.
17971 * config/spu/spu.c: Likewise.
17972 * config/stormy16/stormy16.c: Likewise.
17973 * config/tilegx/tilegx.c: Likewise.
17974 * config/tilepro/tilepro.c: Likewise.
17975 * config/v850/v850.c: Likewise.
17976 * config/vax/vax.c: Likewise.
17977 * config/visium/visium.c: Likewise.
17978 * config/xtensa/xtensa.c: Likewise.
17979
17980 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
17981
17982 PR target/81593
17983 * config/rs6000/vsx.md (vsx_concat_<mode>, VSX_D): Cleanup
17984 constraints since the -mupper-regs-* switches have been
17985 eliminated.
17986 (vsx_concat_<mode>_1): New combiner insns to recognize inserting
17987 into a vector from a double word element that was extracted from
17988 another vector, and eliminate extra XXPERMDI instructions.
17989 (vsx_concat_<mode>_2): Likewise.
17990 (vsx_concat_<mode>_3): Likewise.
17991 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
17992 concat to allow optimizing inserts from previous extracts.
17993
17994 2017-08-07 Uros Bizjak <ubizjak@gmail.com>
17995
17996 * config/i386/i386.c (ix86_stack_protect_guard): Generate
17997 memory reference to a SSP offset in TLS address space.
17998 (ix86_print_operand) <case '@'>: Remove.
17999 (ix86_print_operand_punct_valid_p): Remove '@' code.
18000 * config/i386/i386.md (unspec): Remove UNSPEC_SP_TLS_SET and
18001 UNSPEC_SP_TLS_TEST.
18002 (stack_tls_protect_set_<mode>): Remove.
18003 (stack_protect_set): Do not call gen_stack_tls_protect_set_<mode>.
18004 (stack_tls_protect_test_<mode>): Remove.
18005 (stack_protect_test): Do not call gen_stack_tls_protect_test_<mode>.
18006
18007 2017-08-07 Olivier Hainque <hainque@adacore.com>
18008
18009 PR target/81755
18010 * config/vxworksae.h (VXWORKS_HAVE_TLS): Define.
18011
18012 2017-08-07 Douglas Rupp <rupp@adacore.com>
18013
18014 * Makefile.in (install-mkheaders): Fix typo, where the multi_dir
18015 variable was referenced as multidir in command.
18016
18017 2017-08-07 Jakub Jelinek <jakub@redhat.com>
18018
18019 PR c/69389
18020 * gimplify.c (goa_stabilize_expr): Handle BIT_INSERT_EXPR and
18021 BIT_FIELD_REF.
18022
18023 2017-08-07 Martin Liska <mliska@suse.cz>
18024
18025 * config/m32c/m32c.c: Add include of stringpool.h and attribs.h.
18026 * config/rl78/rl78.c: Add include of attribs.h.
18027 * config/sh/sh.c: Likewise.
18028 * config/v850/v850.c: Likewise.
18029
18030 2017-08-07 Tom de Vries <tom@codesourcery.com>
18031
18032 PR middle-end/78266
18033 * omp-expand.c (expand_oacc_for): Ensure diff_type is large enough.
18034
18035 2017-08-07 Martin Liska <mliska@suse.cz>
18036
18037 * config/mips/mips.c: Include attribs.h.
18038
18039 2017-08-07 Thomas Koenig <tkoenig@gcc.gnu.org>
18040
18041 PR fortran/68829
18042 * doc/invoke.texi: Document change in behvaior for -Ofast for
18043 Fortran.
18044
18045 2017-08-07 Wilco Dijkstra <wdijkstr@arm.com>
18046
18047 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg):
18048 Use gen_frame_mem.
18049 (aarch64_pop_regs): Likewise.
18050 (aarch64_gen_load_pair): Likewise.
18051 (aarch64_save_callee_saves): Likewise.
18052 (aarch64_restore_callee_saves): Likewise.
18053
18054 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
18055
18056 * config/i386/i386.c: Revert the last change.
18057
18058 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
18059
18060 PR target/81736
18061 * config/i386/i386.c (ix86_finalize_stack_realign_flags): Renamed
18062 to ...
18063 (ix86_finalize_stack_frame_flags): This. Also clear
18064 frame_pointer_needed if -fno-omit-frame-pointer is used without
18065 stack access.
18066 (ix86_expand_prologue): Replace ix86_finalize_stack_realign_flags
18067 with ix86_finalize_stack_frame_flags.
18068 (ix86_expand_epilogue): Likewise.
18069 (ix86_expand_split_stack_prologue): Likewise.
18070
18071 2017-08-07 H.J. Lu <hongjiu.lu@intel.com>
18072
18073 PR target/81743
18074 * config/i386/i386.c (get_builtin_code_for_version): Set priority
18075 to P_AES for Westmere.
18076
18077 2017-08-07 Jonathan Yong <10walls@gmail.com>
18078
18079 * config/i386/mingw.opt (fset-stack-executable): Removed.
18080 * config/i386/cygming.opt (fset-stack-executable): Moved
18081 from mingw.opt.
18082 * config/i386/cygwin.h: Define CHECK_EXECUTE_STACK_ENABLED.
18083
18084 2017-08-07 Segher Boessenkool <segher@kernel.crashing.org>
18085
18086 * print-rtl.c (print_exp): Print NOT as "~" instead of as "!".
18087
18088 2017-08-07 Marek Polacek <polacek@redhat.com>
18089
18090 PR middle-end/81737
18091 * fold-const.c (fold_indirect_ref_1): Check type_domain.
18092
18093 2017-08-07 Martin Liska <mliska@suse.cz>
18094
18095 * attribs.h (canonicalize_attr_name): New function.
18096 (cmp_attribs): Move from c-format.c and adjusted.
18097 (is_attribute_p): Moved from tree.h.
18098 * tree-inline.c: Add new includes.
18099 * tree.c (cmp_attrib_identifiers): Use cmp_attribs.
18100 (private_is_attribute_p): Remove.
18101 (private_lookup_attribute): Likewise.
18102 (private_lookup_attribute_by_prefix): Simplify.
18103 (remove_attribute): Use is_attribute_p.
18104 * tree.h: Remove removed declarations.
18105
18106 2017-08-07 Jakub Jelinek <jakub@redhat.com>
18107
18108 PR middle-end/81698
18109 * stmt.c (emit_case_dispatch_table): Add DEFAULT_EDGE argument,
18110 instead of computing it in the function. Formatting fix.
18111 (expand_case): Don't rely on default_edge being the first edge,
18112 clear it if removing it, pass default_edge to
18113 emit_case_dispatch_table.
18114 (expand_sjlj_dispatch_table): Pass NULL as DEFAULT_EDGE, formatting
18115 fix.
18116
18117 2017-08-06 Uros Bizjak <ubizjak@gmail.com>
18118
18119 * config/alpha/alpha.c (alpha_reorg): If trap is the last active
18120 insn in the function, emit NOP after the insn.
18121
18122 2017-08-06 Tom de Vries <tom@codesourcery.com>
18123
18124 * omp-expand.c (expand_oacc_for): Add missing edge probability for tile
18125 and element loops.
18126
18127 2017-08-06 Tom de Vries <tom@codesourcery.com>
18128
18129 * omp-expand.c (expand_oacc_for): Add missing edge probability for chunk
18130 loop.
18131
18132 2017-08-04 Yury Gribov <tetra2005@gmail.com>
18133
18134 PR tree-optimization/57371
18135 * match.pd: New pattern.
18136
18137 2017-08-04 Marek Polacek <polacek@redhat.com>
18138
18139 PR middle-end/81695
18140 * fold-const.c (fold_indirect_ref_1): For ((int *)&a + 4 -> a[1],
18141 perform the computation in offset_int.
18142
18143 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
18144
18145 PR tree-optimization/81136
18146 * tree-vectorizer.h: Include tree-hash-traits.h.
18147 (vec_base_alignments): New typedef.
18148 (vec_info): Add a base_alignments field.
18149 (vect_record_base_alignments): Declare.
18150 * tree-data-ref.h (data_reference): Add an is_conditional_in_stmt
18151 field.
18152 (DR_IS_CONDITIONAL_IN_STMT): New macro.
18153 (create_data_ref): Add an is_conditional_in_stmt argument.
18154 * tree-data-ref.c (create_data_ref): Likewise. Use it to initialize
18155 the is_conditional_in_stmt field.
18156 (data_ref_loc): Add an is_conditional_in_stmt field.
18157 (get_references_in_stmt): Set the is_conditional_in_stmt field.
18158 (find_data_references_in_stmt): Update call to create_data_ref.
18159 (graphite_find_data_references_in_stmt): Likewise.
18160 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
18161 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
18162 (vect_record_base_alignment): New function.
18163 (vect_record_base_alignments): Likewise.
18164 (vect_compute_data_ref_alignment): Adjust base_addr and aligned_to
18165 for nested statements even if we fail to compute a misalignment.
18166 Use pooled base alignments for unconditional references.
18167 (vect_find_same_alignment_drs): Compare base addresses instead
18168 of base objects.
18169 (vect_analyze_data_refs_alignment): Call vect_record_base_alignments.
18170 * tree-vect-slp.c (vect_slp_analyze_bb_1): Likewise.
18171
18172 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
18173
18174 * tree-vectorizer.h (vec_info): Add a constructor and destructor.
18175 Add an explicit name for the enum. Use auto_vec for slp_instances
18176 and grouped_stores.
18177 (_loop_vec_info): Add a constructor and destructor. Use auto_vec
18178 for all vectors.
18179 (_bb_vec_info): Add a constructor and destructor.
18180 (vinfo_for_stmt): Return NULL for uids of -1 as well.
18181 (destroy_loop_vec_info): Delete.
18182 (vect_destroy_datarefs): Likewise.
18183 * tree-vectorizer.c (vect_destroy_datarefs): Delete.
18184 (vec_info::vec_info): New function.
18185 (vec_info::~vec_info): Likewise.
18186 (vectorize_loops): Use delete instead of destroy_loop_vec_info.
18187 * tree-parloops.c (gather_scalar_reductions): Use delete instead of
18188 destroy_loop_vec_info.
18189 * tree-vect-loop.c (new_loop_vec_info): Replace with...
18190 (_loop_vec_info::_loop_vec_info): ...this.
18191 (destroy_loop_vec_info): Replace with...
18192 (_loop_vec_info::~_loop_vec_info): ...this. Unconditionally delete
18193 the stmt_vec_infos. Leave handling of vec_info information to its
18194 destructor. Remove explicit vector releases.
18195 (vect_analyze_loop_form): Use new instead of new_loop_vec_info.
18196 (vect_analyze_loop): Use delete instead of destroy_loop_vec_info.
18197 * tree-vect-slp.c (new_bb_vec_info): Replace with...
18198 (_bb_vec_info::_bb_vec_info): ...this. Don't reserve space in
18199 BB_VINFO_GROUPED_STORES or BB_VINFO_SLP_INSTANCES.
18200 (destroy_bb_vec_info): Replace with...
18201 (_bb_vec_info::~_bb_vec_info): ...this. Leave handling of vec_info
18202 information to its destructor.
18203 (vect_slp_analyze_bb_1): Use new and delete instead of
18204 new_bb_vec_info and destroy_bb_vec_info.
18205 (vect_slp_bb): Replace 2 calls to destroy_bb_vec_info with a
18206 single delete.
18207
18208 2017-08-04 Richard Sandiford <richard.sandiford@linaro.org>
18209
18210 * tree-data-ref.h (subscript): Add access_fn field.
18211 (data_dependence_relation): Add could_be_independent_p.
18212 (SUB_ACCESS_FN, DDR_COULD_BE_INDEPENDENT_P): New macros.
18213 (same_access_functions): Move to tree-data-ref.c.
18214 * tree-data-ref.c (ref_contains_union_access_p): New function.
18215 (access_fn_component_p): Likewise.
18216 (access_fn_components_comparable_p): Likewise.
18217 (dr_analyze_indices): Add a reference to access_fn_component_p.
18218 (dump_data_dependence_relation): Use SUB_ACCESS_FN instead of
18219 DR_ACCESS_FN.
18220 (constant_access_functions): Likewise.
18221 (add_other_self_distances): Likewise.
18222 (same_access_functions): Likewise. (Moved from tree-data-ref.h.)
18223 (initialize_data_dependence_relation): Use XCNEW and remove
18224 explicit zeroing of DDR_REVERSED_P. Look for a subsequence
18225 of access functions that have the same type. Allow the
18226 subsequence to end with different bases in some circumstances.
18227 Record the chosen access functions in SUB_ACCESS_FN.
18228 (build_classic_dist_vector_1): Replace ddr_a and ddr_b with
18229 a_index and b_index. Use SUB_ACCESS_FN instead of DR_ACCESS_FN.
18230 (subscript_dependence_tester_1): Likewise dra and drb.
18231 (build_classic_dist_vector): Update calls accordingly.
18232 (subscript_dependence_tester): Likewise.
18233 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Check
18234 DDR_COULD_BE_INDEPENDENT_P.
18235 * tree-vectorizer.h (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Test
18236 comp_alias_ddrs instead of may_alias_ddrs.
18237 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
18238 New function.
18239 (vect_analyze_data_ref_dependence): Use it if
18240 DDR_COULD_BE_INDEPENDENT_P, but fall back to using the recorded
18241 distance vectors if that fails.
18242 (dependence_distance_ge_vf): New function.
18243 (vect_prune_runtime_alias_test_list): Use it. Don't clear
18244 LOOP_VINFO_MAY_ALIAS_DDRS.
18245
18246 2017-08-04 Richard Biener <rguenther@suse.de>
18247
18248 PR middle-end/81705
18249 * fold-const.c (fold_binary_loc): Properly restrict
18250 minus_var0 && minus_var1 case when associating undefined overflow
18251 entities.
18252
18253 2017-08-04 Tom de Vries <tom@codesourcery.com>
18254
18255 * omp-simd-clone.c (simd_clone_adjust): Add missing edge probability.
18256
18257 2017-08-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18258
18259 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
18260 Don't start diagnostic messages with a capital letter.
18261 * config/rs6000/rs6000.c (rs6000_option_override_internal):
18262 Likewise.
18263 (rs6000_invalid_builtin): Likewise.
18264 (rs6000_trampoline_init): Likewise.
18265
18266 2017-08-03 Jakub Jelinek <jakub@redhat.com>
18267
18268 PR target/81621
18269 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
18270 after setting changeable df flags.
18271
18272 2017-08-03 Richard Biener <rguenther@suse.de>
18273
18274 * tree-ssa-reassoc.c (should_break_up_subtract): Also break
18275 up if the use is in USE - X.
18276
18277 2017-08-03 Alexander Monakov <amonakov@ispras.ru>
18278
18279 * toplev.c (dumpfile.h): New include.
18280 (internal_error_reentered): New static function. Use it...
18281 (internal_error_function): ...here to handle reentered internal_error.
18282
18283 2017-08-03 Richard Biener <rguenther@suse.de>
18284
18285 PR middle-end/81148
18286 * fold-const.c (split_tree): Add minus_var and minus_con
18287 arguments, remove unused loc arg. Never generate NEGATE_EXPRs
18288 here but always use minus_*.
18289 (associate_trees): Assert we never associate with MINUS_EXPR
18290 and NULL first operand. Do not recurse for PLUS_EXPR operands
18291 when associating as MINUS_EXPR either.
18292 (fold_binary_loc): Track minus_var and minus_con.
18293
18294 2017-08-03 Tom de Vries <tom@codesourcery.com>
18295
18296 PR lto/81430
18297 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): If
18298 ACCEL_COMPILER, apply finish_options on
18299 DECL_FUNCTION_SPECIFIC_OPTIMIZATION.
18300
18301 2017-08-03 Tom de Vries <tom@codesourcery.com>
18302
18303 PR target/81662
18304 * config/nvptx/nvptx.c (nvptx_option_override): Emit sorry if
18305 function_entry_patch_area_size > 0.
18306
18307 2017-08-03 Jakub Jelinek <jakub@redhat.com>
18308
18309 PR driver/81650
18310 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
18311 instead of 10??LU, perform unit multiplication in wide_int,
18312 don't change alloc_object_size_limit if the limit is larger
18313 than SSIZE_MAX.
18314
18315 PR tree-optimization/81655
18316 PR tree-optimization/81588
18317 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Handle also
18318 the case when ranges[i].low and high are 1 for unsigned type with
18319 precision 1.
18320
18321 PR middle-end/81052
18322 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
18323 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
18324
18325 2017-08-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18326
18327 * tree-vrp.h: Add include guard.
18328
18329 2017-08-02 Uros Bizjak <ubizjak@gmail.com>
18330
18331 PR target/81644
18332 * config/i386/i386.md (unspecv): Add UNSPECV_UD2.
18333 (ud2): New insn pattern.
18334 * config/i386/i386.c (ix86_expand_epilogue):
18335 For naked functions, generate ud2 instead of trap insn.
18336
18337 2017-08-02 Marek Polacek <polacek@redhat.com>
18338
18339 PR other/81667
18340 * alloc-pool.h (base_pool_allocator): Initialize m_elt_size.
18341
18342 2017-08-02 Tom de Vries <tom@codesourcery.com>
18343 Cesar Philippidis <cesar@codesourcery.com>
18344
18345 * config/nvptx/nvptx.c (nvptx_lockless_update, nvptx_lockfull_update):
18346 Add missing edge probabilities.
18347
18348 2017-08-02 Tamar Christina <tamar.christina@arm.com>
18349
18350 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int):
18351 Correct endianness.
18352
18353 2017-08-02 Jakub Jelinek <jakub@redhat.com>
18354
18355 PR middle-end/79499
18356 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
18357 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
18358 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
18359 prologue_seq sequences - if any.
18360
18361 2017-08-02 Richard Biener <rguenther@suse.de>
18362
18363 * tree-vect-stmts.c (vectorizable_store): Perform vector extracts
18364 via vectors if supported, integer extracts via punning if supported
18365 or otherwise vector extracts.
18366
18367 2017-08-02 Richard Biener <rguenther@suse.de>
18368
18369 * tree-ssa-pre.c (bitmap_insert_into_set_1): Remove and inline
18370 into ...
18371 (bitmap_insert_into_set): ... this.
18372
18373 2017-08-02 Richard Biener <rguenther@suse.de>
18374
18375 PR tree-optimization/81633
18376 Revert
18377 2015-08-17 Alan Hayward <alan.hayward@arm.com>
18378
18379 PR tree-optimization/71752
18380 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
18381
18382 2017-08-01 Daniel Santos <daniel.santos@pobox.com>
18383
18384 * config/i386/i386.h (ix86_frame::outlined_save_offset): Remove field.
18385 (machine_function::call_ms2sysv_pad_out): Remove field.
18386 * config/i386/i386.c (xlogue_layout::get_stack_space_used): Modify.
18387 (ix86_compute_frame_layout): Likewise.
18388
18389 2017-08-01 H.J. Lu <hongjiu.lu@intel.com>
18390
18391 PR target/81654
18392 * config/i386/i386.c (ix86_set_func_type): Disallow naked
18393 attribute with interrupt attribute.
18394
18395 2017-08-01 Andrew Pinski <apinski@cavium.com>
18396
18397 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Check
18398 BIT_INSERT_EXPR's operand 1
18399 to see if the types precision matches.
18400
18401 2017-08-01 Martin Liska <mliska@suse.cz>
18402
18403 PR middle-end/70140
18404 * builtins.c (expand_builtin_memcpy_args): Remove.
18405 (expand_builtin_memcpy): Call newly added function
18406 expand_builtin_memory_copy_args.
18407 (expand_builtin_memcpy_with_bounds): Likewise.
18408 (expand_builtin_mempcpy): Remove last argument.
18409 (expand_builtin_mempcpy_with_bounds): Likewise.
18410 (expand_builtin_memory_copy_args): New function created from
18411 expand_builtin_mempcpy_args with small modifications.
18412 (expand_builtin_mempcpy_args): Remove.
18413 (expand_builtin_stpcpy): Remove unused argument.
18414 (expand_builtin): Likewise.
18415 (expand_builtin_with_bounds): Likewise.
18416
18417 2017-08-01 Martin Liska <mliska@suse.cz>
18418
18419 Revert r250771
18420 Make mempcpy more optimal (PR middle-end/70140).
18421
18422 2017-08-01 Jakub Jelinek <jakub@redhat.com>
18423
18424 PR target/81622
18425 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
18426 __builtin_vec_cmpne verify both arguments are compatible vectors
18427 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
18428 verify arg1_type is a pointer or array type. For __builtin_vec_st,
18429 move computation of aligned to after checking the argument types.
18430 Formatting fixes.
18431
18432 PR target/80846
18433 * config/rs6000/vsx.md (vextract_fp_from_shorth,
18434 vextract_fp_from_shortl): Add element mode after mode in gen_vec_init*
18435 calls.
18436
18437 2017-08-01 Jerome Lambourg <lambourg@adacore.com>
18438 Doug Rupp <rupp@adacore.com>
18439 Olivier Hainque <hainque@adacore.com>
18440
18441 * config.gcc (arm-wrs-vxworks*): Rework to handle arm-wrs-vxworks7 as
18442 well as arm-wrs-vxworks. Update target_cpu_name from arm6 (arch v3) to
18443 arm8 (arch v4).
18444 * config/arm/vxworks.h (MAYBE_TARGET_BPABI_CPP_BUILTINS): New, helper
18445 for TARGET_OS_CPP_BUILTIN.
18446 (TARGET_OS_CPP_BUILTIN): Invoke MAYBE_TARGET_BPABI_CPP_BUILTINS(),
18447 refine CPU definitions for arm_arch5 and add those for arm_arch6 and
18448 arm_arch7.
18449 (MAYBE_ASM_ABI_SPEC): New, helper for SUBTARGET_EXTRA_ASM_SPEC,
18450 passing required abi options to the assembler for EABI configurations.
18451 (EXTRA_CC1_SPEC): New macro, to help prevent the implicit production
18452 of .text.hot and .text.unlikely sections for kernel modules when
18453 using ARM style exceptions.
18454 (CC1_SPEC): Remove obsolete attempt at mimicking Diab toolchain
18455 options. Add EXTRA_CC1_SPEC.
18456 (VXWORKS_ENDIAN_SPEC): Adjust comment and remove handling of Diab
18457 toolchain options.
18458 (DWARF2_UNWIND_INFO): Redefine to handle the pre/post VxWorks 7
18459 transition.
18460 (ARM_TARGET2_DWARF_FORMAT): Define.
18461 * config/arm/t-vxworks: Adjust multilib control to removal of the
18462 Diab command line options.
18463
18464 2017-08-01 Martin Liska <mliska@suse.cz>
18465
18466 PR gcov-profile/81561
18467 * gcov.c (unblock): Make unblocking safe as we need to preserve
18468 index correspondence of blocks and block_lists.
18469
18470 2017-08-01 Richard Biener <rguenther@suse.de>
18471
18472 PR tree-optimization/81181
18473 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
18474 (compute_antic): ... end of iteration here.
18475
18476 2017-08-01 James Greenhalgh <james.greenhalgh@arm.com>
18477
18478 * common.opt (ftree-vectorize): No longer set flag_tree_vectorize.
18479 (ftree-loop-vectorize): Set as EnabledBy ftree-vectorize.
18480 (ftree-slp-vectorize): Likewise.
18481 * omp-expand (expand_omp_simd): Remove flag_tree_vectorize, as it
18482 can no longer be set independent of flag_tree_loop_vectorize.
18483 * omp-general.c (emp_max_vf): Likewise.
18484 * opts.c (enable_fdo_optimizations): Remove references to
18485 flag_tree_vectorize, these are now implicit.
18486 (common_handle_option): Remove handling for OPT_ftree_vectorize,
18487 and leave it for the options machinery.
18488
18489 2017-08-01 Martin Liska <mliska@suse.cz>
18490
18491 PR middle-end/70140
18492 * builtins.c (expand_builtin_memcpy_args): Remove.
18493 (expand_builtin_memcpy): Call newly added function
18494 expand_builtin_memory_copy_args.
18495 (expand_builtin_memcpy_with_bounds): Likewise.
18496 (expand_builtin_mempcpy): Remove last argument.
18497 (expand_builtin_mempcpy_with_bounds): Likewise.
18498 (expand_builtin_memory_copy_args): New function created from
18499 expand_builtin_mempcpy_args with small modifications.
18500 (expand_builtin_mempcpy_args): Remove.
18501 (expand_builtin_stpcpy): Remove unused argument.
18502 (expand_builtin): Likewise.
18503 (expand_builtin_with_bounds): Likewise.
18504
18505 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
18506
18507 PR target/81641
18508 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
18509 print "ds:" only for immediates in generic address space.
18510
18511 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
18512
18513 PR target/81639
18514 * config/i386/i386.c (ix86_funciton_naked): New prototype.
18515 (ix86_function_ok_for_sibcall): Return false for naked functions.
18516
18517 2017-08-01 Richard Biener <rguenther@suse.de>
18518
18519 * tree-ssa-pre.c (print_pre_expr): Handle NULL expr.
18520 (compute_antic): Seed worklist with exit block predecessors.
18521 * cfganal.c (dfs_find_deadend): For a cycle return the source
18522 of the edge closing it.
18523
18524 2017-08-01 Tamar Christina <tamar.christina@arm.com>
18525
18526 * config/aarch64/aarch64.c
18527 (aarch64_can_const_movi_rtx_p): Move 0 check.
18528
18529 2017-08-01 Bin Cheng <bin.cheng@arm.com>
18530
18531 * tree.h (POINTER_TYPE_OVERFLOW_UNDEFINED): Delete.
18532 * fold-const.c (fold_comparison, fold_binary_loc): Delete use of
18533 above macro.
18534 * match.pd: Ditto in address comparison pattern.
18535
18536 2017-08-01 Bin Cheng <bin.cheng@arm.com>
18537
18538 PR tree-optimization/81627
18539 * tree-predcom.c (prepare_finalizers): Always rewrite into loop
18540 closed ssa form for store-store chain.
18541
18542 2017-08-01 Bin Cheng <bin.cheng@arm.com>
18543
18544 PR tree-optimization/81620
18545 * tree-predcom.c (add_ref_to_chain): Don't set has_max_use_after
18546 for store-store chain.
18547
18548 2017-08-01 Jakub Jelinek <jakub@redhat.com>
18549
18550 PR tree-optimization/81588
18551 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
18552 ranges[i].in_p, invert comparison code ccode. For >/>=,
18553 swap rhs1 and rhs2 and comparison code unconditionally,
18554 for </<= don't do that. Don't swap rhs1/rhs2 again if
18555 ranges[i].in_p, instead invert comparison code ccode if
18556 opcode or oe->rank is BIT_IOR_EXPR.
18557
18558 PR target/80846
18559 * optabs.def (vec_extract_optab, vec_init_optab): Change from
18560 a direct optab to conversion optab.
18561 * optabs.c (expand_vector_broadcast): Use convert_optab_handler
18562 with GET_MODE_INNER as last argument instead of optab_handler.
18563 * expmed.c (extract_bit_field_1): Likewise. Use vector from
18564 vector extraction if possible and optab is available.
18565 * expr.c (store_constructor): Use convert_optab_handler instead
18566 of optab_handler. Use vector initialization from smaller
18567 vectors if possible and optab is available.
18568 * tree-vect-stmts.c (vectorizable_load): Likewise.
18569 * doc/md.texi (vec_extract, vec_init): Document that the optabs
18570 now have two modes.
18571 * config/i386/i386.c (ix86_expand_vector_init): Handle expansion
18572 of vec_init from half-sized vectors with the same element mode.
18573 * config/i386/sse.md (ssehalfvecmode): Add V4TI case.
18574 (ssehalfvecmodelower, ssescalarmodelower): New mode attributes.
18575 (reduc_plus_scal_v8df, reduc_plus_scal_v4df, reduc_plus_scal_v2df,
18576 reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, reduc_plus_scal_v4sf,
18577 reduc_<code>_scal_<mode>, reduc_umin_scal_v8hi): Add element mode
18578 after mode in gen_vec_extract* calls.
18579 (vec_extract<mode>): Renamed to ...
18580 (vec_extract<mode><ssescalarmodelower>): ... this.
18581 (vec_extract<mode><ssehalfvecmodelower>): New expander.
18582 (rotl<mode>3, rotr<mode>3, <shift_insn><mode>3, ashrv2di3): Add
18583 element mode after mode in gen_vec_init* calls.
18584 (VEC_INIT_HALF_MODE): New mode iterator.
18585 (vec_init<mode>): Renamed to ...
18586 (vec_init<mode><ssescalarmodelower>): ... this.
18587 (vec_init<mode><ssehalfvecmodelower>): New expander.
18588 * config/i386/mmx.md (vec_extractv2sf): Renamed to ...
18589 (vec_extractv2sfsf): ... this.
18590 (vec_initv2sf): Renamed to ...
18591 (vec_initv2sfsf): ... this.
18592 (vec_extractv2si): Renamed to ...
18593 (vec_extractv2sisi): ... this.
18594 (vec_initv2si): Renamed to ...
18595 (vec_initv2sisi): ... this.
18596 (vec_extractv4hi): Renamed to ...
18597 (vec_extractv4hihi): ... this.
18598 (vec_initv4hi): Renamed to ...
18599 (vec_initv4hihi): ... this.
18600 (vec_extractv8qi): Renamed to ...
18601 (vec_extractv8qiqi): ... this.
18602 (vec_initv8qi): Renamed to ...
18603 (vec_initv8qiqi): ... this.
18604 * config/rs6000/vector.md (VEC_base_l): New mode attribute.
18605 (vec_init<mode>): Renamed to ...
18606 (vec_init<mode><VEC_base_l>): ... this.
18607 (vec_extract<mode>): Renamed to ...
18608 (vec_extract<mode><VEC_base_l>): ... this.
18609 * config/rs6000/paired.md (vec_initv2sf): Renamed to ...
18610 (vec_initv2sfsf): ... this.
18611 * config/rs6000/altivec.md (splitter, altivec_copysign_v4sf3,
18612 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
18613 vec_unpacku_lo_v8hi, mulv16qi3, altivec_vreve<mode>2): Add
18614 element mode after mode in gen_vec_init* calls.
18615 * config/aarch64/aarch64-simd.md (vec_init<mode>): Renamed to ...
18616 (vec_init<mode><Vel>): ... this.
18617 (vec_extract<mode>): Renamed to ...
18618 (vec_extract<mode><Vel>): ... this.
18619 * config/aarch64/iterators.md (Vel): New mode attribute.
18620 * config/s390/s390.c (s390_expand_vec_strlen, s390_expand_vec_movstr):
18621 Add element mode after mode in gen_vec_extract* calls.
18622 * config/s390/vector.md (non_vec_l): New mode attribute.
18623 (vec_extract<mode>): Renamed to ...
18624 (vec_extract<mode><non_vec_l>): ... this.
18625 (vec_init<mode>): Renamed to ...
18626 (vec_init<mode><non_vec_l>): ... this.
18627 * config/s390/s390-builtins.def (s390_vlgvb, s390_vlgvh, s390_vlgvf,
18628 s390_vlgvf_flt, s390_vlgvg, s390_vlgvg_dbl): Add element mode after
18629 vec_extract mode.
18630 * config/arm/iterators.md (V_elem_l): New mode attribute.
18631 * config/arm/neon.md (vec_extract<mode>): Renamed to ...
18632 (vec_extract<mode><V_elem_l>): ... this.
18633 (vec_extractv2di): Renamed to ...
18634 (vec_extractv2didi): ... this.
18635 (vec_init<mode>): Renamed to ...
18636 (vec_init<mode><V_elem_l>): ... this.
18637 (reduc_plus_scal_<mode>, reduc_plus_scal_v2di, reduc_smin_scal_<mode>,
18638 reduc_smax_scal_<mode>, reduc_umin_scal_<mode>,
18639 reduc_umax_scal_<mode>, neon_vget_lane<mode>, neon_vget_laneu<mode>):
18640 Add element mode after gen_vec_extract* calls.
18641 * config/mips/mips-msa.md (vec_init<mode>): Renamed to ...
18642 (vec_init<mode><unitmode>): ... this.
18643 (vec_extract<mode>): Renamed to ...
18644 (vec_extract<mode><unitmode>): ... this.
18645 * config/mips/loongson.md (vec_init<mode>): Renamed to ...
18646 (vec_init<mode><unitmode>): ... this.
18647 * config/mips/mips-ps-3d.md (vec_initv2sf): Renamed to ...
18648 (vec_initv2sfsf): ... this.
18649 (vec_extractv2sf): Renamed to ...
18650 (vec_extractv2sfsf): ... this.
18651 (reduc_plus_scal_v2sf, reduc_smin_scal_v2sf, reduc_smax_scal_v2sf):
18652 Add element mode after gen_vec_extract* calls.
18653 * config/mips/mips.md (unitmode): New mode iterator.
18654 * config/spu/spu.c (spu_expand_prologue, spu_allocate_stack,
18655 spu_builtin_extract): Add element mode after gen_vec_extract* calls.
18656 * config/spu/spu.md (inner_l): New mode attribute.
18657 (vec_init<mode>): Renamed to ...
18658 (vec_init<mode><inner_l>): ... this.
18659 (vec_extract<mode>): Renamed to ...
18660 (vec_extract<mode><inner_l>): ... this.
18661 * config/sparc/sparc.md (veltmode): New mode iterator.
18662 (vec_init<VMALL:mode>): Renamed to ...
18663 (vec_init<VMALL:mode><VMALL:veltmode>): ... this.
18664 * config/ia64/vect.md (vec_initv2si): Renamed to ...
18665 (vec_initv2sisi): ... this.
18666 (vec_initv2sf): Renamed to ...
18667 (vec_initv2sfsf): ... this.
18668 (vec_extractv2sf): Renamed to ...
18669 (vec_extractv2sfsf): ... this.
18670 * config/powerpcspe/vector.md (VEC_base_l): New mode attribute.
18671 (vec_init<mode>): Renamed to ...
18672 (vec_init<mode><VEC_base_l>): ... this.
18673 (vec_extract<mode>): Renamed to ...
18674 (vec_extract<mode><VEC_base_l>): ... this.
18675 * config/powerpcspe/paired.md (vec_initv2sf): Renamed to ...
18676 (vec_initv2sfsf): ... this.
18677 * config/powerpcspe/altivec.md (splitter, altivec_copysign_v4sf3,
18678 vec_unpacku_hi_v16qi, vec_unpacku_hi_v8hi, vec_unpacku_lo_v16qi,
18679 vec_unpacku_lo_v8hi, mulv16qi3): Add element mode after mode in
18680 gen_vec_init* calls.
18681
18682 2017-08-01 Richard Biener <rguenther@suse.de>
18683
18684 PR tree-optimization/81297
18685 * tree-vrp.c (get_single_symbol): Remove assert, instead drop
18686 TREE_OVERFLOW from INTEGER_CSTs.
18687
18688 2017-07-31 Segher Boessenkool <segher@kernel.crashing.org>
18689
18690 * config/rs6000/rs6000.c (enum rs6000_reg_type): Delete trailing comma.
18691
18692 2017-07-31 Carl Love <cel@us.ibm.com>
18693
18694 * config/rs6000/rs6000-c: Add support for built-in functions
18695 vector signed char vec_xl_be (signed long long, signed char *);
18696 vector unsigned char vec_xl_be (signed long long, unsigned char *);
18697 vector signed int vec_xl_be (signed long long, signed int *);
18698 vector unsigned int vec_xl_be (signed long long, unsigned int *);
18699 vector signed long long vec_xl_be (signed long long, signed long long *);
18700 vector unsigned long long vec_xl_be (signed long long, unsigned long long *);
18701 vector signed short vec_xl_be (signed long long, signed short *);
18702 vector unsigned short vec_xl_be (signed long long, unsigned short *);
18703 vector double vec_xl_be (signed long long, double *);
18704 vector float vec_xl_be (signed long long, float *);
18705 * config/rs6000/altivec.h (vec_xl_be): Add #define.
18706 * config/rs6000/rs6000-builtin.def (XL_BE_V16QI, XL_BE_V8HI, XL_BE_V4SI)
18707 XL_BE_V2DI, XL_BE_V4SF, XL_BE_V2DF, XL_BE): Add definitions
18708 for the builtins.
18709 * config/rs6000/rs6000.c (altivec_expand_xl_be_builtin): Add function.
18710 (altivec_expand_builtin): Add switch statement to call
18711 altivec_expand_xl_be for each builtin.
18712 (altivec_init_builtins): Add def_builtin for _builtin_vsx_le_be_v8hi,
18713 __builtin_vsx_le_be_v4si, __builtin_vsx_le_be_v2di,
18714 __builtin_vsx_le_be_v4sf, __builtin_vsx_le_be_v2df,
18715 __builtin_vsx_le_be_v16qi.
18716 * doc/extend.texi: Update the built-in documentation file for the
18717 new built-in functions.
18718
18719 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
18720
18721 PR target/25967
18722 * config/i386/i386.c (ix86_allocate_stack_slots_for_args):
18723 New function.
18724 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
18725
18726 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18727
18728 * config.gcc: Add z14.
18729 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
18730 CPU model numbers for z13s and z14.
18731 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
18732 arch12 with z14.
18733 * config/s390/s390-opts.h (enum processor_type): Rename
18734 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
18735 * config/s390/s390.c (processor_table): Add field for CPU name to
18736 be passed to Binutils.
18737 (s390_asm_output_machine_for_arch): Use the new field in
18738 processor_table for Binutils.
18739 (s390_expand_builtin): Replace arch12 with z14.
18740 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
18741 (s390_get_sched_attrmask): Likewise.
18742 (s390_get_unit_mask): Likewise.
18743 * config/s390/s390.opt: Add z14 to processor_type enum.
18744
18745 2017-07-31 Martin Jambor <mjambor@suse.cz>
18746
18747 PR hsa/81477
18748 * ipa-fnsummary.c (ipa_fn_summary_generate): Set versionable
18749 regardless of optimization level.
18750
18751 2017-07-31 Jan Hubicka <hubicka@ucw.cz>
18752 Martin Liska <mliska@suse.cz>
18753
18754 * predict.def: Remove old comment and adjust probability.
18755 * gimplify.c (should_warn_for_implicit_fallthrough): Ignore
18756 PREDICT statements.
18757
18758 2017-07-31 Uros Bizjak <ubizjak@gmail.com>
18759
18760 PR target/25967
18761 * config/i386/i386.c (ix86_function_naked): New function.
18762 (ix86_can_use_return_insn_p): Return false for naked functions.
18763 (ix86_expand_prologue): Skip prologue for naked functions.
18764 (ix86_expand_epilogue): Skip epilogue for naked functions
18765 and emit trap instruction.
18766 (ix86_warn_func_return): New function.
18767 (ix86_attribute_table): Add "naked" attribute specification.
18768 (TARGET_WARN_FUNC_RETURN): Define.
18769 * doc/extend.texi (x86 Function Attributes) <naked>: Document it.
18770
18771 2017-07-31 Martin Liska <mliska@suse.cz>
18772
18773 * gimple-pretty-print.c (dump_gimple_label): Never dump BB info.
18774 (dump_gimple_bb_header): Always dump BB info.
18775 (pp_cfg_jump): Do not append info about BB when dumping a jump.
18776
18777 2017-07-31 Martin Liska <mliska@suse.cz>
18778
18779 PR sanitize/81530
18780 * convert.c (convert_to_integer_1): Guard condition with flag_sanitize_p
18781 also with current_function_decl non-null equality.
18782
18783 2017-07-31 Jakub Jelinek <jakub@redhat.com>
18784
18785 PR sanitizer/81604
18786 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
18787 change type to the element type, instead add eltype variable and
18788 use it where we are interested in the element type.
18789
18790 PR tree-optimization/81603
18791 * ipa-polymorphic-call.c
18792 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Perform
18793 offset arithmetic in offset_int, bail out if the resulting bit offset
18794 doesn't fit into shwi.
18795
18796 2017-07-31 Martin Liska <mliska@suse.cz>
18797
18798 * gimplify.c (mostly_copy_tree_r): Remove Java specific hunk.
18799 (gimplify_save_expr): Fix comment.
18800
18801 2017-07-30 H.J. Lu <hongjiu.lu@intel.com>
18802
18803 PR target/79793
18804 * config/i386/i386.c (ix86_function_arg): Update arguments for
18805 exception handler.
18806 (ix86_compute_frame_layout): Set the initial stack offset to
18807 INCOMING_FRAME_SP_OFFSET. Update red-zone offset with
18808 INCOMING_FRAME_SP_OFFSET.
18809 (ix86_expand_epilogue): Don't pop the 'ERROR_CODE' off the
18810 stack before exception handler returns.
18811 * config/i386/i386.h (INCOMING_FRAME_SP_OFFSET): Add the
18812 the 'ERROR_CODE' for exception handler.
18813
18814 2017-07-30 Uros Bizjak <ubizjak@gmail.com>
18815
18816 * config/i386/i386.h (ASM_PRINTF_EXTENSIONS): New macro.
18817 (ASM_OUTPUT_REG_PUSH): Rewrite with new operand modifiers.
18818 (ASM_OUTPUT_REG_POP): Ditto.
18819 * config/i386/i386.c (ix86_asm_output_function_label): Use fputs
18820 instead of asm_fprintf to output pure string.
18821
18822 2017-07-29 Jakub Jelinek <jakub@redhat.com>
18823
18824 * debug.h (struct gcc_debug_hooks): Add IMPLICIT argument
18825 to imported_module_or_decl hook.
18826 (debug_nothing_tree_tree_tree_bool): Remove.
18827 (debug_nothing_tree_tree_tree_bool_bool): New declaration.
18828 * debug.c (do_nothing_debug_hooks): Use
18829 debug_nothing_tree_tree_tree_bool_bool instead of
18830 debug_nothing_tree_tree_tree_bool.
18831 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
18832 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
18833 * sdbout.c (sdb_debug_hooks): Likewise.
18834 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
18835 (gen_namespace_die): Add DW_AT_export_symbols attribute if
18836 langhook wants it.
18837 (dwarf2out_imported_module_or_decl): Add IMPLICIT argument,
18838 if true, -gdwarf-5 and decl will have DW_AT_export_symbols
18839 attribute, don't add anything.
18840
18841 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18842
18843 * fold-const.c (fold_build1_stat_loc): Remove _stat from name.
18844 (fold_build2_stat_loc): Likewise.
18845 (fold_build3_stat_loc): Likewise.
18846 * fold-const.h (fold_build1, fold_build2, fold_build3): Adjust.
18847 (fold_build1_loc): Remove macro.
18848 (fold_build2_loc): Likewise.
18849 (fold_build3_loc): Likewise.
18850
18851 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18852
18853 * gimple.c (gimple_build_debug_bind_stat): Remove _stat from name.
18854 (gimple_build_debug_bind_source_stat): Likewise.
18855 * gimple.h (gimple_build_debug_bind): Remove macro.
18856 (gimple_build_debug_bind_source): Likewise.
18857
18858 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18859
18860 * bitmap.c (bitmap_alloc): Adjust.
18861 (bitmap_gc_alloc): Likewise.
18862 * bitmap.h (bitmap_initialize_stat): Remove _stat from name.
18863
18864 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18865
18866 * bitmap.c (bitmap_obstack_alloc_stat): Rename to bitmap_alloc.
18867 (bitmap_gc_alloc_stat): Rename to bitmap_gc_alloc.
18868 * bitmap.h (bitmap_obstack_alloc_stat): Adjust prototype.
18869 (bitmap_gc_alloc_stat): Likewise.
18870 (BITMAP_ALLOC, BITMAP_GGC_ALLOC): Adjust.
18871
18872 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18873
18874 * rtl.c (shallow_copy_rtx_stat): Remove _stat from name.
18875 * rtl.h (shallow_copy_rtx): Remove macro.
18876
18877 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18878
18879 * emit-rtl.c (gen_raw_REG): Adjust.
18880 * gengenrtl.c (gendef): Likewise.
18881 * rtl.c (rtx_alloc_stat): Remove _stat from name.
18882 * rtl.h (rtx_alloc): Remove macro.
18883
18884 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18885
18886 * tree.c (build_tree_list_vec_stat): Remove _stat from name.
18887 (build_tree_list_stat): Likewise.
18888 * tree.h (build_tree_list): Remove macro.
18889 (build_tree_list_vec): Likewise.
18890
18891 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18892
18893 * tree.c (make_vector_stat): Remove _stat from name.
18894 (build_vector_stat): Likewise.
18895 * tree.h (make_vector_stat): Remove macro.
18896 (build_vector_stat): Likewise.
18897
18898 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18899
18900 * tree.h (build_var_debug_value): Remove prototype.
18901
18902 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18903
18904 * tree.c (tree_cons_stat): Remove _stat from name.
18905 * tree.h (tree_cons): Remove macro.
18906
18907 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18908
18909 * tree.c (build_vl_exp_stat): Remove _stat from name.
18910 * tree.h (build_vl_exp): Remove macro.
18911
18912 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18913
18914 * tree.c (build_decl_stat): Remove _stat from name.
18915 * tree.h (build_decl): Remove macro.
18916
18917 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18918
18919 * gimple.c (gimple_build_with_ops_stat): Adjust.
18920 (gimple_alloc_stat): Remove _stat from name.
18921 * gimple.h (gimple_alloc): Remove macro.
18922
18923 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18924
18925 * tree.c (make_tree_vec_stat): Remove _stat from name.
18926 (grow_tree_vec_stat): Likewise.
18927 * tree.h (make_tree_vec_stat): Adjust prototype.
18928 (grow_tree_vec_stat): Likewise.
18929 (make_tree_vec): Remove macro.
18930 (grow_tree_vec): Likewise.
18931
18932 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18933
18934 * fold-const.c (fold_build1_stat_loc): Adjust.
18935 (fold_build2_stat_loc): Likewise.
18936 (fold_build3_stat_loc): Likewise.
18937 * tree.c (build0_stat): Remove _stat from name.
18938 (build1_stat): Likewise.
18939 (build2_stat): Likewise.
18940 (build3_stat): Likewise.
18941 (build4_stat): Likewise.
18942 (build5_stat): Likewise.
18943 * tree.h (build1_loc): Remove macro, and rename _stat function
18944 to this.
18945 (build2_loc): Likewise.
18946 (build3_loc): Likewise.
18947 (build4_loc): Likewise.
18948 (build5_loc): Likewise.
18949
18950 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18951
18952 * tree.c (make_int_cst_stat): Remove _stat from name.
18953 * tree.h (make_int_cst_stat): Adjust prototype.
18954 (make_int_cst): Remove macro.
18955
18956 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18957
18958 * tree.c (make_tre_binfo_stat): Remove _stat from name.
18959 * tree.h (make_tree_binfo_stat): Adjust prototype.
18960 (make_tree_binfo): Remove.
18961
18962 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18963
18964 * tree.c (copy_node_stat): Rename to copy_node.
18965 (build_distinct_type_copy): Adjust.
18966 * tree.h (copy_node_stat): Adjust prototype.
18967 (copy_node): Remove macro.
18968
18969 2017-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
18970
18971 * tree.c (make_node_stat): rename to make_node.
18972 (build_tree_list_stat): Adjust.
18973 (build0_stat): Likewise.
18974 (build2_stat): Likewise.
18975 (build3_stat): Likewise.
18976 (build4_stat): Likewise.
18977 (build5_stat): Likewise.
18978 (build_decl_stat): Likewise.
18979 * tree.h (make_node_stat): Adjust prototype.
18980 (make_node): remove macro.
18981
18982 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
18983
18984 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
18985 (PPC_FEATURE2_SCV): Likewise.
18986 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
18987
18988 2017-07-28 Tamar Christina <tamar.christina@arm.com>
18989
18990 * config/aarch64/aarch64.c
18991 (aarch64_internal_mov_immediate): Add new special pattern.
18992 * config/aarch64/aarch64.md (*movdi_aarch64):
18993 Add reg/32bit const mov case.
18994
18995 2017-07-28 Tamar Christina <tamar.christina@arm.com>
18996 Richard Sandiford <richard.sandiford@linaro.org>
18997
18998 * config/aarch64/aarch64.md (mov<mode>): Generalize.
18999 (*movhf_aarch64, *movsf_aarch64, *movdf_aarch64):
19000 Add integer and movi cases.
19001 (movi-split-hf-df-sf split, fp16): New.
19002 (enabled): Added TARGET_FP_F16INST.
19003 * config/aarch64/iterators.md (GPF_HF): New.
19004 * config/aarch64/predicates.md (aarch64_reg_or_fp_float): New.
19005
19006 2017-07-28 Tamar Christina <tamar.christina@arm.com>
19007
19008 * config/aarch64/aarch64.c
19009 (aarch64_simd_container_mode): Add prototype.
19010 (aarch64_expand_mov_immediate): Add HI support.
19011 (aarch64_reinterpret_float_as_int, aarch64_float_const_rtx_p: New.
19012 (aarch64_can_const_movi_rtx_p): New.
19013 (aarch64_preferred_reload_class):
19014 Remove restrictions of using FP registers for certain SIMD operations.
19015 (aarch64_rtx_costs): Added new cost for CONST_DOUBLE moves.
19016 (aarch64_valid_floating_const): Add integer move validation.
19017 (aarch64_simd_imm_scalar_p): Remove.
19018 (aarch64_output_scalar_simd_mov_immediate): Generalize function.
19019 (aarch64_legitimate_constant_p): Expand list of supported cases.
19020 * config/aarch64/aarch64-protos.h
19021 (aarch64_float_const_rtx_p, aarch64_can_const_movi_rtx_p): New.
19022 (aarch64_reinterpret_float_as_int): New.
19023 (aarch64_simd_imm_scalar_p): Remove.
19024 * config/aarch64/constraints.md (Uvi): New.
19025 (Dd): Split into Ds and new Dd.
19026 * config/aarch64/aarch64.md (*movsi_aarch64):
19027 Add SIMD mov case.
19028 (*movdi_aarch64): Add SIMD mov case.
19029
19030 2017-07-28 Bin Cheng <bin.cheng@arm.com>
19031
19032 * tree-predcom.c: (struct chain): Handle store-store chain in which
19033 stores for elimination only store loop invariant values.
19034 (execute_pred_commoning_chain): Ditto.
19035 (prepare_initializers_chain_store_elim): Ditto.
19036 (prepare_finalizers): Ditto.
19037 (is_inv_store_elimination_chain): New function.
19038 (initialize_root_vars_store_elim_1): New function.
19039
19040 2017-07-28 Bin Cheng <bin.cheng@arm.com>
19041
19042 * tree-predcom.c: Revise general description of the pass.
19043 (enum chain_type): New enum type for store elimination.
19044 (struct chain): New field supporting store elimination.
19045 (struct component): Ditto.
19046 (dump_chain): Dump store-stores chain.
19047 (release_chain): Release resources.
19048 (split_data_refs_to_components): Compute and create component
19049 contains only stores for elimination.
19050 (get_chain_last_ref_at): New function.
19051 (make_invariant_chain): Initialization.
19052 (make_rooted_chain): Specify chain type in parameter and record it.
19053 (add_looparound_copies): Skip for store-stores chain.
19054 (determine_roots_comp): Compute type of chain and pass it to
19055 make_rooted_chain.
19056 (initialize_root_vars_store_elim_2): New function.
19057 (finalize_eliminated_stores): New function.
19058 (remove_stmt): Handle store for elimination.
19059 (execute_pred_commoning_chain): Execute predictive commoning on
19060 store-store chains.
19061 (determine_unroll_factor): Skip unroll for store-stores chain.
19062 (prepare_initializers_chain_store_elim): New function.
19063 (prepare_initializers_chain): Hanlde store-store chain.
19064 (prepare_finalizers_chain, prepare_finalizers): New function.
19065 (tree_predictive_commoning_loop): Return integer value indicating
19066 if loop is unrolled or lcssa form is corrupted.
19067 (tree_predictive_commoning): Rewrite for lcssa form if necessary.
19068
19069 2017-07-28 Bin Cheng <bin.cheng@arm.com>
19070
19071 * tree-predcom.c (initialize_root): Delete.
19072 (execute_pred_commoning_chain): Initialize root vars and replace
19073 reference of non-combined chain directly, rather than call above
19074 function.
19075
19076 2017-07-28 Bin Cheng <bin.cheng@arm.com>
19077
19078 * tree-predcom.c (ref_at_iteration): Add parameter NITERS. Compute
19079 memory reference to DR at (NITERS + ITERS)-th iteration of loop.
19080
19081 2017-07-28 Bin Cheng <bin.cheng@arm.com>
19082
19083 * tree-predcom.c (struct chain): New field init_seq.
19084 (release_chain): Release init_seq.
19085 (prepare_initializers_chain): Record intialization stmts in above
19086 field.
19087 (insert_init_seqs): New function.
19088 (tree_predictive_commoning_loop): Call insert_init_seqs.
19089
19090 2017-07-28 Bin Cheng <bin.cheng@arm.com>
19091
19092 * tree-predcom.c (determine_roots_comp): Skip trivial components.
19093
19094 2017-07-28 Richard Biener <rguenther@suse.de>
19095
19096 * match.pd: Remove superfluous :c.
19097 * genmatch.c (simplify::id): Add member.
19098 (lower_commutative, lower_opt_convert, lower_cond, lower_for):
19099 Copy id.
19100 (current_id): New global.
19101 (dt_node::parent): Move from ...
19102 (dt_operand::parent): ... here. Add for_id member.
19103 (is_a_helper <dt_operand *>::test): DT_TRUE is also a dt_operand.
19104 (decision_tree::find_node): Relax order requirement when
19105 merging DT_TRUE nodes to ones inbetween the current simplify
19106 and the one we try to merge with. Add diagnostic whenever
19107 we need to enforce pattern order by not merging.
19108 (decision_tree::insert): Set current_id.
19109 (decision_tree::print_node): Dump parent node and for_id.
19110 (parser::last_id): Add member.
19111 (parser::push_simplify): Assign unique id.
19112 (parser::parser): Initialize last_id.
19113
19114 2017-07-28 Martin Liska <mliska@suse.cz>
19115
19116 PR sanitizer/81340
19117 * sanopt.c (sanitize_rewrite_addressable_params): Set VALUE_EXPR after
19118 gimple_build_debug_bind.
19119
19120 2017-07-28 Richard Biener <rguenther@suse.de>
19121
19122 PR tree-optimization/81502
19123 * match.pd: Add pattern combining BIT_INSERT_EXPR with
19124 BIT_FIELD_REF.
19125 * tree-cfg.c (verify_expr): Verify types of BIT_FIELD_REF
19126 size/pos operands.
19127 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR pos.
19128 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Use bitsizetype
19129 for BIT_FIELD_REF args.
19130 * fold-const.c (make_bit_field_ref): Likewise.
19131 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
19132
19133 2017-07-28 Jakub Jelinek <jakub@redhat.com>
19134
19135 PR sanitizer/80998
19136 * sanopt.c (pass_sanopt::execute): Handle IFN_UBSAN_PTR.
19137 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Likewise.
19138 * flag-types.h (enum sanitize_code): Add SANITIZER_POINTER_OVERFLOW.
19139 Or it into SANITIZER_UNDEFINED.
19140 * ubsan.c: Include gimple-fold.h and varasm.h.
19141 (ubsan_expand_ptr_ifn): New function.
19142 (instrument_pointer_overflow): New function.
19143 (maybe_instrument_pointer_overflow): New function.
19144 (instrument_object_size): Formatting fix.
19145 (pass_ubsan::execute): Call instrument_pointer_overflow
19146 and maybe_instrument_pointer_overflow.
19147 * internal-fn.c (expand_UBSAN_PTR): New function.
19148 * ubsan.h (ubsan_expand_ptr_ifn): Declare.
19149 * sanitizer.def (__ubsan_handle_pointer_overflow,
19150 __ubsan_handle_pointer_overflow_abort): New builtins.
19151 * tree-ssa-tail-merge.c (merge_stmts_p): Handle IFN_UBSAN_PTR.
19152 * internal-fn.def (UBSAN_PTR): New internal function.
19153 * opts.c (sanitizer_opts): Add pointer-overflow.
19154 * lto-streamer-in.c (input_function): Handle IFN_UBSAN_PTR.
19155 * fold-const.c (build_range_check): Compute pointer range check in
19156 integral type if pointer arithmetics would be needed. Formatting
19157 fixes.
19158
19159 2017-07-28 Martin Liska <mliska@suse.cz>
19160
19161 PR sanitizer/81460
19162 * sanopt.c (sanitize_rewrite_addressable_params): Do not rewrite
19163 parameters that are of a variable-length.
19164
19165 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
19166
19167 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
19168 rs6000/biarch64.h.
19169 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
19170 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
19171 (CRT_CALL_STATIC_FUNCTION): Likewise.
19172 (ASM_DEFAULT_SPEC): New define.
19173 (ASM_SPEC32): Likewise.
19174 (ASM_SPEC64): Likewise.
19175 (ASM_SPEC_COMMON): Likewise.
19176 (ASM_SPEC): Likewise.
19177 (INVALID_64BIT): Likewise.
19178 (LINK_OS_DEFAULT_SPEC): Likewise.
19179 (LINK_OS_SPEC32): Likewise.
19180 (LINK_OS_SPEC64): Likewise.
19181 (POWERPC_LINUX): Likewise.
19182 (PTRDIFF_TYPE): Likewise.
19183 (RESTORE_FP_PREFIX): Likewise.
19184 (RESTORE_FP_SUFFIX): Likewise.
19185 (SAVE_FP_PREFIX): Likewise.
19186 (SAVE_FP_SUFFIX): Likewise.
19187 (SIZE_TYPE): Likewise.
19188 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
19189 (TARGET_64BIT): Likewise.
19190 (TARGET_64BIT): Likewise.
19191 (TARGET_AIX): Likewise.
19192 (WCHAR_TYPE_SIZE): Likewise.
19193 (WCHAR_TYPE): Undefine.
19194 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
19195 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
19196 (CPP_OS_RTEMS_SPEC): Delete.
19197 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
19198 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
19199 link_os_spec64.
19200 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
19201
19202 2017-07-28 Jakub Jelinek <jakub@redhat.com>
19203
19204 PR tree-optimization/81578
19205 * tree-parloops.c (build_new_reduction): Bail out if
19206 reduction_code isn't one of the standard OpenMP reductions.
19207 Move the details printing after that decision.
19208
19209 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
19210
19211 * config/rs6000/predicates.md (volatile_mem_operand): Remove code
19212 related to reload_in_progress.
19213 (splat_input_operand): Likewise.
19214 * config/rs6000/rs6000-protos.h (rs6000_secondary_memory_needed_rtx):
19215 Delete prototype.
19216 * config/rs6000/rs6000.c (machine_function): Remove sdmode_stack_slot
19217 field.
19218 (TARGET_EXPAND_TO_RTL_HOOK): Delete.
19219 (TARGET_INSTANTIATE_DECLS): Likewise.
19220 (legitimate_indexed_address_p): Delete reload_in_progress code.
19221 (rs6000_debug_legitimate_address_p): Likewise.
19222 (rs6000_eliminate_indexed_memrefs): Likewise.
19223 (rs6000_emit_le_vsx_store): Likewise.
19224 (rs6000_emit_move_si_sf_subreg): Likewise.
19225 (rs6000_emit_move): Likewise.
19226 (register_to_reg_type): Likewise.
19227 (rs6000_pre_atomic_barrier): Likewise.
19228 (rs6000_machopic_legitimize_pic_address): Likewise.
19229 (rs6000_allocate_stack_temp): Likewise.
19230 (rs6000_address_for_fpconvert): Likewise.
19231 (rs6000_address_for_altivec): Likewise.
19232 (rs6000_secondary_memory_needed_rtx): Delete function.
19233 (rs6000_check_sdmode): Likewise.
19234 (rs6000_alloc_sdmode_stack_slot): Likewise.
19235 (rs6000_instantiate_decls): Likewise.
19236 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_RTX): Delete.
19237 * config/rs6000/rs6000.md (splitter for *movsi_got_internal):
19238 Delete reload_in_progress.
19239 (*vec_reload_and_plus_<mptrsize>): Likewise.
19240 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
19241 (vsx_div_v2di): Likewise.
19242 (vsx_udiv_v2di): Likewise.
19243
19244 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
19245
19246 * config/rs6000/rs6000.opt (mlra): Replace with stub.
19247 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete OPTION_MASK_LRA.
19248 * config/rs6000/rs6000.c (TARGET_LRA_P): Delete.
19249 (rs6000_debug_reg_global): Delete print of LRA status.
19250 (rs6000_option_override_internal): Delete dead LRA related code.
19251 (rs6000_lra_p): Delete function.
19252 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mlra.
19253
19254 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
19255
19256 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
19257 * config/riscv/rtems.h: New file.
19258
19259 2017-07-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19260 Sudakshina Das <sudi.das@arm.com>
19261
19262 * config/aarch64/aarch64.md
19263 (define_split for and<mode>3nr_compare): Move
19264 non aarch64_logical_operand to a register.
19265 (define_split for and_<SHIFT:optab><mode>3nr_compare0): Move non
19266 register immediate operand to a register.
19267 * config/aarch64/predicates.md (aarch64_mov_imm_operand): New.
19268
19269 2017-07-27 Peter Bergner <bergner@vnet.ibm.com>
19270
19271 PR middle-end/81564
19272 * tree-cfg.c (group_case_labels_stmt): Handle already deleted blocks.
19273
19274 2017-07-27 Richard Biener <rguenther@suse.de>
19275
19276 PR tree-optimization/81573
19277 PR tree-optimization/81494
19278 * tree-vect-loop.c (vect_create_epilog_for_reduction): Handle
19279 multi defuse cycle case.
19280
19281 2017-07-27 Richard Biener <rguenther@suse.de>
19282
19283 PR tree-optimization/81571
19284 * tree-vect-slp.c (vect_build_slp_tree): Properly verify reduction
19285 PHIs.
19286
19287 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
19288
19289 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
19290 earlier and only if MASK_FPU is set. Adjust formatting.
19291
19292 2017-07-27 Martin Liska <mliska@suse.cz>
19293
19294 * opt-functions.awk: Add validation of value of Init.
19295 * optc-gen.awk: Pass new argument.
19296
19297 2017-07-27 Martin Liska <mliska@suse.cz>
19298
19299 * auto-profile.c (autofdo_source_profile::update_inlined_ind_target):
19300 Fix wrong condition.
19301
19302 2017-07-27 Martin Liska <mliska@suse.cz>
19303
19304 * auto-profile.c (afdo_annotate_cfg): Assign zero counts to
19305 BBs and edges seen by autoFDO.
19306
19307 2017-07-27 Richard Biener <rguenther@suse.de>
19308
19309 PR tree-optimization/81502
19310 * tree-ssa.c (non_rewritable_lvalue_p): Handle BIT_INSERT_EXPR
19311 with incompatible but same sized type.
19312 (execute_update_addresses_taken): Likewise.
19313
19314 2017-07-27 James Greenhalgh <james.greenhalgh@arm.com>
19315
19316 * tree-ssa-loop-ch.c (pass_ch::process_loop_p): Guard on
19317 flag_tree_loop_vectorize rather than flag_tree_vectorize.
19318
19319 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19320
19321 PR target/81534
19322 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
19323 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
19324 Change s_operand to memory_operand.
19325
19326 2017-07-27 Richard Sandiford <richard.sandiford@linaro.org>
19327
19328 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_permute): Declare.
19329 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Replace with...
19330 (rs6000_emit_le_vsx_permute): ...this. Take the destination as input.
19331 Emit instructions rather than returning an expression. Handle TFmode
19332 and KFmode by casting to TImode.
19333 (rs6000_emit_le_vsx_load): Update to use rs6000_emit_le_vsx_permute.
19334 (rs6000_emit_le_vsx_store): Likewise.
19335 * config/rs6000/vsx.md (VSX_TI): New iterator.
19336 (*vsx_le_permute_<mode>): Use it instead of VSX_LE_128.
19337 (*vsx_le_undo_permute_<mode>): Likewise.
19338 (*vsx_le_perm_load_<mode>): Use rs6000_emit_le_vsx_permute to
19339 emit the split sequence.
19340 (*vsx_le_perm_store_<mode>): Likewise.
19341
19342 2017-07-27 Jakub Jelinek <jakub@redhat.com>
19343
19344 PR tree-optimization/81555
19345 PR tree-optimization/81556
19346 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
19347 if true, force CHANGED for the recursive invocation.
19348 (reassociate_bb): Remember original length of ops array, pass
19349 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
19350
19351 * attribs.c (decl_attributes): Imply noinline, noclone and no_icf
19352 attributes for noipa attribute. For naked attribute use
19353 lookup_attribute first before lookup_attribute_spec.
19354 * final.c (rest_of_handle_final): Disable IPA RA for functions with
19355 noipa attribute.
19356 * ipa-visibility.c (non_local_p): Fix comment typos. Return true
19357 for functions with noipa attribute.
19358 (cgraph_externally_visible_p): Return true for functions with noipa
19359 attribute.
19360 * cgraph.c (cgraph_node::get_availability): Return AVAIL_INTERPOSABLE
19361 for functions with noipa attribute.
19362 * doc/extend.texi: Document noipa function attribute.
19363 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Set *nonlocal_p
19364 also for functions with noipa attribute.
19365 (ipa_pta_execute): Set nonlocal_p also for nodes with noipa attribute.
19366
19367 2017-07-26 Andrew Pinski <apinski@cavium.com>
19368
19369 * config/aarch64/aarch64.c (thunderx_vector_cost): Decrease cost of
19370 vec_unalign_load_cost and vec_unalign_store_cost.
19371
19372 2017-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
19373
19374 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
19375 -mvsx-small-integer option.
19376 (ISA_3_0_MASKS_IEEE): Likewise.
19377 (OTHER_VSX_VECTOR_MASKS): Likewise.
19378 (POWERPC_MASKS): Likewise.
19379 * config/rs6000/rs6000.opt (-mvsx-small-integer): Likewise.
19380 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Simplify
19381 code, only testing for DImode being allowed in non-VSX floating
19382 point registers.
19383 (rs6000_init_hard_regno_mode_ok): Change TARGET_VSX_SMALL_INTEGER
19384 to TARGET_P8_VECTOR test. Remove redundant VSX test inside of
19385 another VSX test.
19386 (rs6000_option_override_internal): Delete -mvsx-small-integer.
19387 (rs6000_expand_vector_set): Change TARGET_VSX_SMALL_INTEGER to
19388 TARGET_P8_VECTOR test.
19389 (rs6000_secondary_reload_simple_move): Likewise.
19390 (rs6000_preferred_reload_class): Delete TARGET_VSX_SMALL_INTEGER,
19391 since TARGET_P9_VECTOR was already tested.
19392 (rs6000_opt_masks): Remove -mvsx-small-integer.
19393 * config/rs6000/vsx.md (vsx_extract_<mode>): Delete
19394 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
19395 used.
19396 (vsx_extract_<mode>_p9): Delete TARGET_VSX_SMALL_INTEGER, since a
19397 test for TARGET_VEXTRACTUB was used, and that uses
19398 TARGET_P9_VECTOR.
19399 (p9 extract splitter): Likewise.
19400 (vsx_extract_<mode>_di_p9): Likewise.
19401 (vsx_extract_<mode>_store_p9): Likewise.
19402 (vsx_extract_si): Delete TARGET_VSX_SMALL_INTEGER, since a test
19403 for TARGET_P9_VECTOR was used. Delete code that is now dead with
19404 the elimination of TARGET_VSX_SMALL_INTEGER.
19405 (vsx_extract_<mode>_p8): Likewise.
19406 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>): Likewise.
19407 (vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Likewise.
19408 (vsx_set_<mode>_p9): Likewise.
19409 (vsx_set_v4sf_p9): Likewise.
19410 (vsx_set_v4sf_p9_zero): Likewise.
19411 (vsx_insert_extract_v4sf_p9): Likewise.
19412 (vsx_insert_extract_v4sf_p9_2): Likewise.
19413 * config/rs6000/rs6000.md (sign extend splitter): Change
19414 TARGET_VSX_SMALL_INTEGER to TARGET_P8_VECTOR test.
19415 (floatsi<mode>2_lfiwax_mem): Likewise.
19416 (floatunssi<mode>2_lfiwzx_mem): Likewise.
19417 (float<QHI:mode><FP_ISA3:mode>2): Delete TARGET_VSX_SMALL_INTEGER,
19418 since a test for TARGET_P9_VECTOR was used.
19419 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
19420 (floatuns<QHI:mode><FP_ISA3:mode>2): Likewise.
19421 (floatuns<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
19422 (fix_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
19423 TARGET_P8_VECTOR test.
19424 (fix_trunc<mode>si2_stfiwx): Likewise.
19425 (fix_trunc<mode>si2_internal): Likewise.
19426 (fix_trunc<SFDF:mode><QHI:mode>2): Delete
19427 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
19428 used.
19429 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
19430 (fixuns_trunc<mode>si2): Change TARGET_VSX_SMALL_INTEGER to
19431 TARGET_P8_VECTOR test.
19432 (fixuns_trunc<mode>si2_stfiwx): Likewise.
19433 (fixuns_trunc<SFDF:mode><QHI:mode>2): Delete
19434 TARGET_VSX_SMALL_INTEGER, since a test for TARGET_P9_VECTOR was
19435 used.
19436 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
19437 (fctiw<u>z_<mode>_smallint): Delete TARGET_VSX_SMALL_INTEGER,
19438 since a test for TARGET_P9_VECTOR was used.
19439 (splitter for loading small constants): Likewise.
19440
19441 2017-07-26 Andrew Pinski <apinski@cavium.com>
19442
19443 * config/aarch64/aarch64.c (thunderx_vector_cost): Fix
19444 vec_fp_stmt_cost.
19445
19446 2017-07-26 H.J. Lu <hongjiu.lu@intel.com>
19447
19448 PR target/81563
19449 * config/i386/i386.c (sp_valid_at): Properly check CFA offset.
19450 (fp_valid_at): Likewise.
19451
19452 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
19453
19454 * config/aarch64/aarch64.c (cortexa57_addrcost_table): Remove.
19455 (qdf24xx_addrcost_table): Likewise.
19456 (cortexa57_tunings): Update to use generic_branch_cost.
19457 (cortexa72_tunings): Likewise.
19458 (cortexa73_tunings): Likewise.
19459 (qdf24xx_tunings): Likewise.
19460
19461 2017-07-26 James Greenhalgh <james.greenhalgh@arm.com>
19462
19463 * config/aarch64/aarch64.c (cortexa57_branch_cost): Remove.
19464 (thunderx2t99_branch_cost): Likewise.
19465 (cortexa35_tunings): Update to use generic_branch_cost.
19466 (cortexa53_tunings): Likewise.
19467 (cortexa57_tunings): Likewise.
19468 (cortexa72_tunings): Likewise.
19469 (cortexa73_tunings): Likewise.
19470 (thunderx2t99_tunings): Likewise.
19471
19472 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
19473
19474 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
19475 (sparc_option_override): Honour MASK_FSMULD.
19476 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
19477 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
19478 * config/sparc/sparc.opt (mfsmuld): New option.
19479 * doc/invoke.texi (mfsmuld): Document option.
19480
19481 2017-07-26 Marek Polacek <polacek@redhat.com>
19482
19483 PR middle-end/70992
19484 * tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.
19485
19486 2017-07-26 Richard Biener <rguenther@suse.de>
19487
19488 * gimple-match-head.c (do_valueize): Return OP if valueize
19489 returns NULL_TREE.
19490 (get_def): New helper to get at the def stmt of a SSA name
19491 if valueize allows.
19492 * genmatch.c (dt_node::gen_kids_1): Use get_def instead of
19493 do_valueize to get at the def stmt.
19494 (dt_operand::gen_gimple_expr): Simplify do_valueize calls.
19495
19496 2017-07-26 Wilco Dijkstra <wdijkstr@arm.com>
19497
19498 PR middle-end/46932
19499 * auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.
19500
19501 2017-07-26 Martin Liska <mliska@suse.cz>
19502
19503 PR sanitize/81186
19504 * function.c (expand_function_start): Make expansion of
19505 nonlocal_goto_save_area after parm_birth_insn.
19506
19507 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
19508
19509 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
19510 from all CPU target flags enable members.
19511
19512 2017-07-26 Richard Biener <rguenther@suse.de>
19513
19514 * genmatch.c (dt_simplify::gen): Make iterator vars const.
19515 (decision_tree::gen): Make 'type' const.
19516 (write_predicate): Likewise.
19517
19518 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
19519
19520 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok):
19521 Eliminate TARGET_UPPER_REGS_{DF,DI,SF} usage.
19522 (rs6000_option_override_internal): Likewise.
19523 (rs6000_expand_vector_set): Likewise.
19524 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Delete.
19525 (TARGET_UPPER_REGS_SF): Likewise.
19526 (TARGET_UPPER_REGS_DI): Likewise.
19527 (TARGET_VEXTRACTUB): Eliminate TARGET_UPPER_REGS_{DF,DI,SF}.
19528 (TARGET_DIRECT_MOVE_64BIT): Likewise.
19529 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Likewise.
19530 (float<QHI:mode><FP_ISA3:mode>2_internal): Likewise.
19531 (Splitters for DI constants in Altivec registers): Likewise.
19532 * config/rs6000/vsx.md (vsx_set_<mode>_p9): Likewise.
19533 (vsx_set_v4sf_p9): Likewise.
19534 (vsx_set_v4sf_p9_zero): Likewise.
19535 (vsx_insert_extract_v4sf_p9): Likewise.
19536 (vsx_insert_extract_v4sf_p9_2): Likewise.
19537
19538 2017-07-25 Carl Love <cel@us.ibm.com>
19539
19540 * doc/extend.texi: Update the built-in documentation file for the
19541 existing built-in functions
19542 vector signed char vec_cnttz (vector signed char);
19543 vector unsigned char vec_cnttz (vector unsigned char);
19544 vector signed short vec_cnttz (vector signed short);
19545 vector unsigned short vec_cnttz (vector unsigned short);
19546 vector signed int vec_cnttz (vector signed int);
19547 vector unsigned int vec_cnttz (vector unsigned int);
19548 vector signed long long vec_cnttz (vector signed long long);
19549 vector unsigned long long vec_cnttz (vector unsigned long long);
19550
19551 2017-07-25 Andrew Pinski <apinski@cavium.com>
19552
19553 * tree-ssa-uninit.c (warn_uninitialized_vars): Don't warn about memory
19554 accesses where the use is for the first operand of a BIT_INSERT.
19555
19556 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
19557
19558 PR bootstrap/81521
19559 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
19560 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
19561
19562 2017-07-25 Jim Wilson <jim.wilson@linaro.org>
19563
19564 * config/i386/gstabs.h: Delete.
19565 * config/i386/openbsd.h, config/i386/t-openbsd: Likewise.
19566
19567 2017-07-25 Uros Bizjak <ubizjak@gmail.com>
19568
19569 * config/i386/i386.c (ix86_decompose_address): Do not check for
19570 register RTX when looking at index_reg or base_reg.
19571 * config/i386/i386.h (INCOMING_RETURN_ADDR_RTX): Use stack_pointer_rtx.
19572
19573 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
19574
19575 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
19576 to update EH info here.
19577
19578 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
19579
19580 * match.pd ((X * CST1) * CST2): Simplify to X * (CST1 * CST2).
19581
19582 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
19583
19584 * match.pd ((X * CST) * Y): Reassociate to (X * Y) * CST.
19585
19586 2017-07-25 Torsten Duwe <duwe@suse.de>
19587
19588 * common.opt: Introduce -fpatchable-function-entry
19589 command line option, and its variables function_entry_patch_area_size
19590 and function_entry_patch_area_start.
19591 * opts.c (common_handle_option): Add -fpatchable_function_entry_ case,
19592 including a two-value parser.
19593 * target.def (print_patchable_function_entry): New target hook.
19594 * targhooks.h (default_print_patchable_function_entry): New function.
19595 * targhooks.c (default_print_patchable_function_entry): Likewise.
19596 * toplev.c (process_options): Switch off IPA-RA if
19597 patchable function entries are being generated.
19598 * varasm.c (assemble_start_function): Look at the
19599 patchable-function-entry command line switch and current
19600 function attributes and maybe generate NOP instructions by
19601 calling the print_patchable_function_entry hook.
19602 * doc/extend.texi: Document patchable_function_entry attribute.
19603 * doc/invoke.texi: Document -fpatchable_function_entry
19604 command line option.
19605 * doc/tm.texi.in (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
19606 New target hook.
19607 * doc/tm.texi: Re-generate.
19608
19609 2017-07-25 Jakub Jelinek <jakub@redhat.com>
19610
19611 PR target/81532
19612 * config/i386/constraints.md (Yd, Ye): Use ALL_SSE_REGS for
19613 TARGET_AVX512DQ rather than TARGET_AVX512BW.
19614
19615 2017-07-25 Tamar Christina <tamar.christina@arm.com>
19616
19617 * config/arm/parsecpu.awk (all_cores): Remove duplicates.
19618
19619 2017-07-25 Richard Biener <rguenther@suse.de>
19620
19621 PR tree-optimization/81455
19622 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
19623 not walk in cycles when looking for guards.
19624
19625 2017-07-25 Richard Biener <rguenther@suse.de>
19626
19627 PR tree-optimization/81529
19628 * tree-vect-stmts.c (process_use): Disregard live induction PHIs
19629 when optimizing backedge uses.
19630
19631 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
19632
19633 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
19634 character for AIX.
19635 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
19636 to dl_section_ref. On AIX, append an expression to subtract
19637 the size of the section length to dl_section_ref.
19638
19639 2017-07-25 Segher Boessenkool <segher@kernel.crashing.org>
19640
19641 * configure.ac: If any of the config.* scripts fail, exit 1.
19642 * configure: Regenerate.
19643
19644 2017-07-25 Richard Biener <rguenther@suse.de>
19645
19646 PR middle-end/81546
19647 * tree-ssa-operands.c (verify_imm_links): Remove cap on number
19648 of immediate uses, be more verbose on errors.
19649
19650 2017-07-25 Richard Biener <rguenther@suse.de>
19651
19652 PR tree-optimization/81510
19653 * tree-vect-loop.c (vect_is_simple_reduction): When the
19654 reduction stmt is not inside the loop bail out.
19655
19656 2017-07-25 Richard Biener <rguenther@suse.de>
19657
19658 PR tree-optimization/81303
19659 * tree-vect-loop-manip.c (vect_loop_versioning): Build
19660 profitability check against LOOP_VINFO_NITERSM1.
19661
19662 2017-07-25 Alexander Monakov <amonakov@ispras.ru>
19663
19664 * domwalk.c (cmp_bb_postorder): Simplify.
19665 (sort_bbs_postorder): New function. Use it...
19666 (dom_walker::walk): ...here to optimize common cases.
19667
19668 2017-07-25 Martin Liska <mliska@suse.cz>
19669
19670 PR ipa/81520
19671 * ipa-visibility.c (function_and_variable_visibility): Make the
19672 redirection just on target that supports aliasing.
19673 Fix GNU coding style.
19674
19675 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
19676
19677 PR libgcc/61152
19678 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
19679 Format changes.
19680 * config/arm/rtems.h: Likewise.
19681 * config/bfin/rtems.h: Likewise.
19682 * config/i386/rtemself.h: Likewise.
19683 * config/lm32/rtems.h: Likewise.
19684 * config/m32c/rtems.h: Likewise.
19685 * config/m68k/rtemself.h: Likewise.
19686 * config/microblaze/rtems.h: Likewise.
19687 * config/mips/rtems.h: Likewise.
19688 * config/moxie/rtems.h: Likewise.
19689 * config/nios2/rtems.h: Likewise.
19690 * config/powerpcspe/rtems.h: Likewise.
19691 * config/rs6000/rtems.h: Likewise.
19692 * config/rtems.h: Likewise.
19693 * config/sh/rtems.h: Likewise.
19694 * config/sh/rtemself.h: Likewise.
19695 * config/sparc/rtemself.h: Likewise.
19696
19697 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
19698
19699 PR 81487
19700 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
19701 * gimple-pretty-print.c (dump_profile, dump_probability): Same.
19702 * tree-ssa-structalias.c (alias_get_name): Same.
19703
19704 2017-07-25 Bin Cheng <bin.cheng@arm.com>
19705
19706 PR target/81414
19707 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
19708 instructions if no du chain is found.
19709
19710 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
19711
19712 * config/avr/avr-log.c (avr_log_vadump) ['T']: Print NULL-TREE.
19713
19714 2017-07-25 Richard Biener <rguenther@suse.de>
19715
19716 PR middle-end/81505
19717 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
19718 sticky.
19719
19720 2017-07-24 Michael Meissner <meissner@linux.vnet.ibm.com>
19721
19722 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Delete
19723 upper-regs options.
19724 (ISA_2_7_MASKS_SERVER): Likewise.
19725 (ISA_3_0_MASKS_IEEE): Likewise.
19726 (OTHER_P8_VECTOR_MASKS): Likewise.
19727 (OTHER_VSX_VECTOR_MASKS): Likewise.
19728 (POWERPC_MASKS): Likewise.
19729 (power7 cpu): Use ISA_2_6_MASKS_SERVER instead of using a
19730 duplicate list of options.
19731 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove
19732 explicit -mupper-regs options.
19733 * config/rs6000/rs6000.opt (-mvsx-scalar-memory): Delete
19734 -mupper-regs* options. Delete -mvsx-scalar-memory, which was an
19735 alias for -mupper-regs-df.
19736 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Likewise.
19737 (rs6000_init_hard_regno_mode_ok): Likewise.
19738 (rs6000_option_override_internal): Likewise.
19739 (rs6000_opt_masks): Likewise.
19740 * config/rs6000/rs6000.h (TARGET_UPPER_REGS_DF): Define upper regs
19741 options in terms of whether -mvsx or -mpower8-vector was used.
19742 (TARGET_UPPER_REGS_DI): Likewise.
19743 (TARGET_UPPER_REGS_SF): Likewise.
19744 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete the
19745 -mupper-regs-* options.
19746
19747 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
19748
19749 * passes.c (emergency_dump_function): Print some empty lines and a
19750 header before the RTL dump.
19751
19752 2017-07-24 Segher Boessenkool <segher@kernel.crashing.org>
19753
19754 * cfgrtl.c (rtl_dump_bb): Don't call NEXT_INSN on NULL.
19755
19756 2017-07-24 Wilco Dijkstra <wdijkstr@arm.com>
19757
19758 PR target/79041
19759 * config/aarch64/aarch64.c (aarch64_classify_symbol):
19760 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
19761
19762 2017-07-24 Carl Love <cel@us.ibm.com>
19763
19764 * config/rs6000/rs6000-c.c: Add support for built-in functions
19765 vector float vec_extract_fp32_from_shorth (vector unsigned short);
19766 vector float vec_extract_fp32_from_shortl (vector unsigned short);
19767 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
19768 vec_extract_fp_from_shortl): Add defines for the two builtins.
19769 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
19770 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
19771 new builtins.
19772 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
19773 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
19774 * doc/extend.texi: Update the built-in documentation file for the
19775 new built-in function.
19776
19777 2017-07-24 Jakub Jelinek <jakub@redhat.com>
19778
19779 PR bootstrap/81521
19780 * tree.def: Remove TYPE_METHODS documentation, adjust TYPE_FIELDS
19781 documentation.
19782 * doc/generic.texi: Likewise.
19783 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look
19784 for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS.
19785
19786 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com>
19787
19788 * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New.
19789 (aarch64_mls_elt_merge<mode>): Likewise.
19790
19791 2017-07-23 Krister Walfridsson <krister.walfridsson@gmail.com>
19792
19793 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
19794 having __cxa_atexit.
19795
19796 2017-07-23 Michael Collison <michael.collison@arm.com>
19797
19798 * config/arm/arm.c (arm_option_override): Deprecate
19799 use of -mstructure-size-boundary.
19800 * config/arm/arm.opt: Deprecate -mstructure-size-boundary.
19801 * doc/invoke.texi: Deprecate -mstructure-size-boundary.
19802
19803 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
19804
19805 PR target/80695
19806 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
19807 Reduce cost estimate for direct moves.
19808
19809 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
19810
19811 PR target/80569
19812 * config/i386/i386.c (ix86_option_override_internal): Disable
19813 BMI, BMI2 and TBM instructions for -m16.
19814
19815 2017-07-21 Carl Love <cel@us.ibm.com>
19816
19817 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
19818 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
19819 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
19820 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
19821 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
19822 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
19823 VMULOSW): New enum "unspec" values.
19824 (altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
19825 altivec_vmulosw): New patterns.
19826 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
19827 VMULOSW): Add definitions.
19828
19829 2017-07-21 Jim Wilson <jim.wilson@linaro.org>
19830
19831 * config/aarch64/aarch64-cores.def (falkor): Add AARCH64_FL_RDMA.
19832 (qdf24xx): Likewise.
19833 * config/aarch64/aarch64-options-extensions.def (rdma); New.
19834 * config/aarch64/aarch64.h (AARCH64_FL_RDMA): New.
19835 (AARCH64_FL_V8_1): Renumber.
19836 (AARCH64_FL_FOR_ARCH8_1): Add AARCH64_FL_RDMA.
19837 (AARCH64_ISA_RDMA): Use AARCH64_FL_RDMA.
19838 * config/aarch64/arm_neon.h: Use +rdma instead of arch=armv8.1-a.
19839 * doc/invoke.texi (AArch64 Options): Mention +rmda in -march docs. Add
19840 rdma to feature modifiers list.
19841
19842 2017-07-21 Yury Gribov <tetra2005@gmail.com>
19843
19844 PR middle-end/56727
19845 * ipa-visibility (function_and_variable_visibility): Convert
19846 recursive PLT call to direct call if appropriate.
19847
19848 2017-07-21 Andrew Pinski <apinski@cavium.com>
19849
19850 * tree-ssa-sccvn.c (vn_nary_op_eq): Check BIT_INSERT_EXPR's
19851 operand 1 to see if the types precision matches.
19852 * fold-const.c (operand_equal_p): Likewise.
19853
19854 2017-07-21 Richard Biener <rguenther@suse.de>
19855
19856 PR tree-optimization/81303
19857 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): Pass
19858 in datarefs vector. Allow NULL dr0 for no peeling cost estimate.
19859 (vect_peeling_hash_get_lowest_cost): Adjust.
19860 (vect_enhance_data_refs_alignment): Likewise. Use
19861 vect_get_peeling_costs_all_drs to compute the penalty for no
19862 peeling to match up costs.
19863
19864 2017-07-21 Richard Biener <rguenther@suse.de>
19865
19866 PR tree-optimization/81500
19867 * tree-vect-loop.c (vect_is_simple_reduction): Properly fail if
19868 we didn't identify a reduction path.
19869
19870 2017-07-21 Tom de Vries <tom@codesourcery.com>
19871 Cesar Philippidis <cesar@codesourcery.com>
19872
19873 PR gcov-profile/81442
19874 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Add missing edge
19875 probabilities.
19876
19877 2017-07-21 Tom de Vries <tom@codesourcery.com>
19878
19879 PR lto/81430
19880 * config/nvptx/nvptx.c (nvptx_override_options_after_change): New
19881 function.
19882 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define to
19883 nvptx_override_options_after_change.
19884
19885 2017-07-21 Ulrich Drepper <drepper@redhat.com>
19886
19887 * dwarf2out.c (output_file_names): Avoid double testing for
19888 dwarf_version >= 5.
19889
19890 2017-07-21 Georg-Johann Lay <avr@gjlay.de>
19891
19892 * doc/invoke.texi (AVR Built-in Functions): Re-layout section.
19893
19894 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
19895
19896 * cfgcleanup.c (flow_find_cross_jump): Do not crossjump across
19897 hot/cold regions.
19898 (try_crossjump_to_edge): Do not punt on partitioned functions.
19899
19900 2016-07-21 Jan Hubicka <hubicka@ucw.cz>
19901
19902 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
19903 Put all BBs reachable only via paths crossing cold region to cold
19904 region.
19905 * cfgrtl.c (find_bbs_reachable_by_hot_paths): New function.
19906
19907 2016-07-21 Richard Biener <rguenther@suse.de>
19908
19909 PR tree-optimization/81303
19910 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Take
19911 into account prologue and epilogue iterations when raising
19912 min_profitable_iters to sth at least covering one vector iteration.
19913
19914 2017-07-21 Tamar Christina <tamar.christina@arm.com>
19915
19916 * config/arm/arm.c (arm_test_cpu_arch_dat):
19917 Check for overlap.
19918
19919 2017-07-20 Nathan Sidwell <nathan@acm.org>
19920
19921 Remove TYPE_METHODS.
19922 * tree.h (TYPE_METHODS): Delete.
19923 * dwarf2out.c (gen_member_die): Member fns are on TYPE_FIELDS.
19924 * dbxout.c (dbxout_type_fields): Ignore FUNCTION_DECLs.
19925 (dbxout_type_methods): Scan TYPE_FIELDS.
19926 (dbxout_type): Don't check TYPE_METHODS here.
19927 * function.c (use_register_for_decl): Always ignore register for
19928 class types when not optimizing.
19929 * ipa-devirt.c (odr_types_equivalent_p): Delete TYPE_METHODS scan.
19930 * tree.c (free_lang_data_in_type): Stitch out member functions and
19931 templates from TYPE_FIELDS.
19932 (build_distinct_type_copy, verify_type_variant,
19933 verify_type): Member fns are on TYPE_FIELDS.
19934 * tree-dump.c (dequeue_and_dump): No TYPE_METHODS.
19935 * tree-pretty-print.c (dump_generic_node): Likewise.
19936
19937 2017-07-20 Jakub Jelinek <jakub@redhat.com>
19938
19939 PR target/80846
19940 * config/i386/i386.c (ix86_expand_vector_init_general): Handle
19941 V2TImode and V4TImode.
19942 (ix86_expand_vector_extract): Likewise.
19943 * config/i386/sse.md (VMOVE): Enable V4TImode even for just
19944 TARGET_AVX512F, instead of only for TARGET_AVX512BW.
19945 (ssescalarmode): Handle V4TImode and V2TImode.
19946 (VEC_EXTRACT_MODE): Add V4TImode and V2TImode.
19947 (*vec_extractv2ti, *vec_extractv4ti): New insns.
19948 (VEXTRACTI128_MODE): New mode iterator.
19949 (splitter for *vec_extractv?ti first element): New.
19950 (VEC_INIT_MODE): New mode iterator.
19951 (vec_init<mode>): Consolidate 3 expanders into one using
19952 VEC_INIT_MODE mode iterator.
19953
19954 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
19955
19956 * lra-assigns.c (pseudo_compare_func): Fix comparison step based on
19957 non_spilled_static_chain_regno_p.
19958
19959 2017-07-20 Alexander Monakov <amonakov@ispras.ru>
19960
19961 * gimple-ssa-store-merging.c (sort_by_bitpos): Return 0 on equal bitpos.
19962
19963 2017-07-20 Jan Hubicka <hubicka@ucw.cz>
19964
19965 * bb-reorder.c (connect_traces): Allow copying of blocks within
19966 single partition.
19967
19968 2017-07-20 Richard Biener <rguenther@suse.de>
19969
19970 * gimple.h (gimple_phi_result): Add gphi * overload.
19971 (gimple_phi_result_ptr): Likewise.
19972 (gimple_phi_arg): Likewise. Adjust index assert to only
19973 allow actual argument accesses rather than all slots available
19974 by capacity.
19975 (gimple_phi_arg_def): Add gphi * overload.
19976 * tree-phinodes.c (make_phi_node): Initialize only actual
19977 arguments.
19978 (resize_phi_node): Clear memory not covered by old node,
19979 do not initialize excess argument slots.
19980 (reserve_phi_args_for_new_edge): Initialize new argument slot
19981 completely.
19982
19983 2017-07-20 Bin Cheng <bin.cheng@arm.com>
19984
19985 PR tree-optimization/81388
19986 Revert r238585:
19987 2016-07-21 Bin Cheng <bin.cheng@arm.com>
19988
19989 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
19990 by removing computation of may_be_zero.
19991
19992 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
19993 Tom de Vries <tom@codesourcery.com>
19994
19995 PR middle-end/81030
19996 * cfgbuild.c (find_many_sub_basic_blocks): Update REG_BR_PROB note
19997 when gimple level profile disagrees with what RTL expander did.
19998
19999 2017-07-20 Richard Biener <rguenther@suse.de>
20000
20001 PR tree-optimization/61171
20002 * tree-vectorizer.h (slp_instance): Add reduc_phis member.
20003 (vect_analyze_stmt): Add slp instance parameter.
20004 (vectorizable_reduction): Likewise.
20005 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust.
20006 (vect_is_simple_reduction): Deal with chains not detected
20007 as SLP reduction chain, specifically not properly associated
20008 chains containing a mix of plus/minus.
20009 (get_reduction_op): Remove.
20010 (get_initial_defs_for_reduction): Simplify, pass in whether
20011 this is a reduction chain, pass in the SLP node for the PHIs.
20012 (vect_create_epilog_for_reduction): Get the SLP instance as
20013 arg and adjust.
20014 (vectorizable_reduction): Get the SLP instance as arg.
20015 During analysis remember the SLP node with the PHIs in the
20016 instance. Simplify getting at the vectorized reduction PHIs.
20017 * tree-vect-slp.c (vect_slp_analyze_node_operations): Pass
20018 through SLP instance.
20019 (vect_slp_analyze_operations): Likewise.
20020 * tree-vect-stms.c (vect_analyze_stmt): Likewise.
20021 (vect_transform_stmt): Likewise.
20022
20023 2017-07-20 Tom de Vries <tom@codesourcery.com>
20024
20025 PR tree-optimization/81489
20026 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Move
20027 read of phi arg location to before loop that modifies phi.
20028
20029 2017-07-20 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
20030
20031 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0):
20032 New pattern.
20033
20034 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
20035
20036 PR middle-end/81331
20037 * except.c (execute): Fix ordering issue.
20038
20039 2018-07-19 Segher Boessenkool <segher@kernel.crashing.org>
20040
20041 PR rtl-optimization/81423
20042 * combine.c (make_compound_operation_int): Don't try to optimize
20043 the AND of a SUBREG of an LSHIFTRT if that SUBREG is paradoxical.
20044
20045 2017-07-19 Segher Boessenkool <segher@kernel.crashing.org>
20046
20047 PR rtl-optimization/81423
20048 * simplify-rtx.c (simplify_truncation): Handle truncating an IOR
20049 with a constant that is -1 in the truncated to mode.
20050
20051 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
20052
20053 * predict.c (propagate_unlikely_bbs_forward): Break out from ...
20054 (determine_unlikely_bbs): ... here.
20055 * predict.h (propagate_unlikely_bbs_forward): Declare.
20056 * cfgexpand.c (pass_expand::execute): Use it.
20057 * bb-reorder.c (sanitize_hot_paths): Do not consider known to be
20058 unlikely edges.
20059 (find_rarely_executed_basic_blocks_and_crossing_edges): Use
20060 propagate_unlikely_bbs_forward.
20061
20062 2017-07-19 Jan Hubicka <hubicka@ucw.cz>
20063
20064 PR middle-end/81331
20065 * except.c (maybe_add_nop_after_section_switch): New function.
20066 (execute): Use it.
20067
20068 2017-07-19 Tom de Vries <tom@codesourcery.com>
20069
20070 * gimple.h (gimple_phi_set_arg): Make assert more strict.
20071
20072 2017-07-19 Tom de Vries <tom@codesourcery.com>
20073
20074 * gimple.h (gimple_phi_arg): Make assert more strict.
20075
20076 2017-07-19 Steven Munroe <munroesj@gcc.gnu.org>
20077
20078 * config.gcc (powerpc*-*-*): Add mmintrin.h.
20079 * config/rs6000/mmintrin.h: New file.
20080 * config/rs6000/x86intrin.h [__ALTIVEC__]: Include mmintrin.h.
20081
20082 2017-07-19 Jakub Jelinek <jakub@redhat.com>
20083
20084 PR tree-optimization/81346
20085 * match.pd: Optimize (X - 1U) <= INT_MAX-1U into (int) X > 0.
20086
20087 2017-07-19 Tom de Vries <tom@codesourcery.com>
20088
20089 * config/nvptx/nvptx.md (VECIM): Add V2DI.
20090
20091 2017-07-19 Tom de Vries <tom@codesourcery.com>
20092
20093 * config/nvptx/nvptx-modes.def: Add V2DImode.
20094 * config/nvptx/nvptx-protos.h (nvptx_data_alignment): Declare.
20095 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2DImode.
20096 (nvptx_output_mov_insn): Handle lack of mov.b128.
20097 (nvptx_print_operand): Handle 'H' and 'L' codes.
20098 (nvptx_vector_mode_supported): Allow V2DImode.
20099 (nvptx_preferred_simd_mode): New function.
20100 (nvptx_data_alignment): New function.
20101 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE): Redefine to
20102 nvptx_preferred_simd_mode.
20103 * config/nvptx/nvptx.h (STACK_BOUNDARY, BIGGEST_ALIGNMENT): Change from
20104 64 to 128 bits.
20105 (DATA_ALIGNMENT): Define. Set to nvptx_data_alignment.
20106
20107 2017-07-19 Tom de Vries <tom@codesourcery.com>
20108
20109 * config/nvptx/nvptx-modes.def: New file. Add V2SImode.
20110 * config/nvptx/nvptx.c (nvptx_ptx_type_from_mode): Handle V2SImode.
20111 (nvptx_vector_mode_supported): New function. Allow V2SImode.
20112 (TARGET_VECTOR_MODE_SUPPORTED_P): Redefine to nvptx_vector_mode_supported.
20113 * config/nvptx/nvptx.md (VECIM): New mode iterator. Add V2SI.
20114 (mov<VECIM>_insn): New define_insn.
20115 (define_expand "mov<VECIM>): New define_expand.
20116
20117 2017-07-19 Tom de Vries <tom@codesourcery.com>
20118
20119 * config/nvptx/nvptx.c (nvptx_print_operand): Handle v2 vector mode.
20120
20121 2017-07-19 Jakub Jelinek <jakub@redhat.com>
20122
20123 PR tree-optimization/81346
20124 * fold-const.h (fold_div_compare, range_check_type): Declare.
20125 * fold-const.c (range_check_type): New function.
20126 (build_range_check): Use range_check_type.
20127 (fold_div_compare): No longer static, rewritten into
20128 a match.pd helper function.
20129 (fold_comparison): Don't call fold_div_compare here.
20130 * match.pd (X / C1 op C2): New optimization using fold_div_compare
20131 as helper function.
20132
20133 2017-07-19 Nathan Sidwell <nathan@acm.org>
20134
20135 * tree.h (TYPE_MINVAL, TYPE_MAXVAL): Rename to ...
20136 (TYPE_MIN_VALUE_RAW, TYPE_MAX_VALUE_RAW): ... these.
20137 * tree.c (find_decls_types_r, verify_type): Use
20138 TYPE_{MIN,MAX}_VALUE_RAW.
20139 * lto-streamer-out.c (DFS::DFS_write_tree_body): Likewise.
20140 (hash_tree): Likewise.
20141 * tree-streamer-in.c (lto_input_ts_type_non_common_tree_pointers):
20142 Likewise.
20143 * tree-streamer-out.c (write_ts_type_non_common_tree_pointers):
20144 Likewise.
20145
20146 2017-07-18 Tom de Vries <tom@codesourcery.com>
20147
20148 PR middle-end/81464
20149 * omp-expand.c (expand_omp_for_static_chunk): Handle
20150 equal-argument loop exit phi.
20151
20152 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
20153
20154 PR target/81471
20155 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
20156 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
20157 operand 2 predicate.
20158 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
20159 operand 2 predicate.
20160 (ror,rol -> rorx splitters): Use const_int_operand as
20161 operand 2 predicate.
20162
20163 2017-06-18 Richard Biener <rguenther@suse.de>
20164
20165 PR tree-optimization/81410
20166 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
20167 the gap in the ! slp_perm SLP case after each group.
20168
20169 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
20170
20171 PR middle-end/81463
20172 * cfgloopmanip.c (scale_loop_profile): Watch out for zero frequency
20173 again.
20174
20175 2017-07-18 Jan Hubicka <hubicka@ucw.cz>
20176
20177 PR middle-end/81462
20178 * predict.c (set_even_probabilities): Cleanup; do not affect
20179 probabilities that are already known.
20180 (combine_predictions_for_bb): Call even when count is set.
20181
20182 2017-07-18 Nathan Sidwell <nathan@acm.org>
20183
20184 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
20185 TYPE_MAX_VALUE.
20186
20187 2017-07-18 Bin Cheng <bin.cheng@arm.com>
20188
20189 PR target/81408
20190 * tree-ssa-loop-niter.c (number_of_iterations_exit): Dump missed
20191 optimization for loop niter analysis.
20192
20193 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
20194
20195 PR target/81473
20196 * config/avr/avr.c (avr_optimize_casesi): Don't use
20197 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
20198
20199 2017-07-18 Robin Dapp <rdapp@linux.vnet.ibm.com>
20200
20201 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Remove
20202 body_cost_vec from _vect_peel_extended_info.
20203 (vect_peeling_hash_get_lowest_cost): Do not set body_cost_vec.
20204 (vect_peeling_hash_choose_best_peeling): Remove body_cost_vec and
20205 npeel.
20206
20207 2017-07-18 Bin Cheng <bin.cheng@arm.com>
20208
20209 * config/arm/arm.c (emit_unlikely_jump): Remove unused var.
20210
20211 2017-07-18 Richard Biener <rguenther@suse.de>
20212
20213 PR tree-optimization/80620
20214 PR tree-optimization/81403
20215 * tree-ssa-pre.c (phi_translate_1): Clear range and points-to
20216 info when re-using a VN table entry.
20217
20218 2017-07-18 Richard Biener <rguenther@suse.de>
20219
20220 PR tree-optimization/81418
20221 * tree-vect-loop.c (vectorizable_reduction): Properly compute
20222 vectype_in. Verify that with lane-reducing reduction operations
20223 we have a single def-use cycle.
20224
20225 2017-07-17 Carl Love <cel@us.ibm.com>
20226
20227 Revert commit r249424 2017-06-20 Carl Love <cel@us.ibm.com>
20228
20229 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20230 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
20231 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
20232 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
20233 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
20234 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
20235 VMULOSW): New enum "unspec" values.
20236 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
20237 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
20238 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
20239 altivec_vmulosw): New patterns.
20240 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
20241 VMULOSW): Add definitions.
20242
20243 2017-07-17 Uros Bizjak <ubizjak@gmail.com>
20244
20245 * config/alpha/alpha.c: Include predict.h.
20246
20247 2017-07-17 Yury Gribov <tetra2005@gmail.com>
20248
20249 * tree-vrp.c (compare_assert_loc): Fix comparison function
20250 to return predictable results.
20251
20252 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
20253
20254 * config/arc/arc.md (adddi3): Remove support for mexpand-adddi
20255 option.
20256 (subdi3): Likewise.
20257 * config/arc/arc.opt (mexpand-adddi): Deprecate it.
20258 * doc/invoke.texi (mexpand-adddi): Update text.
20259
20260 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
20261
20262 * config/arc/arc.md (clzsi2): Expand to an arc_clzsi2 instruction
20263 that also clobbers the CC register. The old expand code is moved
20264 to ...
20265 (*arc_clzsi2): ... here.
20266 (ctzsi2): Expand to an arc_ctzsi2 instruction that also clobbers
20267 the CC register. The old expand code is moved to ...
20268 (arc_ctzsi2): ... here.
20269
20270 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
20271
20272 * config/arc/arc.opt (mindexed-loads): Use initial value
20273 TARGET_INDEXED_LOADS_DEFAULT.
20274 (mauto-modify-reg): Use initial value
20275 TARGET_AUTO_MODIFY_REG_DEFAULT.
20276 * config/arc/elf.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
20277 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
20278 * config/arc/linux.h (TARGET_INDEXED_LOADS_DEFAULT): Define.
20279 (TARGET_AUTO_MODIFY_REG_DEFAULT): Likewise.
20280
20281 2017-07-17 Martin Liska <mliska@suse.cz>
20282
20283 PR sanitizer/81302
20284 * opts.c (finish_options): Do not allow -fgnu-tm
20285 w/ -fsanitize={kernel-,}address. Say sorry.
20286
20287 2017-07-17 Bin Cheng <bin.cheng@arm.com>
20288
20289 PR target/81369
20290 * tree-loop-distribution.c (classify_partition): Only assert on
20291 numer of iterations.
20292 (merge_dep_scc_partitions): Delete prameter. Update function call.
20293 (distribute_loop): Remove code handling loop with unknown niters.
20294 (pass_loop_distribution::execute): Skip loop with unknown niters.
20295
20296 2017-07-17 Bin Cheng <bin.cheng@arm.com>
20297
20298 PR target/81369
20299 * tree-loop-distribution.c (merge_dep_scc_partitions): Sink call to
20300 function sort_partitions_by_post_order.
20301
20302 2017-07-17 Bin Cheng <bin.cheng@arm.com>
20303
20304 PR tree-optimization/81374
20305 * tree-loop-distribution.c (pass_loop_distribution::execute): Record
20306 the max index of basic blocks, rather than number of basic blocks.
20307
20308 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
20309
20310 * config/arc/arc-protos.h (arc_legitimate_pc_offset_p): Remove
20311 proto.
20312 (arc_legitimate_pic_operand_p): Likewise.
20313 * config/arc/arc.c (arc_legitimate_pic_operand_p): Remove
20314 function.
20315 (arc_needs_pcl_p): Likewise.
20316 (arc_legitimate_pc_offset_p): Likewise.
20317 (arc_legitimate_pic_addr_p): Remove LABEL_REF case, as this
20318 function is also used in constrains.md.
20319 (arc_legitimate_constant_p): Use arc_legitimate_pic_addr_p to
20320 validate pic constants. Handle CONST_INT, CONST_DOUBLE, MINUS and
20321 PLUS. Only return true/false in known cases, otherwise assert.
20322 (arc_legitimate_address_p): Remove arc_legitimate_pic_addr_p as it
20323 is already called in arc_legitimate_constant_p.
20324 * config/arc/arc.h (CONSTANT_ADDRESS_P): Consider also LABEL for
20325 pic addresses.
20326 (LEGITIMATE_PIC_OPERAND_P): Use
20327 arc_raw_symbolic_reference_mentioned_p function.
20328 * config/arc/constraints.md (Cpc): Use arc_legitimate_pic_addr_p
20329 function.
20330 (Cal): Likewise.
20331 (C32): Likewise.
20332
20333 2017-07-17 Claudiu Zissulescu <claziss@synopsys.com>
20334 Andrew Burgess <andrew.burgess@embecosm.com>
20335
20336 * config/arc/arc-protos.h (arc_compute_function_type): Change prototype.
20337 (arc_return_address_register): New function.
20338 * config/arc/arc.c (arc_handle_fndecl_attribute): New function.
20339 (arc_handle_fndecl_attribute): Add naked attribute.
20340 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Define.
20341 (TARGET_WARN_FUNC_RETURN): Likewise.
20342 (arc_allocate_stack_slots_for_args): New function.
20343 (arc_warn_func_return): Likewise.
20344 (machine_function): Change type fn_type.
20345 (arc_compute_function_type): Consider new naked function type,
20346 change function return type.
20347 (arc_must_save_register): Adapt to handle new
20348 arc_compute_function_type's return type.
20349 (arc_expand_prologue): Likewise.
20350 (arc_expand_epilogue): Likewise.
20351 (arc_return_address_regs): Delete.
20352 (arc_return_address_register): New function.
20353 (arc_epilogue_uses): Use above function.
20354 * config/arc/arc.h (arc_return_address_regs): Delete prototype.
20355 (arc_function_type): Change encoding, add naked type.
20356 (ARC_INTERRUPT_P): Change to handle the new encoding.
20357 (ARC_FAST_INTERRUPT_P): Likewise.
20358 (ARC_NORMAL_P): Define.
20359 (ARC_NAKED_P): Likewise.
20360 (arc_compute_function_type): Delete prototype.
20361 * config/arc/arc.md (in_ret_delay_slot): Use
20362 arc_return_address_register function.
20363 (simple_return): Likewise.
20364 (p_return_i): Likewise.
20365
20366 2017-07-17 Jakub Jelinek <jakub@redhat.com>
20367
20368 PR tree-optimization/81428
20369 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
20370 can't be built for those types.
20371
20372 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
20373
20374 Remove stuff dead since r239246.
20375
20376 * config/avr/avr-arch.h (avr_inform_devices): Remove dead proto.
20377 * config/avr/avr-devices.c (mcu_name, comparator, avr_mcus_str)
20378 (avr_inform_devices): Remove dead stuff.
20379
20380 2017-07-17 Tamar Christina <tamar.christina@arm.com>
20381
20382 * config/arm/arm_neon.h: Fix softp typo.
20383
20384 2017-07-17 Jakub Jelinek <jakub@redhat.com>
20385
20386 PR tree-optimization/81365
20387 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
20388 aggregate moves onto bb predecessor edges, make sure there are no
20389 loads that could alias the lhs in between the start of bb and the
20390 loads from *phi.
20391
20392 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
20393
20394 PR 80929
20395 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
20396 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
20397 [LSHIFTRT, outer_code = TRUNCATE]: Same.
20398
20399 2017-07-17 Jakub Jelinek <jakub@redhat.com>
20400
20401 PR tree-optimization/81396
20402 * tree-ssa-math-opts.c (struct symbolic_number): Add n_ops field.
20403 (init_symbolic_number): Initialize it to 1.
20404 (perform_symbolic_merge): Add n_ops from both operands into the new
20405 n_ops.
20406 (find_bswap_or_nop): Don't consider n->n == cmpnop computations
20407 without base_addr as useless if they need more than one operation.
20408 (bswap_replace): Handle !bswap case for NULL base_addr.
20409
20410 2017-07-17 Tom de Vries <tom@codesourcery.com>
20411
20412 PR target/81069
20413 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
20414 as possible.
20415
20416 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
20417
20418 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
20419 conditional builtin define __FIX_LEON3FT_B2BST.
20420
20421 2017-07-17 Daniel Cederman <cederman@gaisler.com>
20422
20423 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
20424 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
20425 with -mfix-ut700.
20426
20427 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
20428
20429 PR rtl-optimization/81424
20430 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
20431 to remove potential trapping from operands if -fnon-call-exceptions.
20432
20433 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
20434
20435 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Use
20436 profile_proability for scalling.
20437 * scale_profile_for_vect_loop.c (scale_profile_for_vect_loop): Likewise.
20438
20439 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
20440
20441 * cgraph.c (cgraph_edge::redirect_call_stmt_to_caller): Cleanup.
20442
20443 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
20444
20445 * cfgloopmanip.c (scale_loop_profile): Avoid use of REG_BR_PROB_BASE
20446 fixpoint arithmetics.
20447
20448 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
20449
20450 * tree-ssa-loop-unswitch.c (hoist_guard): Avoid use of REG_BR_PROB_BASE
20451 fixpoint arithmetics.
20452
20453 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
20454
20455 * asan.c (create_cond_insert_point): Avoid use of REG_BR_PROB_BASE
20456 fixpoint arithmetics.
20457
20458 2017-07-16 Jan Hubicka <hubicka@ucw.cz>
20459
20460 * profile-count.h (profile_probability::from_reg_br_prob_note,
20461 profile_probability::to_reg_br_prob_note): New functions.
20462 * doc/rtl.texi (REG_BR_PROB_NOTE): Update documentation.
20463 * reg-notes.h (REG_BR_PROB, REG_BR_PRED): Update docs.
20464 * predict.c (probability_reliable_p): Update.
20465 (edge_probability_reliable_p): Update.
20466 (br_prob_note_reliable_p): Update.
20467 (invert_br_probabilities): Update.
20468 (add_reg_br_prob_note): New function.
20469 (combine_predictions_for_insn): Update.
20470 * asan.c (asan_clear_shadow): Update.
20471 * cfgbuild.c (compute_outgoing_frequencies): Update.
20472 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
20473 (update_br_prob_note): Update.
20474 (rtl_verify_edges): Update.
20475 (purge_dead_edges): Update.
20476 (fixup_reorder_chain): Update.
20477 * emit-rtl.c (try_split): Update.
20478 * ifcvt.c (cond_exec_process_insns): Update.
20479 (cond_exec_process_if_block): Update.
20480 (dead_or_predicable): Update.
20481 * internal-fn.c (expand_addsub_overflow): Update.
20482 (expand_neg_overflow): Update.
20483 (expand_mul_overflow): Update.
20484 * loop-doloop.c (doloop_modify): Update.
20485 * loop-unroll.c (compare_and_jump_seq): Update.
20486 * optabs.c (emit_cmp_and_jump_insn_1): Update.
20487 * predict.h: Update.
20488 * reorg.c (mostly_true_jump): Update.
20489 * rtl.h: Update.
20490 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Update.
20491 * config/alpha/alpha.c (emit_unlikely_jump): Update.
20492 * config/arc/arc.c: (emit_unlikely_jump): Update.
20493 * config/arm/arm.c: (emit_unlikely_jump): Update.
20494 * config/bfin/bfin.c (cbranch_predicted_taken_p): Update.
20495 * config/frv/frv.c (frv_print_operand_jump_hint): Update.
20496 * config/i386/i386.c (ix86_expand_split_stack_prologue): Update.
20497 (ix86_print_operand): Update.
20498 (ix86_split_fp_branch): Update.
20499 (predict_jump): Update.
20500 * config/ia64/ia64.c (ia64_print_operand): Update.
20501 * config/mmix/mmix.c (mmix_print_operand): Update.
20502 * config/powerpcspe/powerpcspe.c (output_cbranch): Update.
20503 (rs6000_expand_split_stack_prologue): Update.
20504 * config/rs6000/rs6000.c: Update.
20505 * config/s390/s390.c (s390_expand_vec_strlen): Update.
20506 (s390_expand_vec_movstr): Update.
20507 (s390_expand_cs_tdsi): Update.
20508 (s390_expand_split_stack_prologue): Update.
20509 * config/sh/sh.c (sh_print_operand): Update.
20510 (expand_cbranchsi4): Update.
20511 (expand_cbranchdi4): Update.
20512 * config/sparc/sparc.c (output_v9branch): Update.
20513 * config/spu/spu.c (get_branch_target): Update.
20514 (ea_load_store_inline): Update.
20515 * config/tilegx/tilegx.c (cbranch_predicted_p): Update.
20516 * config/tilepro/tilepro.c: Update.
20517
20518 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
20519
20520 * gimplify.c (mostly_copy_tree_r): Revert latest change.
20521 (gimplify_save_expr): Likewise.
20522
20523 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
20524
20525 * ipa-visibility.c (function_and_variable_visibility): Fix pasto.
20526
20527 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
20528
20529 * ipa-fnsummary.c (pass_data_ipa_fn_summary): Use
20530 TV_IPA_FNSUMMARY.
20531 * timevar.def (TV_IPA_FNSUMMARY): Define.
20532
20533 2017-07-16 Daniel Cederman <cederman@gaisler.com>
20534
20535 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
20536 to back store errata sensitive sequence from being generated.
20537 (sqrtdf2_fix): Likewise.
20538
20539 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
20540
20541 * tree-ssa-threadupdate.c (compute_path_counts,
20542 update_joiner_offpath_counts): Use profile_probability.
20543
20544 2017-07-15 Thomas Preud'homme <thomas.preudhomme@arm.com>
20545
20546 Revert:
20547 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
20548
20549 * config/arm/arm-c.c (arm_cpu_builtins): Define
20550 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
20551
20552 2017-07-14 Kelvin Nilsen <kelvin@gcc.gnu.org>
20553
20554 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
20555 array entries to represent __ieee128 versions of the
20556 scalar_test_data_class, scalar_test_neg, scalar_extract_exp,
20557 scalar_extract_sig, and scalar_insert_exp built-in functions.
20558 (altivec_resolve_overloaded_builtin): Add special case handling
20559 for the __builtin_scalar_insert_exp function, as represented by
20560 the P9V_BUILTIN_VEC_VSIEDP constant.
20561 * config/rs6000/rs6000-builtin.def (VSEEQP): Add scalar extract
20562 exponent support for __ieee128 argument.
20563 (VSESQP): Add scalar extract signature support for __ieee128
20564 argument.
20565 (VSTDCNQP): Add scalar test negative support for __ieee128
20566 argument.
20567 (VSIEQP): Add scalar insert exponent support for __int128 argument
20568 with __ieee128 result.
20569 (VSIEQPF): Add scalar insert exponent support for __ieee128
20570 argument with __ieee128 result.
20571 (VSTDCQP): Add scalar test data class support for __ieee128
20572 argument.
20573 (VSTDCNQP): Add overload support for scalar test negative with
20574 __ieee128 argument.
20575 (VSTDCQP): Add overload support for scalar test data class
20576 __ieee128 argument.
20577 * config/rs6000/vsx.md (UNSPEC_VSX_SXSIG) Replace
20578 UNSPEC_VSX_SXSIGDP.
20579 (UNSPEC_VSX_SIEXPQP): New constant.
20580 (xsxexpqp): New insn for VSX scalar extract exponent quad
20581 precision.
20582 (xsxsigqp): New insn for VSX scalar extract significand quad
20583 precision.
20584 (xsiexpqpf): New insn for VSX scalar insert exponent quad
20585 precision with floating point argument.
20586 (xststdcqp): New expand for VSX scalar test data class quad
20587 precision.
20588 (xststdcnegqp): New expand for VSX scalar test negative quad
20589 precision.
20590 (xststdcqp): New insn to match expansions for VSX scalar test data
20591 class quad precision and VSX scalar test negative quad precision.
20592 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
20593 special case operand checking to enforce that second operand of
20594 VSX scalar test data class with quad precision argument is a 7-bit
20595 unsigned literal.
20596 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
20597 prototypes and descriptions of __ieee128 versions of
20598 scalar_extract_exp, scalar_extract_sig, scalar_insert_exp,
20599 scalar_test_data_class, and scalar_test_neg built-in functions.
20600
20601 2016-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20602
20603 PR tree-optimization/81162
20604 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
20605 replace a negate with an add.
20606
20607 2017-07-14 James Greenhalgh <james.greenhalgh@arm.com>
20608
20609 * doc/invoke.texi (arm/-mcpu): Document +crypto.
20610
20611 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
20612
20613 * config/arm/arm-c.c (arm_cpu_builtins): Define
20614 __ARM_FEATURE_NUMERIC_MAXMIN solely based on TARGET_VFP5.
20615
20616 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
20617
20618 * config/arm/arm-cpus.in (cortex-r52): Add new entry.
20619 (armv8-r): Set ARM Cortex-R52 as default CPU.
20620 * config/arm/arm-tables.opt: Regenerate.
20621 * config/arm/arm-tune.md: Regenerate.
20622 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
20623 Cortex-R52.
20624 * doc/invoke.texi: Mention -mtune=cortex-r52 and availability of fp.dp
20625 extension for -mcpu=cortex-r52.
20626
20627 2017-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
20628
20629 * config/arm/arm-isa.h (isa_bit_FP_ARMv8): Delete enumerator.
20630 (ISA_FP_ARMv8): Define as ISA_FPv5 and ISA_FP_D32.
20631 * config/arm/arm-cpus.in (armv8-r): Define fp.sp as enabling FPv5.
20632 (fp-armv8): Define it as FP_ARMv8 only.
20633 config/arm/arm.h (TARGET_FPU_ARMV8): Delete.
20634 (TARGET_VFP_FP16INST): Define using TARGET_VFP5 rather than
20635 TARGET_FPU_ARMV8.
20636 config/arm/arm.c (arm_rtx_costs_internal): Replace checks against
20637 TARGET_FPU_ARMV8 by checks against TARGET_VFP5.
20638 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Define
20639 first ARM_CHECK_BUILTIN_MODE definition using TARGET_VFP5 rather
20640 than TARGET_FPU_ARMV8.
20641 * config/arm/arm-c.c (arm_cpu_builtins): Likewise for
20642 __ARM_FEATURE_NUMERIC_MAXMIN macro definition.
20643 * config/arm/arm.md (cmov<mode>): Condition on TARGET_VFP5 rather than
20644 TARGET_FPU_ARMV8.
20645 * config/arm/neon.md (neon_vrint): Likewise.
20646 (neon_vcvt): Likewise.
20647 (neon_<fmaxmin_op><mode>): Likewise.
20648 (<fmaxmin><mode>3): Likewise.
20649 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Likewise.
20650 * config/arm/predicates.md (arm_cond_move_operator): Check against
20651 TARGET_VFP5 rather than TARGET_FPU_ARMV8 and fix spacing.
20652
20653 2017-07-14 Jackson Woodruff <jackson.woodruff@arm.com>
20654
20655 * config/aarch64/aarch64.c (aarch64_print_operand): Move comments
20656 to top of function.
20657
20658 2017-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20659
20660 * gimple-ssa-store-merging.c (clear_bit_region): Replace reference to
20661 loop in comment with memset.
20662
20663 2017-07-14 Martin Liska <mliska@suse.cz>
20664
20665 * cfgexpand.c (expand_gimple_basic_block): Remove dead comment.
20666 * dwarf2out.c (is_java): Remove the function.
20667 (output_pubname): Remove usage of the function.
20668 (lower_bound_default): Remove usage of DW_LANG_Java.
20669 (gen_compile_unit_die): Likewise.
20670 * gcc.c: Remove compiler defaults for .java and .zip files.
20671 * gimple-expr.c (remove_suffix): Change as there's no longer
20672 extension than 4-letter one.
20673 * gimplify.c (mostly_copy_tree_r): Remove Java-special part.
20674 (gimplify_save_expr): Likewise.
20675 * ipa-utils.h (polymorphic_type_binfo_p): Remove the comment
20676 as it's possible even for other languages than Java.
20677 * langhooks.h (struct lang_hooks): Remove Java from a comment.
20678 * lto-opts.c (lto_write_options): Remove reference to Java.
20679 * opts.c (strip_off_ending): Update file extension handling.
20680 * tree-cfg.c (verify_gimple_call): Remove comment with Java.
20681 * tree-eh.c (lower_resx): Likewise.
20682 * tree.c (free_lang_data_in_type): Remove dead code.
20683 (find_decls_types_r): Likewise.
20684 (build_common_builtin_nodes): Remove Java from a comment.
20685 (verify_type): Remove dead code.
20686 * varasm.c (assemble_external): Remove Java from a comment.
20687
20688 2017-07-14 Martin Liska <mliska@suse.cz>
20689
20690 * opts.c (finish_options): Add quotes.
20691 (common_handle_option): Likewise.
20692
20693 2017-07-14 Martin Liska <mliska@suse.cz>
20694
20695 * dbxout.c (get_lang_number): Do not handle GNU Pascal.
20696 * dbxout.h (extern void dbxout_stab_value_internal_label_diff):
20697 Remove N_SO_PASCAL.
20698 * dwarf2out.c (lower_bound_default): Do not handle
20699 DW_LANG_Pascal83.
20700 (gen_compile_unit_die): Likewise.
20701 * gcc.c: Remove default extension binding for GNU Pascal.
20702 * stmt.c: Remove Pascal language from a comment.
20703 * xcoffout.c: Likewise.
20704
20705 2017-07-13 David Malcolm <dmalcolm@redhat.com>
20706
20707 PR c/81405
20708 * diagnostic-show-locus.c (fixit_cmp): New function.
20709 (layout::layout): Sort m_fixit_hints.
20710 (column_range::column_range): Assert that the values are valid.
20711 (struct char_span): New struct.
20712 (correction::overwrite): New method.
20713 (struct source_line): New struct.
20714 (line_corrections::add_hint): Add assertions. Reimplement memcpy
20715 calls in terms of classes source_line and char_span, and
20716 correction::overwrite.
20717 (selftest::test_overlapped_fixit_printing_2): New function.
20718 (selftest::diagnostic_show_locus_c_tests): Call it.
20719
20720 2017-07-13 Will Schmidt <will_schmidt@vnet.ibm.com>
20721
20722 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Return
20723 early if there is no lhs.
20724
20725 2017-07-13 Martin Liska <mliska@suse.cz>
20726
20727 * dwarf2out.c (gen_pointer_type_die): Remove dead code.
20728 (gen_reference_type_die): Likewise.
20729 * stor-layout.c: Remove Pascal-related comment.
20730
20731 2017-07-13 Martin Liska <mliska@suse.cz>
20732
20733 * opts.c (finish_options): Add quotes to error messages.
20734 (parse_sanitizer_options): Likewise.
20735
20736 2017-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
20737
20738 * doc/invoke.texi (armv8-r): Document +fp.sp ARMv8-R extension.
20739
20740 2017-07-13 Richard Earnshaw <rearnsha@arm.com>
20741
20742 * config/arm/vxworks.h (TARGET_ENDIAN_DEFAULT): Define.
20743
20744 2017-07-13 Maxim Ostapenko <m.ostapenko@samsung.com>
20745
20746 * asan.c (asan_emit_allocas_unpoison): Use ptr_mode for arguments
20747 during expansion.
20748 * builtins.c (expand_asan_emit_allocas_unpoison): Likewise.
20749
20750 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
20751
20752 PR target/81193
20753 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
20754 provides the hardware capability bits, define the macro
20755 __BUILTIN_CPU_SUPPORTS__.
20756 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
20757 if GLIBC does not provide the hardware capability bits. Add a
20758 gcc_unreachable call if the built-in cpu function is neither
20759 __builtin_cpu_is nor __builtin_cpu_supports.
20760 (rs6000_get_function_versions_dispatcher): Change the warning
20761 that an old GLIBC is used which does not export the capability
20762 bits to be an error.
20763 * doc/extend.texi (target_clones attribute): Document the
20764 restriction that GLIBC 2.23 or newer is needed on the PowerPC.
20765 (PowerPC built-in functions): Document that GLIBC 2.23 or newer is
20766 needed by __builtin_cpu_is and __builtin_cpu_supports. Document
20767 the macros defined by GCC if the newer GLIBC is available.
20768
20769 2017-07-12 Jeff Law <law@redhat.com>
20770
20771 * config/riscv/riscv.c: Remove unnecessary includes. Reorder
20772 remaining includes slightly.
20773 * config/riscv/riscv-builtins.c: Include profile-count.h.
20774
20775 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
20776
20777 PR target/79883
20778 * config/avr/avr.c (avr_set_current_function): In diagnostic
20779 messages: Quote keywords and (parts of) identifiers.
20780 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
20781 "INTERUPT".
20782
20783 2017-07-12 Carl Love <cel@us.ibm.com>
20784
20785 * config/rs6000/rs6000-c.c: Add support for built-in functions
20786 vector bool char vec_revb (vector bool char);
20787 vector bool short vec_revb (vector short char);
20788 vector bool int vec_revb (vector bool int);
20789 vector bool long long vec_revb (vector bool long long);
20790 * doc/extend.texi: Update the built-in documentation file for the
20791 new built-in functions.
20792
20793 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20794
20795 * config/s390/s390.md: Remove movcc splitter.
20796
20797 2017-07-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20798
20799 * config/s390/s390.c (s390_rtx_costs): Return proper costs for
20800 load/store on condition.
20801
20802 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
20803
20804 PR target/81407
20805 * config/avr/avr.c (avr_encode_section_info)
20806 [progmem && !TREE_READONLY]: Error if progmem object needs
20807 constructing.
20808
20809 2017-07-11 Michael Collison <michael.collison@arm.com>
20810
20811 * config/aarch64/aarch64-simd.md (aarch64_sub<mode>_compare0):
20812 New pattern.
20813
20814 2017-07-11 Carl Love <cel@us.ibm.com>
20815
20816 * config/rs6000/rs6000-c.c: Add support for builtins
20817 vector unsigned int vec_parity_lsbb (vector signed int);
20818 vector unsigned int vec_parity_lsbb (vector unsigned int);
20819 vector unsigned __int128 vec_parity_lsbb (vector signed __int128);
20820 vector unsigned __int128 vec_parity_lsbb (vector unsigned __int128);
20821 vector unsigned long long vec_parity_lsbb (vector signed long long);
20822 vector unsigned long long vec_parity_lsbb (vector unsigned long long);
20823 * config/rs6000/rs6000-builtin.def (VPARITY_LSBB): Add BU_P9V_OVERLOAD1.
20824 * config/rs6000/altivec.h (vec_parity_lsbb): Add define.
20825 * doc/extend.texi: Update the built-in documentation file for the
20826 new built-in functions.
20827
20828 2017-07-11 David Malcolm <dmalcolm@redhat.com>
20829
20830 * diagnostic-show-locus.c: Include "gcc-rich-location.h".
20831 (layout::m_primary_loc): New field.
20832 (layout::layout): Initialize new field. Move location filtering
20833 logic from here to...
20834 (layout::maybe_add_location_range): ...this new method. Add
20835 support for filtering to just the lines already specified by other
20836 locations.
20837 (layout::will_show_line_p): New method.
20838 (gcc_rich_location::add_location_if_nearby): New method.
20839 (selftest::test_add_location_if_nearby): New test function.
20840 (selftest::diagnostic_show_locus_c_tests): Call it.
20841 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
20842 New method.
20843
20844 2017-07-11 Tom de Vries <tom@codesourcery.com>
20845
20846 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG): New macro.
20847 (bb_first_real_insn): New function.
20848 (nvptx_single): Add extra initialization of broadcasted condition
20849 variables.
20850
20851 2017-07-11 Nathan Sidwell <nathan@acm.org>
20852
20853 * dwarf2out.c (gen_member_die): Remove useless check for anon ctors.
20854
20855 2017-07-11 Georg-Johann Lay <avr@gjlay.de>
20856
20857 * doc/extend.texi (AVR Function Attributes): Remove weblink to
20858 Binutils doc as TEXI will mess them up.
20859 * doc/invoke.texi (AVR Options): Same here.
20860
20861 2017-07-11 Daniel Cederman <cederman@gaisler.com>
20862
20863 * config/sparc/sparc.opt (mfix-ut700): New option.
20864 (mfix-gr712rc): Likewise.
20865 (sparc_fix_b2bst): New variable.
20866 * doc/invoke.texi (SPARC options): Document them.
20867 (ARM options): Fix warnings.
20868 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
20869 instructions to prevent sequences that can trigger the store-store
20870 errata for certain LEON3FT processors.
20871 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
20872 (sparc_option_override): Set sparc_fix_b2bst appropriately.
20873 * config/sparc/sparc.md (fix_b2bst): New attribute.
20874 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
20875
20876 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
20877
20878 PR target/81375
20879 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
20880 (rcpps): Ditto.
20881 (*rsqrtsf2_sse): Ditto.
20882 (rsqrtsf2): Ditto.
20883 (div<mode>3): Macroize insn from divdf3 and divsf3
20884 using MODEF mode iterator.
20885
20886 2017-07-10 Martin Sebor <msebor@redhat.com>
20887
20888 PR tree-optimization/80397
20889 * gimple-ssa-sprintf.c (format_integer): Use INTEGRAL_TYPE_P()
20890 instead of testing for equality to INTEGER_TYPE.
20891
20892 2017-07-10 Vineet Gupta <vgupta@synopsys.com>
20893
20894 * config.gcc: Remove uclibc from arc target spec.
20895
20896 2017-07-10 Claudiu Zissulescu <claziss@synopsys.com>
20897
20898 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Define.
20899
20900 2017-07-07 Jan Hubicka <hubicka@ucw.cz>
20901
20902 PR lto/80838
20903 * lto-wrapper.c (remove_option): New function.
20904 (merge_and_complain): Merge PIC/PIE options more realistically.
20905
20906 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
20907
20908 Better ISR prologues by supporting GASes __gcc_isr pseudo insn.
20909
20910 PR target/20296
20911 PR target/81268
20912 * configure.ac [target=avr]: Add GAS check for -mgcc-isr.
20913 (HAVE_AS_AVR_MGCCISR_OPTION): If so, AC_DEFINE it.
20914 * config.in: Regenerate.
20915 * configure: Regenerate.
20916 * doc/extend.texi (AVR Function Attributes) <no_gccisr>: Document it.
20917 * doc/invoke.texi (AVR Options) <-mgas-isr-prologues>: Document it.
20918 * config/avr/avr.opt (-mgas-isr-prologues): New option and...
20919 (TARGET_GASISR_PROLOGUES): ...target mask.
20920 * common/config/avr/avr-common.c
20921 (avr_option_optimization_table) [OPT_LEVELS_1_PLUS_NOT_DEBUG]:
20922 Set -mgas-isr-prologues.
20923 * config/avr/avr-passes.def (avr_pass_pre_proep): Add
20924 INSERT_PASS_BEFORE for it.
20925 * config/avr/avr-protos.h (make_avr_pass_pre_proep): New proto.
20926 * config/avr/avr.c (avr_option_override)
20927 [!HAVE_AS_AVR_MGCCISR_OPTION]: Unset TARGET_GASISR_PROLOGUES.
20928 (avr_no_gccisr_function_p, avr_hregs_split_reg): New static functions.
20929 (avr_attribute_table) <no_gccisr>: Add new function attribute.
20930 (avr_set_current_function) <is_no_gccisr>: Init machine field.
20931 (avr_pass_data_pre_proep, avr_pass_pre_proep): New pass data
20932 and rtl_opt_pass.
20933 (make_avr_pass_pre_proep): New function.
20934 (emit_push_sfr) <treg>: Add argument to function and use it
20935 instead of TMP_REG.
20936 (avr_expand_prologue) [machine->gasisr.maybe]: Emit gasisr insn
20937 and set machine->gasisr.yes.
20938 (avr_expand_epilogue) [machine->gasisr.yes]: Similar.
20939 (avr_asm_function_end_prologue) [machine->gasisr.yes]: Add
20940 __gcc_isr.n_pushed to .L__stack_usage.
20941 (TARGET_ASM_FINAL_POSTSCAN_INSN): Define to...
20942 (avr_asm_final_postscan_insn): ...this new static function.
20943 * config/avr/avr.h (machine_function)
20944 <is_no_gccisr, use_L__stack_usage>: New fields.
20945 <gasisr, gasisr.yes, gasisr.maybe, gasisr.regno>: New fields.
20946 * config/avr/avr.md (UNSPECV_GASISR): Add unspecv enum.
20947 (GASISR_Prologue, GASISR_Epilogue, GASISR_Done): New define_constants.
20948 (gasisr, *gasisr): New expander and insn.
20949 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
20950 [HAVE_AS_AVR_MGCCISR_OPTION]: Print asm_gccisr spec.
20951 * config/avr/specs.h (ASM_SPEC) <asm_gccisr>: Add sub spec.
20952
20953 2017-07-10 Richard Earnshaw <rearnsha@arm.com>
20954
20955 * config/arm/parsecpu.awk (gen_comm_data): Do not escape single quotes
20956 in quoted strings.
20957
20958 2017-07-10 Georg-Johann Lay <avr@gjlay.de>
20959
20960 Move jump-tables out of .text again.
20961
20962 PR target/81075
20963 * config/avr/avr.c (ASM_OUTPUT_ADDR_VEC_ELT): Remove function.
20964 (ASM_OUTPUT_ADDR_VEC): New function.
20965 (avr_adjust_insn_length) [JUMP_TABLE_DATA_P]: Return 0.
20966 (avr_final_prescan_insn) [avr_log.insn_addresses]: Dump
20967 INSN_ADDRESSes as asm comment.
20968 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION): Adjust comment.
20969 (ASM_OUTPUT_ADDR_VEC_ELT): Remove define.
20970 (ASM_OUTPUT_ADDR_VEC): Define to avr_output_addr_vec.
20971 * config/avr/avr.md (*tablejump): Adjust comment.
20972 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
20973 * config/avr/avr-log.c (avr_log_set_avr_log) <insn_addresses>:
20974 New detail.
20975 * config/avr/avr-protos.h (avr_output_addr_vec_elt): Remove proto.
20976 (avr_output_addr_vec): New proto.
20977 (avr_log_t) <insn_addresses>: New field.
20978
20979 2017-07-09 H.J. Lu <hongjiu.lu@intel.com>
20980
20981 PR target/81313
20982 * config/i386/i386.c (ix86_function_arg_advance): Set
20983 outgoing_args_on_stack to true if there are outgoing arguments
20984 on stack.
20985 (ix86_function_arg): Likewise.
20986 (ix86_get_drap_rtx): Use DRAP only if there are outgoing
20987 arguments on stack and ACCUMULATE_OUTGOING_ARGS is false.
20988 * config/i386/i386.h (machine_function): Add
20989 outgoing_args_on_stack.
20990
20991 2017-07-09 Krister Walfridsson <krister.walfridsson@gmail.com>
20992
20993 * config.gcc (*-*-netbsd*): Remove check for NetBSD versions not
20994 supporting pthreds.
20995 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always enable pthreads.
20996
20997 2017-07-08 Richard Sandiford <richard.sandiford@linaro.org>
20998
20999 * Makefile.in (HOOKS_H, RTL_BASE_H, FUNCTION_H, EXPR_H, REGS_H)
21000 (REAL_H): Remove $(MACHMODE_H).
21001 (FIXED_VALUE_H, TREE_CORE_H, CFGLOOP_H): Remove $(MACHMODE_H) and
21002 double-int.h.
21003 (CORETYPES_H): Add signop.h, wide-int.h, wide-int-print.h,
21004 $(MACHMODE_H) and double-int.h.
21005 (build/min-insn-modes.o): Depend on $(CORETYPES_H) rather than
21006 $(MACHMODE_H).
21007 (gengtype-state.o, gengtype.o, build/gengtype.o): Don't depend on
21008 double-int.h.
21009
21010 2017-07-07 Andrew Pinski <apinski@cavium.com>
21011
21012 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check
21013 prev_set and curr_set for AARCH64_FUSE_ALU_BRANCH.
21014
21015 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
21016
21017 * config/rs6000/rs6000.c (rs6000_get_function_versions_dispatcher):
21018 Add warning if GCC was not configured to link against a GLIBC that
21019 exports the hardware capability bits.
21020 (make_resolver_func): Make resolver function private and not a
21021 COMDAT function. Create the name with clone_function_name instead
21022 of make_unique_name.
21023
21024 PR target/81348
21025 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
21026 correct operand in doing the split.
21027
21028 2017-07-07 Carl Love <cel@us.ibm.com>
21029
21030 * config/rs6000/rs6000-c: Add support for built-in function
21031 vector unsigned short vec_pack_to_short_fp32 (vector float,
21032 vector float).
21033 * config/rs6000/rs6000-builtin.def (CONVERT_4F32_8I16): Add
21034 BU_P9V_AV_2 and BU_P9V_OVERLOAD_2 definitions.
21035 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Add define.
21036 * config/rs6000/altivec.md(UNSPEC_CONVERT_4F32_8I16): Add UNSPEC.
21037 (convert_4f32_8i16): Add define_expand.
21038 * doc/extend.texi: Update the built-in documentation file for the
21039 new built-in function.
21040
21041 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
21042
21043 * config/sparc/m8.md: New file.
21044 * config/sparc/sparc.md: Include m8.md.
21045
21046 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
21047
21048 * config/sparc/sparc.opt: New option -mvis4b.
21049 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
21050 (sparc_option_override): Handle VIS4B.
21051 (enum sparc_builtins): Define
21052 SPARC_BUILTIN_DICTUNPACK{8,16,32},
21053 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
21054 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
21055 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
21056 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
21057 (check_constant_argument): New function.
21058 (sparc_vis_init_builtins): Define builtins
21059 __builtin_vis_dictunpack{8,16,32},
21060 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
21061 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
21062 __builtin_vis_fpcmpde{8,16,32}shl and
21063 __builtin_vis_fpcmpur{8,16,32}shl.
21064 (sparc_expand_builtin): Check that the constant operands to
21065 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
21066 constant and in range.
21067 * config/sparc/sparc-c.c (sparc_target_macros): Handle
21068 TARGET_VIS4B.
21069 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
21070 (SPARC_IMM5_P): Likewise.
21071 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
21072 (enabled): Handle vis4b.
21073 (UNSPEC_DICTUNPACK): New unspec.
21074 (UNSPEC_FPCMPSHL): Likewise.
21075 (UNSPEC_FPUCMPSHL): Likewise.
21076 (UNSPEC_FPCMPDESHL): Likewise.
21077 (UNSPEC_FPCMPURSHL): Likewise.
21078 (cpu_feature): New CPU feature `vis4b'.
21079 (dictunpack{8,16,32}): New insns.
21080 (FPCSMODE): New mode iterator.
21081 (fpcscond): New code iterator.
21082 (fpcsucond): Likewise.
21083 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
21084 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
21085 (fpcmpde{8,16,32}{si,di}shl): Likewise.
21086 (fpcmpur{8,16,32}{si,di}shl): Likewise.
21087 * config/sparc/constraints.md: Define constraints `q' for unsigned
21088 2-bit integer constants and `t' for unsigned 5-bit integer
21089 constants.
21090 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
21091 predicate.
21092 (imm5_operand_dictunpack16): Likewise.
21093 (imm5_operand_dictunpack32): Likewise.
21094 (imm2_operand): Likewise.
21095 * doc/invoke.texi (SPARC Options): Document -mvis4b.
21096 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
21097 ditunpack* and fpcmp*shl builtins.
21098
21099 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
21100
21101 * config.gcc: Handle m8 in --with-{cpu,tune} options.
21102 * config.in: Add HAVE_AS_SPARC6 define.
21103 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
21104 M8.
21105 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
21106 TARGET_CPU_m8.
21107 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
21108 (CPP_CPU_SPEC): Handle m8.
21109 (ASM_CPU_SPEC): Likewise.
21110 * config/sparc/sparc-opts.h (enum processor_type): Add
21111 PROCESSOR_M8.
21112 * config/sparc/sparc.c (m8_costs): New struct.
21113 (sparc_option_override): Handle TARGET_CPU_m8.
21114 (sparc32_initialize_trampoline): Likewise.
21115 (sparc64_initialize_trampoline): Likewise.
21116 (sparc_issue_rate): Likewise.
21117 (sparc_register_move_cost): Likewise.
21118 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
21119 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
21120 (ASM_CPU64_DEFAULT_SPEC): Likewise.
21121 (CPP_CPU_SPEC): Handle M8.
21122 (ASM_CPU_SPEC): Likewise.
21123 (AS_M8_FLAG): Define.
21124 * config/sparc/sparc.md: Add m8 to the cpu attribute.
21125 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
21126 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
21127 M8 instructions.
21128 * configure: Regenerate.
21129 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
21130 -mtune=m8.
21131
21132 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
21133
21134 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
21135 subtypes.
21136 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
21137 ("*movdi_insn_sp32"): Do not set v3pipe.
21138 ("*movsi_insn"): Likewise.
21139 ("*movdi_insn_sp64"): Likewise.
21140 ("*movsf_insn"): Likewise.
21141 ("*movdf_insn_sp32"): Likewise.
21142 ("*movdf_insn_sp64"): Likewise.
21143 ("*zero_extendsidi2_insn_sp64"): Likewise.
21144 ("*sign_extendsidi2_insn"): Likewise.
21145 ("*mov<VM32:mode>_insn"): Likewise.
21146 ("*mov<VM64:mode>_insn_sp64"): Likewise.
21147 ("*mov<VM64:mode>_insn_sp32"): Likewise.
21148 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
21149 ("<vlop:code><VL:mode>3"): Likewise.
21150 ("*not_<vlop:code><VL:mode>3"): Likewise.
21151 ("*nand<VL:mode>_vis"): Likewise.
21152 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
21153 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
21154 ("one_cmpl<VL:mode>2"): Likewise.
21155 ("faligndata<VM64:mode>_vis"): Likewise.
21156 ("alignaddrsi_vis"): Likewise.
21157 ("alignaddrdi_vis"): Likweise.
21158 ("alignaddrlsi_vis"): Likewise.
21159 ("alignaddrldi_vis"): Likewise.
21160 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
21161 ("bmaskdi_vis"): Likewise.
21162 ("bmasksi_vis"): Likewise.
21163 ("bshuffle<VM64:mode>_vis"): Likewise.
21164 ("cmask8<P:mode>_vis"): Likewise.
21165 ("cmask16<P:mode>_vis"): Likewise.
21166 ("cmask32<P:mode>_vis"): Likewise.
21167 ("pdistn<P:mode>_vis"): Likewise.
21168 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
21169
21170 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
21171
21172 * config/sparc/sparc.md ("subtype"): New insn attribute.
21173 ("*wrgsr_sp64"): Set insn subtype.
21174 ("*rdgsr_sp64"): Likewise.
21175 ("alignaddrsi_vis"): Likewise.
21176 ("alignaddrdi_vis"): Likewise.
21177 ("alignaddrlsi_vis"): Likewise.
21178 ("alignaddrldi_vis"): Likewise.
21179 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
21180 ("fexpand_vis"): Likewise.
21181 ("fpmerge_vis"): Likewise.
21182 ("faligndata<VM64:mode>_vis"): Likewise.
21183 ("bshuffle<VM64:mode>_vis"): Likewise.
21184 ("cmask8<P:mode>_vis"): Likewise.
21185 ("cmask16<P:mode>_vis"): Likewise.
21186 ("cmask32<P:mode>_vis"): Likewise.
21187 ("fchksm16_vis"): Likewise.
21188 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
21189 ("fmean16_vis"): Likewise.
21190 ("fp<plusminus_insn>64_vis"): Likewise.
21191 ("<plusminus_insn>v8qi3"): Likewise.
21192 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
21193 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
21194 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
21195 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
21196 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
21197 ("*movqi_insn"): Likewise.
21198 ("*movhi_insn"): Likewise.
21199 ("*movsi_insn"): Likewise.
21200 ("movsi_pic_gotdata_op"): Likewise.
21201 ("*movdi_insn_sp32"): Likewise.
21202 ("*movdi_insn_sp64"): Likewise.
21203 ("movdi_pic_gotdata_op"): Likewise.
21204 ("*movsf_insn"): Likewise.
21205 ("*movdf_insn_sp32"): Likewise.
21206 ("*movdf_insn_sp64"): Likewise.
21207 ("*zero_extendhisi2_insn"): Likewise.
21208 ("*zero_extendqihi2_insn"): Likewise.
21209 ("*zero_extendqisi2_insn"): Likewise.
21210 ("*zero_extendqidi2_insn"): Likewise.
21211 ("*zero_extendhidi2_insn"): Likewise.
21212 ("*zero_extendsidi2_insn_sp64"): Likewise.
21213 ("ldfsr"): Likewise.
21214 ("prefetch_64"): Likewise.
21215 ("prefetch_32"): Likewise.
21216 ("tie_ld32"): Likewise.
21217 ("tie_ld64"): Likewise.
21218 ("*tldo_ldub_sp32"): Likewise.
21219 ("*tldo_ldub1_sp32"): Likewise.
21220 ("*tldo_ldub2_sp32"): Likewise.
21221 ("*tldo_ldub_sp64"): Likewise.
21222 ("*tldo_ldub1_sp64"): Likewise.
21223 ("*tldo_ldub2_sp64"): Likewise.
21224 ("*tldo_ldub3_sp64"): Likewise.
21225 ("*tldo_lduh_sp32"): Likewise.
21226 ("*tldo_lduh1_sp32"): Likewise.
21227 ("*tldo_lduh_sp64"): Likewise.
21228 ("*tldo_lduh1_sp64"): Likewise.
21229 ("*tldo_lduh2_sp64"): Likewise.
21230 ("*tldo_lduw_sp32"): Likewise.
21231 ("*tldo_lduw_sp64"): Likewise.
21232 ("*tldo_lduw1_sp64"): Likewise.
21233 ("*tldo_ldx_sp64"): Likewise.
21234 ("*mov<VM32:mode>_insn"): Likewise.
21235 ("*mov<VM64:mode>_insn_sp64"): Likewise.
21236 ("*mov<VM64:mode>_insn_sp32"): Likewise.
21237
21238 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
21239
21240 * config/sparc/sparc.md ("type"): New insn type viscmp.
21241 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
21242 viscmp.
21243 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
21244 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
21245 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
21246 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
21247 viscmp.
21248 ("n7_vis_logical_11cycle"): Likewise.
21249 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
21250 * config/sparc/niagara2.md ("niag3_vis": Likewise.
21251 * config/sparc/niagara.md ("niag_vis"): Likewise.
21252 * config/sparc/ultra3.md ("us3_fga"): Likewise.
21253 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
21254
21255 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
21256
21257 * config/sparc/sparc.md: New instruction type `bmask'.
21258 (bmaskdi_vis): Use the `bmask' type.
21259 (bmasksi_vis): Likewise.
21260 * config/sparc/ultra3.md (us3_array): Likewise.
21261 * config/sparc/niagara7.md (n7_array): Likewise.
21262 * config/sparc/niagara4.md (n4_array): Likewise.
21263 * config/sparc/niagara2.md (niag2_vis): Likewise.
21264 (niag3_vis): Likewise.
21265 * config/sparc/niagara.md (niag_vis): Likewise.
21266
21267 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
21268
21269 * ipa-comdats.c: Remove optimize check from gate.
21270 * ipa-fnsummary.c (ipa_fn_summary_generate): do not generate summary
21271 for functions not optimized.
21272 (ipa_fn_summary_read): Skip optimize check.
21273 (ipa_fn_summary_write): Likewise.
21274 * ipa-inline-analysis.c (do_estimate_growth_1): Check that caller
21275 is optimized.
21276 * ipa-inline.c (can_inline_edge_p): Not optimized functions are
21277 uninlinable.
21278 (can_inline_edge_p): Check flag_pcc_struct_return for match.
21279 (check_callers): Give up on caller which is not optimized.
21280 (inline_small_functions): Likewise.
21281 (ipa_inline): Do not give up when not optimizing.
21282 * ipa-visbility.c (function_and_variable_visibility): Do not optimize
21283 away unoptimizes cdtors.
21284 (whole_program_function_and_variable_visibility): Do
21285 ipa_discover_readonly_nonaddressable_vars in LTO mode.
21286 * ipa.c (process_references): Do not check optimize.
21287 (symbol_table::remove_unreachable_nodes): Update optimize check.
21288 (set_writeonly_bit): Update optimize check.
21289 (pass_ipa_cdtor_merge::gate): Do not check optimize.
21290 (pass_ipa_single_use::gate): Remove.
21291
21292 2017-07-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
21293
21294 * config/rs6000/rs6000.c (union_defs, union_uses, insn_is_load_p,
21295 insn_is_store_p, insn_is_swap_p, const_load_sequence_p, v2df_reduction_p,
21296 rtx_is_swappable_p, insn_is_swappable_p, chain_contains_only_swaps,
21297 mark_swaps_for_removal, swap_const_vector_halves, adjust_subreg_index,
21298 permute_load, permute_store, adjust_extract, adjust_splat,
21299 adjust_xxpermdi, adjust_concat, adjust_vperm, handle_special_swappables,
21300 replace_swap_with_copy, dump_swap_insn_table,
21301 alignment_with_canonical_addr, alignment_mask, find_alignment_op,
21302 recombine_lvx_pattern, recombine_stvx_pattern,
21303 recombine_lvx_stvx_patterns, rs6000_analyze_swaps,
21304 make_pass_analyze_swaps): Move all code related to p8 swap optimizations
21305 to file rs6000-p8swap.c.
21306 * config/rs6000/rs6000-p8swap.c: New file.
21307 * config/rs6000/t-rs6000: Add rule to build rs6000-p8swap.o.
21308 * config.gcc: Add rs6000-p8swap.o to extra_objs for powerpc*-*-*
21309 and rs6000*-*-* targets.
21310
21311 2017-07-06 David Malcolm <dmalcolm@redhat.com>
21312
21313 * Makefile.in (selftest): Remove dependency on s-selftest-c++.
21314
21315 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
21316
21317 * lto-wrapper.c (merge_and_complain): Do not merge
21318 fexceptions, fnon_call_exceptions, ftrapv, ffp_contract_, fmath_errno,
21319 fsigned_zeros, ftrapping_math, fwrapv.
21320 (append_compiler_options): Do not track these options.
21321 (append_linker_options): Likewie
21322
21323 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
21324
21325 * cgraphunit.c (cgraph_node::finalize_function): When
21326 !flag_toplevel_reorde set no_reorder flag.
21327 (varpool_node::finalize_decl): Likewise.
21328 (symbol_table::compile): Drop no toplevel reorder path.
21329
21330 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
21331
21332 * bb-reorder.c (better_edge_p): Do not build traces across abnormal/eh
21333 edges; zero probability is not better than uninitialized.
21334
21335 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
21336
21337 * asan.h (asan_sanitize_allocas_p): Declare.
21338 * asan.c (asan_sanitize_allocas_p): New function.
21339 (handle_builtin_stack_restore): Bail out if !asan_sanitize_allocas_p.
21340 (handle_builtin_alloca): Likewise.
21341 * cfgexpand.c (expand_used_vars): Do not add allocas unpoisoning stuff
21342 if !asan_sanitize_allocas_p.
21343 * params.def (asan-instrument-allocas): Add new option.
21344 * params.h (ASAN_PROTECT_ALLOCAS): Define.
21345 * opts.c (common_handle_option): Disable allocas sanitization for
21346 KASan by default.
21347
21348 2017-07-06 Maxim Ostapenko <m.ostapenko@samsung.com>
21349
21350 * asan.c: Include gimple-fold.h.
21351 (get_last_alloca_addr): New function.
21352 (handle_builtin_stackrestore): Likewise.
21353 (handle_builtin_alloca): Likewise.
21354 (asan_emit_allocas_unpoison): Likewise.
21355 (get_mem_refs_of_builtin_call): Add new parameter, remove const
21356 quallifier from first paramerer. Handle BUILT_IN_ALLOCA,
21357 BUILT_IN_ALLOCA_WITH_ALIGN and BUILT_IN_STACK_RESTORE builtins.
21358 (instrument_builtin_call): Pass gimple iterator to
21359 get_mem_refs_of_builtin_call.
21360 (last_alloca_addr): New global.
21361 * asan.h (asan_emit_allocas_unpoison): Declare.
21362 * builtins.c (expand_asan_emit_allocas_unpoison): New function.
21363 (expand_builtin): Handle BUILT_IN_ASAN_ALLOCAS_UNPOISON.
21364 * cfgexpand.c (expand_used_vars): Call asan_emit_allocas_unpoison
21365 if function calls alloca.
21366 * gimple-fold.c (replace_call_with_value): Remove static keyword.
21367 * gimple-fold.h (replace_call_with_value): Declare.
21368 * internal-fn.c: Include asan.h.
21369 * sanitizer.def (BUILT_IN_ASAN_ALLOCA_POISON,
21370 BUILT_IN_ASAN_ALLOCAS_UNPOISON): New builtins.
21371
21372 2017-07-06 David Malcolm <dmalcolm@redhat.com>
21373
21374 * Makefile.in (SELFTEST_FLAGS): Drop "-x c", moving it to...
21375 (C_SELFTEST_FLAGS): New.
21376 (CPP_SELFTEST_FLAGS): New.
21377 (SELFTEST_DEPS): New, from deps of s-selftest.
21378 (C_SELFTEST_DEPS): New, from deps of s-selftest.
21379 (CPP_SELFTEST_DEPS): New.
21380 (selftest): Add dependency on s-selftest-c++.
21381 (s-selftest): Rename to...
21382 (s-selftest-c): ...this, moving deps to SELFTEST_DEPS
21383 and C_SELFTEST_DEPS, and using C_SELFTEST_FLAGS rather
21384 than SELFTEST_FLAGS.
21385 (selftest-gdb): Rename to...
21386 (selftest-c-gdb): ...this, using C_SELFTEST_DEPS and
21387 C_SELFTEST_FLAGS.
21388 (selftest-gdb): Reintroduce as an alias for selftest-c-gdb.
21389 (selftest-valgrind): Rename to...
21390 (selftest-c-valgrind): ...this, using C_SELFTEST_DEPS and
21391 C_SELFTEST_FLAGS.
21392 (selftest-valgrind): Reintroduce as an alias for
21393 selftest-c-valgrind.
21394 (s-selftest-c++): New.
21395 (selftest-c++-gdb): New.
21396 (selftest-c++-valgrind): New.
21397
21398 2017-07-06 Olivier Hainque <hainque@adacore.com>
21399
21400 * gcc.c (process_command): When deciding if undefined variables
21401 should be ignored when processing specs, accept "gcc -v" as well.
21402
21403 2017-07-06 Jan Hubicka <hubicka@ucw.cz>
21404
21405 * auto-profile.c (afdo_set_bb_count, afdo_propagate_edge,
21406 afdo_annotate_cfg): Set counts/probabilities as determined by afdo.
21407
21408 2017-07-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
21409
21410 * config/arm/arm-cpus.in (armv8-r): Add new entry.
21411 * config/arm/arm-isa.h (ISA_ARMv8r): Define macro.
21412 * config/arm/arm-tables.opt: Regenerate.
21413 * config/arm/arm.h (enum base_architecture): Add BASE_ARCH_8R
21414 enumerator.
21415 * doc/invoke.texi: Mention -march=armv8-r and its extensions.
21416
21417 2017-07-06 Carl Love <cel@us.ibm.com>
21418
21419 * ChangeLog: Clean up from mid air collision
21420
21421 2017-07-06 Carl Love <cel@us.ibm.com>
21422
21423 * config/rs6000/rs6000-c.c: Add support for built-in functions
21424 vector signed int vec_subc (vector signed int, vector signed int);
21425 vector signed __int128 vec_subc (vector signed __int128,
21426 vector signed __int128);
21427 vector unsigned __int128 vec_subc (vector unsigned __int128,
21428 vector unsigned __int128);
21429 vector signed int vec_sube (vector signed int, vector signed int,
21430 vector signed int);
21431 vector unsigned int vec_sube (vector unsigned int,
21432 vector unsigned int,
21433 vector unsigned int);
21434 vector signed __int128 vec_sube (vector signed __int128,
21435 vector signed __int128,
21436 vector signed__int128);
21437 vector unsigned __int128 vec_sube (vector unsigned __int128,
21438 vector unsigned __int128,
21439 vector unsigned __int128);
21440 vector signed int vec_subec (vector signed int, vector signed int,
21441 vector signed int);
21442 vector unsigned int vec_subec (vector unsigned int,
21443 vector unsigned int,
21444 vector unsigned int);
21445 vector signed __int128 vec_subec (vector signed __int128,
21446 vector signed __int128,
21447 vector signed__int128);
21448 vector unsigned __int128 vec_subec (vector unsigned __int128,
21449 vector unsigned __int128,
21450 vector unsigned __int128);
21451 * config/rs6000/rs6000.c (ALTIVEC_BUILTIN_VEC_SUBE,
21452 ALTIVEC_BUILTIN_VEC_SUBEC): Add ef_builtins.
21453 * config/rs6000/rs6000-builtin.def (SUBE, SUBEC): Add
21454 BU_ALTIVEC_OVERLOAD_X definitions.
21455 * config/rs6000/altivec.h (vec_sube, vec_subec): Add builtin defines.
21456 * doc/extend.texi: Update the built-in documentation file for the new
21457 built-in functions.
21458
21459 2017-07-06 David Malcolm <dmalcolm@redhat.com>
21460
21461 PR c++/79300
21462 * diagnostic-show-locus.c (layout::layout): Use start and finish
21463 spelling location for the start and finish of each range.
21464 * genmatch.c (linemap_client_expand_location_to_spelling_point):
21465 Add unused aspect param.
21466 * input.c (expand_location_1): Add "aspect" param, and use it
21467 to access the correct part of the location.
21468 (expand_location): Pass LOCATION_ASPECT_CARET to new param of
21469 expand_location_1.
21470 (expand_location_to_spelling_point): Likewise.
21471 (linemap_client_expand_location_to_spelling_point): Add "aspect"
21472 param, and pass it to expand_location_1.
21473
21474 2017-07-06 Sebastian Peryt <sebastian.peryt@intel.com>
21475
21476 * config/i386/avx512fintrin.h (_mm_mask_getexp_round_ss,
21477 _mm_maskz_getexp_round_ss, _mm_mask_getexp_round_sd,
21478 _mm_maskz_getexp_round_sd, _mm_mask_getmant_round_sd,
21479 _mm_maskz_getmant_round_sd, _mm_mask_getmant_round_ss,
21480 _mm_maskz_getmant_round_ss, _mm_mask_getexp_ss, _mm_maskz_getexp_ss,
21481 _mm_mask_getexp_sd, _mm_maskz_getexp_sd, _mm_mask_getmant_sd,
21482 _mm_maskz_getmant_sd, _mm_mask_getmant_ss,
21483 _mm_maskz_getmant_ss): New intrinsics.
21484 (__builtin_ia32_getexpss128_mask): Changed to ...
21485 __builtin_ia32_getexpss128_round ... this.
21486 (__builtin_ia32_getexpsd128_mask): Changed to ...
21487 __builtin_ia32_getexpsd128_round ... this.
21488 * config/i386/i386-builtin-types.def
21489 ((V2DF, V2DF, V2DF, INT, V2DF, UQI, INT),
21490 (V4SF, V4SF, V4SF, INT, V4SF, UQI, INT)): New function type aliases.
21491 * config/i386/i386-builtin.def (__builtin_ia32_getexpsd_mask_round,
21492 __builtin_ia32_getexpss_mask_round, __builtin_ia32_getmantsd_mask_round,
21493 __builtin_ia32_getmantss_mask_round): New builtins.
21494 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_UQI_INT,
21495 V4SF_FTYPE_V4SF_V4SF_INT_V4SF_UQI_INT): Handle new types.
21496 (CODE_FOR_avx512f_vgetmantv2df_mask_round,
21497 CODE_FOR_avx512f_vgetmantv4sf_mask_round): New cases.
21498 * config/i386/sse.md
21499 (avx512f_sgetexp<mode><round_saeonly_name>): Changed to ...
21500 avx512f_sgetexp<mode><mask_scalar_name>
21501 <round_saeonly_scalar_name> ... this.
21502 (vgetexp<ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|
21503 %0, %1, %2<round_saeonly_op3>}): Changed to ...
21504 vgetexp<ssescalarmodesuffix>
21505 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
21506 %0<mask_scalar_operand3>, %1, %2<round_saeonly_scalar_mask_op3>} ... this.
21507 (avx512f_vgetmant<mode><round_saeonly_name>): Changed to ...
21508 avx512f_vgetmant<mode><mask_scalar_name>
21509 <round_saeonly_scalar_name> ... this.
21510 (vgetmant<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0|
21511 %0, %1, %2<round_saeonly_op4>, %3}): Changed to ...
21512 vgetmant<ssescalarmodesuffix>
21513 \t{%3, <round_saeonly_scalar_mask_op4>%2, %1, %0<mask_scalar_operand4>|
21514 %0<mask_scalar_operand4>, %1, %2
21515 <round_saeonly_scalar_mask_op4>, %3} ... this.
21516 * config/i386/subst.md (mask_scalar_operand4,
21517 round_saeonly_scalar_mask_operand4, round_saeonly_scalar_mask_op4,
21518 round_saeonly_scalar_nimm_predicate): New subst attributes.
21519
21520 2017-07-06 Julia Koval <julia.koval@intel.com>
21521
21522 * config/i386/i386.c (ix86_erase_embedded_rounding):
21523 Remove code for old rounding pattern.
21524
21525 2017-07-06 Richard Earnshaw <rearnsha@arm.com>
21526
21527 * config/arm/t-arm (GTM_H): Add arm-cpu.h.
21528
21529 2017-07-06 Christophe Lyon <christophe.lyon@linaro.org>
21530
21531 * doc/sourcebuild.texi (Test Directives, Variants of
21532 dg-require-support): Add documentation for dg-require-stack-check.
21533
21534 2017-07-05 Sebastian Peryt <sebastian.peryt@intel.com>
21535
21536 * config/i386/subst.md (mask_scalar, round_scalar,
21537 round_saeonly_scalar): New meta-templates.
21538 (mask_scalar_name, mask_scalar_operand3, round_scalar_name,
21539 round_scalar_mask_operand3, round_scalar_mask_op3,
21540 round_scalar_constraint, round_scalar_prefix, round_saeonly_scalar_name,
21541 round_saeonly_scalar_mask_operand3, round_saeonly_scalar_mask_op3,
21542 round_saeonly_scalar_constraint,
21543 round_saeonly_scalar_prefix): New subst attribute.
21544 * config/i386/sse.md
21545 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): Renamed to ...
21546 <sse>_vm<plusminus_insn><mode>3<mask_scalar_name>
21547 <round_scalar_name> ... this.
21548 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): Renamed to ...
21549 <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name>
21550 <round_scalar_name> ... this.
21551 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): Renamed to ...
21552 <sse>_vm<code><mode>3<mask_scalar_name>
21553 <round_saeonly_scalar_name> ... this.
21554 (v<plusminus_mnemonic><ssescalarmodesuffix>
21555 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
21556 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
21557 v<plusminus_mnemonic><ssescalarmodesuffix>
21558 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
21559 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
21560 (v<multdiv_mnemonic><ssescalarmodesuffix>
21561 \t{<round_mask_op3>%2, %1, %0<mask_operand3>|
21562 %0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}): Changed to ...
21563 v<multdiv_mnemonic><ssescalarmodesuffix>
21564 \t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
21565 %0<mask_scalar_operand3>, %1, %<iptr>2<round_scalar_mask_op3>} ... this.
21566 (v<maxmin_float><ssescalarmodesuffix>
21567 \t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|
21568 %0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}): Changed to ...
21569 v<maxmin_float><ssescalarmodesuffix>
21570 \t{<round_saeonly_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|
21571 %0<mask_scalar_operand3>, %1, %<iptr>2
21572 <round_saeonly_scalar_mask_op3>} ... this.
21573
21574 2017-07-05 Richard Earnshaw <rearnsha@arm.com>
21575
21576 * config/arm/arm.c (arm_fixed_condition_code_regs): New function.
21577 (TARGET_FIXED_CONDITION_CODE_REGS): Redefine.
21578
21579 2017-07-05 Richard Sandiford <richard.sandiford@linaro.org>
21580 Alan Hayward <alan.hayward@arm.com>
21581 David Sherwood <david.sherwood@arm.com>
21582
21583 * combine.c (simplify_if_then_else): Remove "enum" before
21584 "machine_mode".
21585 * compare-elim.c (can_eliminate_compare): Likewise.
21586 * config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
21587 Likewise.
21588 (aarch64_lookup_simd_builtin_type): Likewise.
21589 (aarch64_simd_builtin_type): Likewise.
21590 (aarch64_init_simd_builtin_types): Likewise.
21591 (aarch64_simd_expand_args): Likewise.
21592 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
21593 Likewise.
21594 (aarch64_reverse_mask): Likewise.
21595 (aarch64_simd_emit_reg_reg_move): Likewise.
21596 (aarch64_gen_adjusted_ldpstp): Likewise.
21597 (aarch64_ccmp_mode_to_code): Likewise.
21598 (aarch64_operands_ok_for_ldpstp): Likewise.
21599 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21600 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
21601 Likewise.
21602 (aarch64_min_divisions_for_recip_mul): Likewise.
21603 (aarch64_reassociation_width): Likewise.
21604 (aarch64_get_condition_code_1): Likewise.
21605 (aarch64_simd_emit_reg_reg_move): Likewise.
21606 (aarch64_simd_attr_length_rglist): Likewise.
21607 (aarch64_reverse_mask): Likewise.
21608 (aarch64_operands_ok_for_ldpstp): Likewise.
21609 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
21610 (aarch64_gen_adjusted_ldpstp): Likewise.
21611 * config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
21612 Likewise.
21613 * config/arc/arc.c (legitimate_offset_address_p): Likewise.
21614 * config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
21615 (arm_lookup_simd_builtin_type): Likewise.
21616 (arm_simd_builtin_type): Likewise.
21617 (arm_init_simd_builtin_types): Likewise.
21618 (arm_expand_builtin_args): Likewise.
21619 * config/arm/arm-protos.h (arm_expand_builtin): Likewise.
21620 * config/ft32/ft32.c (ft32_libcall_value): Likewise.
21621 (ft32_setup_incoming_varargs): Likewise.
21622 (ft32_function_arg): Likewise.
21623 (ft32_function_arg_advance): Likewise.
21624 (ft32_pass_by_reference): Likewise.
21625 (ft32_arg_partial_bytes): Likewise.
21626 (ft32_valid_pointer_mode): Likewise.
21627 (ft32_addr_space_pointer_mode): Likewise.
21628 (ft32_addr_space_legitimate_address_p): Likewise.
21629 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
21630 Likewise.
21631 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
21632 (ix86_emit_outlined_ms2sysv_restore): Likewise.
21633 (iamcu_alignment): Likewise.
21634 (canonicalize_vector_int_perm): Likewise.
21635 (ix86_noce_conversion_profitable_p): Likewise.
21636 (ix86_mpx_bound_mode): Likewise.
21637 (ix86_operands_ok_for_move_multiple): Likewise.
21638 * config/microblaze/microblaze-protos.h
21639 (microblaze_expand_conditional_branch_reg): Likewise.
21640 * config/microblaze/microblaze.c
21641 (microblaze_expand_conditional_branch_reg): Likewise.
21642 * config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
21643 Likewise.
21644 (rs6000_reassociation_width): Likewise.
21645 (rs6000_invalid_binary_op): Likewise.
21646 (fusion_p9_p): Likewise.
21647 (emit_fusion_p9_load): Likewise.
21648 (emit_fusion_p9_store): Likewise.
21649 * config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
21650 Likewise.
21651 (riscv_hard_regno_mode_ok_p): Likewise.
21652 (riscv_address_insns): Likewise.
21653 (riscv_split_symbol): Likewise.
21654 (riscv_legitimize_move): Likewise.
21655 (riscv_function_value): Likewise.
21656 (riscv_hard_regno_nregs): Likewise.
21657 (riscv_expand_builtin): Likewise.
21658 * config/riscv/riscv.c (riscv_build_integer_1): Likewise.
21659 (riscv_build_integer): Likewise.
21660 (riscv_split_integer): Likewise.
21661 (riscv_legitimate_constant_p): Likewise.
21662 (riscv_cannot_force_const_mem): Likewise.
21663 (riscv_regno_mode_ok_for_base_p): Likewise.
21664 (riscv_valid_base_register_p): Likewise.
21665 (riscv_valid_offset_p): Likewise.
21666 (riscv_valid_lo_sum_p): Likewise.
21667 (riscv_classify_address): Likewise.
21668 (riscv_legitimate_address_p): Likewise.
21669 (riscv_address_insns): Likewise.
21670 (riscv_load_store_insns): Likewise.
21671 (riscv_force_binary): Likewise.
21672 (riscv_split_symbol): Likewise.
21673 (riscv_force_address): Likewise.
21674 (riscv_legitimize_address): Likewise.
21675 (riscv_move_integer): Likewise.
21676 (riscv_legitimize_const_move): Likewise.
21677 (riscv_legitimize_move): Likewise.
21678 (riscv_address_cost): Likewise.
21679 (riscv_subword): Likewise.
21680 (riscv_output_move): Likewise.
21681 (riscv_canonicalize_int_order_test): Likewise.
21682 (riscv_emit_int_order_test): Likewise.
21683 (riscv_function_arg_boundary): Likewise.
21684 (riscv_pass_mode_in_fpr_p): Likewise.
21685 (riscv_pass_fpr_single): Likewise.
21686 (riscv_pass_fpr_pair): Likewise.
21687 (riscv_get_arg_info): Likewise.
21688 (riscv_function_arg): Likewise.
21689 (riscv_function_arg_advance): Likewise.
21690 (riscv_arg_partial_bytes): Likewise.
21691 (riscv_function_value): Likewise.
21692 (riscv_pass_by_reference): Likewise.
21693 (riscv_setup_incoming_varargs): Likewise.
21694 (riscv_print_operand): Likewise.
21695 (riscv_elf_select_rtx_section): Likewise.
21696 (riscv_save_restore_reg): Likewise.
21697 (riscv_for_each_saved_reg): Likewise.
21698 (riscv_register_move_cost): Likewise.
21699 (riscv_hard_regno_mode_ok_p): Likewise.
21700 (riscv_hard_regno_nregs): Likewise.
21701 (riscv_class_max_nregs): Likewise.
21702 (riscv_memory_move_cost): Likewise.
21703 * config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
21704 * config/rl78/rl78.c (rl78_split_movsi): Likewise.
21705 (rl78_addr_space_address_mode): Likewise.
21706 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
21707 Likewise.
21708 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
21709 (rs6000_reassociation_width): Likewise.
21710 (rs6000_invalid_binary_op): Likewise.
21711 (fusion_p9_p): Likewise.
21712 (emit_fusion_p9_load): Likewise.
21713 (emit_fusion_p9_store): Likewise.
21714 * config/visium/visium-protos.h (prepare_move_operands): Likewise.
21715 (ok_for_simple_move_operands): Likewise.
21716 (ok_for_simple_move_strict_operands): Likewise.
21717 (ok_for_simple_arith_logic_operands): Likewise.
21718 (visium_legitimize_reload_address): Likewise.
21719 (visium_select_cc_mode): Likewise.
21720 (output_cbranch): Likewise.
21721 (visium_split_double_move): Likewise.
21722 (visium_expand_copysign): Likewise.
21723 (visium_expand_int_cstore): Likewise.
21724 (visium_expand_fp_cstore): Likewise.
21725 * config/visium/visium.c (visium_pass_by_reference): Likewise.
21726 (visium_function_arg): Likewise.
21727 (visium_function_arg_advance): Likewise.
21728 (visium_libcall_value): Likewise.
21729 (visium_setup_incoming_varargs): Likewise.
21730 (visium_legitimate_constant_p): Likewise.
21731 (visium_legitimate_address_p): Likewise.
21732 (visium_legitimize_address): Likewise.
21733 (visium_secondary_reload): Likewise.
21734 (visium_register_move_cost): Likewise.
21735 (visium_memory_move_cost): Likewise.
21736 (prepare_move_operands): Likewise.
21737 (ok_for_simple_move_operands): Likewise.
21738 (ok_for_simple_move_strict_operands): Likewise.
21739 (ok_for_simple_arith_logic_operands): Likewise.
21740 (visium_function_value_1): Likewise.
21741 (rtx_ok_for_offset_p): Likewise.
21742 (visium_legitimize_reload_address): Likewise.
21743 (visium_split_double_move): Likewise.
21744 (visium_expand_copysign): Likewise.
21745 (visium_expand_int_cstore): Likewise.
21746 (visium_expand_fp_cstore): Likewise.
21747 (visium_split_cstore): Likewise.
21748 (visium_select_cc_mode): Likewise.
21749 (visium_split_cbranch): Likewise.
21750 (output_cbranch): Likewise.
21751 (visium_print_operand_address): Likewise.
21752 * expmed.c (flip_storage_order): Likewise.
21753 * expmed.h (emit_cstore): Likewise.
21754 (flip_storage_order): Likewise.
21755 * genrecog.c (validate_pattern): Likewise.
21756 * hsa-gen.c (gen_hsa_addr): Likewise.
21757 * internal-fn.c (expand_arith_overflow): Likewise.
21758 * ira-color.c (allocno_copy_cost_saving): Likewise.
21759 * lra-assigns.c (find_hard_regno_for_1): Likewise.
21760 * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
21761 (process_invariant_for_inheritance): Likewise.
21762 * lra-eliminations.c (move_plus_up): Likewise.
21763 * omp-low.c (lower_oacc_reductions): Likewise.
21764 * simplify-rtx.c (simplify_subreg): Likewise.
21765 * target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
21766 (TARGET_CHKP_BOUND_MODE): Likewise..
21767 * targhooks.c (default_chkp_bound_mode): Likewise.
21768 (default_setup_incoming_vararg_bounds): Likewise.
21769 * targhooks.h (default_chkp_bound_mode): Likewise.
21770 (default_setup_incoming_vararg_bounds): Likewise.
21771 * tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
21772 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
21773 (have_whole_vector_shift): Likewise.
21774 * tree-vect-stmts.c (vectorizable_load): Likewise.
21775 * doc/tm.texi: Regenerate.
21776
21777 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
21778
21779 Graceful degrade if Binutils PR21472 is not available.
21780
21781 PR target/81072
21782 * configure.ac [target=avr]: WARN instead of ERROR if avrxmega3
21783 .rodata in flash test fails.
21784 (HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH): Define it if test passes.
21785 * confgure: Regenerate.
21786 * config.in: Regenerate.
21787 * config/avr/avr.c (avr_asm_named_section)
21788 [HAVE_LD_AVR_AVRXMEGA3_RODATA_IN_FLASH]: Only trigger
21789 __do_copy_data for stuff in .rodata if flash_pm_offset = 0.
21790 (avr_asm_init_sections): Same.
21791
21792 2017-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21793
21794 * config/arm/neon.md (fma<VCVTF:mode>4): Remove %?.
21795 (fma<VH:mode>4_intrinsic): Likewise.
21796 (*fmsub<VCVTF:mode>4): Likewise.
21797 (*fmsub<VH:mode>4_intrinsic): Likewise.
21798
21799 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
21800
21801 PR target/81305
21802 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
21803 Don't depend on "optimize > 0".
21804 (out_movhi_r_mr, out_movqi_mr_r): Same.
21805 (out_movhi_mr_r, out_movqi_r_mr): Same.
21806 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
21807 io_address_operand on "optimize > 0".
21808
21809 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21810
21811 * tree-loop-distribution.c: Add general explanantion on the pass.
21812 (generate_loops_for_partition): Mark distributed loop.
21813 (pg_add_dependence_edges): New parameter. Handle alias data
21814 dependence specially and record it in the parameter if asked.
21815 (struct pg_vdata, pg_edata, pg_edge_callback_data): New structs.
21816 (init_partition_graph_vertices, add_partition_graph_edge): New.
21817 (pg_skip_alias_edge, free_partition_graph_edata_cb): New.
21818 (free_partition_graph_vdata, build_partition_graph): New.
21819 (sort_partitions_by_post_order, merge_dep_scc_partitions): New.
21820 (pg_collect_alias_ddrs, break_alias_scc_partitions): New.
21821 (data_ref_segment_size, latch_dominated_by_data_ref): New.
21822 (compute_alias_check_pairs, version_loop_by_alias_check): New.
21823 (version_for_distribution_p, finalize_partitions): New.
21824 (distribute_loop): Handle alias data dependence specially. Factor
21825 out loop fusion code as functions and call these functions.
21826
21827 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21828
21829 * tree-loop-distribution.c (classify_partition): New parameter and
21830 better handle reduction statement.
21831 (rdg_build_partitions): Revise comment.
21832 (distribute_loop): Compute statements in all partitions and pass it
21833 to classify_partition.
21834
21835 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21836
21837 * tree-loop-distribution.c (enum partition_type): New.
21838 (struct partition): New field type.
21839 (partition_merge_into): Add parameter. Update partition type.
21840 (data_dep_in_cycle_p, update_type_for_merge): New functions.
21841 (build_rdg_partition_for_vertex): Compute partition type.
21842 (rdg_build_partitions): Dump partition type.
21843 (distribute_loop): Update calls to partition_merge_into.
21844
21845 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21846
21847 * tree-loop-distribution.c (struct ddr_hasher): New.
21848 (ddr_hasher::hash, ::equal, get_data_dependence): New function.
21849 (ddrs_table): New.
21850 (classify_partition): Call get_data_dependence.
21851 (pg_add_dependence_edges): Ditto.
21852 (distribute_loop): Release data dependence hash table.
21853
21854 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21855
21856 * tree-loop-distribution.c (ref_base_address): Delete.
21857 (similar_memory_accesses): Rename ...
21858 (share_memory_accesses): ... to this. Check if partitions access
21859 the same memory reference.
21860 (distribute_loop): Call share_memory_accesses.
21861
21862 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21863
21864 * tree-loop-distribution.c (struct partition): New field recording
21865 its data reference.
21866 (partition_alloc, partition_free): Init and release data refs.
21867 (partition_merge_into): Merge data refs.
21868 (build_rdg_partition_for_vertex): Collect data refs for partition.
21869 (pg_add_dependence_edges): Change parameters from vector to bitmap.
21870 Update uses.
21871 (distribute_loop): Remve data refs from vertice data of partition
21872 graph.
21873
21874 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21875
21876 * tree-loop-distribution.c (params.h): Include header file.
21877 (MAX_DATAREFS_NUM, DR_INDEX): New macro.
21878 (datarefs_vec): New global var.
21879 (create_rdg_vertices): Use datarefs_vec directly.
21880 (free_rdg): Don't free data references.
21881 (build_rdg): Update use. Don't free data references.
21882 (distribute_loop): Compute global variable for data references.
21883 Bail out if there are too many data references.
21884
21885 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21886
21887 * tree-loop-distribution.c (loop_nest): New global var.
21888 (build_rdg): Use loop directly, rather than loop nest.
21889 (pg_add_dependence_edges): Remove loop nest parameter. Use global
21890 variable directly.
21891 (distribute_loop): Compute global variable loop nest. Update use.
21892
21893 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21894
21895 * tree-loop-distribution.c (enum fuse_type, fuse_message): New.
21896 (partition_merge_into): New parameter. Dump reason for fusion.
21897 (distribute_loop): Update use of partition_merge_into.
21898
21899 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21900
21901 * tree-loop-distribution.c (bb_top_order_index): New.
21902 (bb_top_order_index_size, bb_top_order_cmp): New.
21903 (stmts_from_loop): Use topological order.
21904 (pass_loop_distribution::execute): Compute and release topological
21905 order for basic blocks.
21906
21907 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21908
21909 * tree-loop-distribution.c (pass_loop_distribution::execute): Skip
21910 if no loops.
21911
21912 2017-07-05 Bin Cheng <bin.cheng@arm.com>
21913
21914 * cfgloop.h (struct loop): Add comment. New field orig_loop_num.
21915 * cfgloopmanip.c (lv_adjust_loop_entry_edge): Comment change.
21916 * internal-fn.c (expand_LOOP_DIST_ALIAS): New function.
21917 * internal-fn.def (LOOP_DIST_ALIAS): New.
21918 * tree-vectorizer.c (fold_loop_vectorized_call): Rename to ...
21919 (fold_loop_internal_call): ... this.
21920 (vect_loop_dist_alias_call): New function.
21921 (set_uid_loop_bbs): Call fold_loop_internal_call.
21922 (vectorize_loops): Fold IFN_LOOP_VECTORIZED and IFN_LOOP_DIST_ALIAS
21923 internal calls.
21924
21925 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
21926
21927 PR target/81300
21928 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
21929 Require dead FLAGS_REG at the beginning of a peephole.
21930
21931 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
21932
21933 PR target/81294
21934 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
21935 arguments in the call to __builtin_ia32_sbb_u32.
21936 (_subborrow_u64): Swap _X and _Y arguments in the call to
21937 __builtin_ia32_sbb_u64.
21938
21939 2017-07-04 Jakub Jelinek <jakub@redhat.com>
21940
21941 PR debug/81278
21942 * tree-vrp.c (compare_assert_loc): Turn into a function template
21943 with stable template parameter. Only test if a->e is NULL,
21944 !a->e == !b->e has been verified already. Use e == NULL or
21945 e != NULL instead of e or ! e tests. If stable is true, don't use
21946 iterative_hash_expr, on the other side allow a or b or both NULL
21947 and sort the NULLs last.
21948 (process_assert_insertions): Sort using compare_assert_loc<false>
21949 instead of compare_assert_loc, later sort using
21950 compare_assert_loc<true> before calling process_assert_insertions_for
21951 in a loop. Use break instead of continue once seen NULL pointer.
21952
21953 2017-07-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
21954
21955 * config/arm/driver-arm.c (arm_cpu_table): Add entry for ARM
21956 Cortex-R7 and Cortex-R8 processors.
21957
21958 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
21959
21960 * ipa-utils.c (ipa_merge_profiles): Fix merging when dst is
21961 uninitialized while src is not.
21962
21963 2017-07-04 Richard Earnshaw <rearnsha@arm.com>
21964
21965 * common/config/arm/arm-common.c: Adjust include path for
21966 arm-cpu-cdata.h
21967 * config/arm/t-arm (TM_H): Adjust path for arm-cpu.h.
21968 (arm-cpu.h): Create in build directory. Adjust dependency rules.
21969 (arm-cpu-data.h): Likewise.
21970 (arm-cpu-cdata.h): Likewise.
21971 * config/arm/arm-cpu.h: Delete.
21972 * config/arm/arm-cpu-cdata.h: Delete.
21973 * config/arm/arm-cpu-data.h: Delete.
21974
21975 2017-07-04 James Greenhalgh <james.greenhalgh@arm.com>
21976
21977 * config/arm/arm-cpus.in (cortex-a55): New.
21978 (cortex-a75): Likewise.
21979 (cortex-a75.cortex-a55): Likewise.
21980 * config/arm/driver-arm.c (arm_cpu_table): Add cortex-a55 and
21981 cortex-a75.
21982 * doc/invoke.texi (-mcpu): Document cortex-a55 and cortex-a75.
21983 * config/arm/arm-cpu-cdata.h: Regenerate.
21984 * config/arm/arm-cpu-data.h: Regenerate.
21985 * config/arm/arm-cpu.h: Regenerate.
21986 * config/arm/arm-tables.opt: Regenerate.
21987 * config/arm/arm-tune.md: Regenerate.
21988
21989 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
21990
21991 * haifa-sched.c (sched_create_recovery_edges): Update profile.
21992
21993 2017-07-04 Jan Hubicka <hubicka@ucw.cz>
21994
21995 * bb-reorder.c (better_edge_p): Fix handling of uninitialized
21996 probability.
21997
21998 2017-07-04 Richard Sandiford <richard.sandiford@linaro.org>
21999
22000 PR tree-optimization/81292
22001 * tree-ssa-strlen.c (handle_builtin_strlen): When setting
22002 full_string_p, also call adjust_related_strinfos if the adjustment
22003 is simple, otherwise invalidate related strinfos.
22004
22005 2017-07-04 Martin Liska <mliska@suse.cz>
22006
22007 PR sanitizer/81040
22008 * sanopt.c (sanitize_rewrite_addressable_params): Mark the
22009 newly created variable as DECL_IGNORED_P.
22010
22011 2017-07-04 Martin Liska <mliska@suse.cz>
22012
22013 PR ipa/81293
22014 * ipa-inline.c (inline_small_functions):
22015 Use xstrdup_for_dump.
22016
22017 2017-07-04 Tom de Vries <tom@codesourcery.com>
22018
22019 * graph.c (draw_cfg_edges): Save and restore EDGE_DFS_BACK.
22020
22021 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
22022
22023 PR target/81033
22024 * config/darwin.c (darwin_function_switched_text_sections):
22025 Fix spaces.
22026
22027 2017-07-03 Jan Hubicka <hubicka@ucw.cz>
22028
22029 * tree-vect-loop-manip.c (vect_do_peeling): Fix scaling up.
22030
22031 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
22032
22033 * doc/invoke.texi (ARM Options): Add -mbe8 and -mbe32 to option summary.
22034
22035 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22036
22037 * tree-vect-loop.c (vect_analyze_loop_2): Treat min_scalar_loop_bound,
22038 min_profitable_iters, and th as inclusive lower bounds.
22039 Fix LOOP_VINFO_PEELING_FOR_GAPS condition.
22040 (vect_estimate_min_profitable_iters): Return inclusive lower bounds
22041 for min_profitable_iters and min_profitable_estimate.
22042 (vect_transform_loop): Treat th as an inclusive lower bound.
22043 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
22044
22045 2017-07-03 Dominique d'Humieres <dominiq@lps.ens.fr>
22046
22047 PR target/81033
22048 * config/darwin.c (darwin_function_switched_text_sections):
22049 Replace DECL_NAME with DECL_ASSEMBLER_NAME, split assemble_name_raw
22050 in two pieces, and suppress the use of buf.
22051
22052 2017-07-03 Nathan Sidwell <nathan@acm.org>
22053
22054 * hash-table.h (hash_table_mod1): Fix indentation.
22055
22056 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22057
22058 PR middle-end/81290
22059 * predict.c (force_edge_cold): Be more careful about propagation
22060 backward.
22061 * profile-count.h (profile_probability::guessed,
22062 profile_probability::fdo, profile_count::guessed, profile_count::fdo):
22063 New.
22064 * tree-ssa-threadupdate.c (recompute_probabilities): Result is guessed.
22065
22066 2017-07-03 James Greenhalgh <james.greenhalgh@arm.com>
22067
22068 * doc/invoke.texi (rcpc architecture extension): Document it.
22069
22070 2017-07-03 Richard Biener <rguenther@suse.de>
22071
22072 PR tree-optimization/60510
22073 * tree-vect-loop.c (vect_create_epilog_for_reduction): Pass in
22074 the scalar reduction PHI and use it.
22075 (vectorizable_reduction): Properly guard the single_defuse_cycle
22076 path for non-SLP reduction chains where we cannot use it.
22077 Rework reduc_def/index and vector type deduction. Rework
22078 vector operand gathering during reduction op code-gen.
22079 * tree-vect-slp.c (vect_analyze_slp): For failed SLP reduction
22080 chains dissolve the chain and leave it to non-SLP reduction
22081 handling.
22082
22083 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22084
22085 * tree-data-ref.h (dr_alignment): Declare.
22086 * tree-data-ref.c (dr_alignment): New function.
22087 * tree-vectorizer.h (dataref_aux): Remove base_element_aligned.
22088 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't
22089 set it.
22090 * tree-vect-stmts.c (vectorizable_store): Use dr_alignment.
22091
22092 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22093
22094 * tree-data-ref.h (innermost_loop_behavior): Add base_alignment
22095 and base_misalignment fields.
22096 (DR_BASE_ALIGNMENT, DR_BASE_MISALIGNMENT): New macros.
22097 * tree-data-ref.c: Include builtins.h.
22098 (dr_analyze_innermost): Set up the new innmost_loop_behavior fields.
22099 * tree-vectorizer.h (STMT_VINFO_DR_BASE_ALIGNMENT): New macro.
22100 (STMT_VINFO_DR_BASE_MISALIGNMENT): Likewise.
22101 * tree-vect-data-refs.c: Include tree-cfg.h.
22102 (vect_compute_data_ref_alignment): Use the new innermost_loop_behavior
22103 fields instead of calculating an alignment here.
22104 (vect_analyze_data_refs): Use dr_analyze_innermost. Dump the new
22105 innermost_loop_behavior fields.
22106
22107 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22108
22109 * tree-data-ref.h (innermost_loop_behavior): Add a step_alignment
22110 field.
22111 (DR_STEP_ALIGNMENT): New macro.
22112 * tree-vectorizer.h (STMT_VINFO_DR_STEP_ALIGNMENT): Likewise.
22113 * tree-data-ref.c (dr_analyze_innermost): Initalize step_alignment.
22114 (create_data_ref): Print it.
22115 * tree-vect-stmts.c (vectorizable_load): Use the step alignment
22116 to tell whether the step preserves vector (mis)alignment.
22117 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
22118 Move the check for an integer step and generalise to all INTEGER_CST.
22119 (vect_analyze_data_refs): Set DR_STEP_ALIGNMENT when setting DR_STEP.
22120 Print the outer step alignment.
22121
22122 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22123
22124 * tree-data-ref.h (innermost_loop_behavior): Replace aligned_to
22125 with offset_alignment.
22126 (DR_ALIGNED_TO): Delete.
22127 (DR_OFFSET_ALIGNMENT): New macro.
22128 * tree-vectorizer.h (STMT_VINFO_DR_ALIGNED_TO): Delete.
22129 (STMT_VINFO_DR_OFFSET_ALIGNMENT): New macro.
22130 * tree-data-ref.c (dr_analyze_innermost): Update after above changes.
22131 (create_data_ref): Likewise.
22132 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
22133 (vect_analyze_data_refs): Likewise.
22134 * tree-if-conv.c (if_convertible_loop_p_1): Use memset before
22135 creating dummy innermost behavior.
22136
22137 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22138
22139 * tree-data-ref.h (dr_analyze_innermost): Replace the dr argument
22140 with a "innermost_loop_behavior *" and refeence tree.
22141 * tree-data-ref.c (dr_analyze_innermost): Likewise.
22142 (create_data_ref): Update call accordingly.
22143 * tree-predcom.c (find_looparound_phi): Likewise.
22144
22145 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22146
22147 * tree-vectorizer.h (_stmt_vec_info): Replace individual dr_*
22148 fields with dr_wrt_vec_loop.
22149 (STMT_VINFO_DR_BASE_ADDRESS, STMT_VINFO_DR_INIT, STMT_VINFO_DR_OFFSET)
22150 (STMT_VINFO_DR_STEP, STMT_VINFO_DR_ALIGNED_TO): Update accordingly.
22151 (STMT_VINFO_DR_WRT_VEC_LOOP): New macro.
22152 (vect_dr_behavior): New function.
22153 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
22154 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use
22155 vect_dr_behavior. Use a step_preserves_misalignment_p boolean to
22156 track whether the step preserves the misalignment.
22157 (vect_create_addr_base_for_vector_ref): Remove loop parameter.
22158 Use vect_dr_behavior.
22159 (vect_setup_realignment): Update call accordingly.
22160 (vect_create_data_ref_ptr): Likewise. Use vect_dr_behavior.
22161 * tree-vect-loop-manip.c (vect_gen_prolog_loop_niters): Update
22162 call to vect_create_addr_base_for_vector_ref.
22163 (vect_create_cond_for_align_checks): Likewise.
22164 * tree-vect-patterns.c (vect_recog_bool_pattern): Copy
22165 STMT_VINFO_DR_WRT_VEC_LOOP as a block.
22166 (vect_recog_mask_conversion_pattern): Likewise.
22167 * tree-vect-stmts.c (compare_step_with_zero): Use vect_dr_behavior.
22168 (new_stmt_vec_info): Remove redundant zeroing.
22169
22170 2017-07-03 Richard Earnshaw <rearnsha@arm.com>
22171
22172 * common/config/arm/arm-common.c (arm_be8_option): New function.
22173 * config/arm/arm-isa.h (isa_feature): Add new feature bit isa_bit_be8.
22174 (ISA_ARMv6): Add isa_bit_be8.
22175 * config/arm/arm.h (arm_be8_option): Add prototype.
22176 (BE8_SPEC_FUNCTION): New define.
22177 (EXTRA_SPEC_FUNCTIONS): Add BE8_SPEC_FUNCTION.
22178 * config/arm/arm.opt (mbig-endian): Mark as Negative of mlittle-endian.
22179 (mlittle-endian): Similarly.
22180 (mbe8, mbe32): New options.
22181 * config/arm/bpabi.h (BE8_LINK_SPEC): Call arm_be8_option.
22182 * doc/invoke.texi (ARM Options): Document -mbe8 and -mbe32.
22183
22184 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22185
22186 * tree-cfg.c (gimple_find_sub_bbs): Fix profile updating.
22187
22188 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22189
22190 * tree-cfgcleanup.c (want_merge_blocks_p): New function.
22191 (cleanup_tree_cfg_bb): Use it.
22192 * profile-count.h (profile_count::of_for_merging, profile_count::merge):
22193 New functions.
22194 * tree-cfg.c (gimple_merge_blocks): Use profile_count::merge.
22195
22196 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22197
22198 PR bootstrap/81285
22199 * loop-doloop.c (add_test): Update profile.
22200
22201 2017-07-03 Martin Liska <mliska@suse.cz>
22202
22203 PR sanitize/81040
22204 * sanopt.c (rewrite_usage_of_param): New function.
22205 (sanitize_rewrite_addressable_params): Likewise.
22206 (pass_sanopt::execute): Call rewrite_usage_of_param.
22207
22208 2017-07-03 Richard Biener <rguenther@suse.de>
22209
22210 * tree-vect-loop.c (vect_create_epilog_for_reduction): Revert
22211 back to using VIEW_CONVERT_EXPR.
22212
22213 2017-07-03 Martin Liska <mliska@suse.cz>
22214
22215 PR other/78366
22216 * doc/extend.texi: Document when a resolver function is
22217 generated for target_clones.
22218
22219 2017-07-03 Martin Liska <mliska@suse.cz>
22220
22221 * asan.c (asan_emit_stack_protection): Unpoison just red zones
22222 and shadow memory of auto variables which are subject of
22223 use-after-scope sanitization.
22224 (asan_expand_mark_ifn): Add do set only when is_poison.
22225
22226 2016-07-03 Richard Biener <rguenther@suse.de>
22227
22228 * tree-vect-loop.c (vect_analyze_loop_operations): Also analyze
22229 reduction PHIs.
22230 (vect_force_simple_reduction): Record reduction def -> phi mapping.
22231 (vectorizable_reduction): Perform reduction PHI creation when
22232 visiting a reduction PHI and adjust and simplify code generation
22233 phase of the reduction op. Cache dts, use fold_binary, not fold_build2.
22234 (vect_transform_loop): Visit reduction PHIs.
22235 * tree-vect-slp.c (vect_get_and_check_slp_defs): Record reduction
22236 defs into the SLP tree.
22237 (vect_build_slp_tree): Reduction defs terminate the recursion.
22238 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Allow lookup
22239 of reduction defs.
22240 (vect_get_vec_defs_for_stmt_copy): Export.
22241 (vect_get_vec_defs): Likewise.
22242 * tree-vectorizer.h (struct _stmt_vec_info): Amend reduc_def
22243 purpose.
22244 (vect_get_vec_defs_for_stmt_copy): Declare.
22245 (vect_get_vec_defs): Likewise.
22246
22247 2017-07-03 Richard Sandiford <richard.sandiford@linaro.org>
22248
22249 * tree-data-ref.c (dr_analyze_innermost): Replace the "nest"
22250 parameter with a "loop" parameter and use it instead of the
22251 loop containing DR_STMT. Don't check simple_iv when doing
22252 BB analysis. Describe the two analysis modes in the comment.
22253
22254 2017-07-03 Tom de Vries <tom@codesourcery.com>
22255
22256 PR tree-optimization/69468
22257 * tree-ssa-tail-merge.c (ignore_edge_flags): New constant.
22258 (find_same_succ_bb): Handle ignore_edge_flags.
22259
22260 2017-07-03 Tom de Vries <tom@codesourcery.com>
22261
22262 PR tree-optimization/81192
22263 * tree-ssa-tail-merge.c (same_succ_hash): Use bb->loop_father->num in
22264 hash.
22265 (same_succ::equal): Don't find bbs to be equal if bb->loop_father
22266 differs.
22267 (find_same_succ_bb): Remove obsolete test on bb->loop_father->latch.
22268
22269 2017-07-03 Tom de Vries <tom@codesourcery.com>
22270
22271 PR tree-optimization/81192
22272 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
22273 BB_SAME_SUCC (bb) == NULL.
22274
22275 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22276
22277 * cfgrtl.c (rtl_verify_edges): Enable checking of profile_probability
22278 consistency.
22279
22280 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22281
22282 * dumpfile.c: Include profile-count.h
22283 * tree-cfg.c (gimple_duplicate_sese_tail): Drop UNUSED attributes;
22284 update profile.
22285 (insert_cond_bb): Update profile.
22286 * tree-cfg.h (insert_cond_bb): Update prototype.
22287 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Update.
22288 * tree-dump.c: Do not include tree-cfg.
22289
22290 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22291
22292 * bb-reorder.c (fix_up_crossing_landing_pad): Update profile.
22293
22294 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22295
22296 * expect.c (dw2_build_landing_pads): Update profile of the landing pad
22297 bb.
22298
22299 2017-07-02 Jan Hubicka <hubicka@ucw.cz>
22300
22301 * tree-complex.c (expand_complex_div_wide): update profile.
22302
22303 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
22304 Alan Hayward <alan.hayward@arm.com>
22305 David Sherwood <david.sherwood@arm.com>
22306
22307 * Makefile.in (MACHMODE_H): Remove insn-modes.h
22308 (CORETYPES_H): New define.
22309 (MOSTLYCLEANFILES): Add insn-modes-inline.h.
22310 (insn-modes-inline.h, s-modes-inline-h): New rules.
22311 (generated_files): Add insn-modes-inline.h.
22312 (RTL_BASE_H, TREE_CORE_H): Use CORETYPES_H instead of coretypes.h.
22313 (build/gensupport.o, build/ggc-none.o, build/print-rtl.o): Likewise.
22314 (build/read-md.o, build/read-rtl.o, build/rtl.o): Likewise.
22315 (build/vec.o, build/hash-table.o, build/inchash.o): Likewise.
22316 (build/gencondmd.o, build/genattr.o, build/genattr-common.o): Likewise.
22317 (build/genattrtab.o, build/genautomata.o, build/gencheck.o): Likewise.
22318 (build/gencodes.o, build/genconditions.o): Likewise.
22319 (build/genconfig.o, build/genconstants.o, build/genemit.o): Likewise.
22320 (build/genenums.o, build/genextract.o, build/genflags.o): Likewise.
22321 (build/gentarget-def.o, build/genmddeps.o, build/genopinit.o)
22322 (build/genoutput.o, build/genpeep.o, build/genpreds.o): Likewise.
22323 (build/genrecog.o, build/genmddump.o, build/genmatch.o): Likewise.
22324 (build/gencfn-macros.o, build/gcov-iov.o): Likewise.
22325 * coretypes.h: Include everything up to real.h for generators.
22326 Include insn-modes.h first. Include wide-int-print.h after
22327 wide-int.h. Include insn-modes-inline.h and then machmode.h.
22328 * machmode.h: Don't include insn-modes.h here.
22329 * function-tests.c: Remove includes of signop.h, machmode.h,
22330 double-int.h and wide-int.h.
22331 * rtl.h: Likewise.
22332 * gcc-rich-location.c: Remove includes of machmode.h, double-int.h
22333 and wide-int.h.
22334 * optc-save-gen.awk: Likewise.
22335 * gencheck.c (BITS_PER_UNIT): Delete dummy definition.
22336 * godump.c: Remove include of wide-int-print.h.
22337 * pretty-print.h: Likewise.
22338 * wide-int-print.cc: Likewise.
22339 * wide-int.cc: Likewise.
22340 * hash-map-tests.c: Remove include of signop.h.
22341 * hash-set-tests.c: Likewise.
22342 * rtl-tests.c: Likewise.
22343 * mkconfig.sh: Remove include of machmode.h.
22344 * genmodes.c (emit_insn_modes_h): Split emission of inline functions
22345 into...
22346 (emit_insn_modes_inline_h): ...this new function. Emit the code
22347 into an insn-modes-inline.h header file, adding appropriate
22348 include guards and end comments.
22349 (emit_insn_modes_c_header): Remove include of machmode.h.
22350 (emit_min_insn_modes_c_header): Include coretypes.h rather than
22351 machmode.h.
22352 (main): Handle -i flag and call emit_insn_modes_inline_h when
22353 it is passed.
22354
22355 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
22356
22357 * tree-ssa-strlen.c (strinfo): Rename the length field to
22358 nonzero_chars. Add a full_string_p field.
22359 (compare_nonzero_chars, zero_length_string_p): New functions.
22360 (get_addr_stridx): Add an offset_out parameter.
22361 Use compare_nonzero_chars.
22362 (get_stridx): Update accordingly. Use compare_nonzero_chars.
22363 (new_strinfo): Update after above changes to strinfo.
22364 (set_endptr_and_length): Set full_string_p.
22365 (get_string_length): Update after above changes to strinfo.
22366 (unshare_strinfo): Update call to new_strinfo.
22367 (maybe_invalidate): Likewise.
22368 (get_stridx_plus_constant): Change off to unsigned HOST_WIDE_INT.
22369 Use compare_nonzero_chars and zero_string_p. Treat nonzero_chars
22370 as a uhwi instead of an shwi. Update after above changes to
22371 strinfo and new_strinfo.
22372 (zero_length_string): Assert that chainsi contains full strings.
22373 Use zero_length_string_p. Update call to new_strinfo.
22374 (adjust_related_strinfos): Update after above changes to strinfo.
22375 Copy full_string_p from origsi.
22376 (adjust_last_stmt): Use zero_length_string_p.
22377 (handle_builtin_strlen): Update after above changes to strinfo and
22378 new_strinfo. Install the lhs as the string length if the previous
22379 entry didn't describe a full string.
22380 (handle_builtin_strchr): Update after above changes to strinfo
22381 and new_strinfo.
22382 (handle_builtin_strcpy): Likewise.
22383 (handle_builtin_strcat): Likewise.
22384 (handle_builtin_malloc): Likewise.
22385 (handle_pointer_plus): Likewise.
22386 (handle_builtin_memcpy): Likewise. Track nonzero characters
22387 that aren't necessarily followed by a nul terminator.
22388 (handle_char_store): Likewise.
22389
22390 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
22391
22392 PR tree-optimization/80769
22393 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
22394 for malloc and calloc. Document the new invariant that all related
22395 strinfos have delayed lengths or none do.
22396 (verify_related_strinfos): Move earlier in file.
22397 (set_endptr_and_length): New function, split out from...
22398 (get_string_length): ...here. Also set the lengths of related
22399 strinfos.
22400 (zero_length_string): Assert that chainsi has known (rather than
22401 delayed) lengths.
22402 (adjust_related_strinfos): Likewise.
22403
22404 2017-07-02 Richard Sandiford <richard.sandiford@linaro.org>
22405
22406 PR tree-optimization/81136
22407 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Only
22408 assert that two references with the same misalignment have the same
22409 compile-time misalignment if those compile-time misalignments
22410 are known.
22411
22412 2017-07-01 Andi Kleen <ak@linux.intel.com>
22413
22414 * print-tree.c (print_node): Print all attributes.
22415
22416 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
22417
22418 * cfg.c (scale_bbs_frequencies): New function.
22419 * cfg.h (scale_bbs_frequencies): Declare it.
22420 * cfgloopanal.c (single_likely_exit): Cleanup.
22421 * cfgloopmanip.c (scale_loop_frequencies): Take profile_probability
22422 as parameter.
22423 (scale_loop_profile): Likewise.
22424 (loop_version): Likewise.
22425 (create_empty_loop_on_edge): Update.
22426 * cfgloopmanip.h (scale_loop_frequencies, scale_loop_profile,
22427 scale_loop_frequencies, scale_loop_profile, loopify,
22428 loop_version): Update prototypes.
22429 * modulo-sched.c (sms_schedule): Update.
22430 * predict.c (unlikely_executed_edge_p): Also check probability.
22431 (probably_never_executed_edge_p): Fix typo.
22432 * tree-if-conv.c (version_loop_for_if_conversion): Update.
22433 * tree-parloops.c (gen_parallel_loop): Update.
22434 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update.
22435 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
22436 * tree-ssa-loop-split.c (split_loop): Update.
22437 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
22438 * tree-vect-loop-manip.c (vect_do_peeling): Update.
22439 (vect_loop_versioning): Update.
22440 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
22441
22442 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
22443
22444 * trans-mem.c (split_bb_make_tm_edge): Update profile.
22445
22446 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
22447
22448 * tree-if-conv.c (combine_blocks): Use make_single_succ_edge
22449 to keep profile consistent.
22450
22451 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
22452
22453 * cfgrtl.c (rtl_flow_call_edges_add): Update profile.
22454 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
22455 * profile-count.h (max_safe_multiplier): Make unsigned.
22456 (profile_count::guessed_zero): New.
22457
22458 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
22459
22460 * bb-reorder.c (fix_up_crossing_landing_pad,
22461 fix_crossing_conditional_branches): Use make_single_succ_edge
22462 to keep profile consistent.
22463
22464 2017-07-01 Jan Hubicka <hubicka@ucw.cz>
22465
22466 * tree-vect-loop.c (optimize_mask_stores): Use make_single_succ_edge
22467 to update profile.
22468
22469 2017-07-01 Jakub Jelinek <jakub@redhat.com>
22470
22471 PR sanitizer/81262
22472 * bb-reorder.c (fix_up_fall_thru_edges): Move variable declarations to
22473 the right scopes, make sure cond_jump isn't preserved between multiple
22474 iterations. Search for fallthru edge whenever there are 3+ edges and
22475 use find_fallthru_edge for it.
22476
22477 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
22478
22479 Patch by Alexander Monakov <amonakov@ispras.ru>
22480 * sel-sched-ir.c (compute_succs_info): Handle uninitialized
22481 probabilities consistently.
22482
22483 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
22484
22485 * pa.c (pa_expand_compare_and_swap_loop): Update call of
22486 emit_cmp_and_jump_insns.
22487
22488 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
22489
22490 PR ipa/81261
22491 * tree-inline.c (expand_call_inline): Combine profile statuses.
22492
22493 2017-06-30 Andrew Pinski <apinski@cavium.com>
22494
22495 * tree-if-conv.c (predicate_scalar_phi): Update new_stmt if
22496 fold_stmt returned true.
22497
22498 2017-06-30 Nathan Sidwell <nathan@acm.org>
22499
22500 * ggc.h (empty_string): Delete.
22501 * cfgexpand.c (expand_asm_stmt): Use plain "".
22502 * optabs.c (expand_asm_memory_barrier): Likewise.
22503 * stringpool.c (empty_string): Delete.
22504 (digit_vector, digit_string): Delete.
22505 (ggc_alloc_string): Use plain "", don't optimize single digit
22506 strings. Use ggc_alloc_atomic.
22507
22508 2017-06-30 Richard Earnshaw <rearnsha@arm.com>
22509
22510 * rtlanal.c (insn_rtx_cost): If a parallel contains exactly one
22511 comparison set and one other set, use the cost of the non-comparison
22512 set.
22513
22514 2017-06-30 Nathan Sidwell <nathan@acm.org>
22515
22516 * ggc.h: Replace all 'static inline' with plain 'inline'. Fix
22517 some formatting.
22518
22519 2017-06-30 Peter Bergner <bergner@vnet.ibm.com>
22520
22521 * tree-cfg.c (group_case_labels_stmt): Merge scanning and compressing
22522 loops. Remove now unneeded calls to gimple_switch_set_label() that
22523 just set removed labels to NULL_TREE.
22524
22525 2017-06-30 Aldy Hernandez <aldyh@redhat.com>
22526
22527 * tree-ssanames.c (set_range_info_raw): Abstract from ...
22528 (set_range_info): ...here. Only call set_range_info_raw if domain
22529 is useful.
22530 (set_nonzero_bits): Call set_range_info_raw.
22531 * tree-ssanames.h (set_range_info_raw): New.
22532
22533 2017-06-30 Jakub Jelinek <jakub@redhat.com>
22534
22535 PR target/81225
22536 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For V8FI,
22537 V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
22538 of nonimmediate_operand and <store_mask_constraint> instead of m
22539 for the input operand. For V8FI iterator, always split if input
22540 is a MEM. For V16FI and V8SF_256 iterators, don't test if both
22541 operands are MEM if <mask_applied>. For VI4F_256 iterator, use
22542 <store_mask_predicate> instead of register_operand and
22543 <store_mask_constraint> instead of v for the input operand. Make
22544 sure both operands aren't MEMs for if not <mask_applied>.
22545
22546 2017-06-30 Sylvestre Ledru <sylvestre@debian.org>
22547
22548 * lto-wrapper.c (copy_file) Close both file descriptors before
22549 exiting normally.
22550
22551 2017-06-30 Martin Liska <mliska@suse.cz>
22552
22553 PR ipa/81214
22554 * multiple_target.c (create_dispatcher_calls): Make ifunc
22555 also for function that don't have calls or are not referenced.
22556
22557 2017-06-30 Richard Biener <rguenther@suse.de>
22558
22559 * tree-vect-slp.c (vect_slp_analyze_node_operations): Only
22560 analyze the first scalar stmt. Move vector type computation
22561 for the BB case here from ...
22562 * tree-vect-stmts.c (vect_analyze_stmt): ... here. Guard
22563 live operation processing in the SLP case properly.
22564
22565 2017-06-30 Richard Biener <rguenther@suse.de>
22566
22567 * graph.c (draw_cfg_node_succ_edges): Fix broken dot syntax.
22568
22569 2017-06-30 Martin Liska <mliska@suse.cz>
22570
22571 PR sanitizer/81021
22572 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
22573 before BUILT_IN_UNWIND_RESUME when ASAN is used.
22574
22575 2017-06-30 Yvan Roux <yvan.roux@linaro.org>
22576
22577 * doc/invoke.texi (AArch64): Add missing options and remove redundant
22578 ones.
22579
22580 2017-06-30 Richard Biener <rguenther@suse.de>
22581
22582 PR tree-optimization/81249
22583 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
22584 condition reduction result to original scalar type.
22585
22586 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22587
22588 * profile-count.h (enum profile_quality): Fix typos and whitespace
22589 issues.
22590
22591 2017-06-30 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22592
22593 * config/s390/s390.c (s390_expand_setmem): Adjust to the new data
22594 type for branch probabilities.
22595
22596 2017-06-29 Julian Brown <julian@codesourcery.com>
22597 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
22598
22599 * config/aarch64/aarch64-fusion-pairs.def: Add ALU_BRANCH entry.
22600 * config/aarch64/aarch64.c (AARCH64_FUSE_ALU_BRANCH): New fusion type.
22601 (thunderx2t99_tunings): Set AARCH64_FUSE_ALU_BRANCH flag.
22602 (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_ALU_BRANCH.
22603
22604 2017-06-29 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
22605
22606 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Push the
22607 check for CC usage into AARCH64_FUSE_CMP_BRANCH.
22608 * config/i386/i386.c (ix86_macro_fusion_pair_p): Push the check for
22609 CC usage from generic code to here.
22610 * sched-deps.c (sched_macro_fuse_insns): Move the condition for
22611 CC usage into the target macros.
22612
22613 2017-06-29 Maya Rashish <coypu@sdf.org>
22614
22615 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
22616 objects.
22617
22618 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
22619
22620 * arm/arm-builtins.c: Include profile-count.h
22621 * except.c (sjlj_emit_function_enter): Use
22622 profile_probability::unlikely.
22623
22624 2017-06-29 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
22625
22626 * config/rs6000/rs6000.c (toc_relative_expr_p): Make tocrel_base
22627 and tocrel_offset be pointer args rather than implicitly using
22628 static versions.
22629 (legitimate_constant_pool_address_p, rs6000_emit_move,
22630 const_load_sequence_p, adjust_vperm): Add local tocrel_base and
22631 tocrel_offset and use in toc_relative_expr_p call.
22632 (print_operand, print_operand_address): Use static tocrel_base_oac
22633 and tocrel_offset_oac.
22634 (rs6000_output_addr_const_extra): Use static tocrel_base_oac and
22635 tocrel_offset_oac.
22636
22637 2017-06-29 Maya Rashish <coypu@sdf.org>
22638
22639 * config/vax/builtins.md (ffssi2_internal): Correct constraint.
22640
22641 2017-06-29 Eric Botcazou <ebotcazou@adacore.com>
22642
22643 * expr.c (expand_expr) <normal_inner_ref>: When testing for unaligned
22644 objects, take into account only the alignment of 'op0' and 'mode1' if
22645 'op0' is a MEM.
22646
22647 2017-06-29 Steve Ellcey <sellcey@cavium.com>
22648
22649 * ccmp.c (ccmp_tree_comparison_p): New function.
22650 (ccmp_candidate_p): Update to use above function.
22651 (get_compare_parts): New function.
22652 (expand_ccmp_next): Update to use new functions.
22653 (expand_ccmp_expr_1): Take tree arg instead of gimple, update to use
22654 new functions.
22655 (expand_ccmp_expr): Pass tree instead of gimple to expand_ccmp_expr_1,
22656 take mode as argument.
22657 * ccmp.h (expand_ccmp_expr): Add mode as argument.
22658 * expr.c (expand_expr_real_1): Pass mode as argument.
22659
22660 2017-06-29 Segher Boessenkool <segher@kernel.crashing.org>
22661
22662 * combine.c (combine_instructions): Print insns to dump_file, together
22663 with their costs.
22664
22665 2017-06-29 Jan Hubicka <hubicka@ucw.cz>
22666
22667 * asan.c (asan_emit_stack_protection): Update.
22668 (create_cond_insert_point): Update.
22669 * auto-profile.c (afdo_propagate_circuit): Update.
22670 * basic-block.h (struct edge_def): Turn probability to
22671 profile_probability.
22672 (EDGE_FREQUENCY): Update.
22673 * bb-reorder.c (find_traces_1_round): Update.
22674 (better_edge_p): Update.
22675 (sanitize_hot_paths): Update.
22676 * cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
22677 (make_single_succ_edge): Update.
22678 (check_bb_profile): Update.
22679 (dump_edge_info): Update.
22680 (update_bb_profile_for_threading): Update.
22681 * cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
22682 probabilitycount to 0.
22683 * cfgbuild.c (compute_outgoing_frequencies): Update.
22684 * cfgcleanup.c (try_forward_edges): Update.
22685 (outgoing_edges_match): Update.
22686 (try_crossjump_to_edge): Update.
22687 * cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
22688 (expand_gimple_tailcall): Update.
22689 (construct_init_block): Use make_single_succ_edge.
22690 (construct_exit_block): Use make_single_succ_edge.
22691 * cfghooks.c (verify_flow_info): Update.
22692 (redirect_edge_succ_nodup): Update.
22693 (split_edge): Update.
22694 (account_profile_record): Update.
22695 * cfgloopanal.c (single_likely_exit): Update.
22696 * cfgloopmanip.c (scale_loop_profile): Update.
22697 (set_zero_probability): Remove.
22698 (duplicate_loop_to_header_edge): Update.
22699 * cfgloopmanip.h (loop_version): Update prototype.
22700 * cfgrtl.c (try_redirect_by_replacing_jump): Update.
22701 (force_nonfallthru_and_redirect): Update.
22702 (update_br_prob_note): Update.
22703 (rtl_verify_edges): Update.
22704 (purge_dead_edges): Update.
22705 (rtl_lv_add_condition_to_bb): Update.
22706 * cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
22707 * cgraphunit.c (init_lowered_empty_function): Update.
22708 (cgraph_node::expand_thunk): Update.
22709 * cilk-common.c: Include profile-count.h
22710 * dojump.c (inv): Remove.
22711 (jumpifnot): Update.
22712 (jumpifnot_1): Update.
22713 (do_jump_1): Update.
22714 (do_jump): Update.
22715 (do_jump_by_parts_greater_rtx): Update.
22716 (do_compare_rtx_and_jump): Update.
22717 * dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
22718 do_jump_1. do_compare_rtx_and_jump): Update prototype.
22719 * dwarf2cfi.c: Include profile-count.h
22720 * except.c (dw2_build_landing_pads): Use make_single_succ_edge.
22721 (sjlj_emit_dispatch_table): Likewise.
22722 * explow.c: Include profile-count.h
22723 * expmed.c (emit_store_flag_force): Update.
22724 (do_cmp_and_jump): Update.
22725 * expr.c (compare_by_pieces_d::generate): Update.
22726 (compare_by_pieces_d::finish_mode): Update.
22727 (emit_block_move_via_loop): Update.
22728 (store_expr_with_bounds): Update.
22729 (store_constructor): Update.
22730 (expand_expr_real_2): Update.
22731 (expand_expr_real_1): Update.
22732 * expr.h (try_casesi, try_tablejump): Update prototypes.
22733 * gimple-pretty-print.c (dump_probability): Update.
22734 (dump_profile): New.
22735 (dump_gimple_label): Update.
22736 (dump_gimple_bb_header): Update.
22737 * graph.c (draw_cfg_node_succ_edges): Update.
22738 * hsa-gen.c (convert_switch_statements): Update.
22739 * ifcvt.c (cheap_bb_rtx_cost_p): Update.
22740 (find_if_case_1): Update.
22741 (find_if_case_2): Update.
22742 * internal-fn.c (expand_arith_overflow_result_store): Update.
22743 (expand_addsub_overflow): Update.
22744 (expand_neg_overflow): Update.
22745 (expand_mul_overflow): Update.
22746 (expand_vector_ubsan_overflow): Update.
22747 * ipa-cp.c (good_cloning_opportunity_p): Update.
22748 * ipa-split.c (split_function): Use make_single_succ_edge.
22749 * ipa-utils.c (ipa_merge_profiles): Update.
22750 * loop-doloop.c (add_test): Update.
22751 (doloop_modify): Update.
22752 * loop-unroll.c (compare_and_jump_seq): Update.
22753 (unroll_loop_runtime_iterations): Update.
22754 * lra-constraints.c (lra_inheritance): Update.
22755 * lto-streamer-in.c (input_cfg): Update.
22756 * lto-streamer-out.c (output_cfg): Update.
22757 * mcf.c (adjust_cfg_counts): Update.
22758 * modulo-sched.c (sms_schedule): Update.
22759 * omp-expand.c (expand_omp_for_init_counts): Update.
22760 (extract_omp_for_update_vars): Update.
22761 (expand_omp_ordered_sink): Update.
22762 (expand_omp_for_ordered_loops): Update.
22763 (expand_omp_for_generic): Update.
22764 (expand_omp_for_static_nochunk): Update.
22765 (expand_omp_for_static_chunk): Update.
22766 (expand_cilk_for): Update.
22767 (expand_omp_simd): Update.
22768 (expand_omp_taskloop_for_outer): Update.
22769 (expand_omp_taskloop_for_inner): Update.
22770 * omp-simd-clone.c (simd_clone_adjust): Update.
22771 * optabs.c (expand_doubleword_shift): Update.
22772 (expand_abs): Update.
22773 (emit_cmp_and_jump_insn_1): Update.
22774 (expand_compare_and_swap_loop): Update.
22775 * optabs.h (emit_cmp_and_jump_insns): Update prototype.
22776 * predict.c (predictable_edge_p): Update.
22777 (edge_probability_reliable_p): Update.
22778 (set_even_probabilities): Update.
22779 (combine_predictions_for_insn): Update.
22780 (combine_predictions_for_bb): Update.
22781 (propagate_freq): Update.
22782 (estimate_bb_frequencies): Update.
22783 (force_edge_cold): Update.
22784 * profile-count.c (profile_count::dump): Add missing space into dump.
22785 (profile_count::debug): Add newline.
22786 (profile_count::differs_from_p): Explicitly convert to unsigned.
22787 (profile_count::stream_in): Update.
22788 (profile_probability::dump): New member function.
22789 (profile_probability::debug): New member function.
22790 (profile_probability::differs_from_p): New member function.
22791 (profile_probability::differs_lot_from_p): New member function.
22792 (profile_probability::stream_in): New member function.
22793 (profile_probability::stream_out): New member function.
22794 * profile-count.h (profile_count_quality): Rename to ...
22795 (profile_quality): ... this one.
22796 (profile_probability): New.
22797 (profile_count): Update.
22798 * profile.c (compute_branch_probabilities): Update.
22799 * recog.c (peep2_attempt): Update.
22800 * sched-ebb.c (schedule_ebbs): Update.
22801 * sched-rgn.c (find_single_block_region): Update.
22802 (compute_dom_prob_ps): Update.
22803 (schedule_region): Update.
22804 * sel-sched-ir.c (compute_succs_info): Update.
22805 * stmt.c (struct case_node): Update.
22806 (do_jump_if_equal): Update.
22807 (get_outgoing_edge_probs): Update.
22808 (conditional_probability): Update.
22809 (emit_case_dispatch_table): Update.
22810 (expand_case): Update.
22811 (expand_sjlj_dispatch_table): Update.
22812 (emit_case_nodes): Update.
22813 * targhooks.c: Update.
22814 * tracer.c (better_p): Update.
22815 (find_best_successor): Update.
22816 * trans-mem.c (expand_transaction): Update.
22817 * tree-call-cdce.c: Update.
22818 * tree-cfg.c (gimple_split_edge): Upate.
22819 (move_sese_region_to_fn): Upate.
22820 * tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
22821 * tree-eh.c (lower_resx): Upate.
22822 (cleanup_empty_eh_move_lp): Upate.
22823 * tree-if-conv.c (version_loop_for_if_conversion): Update.
22824 * tree-inline.c (copy_edges_for_bb): Update.
22825 (copy_cfg_body): Update.
22826 * tree-parloops.c (gen_parallel_loop): Update.
22827 * tree-profile.c (gimple_gen_ic_func_profiler): Update.
22828 (gimple_gen_time_profiler): Update.
22829 * tree-ssa-dce.c (remove_dead_stmt): Update.
22830 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
22831 * tree-ssa-loop-im.c (execute_sm_if_changed): Update.
22832 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
22833 (unloop_loops): Update.
22834 (try_peel_loop): Update.
22835 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
22836 * tree-ssa-loop-split.c (connect_loops): Update.
22837 (split_loop): Update.
22838 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
22839 (hoist_guard): Update.
22840 * tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
22841 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
22842 (value_replacement): Update.
22843 * tree-ssa-reassoc.c (branch_fixup): Update.
22844 * tree-ssa-tail-merge.c (replace_block_by): Update.
22845 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
22846 (create_edge_and_update_destination_phis): Update.
22847 (compute_path_counts): Update.
22848 (recompute_probabilities): Update.
22849 (update_joiner_offpath_counts): Update.
22850 (freqs_to_counts_path): Update.
22851 (duplicate_thread_path): Update.
22852 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
22853 (struct switch_conv_info): Update.
22854 (gen_inbound_check): Update.
22855 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
22856 (vect_do_peeling): Update.
22857 (vect_loop_versioning): Update.
22858 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
22859 (optimize_mask_stores): Update.
22860 * ubsan.c (ubsan_expand_null_ifn): Update.
22861 * value-prof.c (gimple_divmod_fixed_value): Update.
22862 (gimple_divmod_fixed_value_transform): Update.
22863 (gimple_mod_pow2): Update.
22864 (gimple_mod_pow2_value_transform): Update.
22865 (gimple_mod_subtract): Update.
22866 (gimple_mod_subtract_transform): Update.
22867 (gimple_ic): Update.
22868 (gimple_stringop_fixed_value): Update.
22869 (gimple_stringops_transform): Update.
22870 * value-prof.h: Update.
22871
22872 2017-06-29 Carl Love <cel@us.ibm.com>
22873
22874 * config/rs6000/rs6000-c.c: Add support for built-in functions
22875 vector signed int vec_signed (vector float);
22876 vector signed long long vec_signed (vector double);
22877 vector signed int vec_signed2 (vector double, vector double);
22878 vector signed int vec_signede (vector double);
22879 vector signed int vec_signedo (vector double);
22880 * config/rs6000/rs6000.c (rs6000_generate_vsigned2_code): Add
22881 instruction generator.
22882 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
22883 UNSPEC_VSX_VSIGNED2): Add UNSPECS.
22884 (vsx_xvcvspsxws, vsx_xvcvdpuxds_scale, vsx_xvcvspuxws, vsigned2_v2df):
22885 Add define_insn.
22886 (vsignedo_v2df, vsignede_v2df, vunsigned2_v2df, vunsignedo_v2df,
22887 vunsignede_v2df): Add define_expands.
22888 * config/rs6000/rs6000-builtin.def (VEC_SIGNED, VEC_UNSIGNED,
22889 VEC_SIGNED2, VEC_UNSIGNED2, VEC_SIGNEDE, VEC_UNSIGNEDE, VEC_SIGNEDO,
22890 VEC_UNSIGNEDO): Add definitions.
22891 * config/vsx.md (UNSPEC_VSX_XVCVSPSXWS, UNSPEC_VSX_XVCVSPSXDS,
22892 UNSPEC_VSX_VSIGNED2): Add UNSPECs.
22893 (vsx_xvcvspsxws, vsx_xvcvspuxws): Add define_insn.
22894 (vsigned2_v2df, vsigendo_v2df, vsignede_v2df,
22895 vunsigned2_v2df, vunsignedo_v2df, vunsignede_v2df): Add define_expands.
22896 * config/rs6000/altivec.h (vec_signed, vec_signed2,
22897 vec_signede and vec_signedo, vec_unsigned, vec_unsigned2,
22898 vec_unsignede, vec_unsignedo): Add builtin defines.
22899 * config/rs6000-protos.h (rs6000_generate_vsigned2_code): Add extern
22900 declaration.
22901 * doc/extend.texi: Update the built-in documentation file for the
22902 new built-in functions.
22903
22904 2017-06-29 Richard Biener <rguenther@suse.de>
22905
22906 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Do not add
22907 reduction chains to LOOP_VINFO_REDUCTIONS.
22908 * tree-vect-slp.c (vect_analyze_slp): Continue looking for
22909 SLP reductions after processing reduction chains.
22910
22911 2017-06-29 Nathan Sidwell <nathan@acm.org>
22912
22913 * builtins.c (fold_builtin_FUNCTION): Use
22914 lang_hooks.decl_printable_name.
22915
22916 2017-06-29 Peter Bergner <bergner@vnet.ibm.com>
22917
22918 PR middle-end/81194
22919 * cfgexpand.c (expand_gimple_stmt_1): Handle switch statements
22920 with only one label.
22921 * stmt.c (expand_case): Assert NCASES is greater than one.
22922
22923 2017-06-29 Richard Biener <rguenther@suse.de>
22924
22925 * tree-cfg.c (group_case_labels_stmt): Return whether we changed
22926 anything.
22927 (group_case_labels): Likewise.
22928 (find_taken_edge): Push sanity checking on val to workers...
22929 (find_taken_edge_cond_expr): ... here
22930 (find_taken_edge_switch_expr): ... and here, handle cases
22931 with just a default label.
22932 * tree-cfg.h (group_case_labels_stmt): Adjust prototype.
22933 (group_case_labels): Likewise.
22934 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing): When
22935 group_case_labels does anything cleanup the CFG again.
22936
22937 2017-06-29 Bin Cheng <bin.cheng@arm.com>
22938
22939 PR tree-optimization/81196
22940 * tree-ssa-loop-niter.c (number_of_iterations_cond): Handle loop
22941 exit condition comparing two IVs.
22942
22943 2017-06-29 Richard Earnshaw <rearnsha@arm.com>
22944
22945 * config/arm/parsecpu.awk (gen_comm_data): Add initializer for
22946 profile to the dummy entry at the end of the list of architectures.
22947 * config/arm/arm-cpu-cdata.h: Regenerated.
22948
22949 2017-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22950 Michael Collison <michael.collison@arm.com>
22951
22952 PR target/70119
22953 * config/aarch64/aarch64.md (*aarch64_<optab>_reg_<mode>3_mask1):
22954 New pattern.
22955 (*aarch64_reg_<mode>3_neg_mask2): New pattern.
22956 (*aarch64_reg_<mode>3_minus_mask): New pattern.
22957 (*aarch64_<optab>_reg_di3_mask2): New pattern.
22958 * config/aarch64/aarch64.c (aarch64_rtx_costs): Account for cost
22959 of shift when the shift amount is masked with constant equal to
22960 the size of the mode.
22961 * config/aarch64/predicates.md (subreg_lowpart_operator): New
22962 predicate.
22963
22964 2017-06-29 Martin Liska <mliska@suse.cz>
22965
22966 * config/i386/i386.opt: Change range from [1,5] to [0,5].
22967
22968 2017-06-29 Yury Gribov <tetra2005@gmail.com>
22969
22970 PR bootstrap/80565
22971 * ipa-cp.c (allocate_and_init_ipcp_value): Add initialization
22972 code.
22973 * ipa-inline.h
22974 (edge_growth_cache_entry::edge_growth_cache_entry): New
22975 function.
22976 (reset_edge_growth_cache): Update to use constructor.
22977
22978 2017-06-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22979
22980 * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): New.
22981 (DATA_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
22982 (LOCAL_ALIGNMENT): Update to use AARCH64_EXPAND_ALIGNMENT.
22983
22984 2017-06-28 Sebastian Peryt <sebastian.peryt@intel.com>
22985
22986 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
22987 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
22988
22989 2017-06-28 Szabolcs Nagy <szabolcs.nagy@arm.com>
22990
22991 * config.gcc (*-linux-musl*): Add t-musl tmake_file.
22992 (*-linux-uclibc*): Add t-uclibc tmake_file.
22993 * config/t-musl: New.
22994 * config/t-uclibc: New.
22995
22996 2017-06-28 Richard Earnshaw <rearnsha@arm.com>
22997
22998 * config/arm/parsecpu.awk (profile): Parse new keyword in an arch
22999 context.
23000 (gen_comm_data): Emit architectural setting of arch_prof.
23001 * config/arm/arm-cpus.in (armv6-m, armv6s-m, armv7-a, armv7ve): Set the
23002 profile.
23003 (armv7-r, armv7-m, armv7e-m, armv8-a, armv8.1-a, armv8.2-a): Likewise.
23004 (armv8-m.base, armv8-m.main): Likewise.
23005 * arm-protos.h (arm_build_target): Add profile field.
23006 (arch_option): Likewise.
23007 * config/arm/arm.c (arm_configure_build_target): Copy the profile to
23008 the active target.
23009 * config/arm/arm.h (TARGET_ARM_ARCH_PROFILE): Use
23010 arm_active_target.profile.
23011
23012 2017-06-28 Richard Biener <rguenther@suse.de>
23013
23014 PR middle-end/81227
23015 * fold-const.c (negate_expr_p): Use TYPE_UNSIGNED, not
23016 TYPE_OVERFLOW_WRAPS.
23017 * match.pd (negate_expr_p): Likewise.
23018 * tree-ssa-reassoc.c (optimize_range_tests_diff): Use
23019 fold_build2, not fold_binary.
23020
23021 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
23022
23023 * config/aarch64/aarch64 (aarch64_expand_mov_immediate):
23024 Convert memory address to Pmode.
23025 (aarch64_print_operand): Assert MEM operands are always Pmode.
23026
23027 2017-06-28 Wilco Dijkstra <wdijkstr@arm.com>
23028
23029 PR target/79665
23030 * config/arm/aarch-common.c (arm_no_early_alu_shift_dep):
23031 Remove redundant if.
23032 (aarch_forward_to_shift_is_not_shifted_reg): Remove.
23033 * config/arm/aarch-common-protos.h
23034 (aarch_forward_to_shift_is_not_shifted_re): Remove.
23035 * config/arm/cortex-a53.md: Use arm_no_early_alu_shift_dep in bypass.
23036
23037 2017-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
23038
23039 PR ipa/81238
23040 * multiple_target.c (create_dispatcher_calls): Set the default
23041 clone to be static, not public.
23042
23043 2017-06-28 Richard Biener <rguenther@suse.de>
23044
23045 * tree-vect-loop.c (vectorizable_reduction): Move special
23046 cond reduction IV var creation ...
23047 (vect_create_epilog_for_reduction): ... here. Remove induction_index
23048 parameter. Use STMT_VINFO_VECTYPE.
23049 * tree-vect-slp.c (vect_get_constant_vectors): Properly reset
23050 constant_p.
23051
23052 2017-06-28 Martin Liska <mliska@suse.cz>
23053
23054 PR ipa/81128
23055 * ipa-visibility.c (non_local_p): Handle visibility.
23056
23057 2017-06-28 Martin Liska <mliska@suse.cz>
23058
23059 PR driver/79659
23060 * common.opt: Add IntegerRange to various options.
23061 * opt-functions.awk (integer_range_info): New function.
23062 * optc-gen.awk: Add integer_range_info to cl_options struct.
23063 * opts-common.c (decode_cmdline_option): Handle
23064 CL_ERR_INT_RANGE_ARG.
23065 (cmdline_handle_error): Likewise.
23066 * opts.c (print_filtered_help): Show valid interval in
23067 when --help is provided.
23068 * opts.h (struct cl_option): Add range_min and range_max fields.
23069 * config/i386/i386.opt: Add IntegerRange for -mbranch-cost.
23070
23071 2017-06-28 Marc Glisse <marc.glisse@inria.fr>
23072
23073 * match.pd ((X & ~Y) | (~X & Y)): Generalize to + and ^.
23074 (x * C EQ/NE y * C): New transformation.
23075
23076 2017-06-28 Christophe Lyon <christophe.lyon@linaro.org>
23077
23078 * genmultilib (combination_space): Accept '+' in option names.
23079
23080 2017-06-28 Martin Liska <mliska@suse.cz>
23081
23082 PR sanitizer/81224
23083 * asan.c (instrument_derefs): Bail out inner references
23084 that are hard register variables.
23085
23086 2017-06-28 Jakub Jelinek <jakub@redhat.com>
23087
23088 PR target/81175
23089 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
23090 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
23091
23092 2017-06-28 Richard Biener <rguenther@suse.de>
23093
23094 * tree-vectorizer.h (vect_get_vec_defs): Remove.
23095 (vect_get_slp_defs): Adjust.
23096 * tree-vect-loop.c (get_initial_defs_for_reduction): Split
23097 out from ...
23098 * tree-vect-slp.c (vect_get_constant_vectors): ... here and
23099 simplify.
23100 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use
23101 get_initial_defs_for_reduction instead of vect_get_vec_defs.
23102 (vectorizable_reduction): Adjust.
23103 * tree-vect-slp.c (vect_get_constant_vectors): Remove reduction
23104 handling.
23105 (vect_get_slp_defs): Likewise.
23106 * tree-vect-stmts.c (vect_get_vec_defs): Make static and adjust.
23107 (vectorizable_bswap): Adjust.
23108 (vectorizable_call): Likewise.
23109 (vectorizable_conversion): Likewise.
23110 (vectorizable_assignment): Likewise.
23111 (vectorizable_shift): Likewise.
23112 (vectorizable_operation): Likewise.
23113 (vectorizable_store): Likewise.
23114 (vectorizable_condition): Likewise.
23115 (vectorizable_comparison): Likewise.
23116
23117 2017-06-28 Michael Collison <michael.collison@arm.com>
23118
23119 PR target/68535
23120 * config/arm/arm.c (gen_ldm_seq): Remove last unnecessary
23121 set of base_reg
23122 (arm_gen_movmemqi): Removed unused variable 'i'.
23123 Convert 'for' loop into 'while' loop.
23124 (arm_expand_prologue): Remove last unnecessary set of insn.
23125 (thumb_pop): Remove unused variable 'pushed_words'.
23126 (thumb_exit): Remove last unnecessary set of regs_to_pop.
23127
23128 2017-06-28 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23129
23130 * config/s390/predicates.md: Use s390_rel_address_ok_p.
23131 * config/s390/s390-protos.h: Add prototype of
23132 s390_rel_address_ok_p.
23133 * config/s390/s390.c (s390_got_symbol): New function.
23134 (s390_rel_address_ok_p): New function.
23135 (legitimize_pic_address): Use s390_rel_address_ok_p.
23136 (s390_load_got): Use s390_got_symbol.
23137 (s390_option_override): Issue error if
23138 -mno-pic-data-is-text-relative is used without -fpic/-fPIC.
23139 * config/s390/s390.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
23140 New macro.
23141 * config/s390/s390.opt: New option mpic-data-is-text-relative.
23142
23143 2017-06-27 Andrew Pinski <apinski@cavium.com>
23144
23145 * match.pd (X >/>=/</<= 0 ? 1.0 : -1.0): New patterns.
23146 (X * copysign (1.0, X)): New pattern.
23147 (X * copysign (1.0, -X)): New pattern.
23148 (copysign (-1.0, CST)): New pattern.
23149
23150 2017-06-27 Joseph Myers <joseph@codesourcery.com>
23151
23152 * genmultilib (combination_space): Remove variable.
23153 Validate reuse rules against regular expression for any sequence
23154 of multilib options in any order.
23155
23156 2017-06-27 Michael Collison <michael.collison@arm.com>
23157
23158 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Directly
23159 call aarch64_split_simd_combine.
23160 * (aarch64_combine_internal<mode>): Delete pattern.
23161 * config/aarch64/aarch64.c (aarch64_split_simd_combine):
23162 Allow register and subreg operands.
23163
23164 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
23165
23166 * config/i386/vxworks.h (ASM_SPEC): Remove definition. No target
23167 specific need, just fallback on defaults.
23168 (ASM_OUTPUT_ALIGNED_BSS): Add #undef before #define.
23169
23170 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
23171 Olivier Hainque <hainque@adacore.com>
23172
23173 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Pick distinct
23174 map for 64bits.
23175 (TARGET_OS_CPP_BUILTINS): builtin_define CPU to X86_64 for 64bit
23176 targets. Pick a default if no particular attempt applied.
23177 (STACK_CHECK_PROTECT): Double for 64bit targets, which have
23178 larger contexts.
23179
23180 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
23181
23182 * config.gcc (i*86-wrs-vxworks7): Handle new acceptable triplet.
23183 (x86_64-wrs-vxworks7): Likewise.
23184
23185 2017-06-27 Marek Polacek <polacek@redhat.com>
23186
23187 PR sanitizer/81223
23188 * ubsan.c (instrument_null): Check get_base_address's result for null.
23189
23190 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
23191
23192 * match.pd ((A+-B)+(C-A), (A+B)-(A-C)): New transformations.
23193
23194 2017-06-27 Marc Glisse <marc.glisse@inria.fr>
23195
23196 * builtin-types.def (BT_FENV_T_PTR, BT_CONST_FENV_T_PTR,
23197 BT_FEXCEPT_T_PTR, BT_CONST_FEXCEPT_T_PTR): New primitive types.
23198 (BT_FN_INT_FENV_T_PTR, BT_FN_INT_CONST_FENV_T_PTR,
23199 BT_FN_INT_FEXCEPT_T_PTR_INT, BT_FN_INT_CONST_FEXCEPT_T_PTR_INT):
23200 New function types.
23201 * builtins.def (BUILT_IN_FECLEAREXCEPT, BUILT_IN_FEGETENV,
23202 BUILT_IN_FEGETEXCEPTFLAG, BUILT_IN_FEGETROUND,
23203 BUILT_IN_FEHOLDEXCEPT, BUILT_IN_FERAISEEXCEPT,
23204 BUILT_IN_FESETENV, BUILT_IN_FESETEXCEPTFLAG,
23205 BUILT_IN_FESETROUND, BUILT_IN_FETESTEXCEPT,
23206 BUILT_IN_FEUPDATEENV): New builtins.
23207 * tree-core.h (TI_FENV_T_PTR_TYPE, TI_CONST_FENV_T_PTR_TYPE,
23208 TI_FEXCEPT_T_PTR_TYPE, TI_CONST_FEXCEPT_T_PTR_TYPE): New entries.
23209 * tree.h (fenv_t_ptr_type_node, const_fenv_t_ptr_type_node,
23210 fexcept_t_ptr_type_node, const_fexcept_t_ptr_type_node): New
23211 macros.
23212 (builtin_structptr_types): Adjust size.
23213 * tree.c (builtin_structptr_types): Add four entries.
23214
23215 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
23216 Olivier Hainque <hainque@adacore.com>
23217
23218 * config/vxworks.h (VXWORKS_LIB_SPEC): Incorporate ...
23219 (TLS_SYM): New local macro, forcing reference to __tls__ on
23220 link command lines for VxWorks 7 RTPs, triggering initialization
23221 of tlsLib.
23222 (VXWORKS_HAVE_TLS): New macro. State whether the target VxWorks
23223 OS features TLS support, true for RTPs on VxWorks 7.
23224 * config/vxworks.c (vxworks_override_options): Setup emutls
23225 accordingly.
23226
23227 2017-06-27 Jakub Jelinek <jakub@redhat.com>
23228
23229 * predict.c (test_prediction_value_range): Use -1U instead of -1
23230 to avoid narrowing conversion warning.
23231 * dumpfile.c (dump_options): Wrap all value into dump_flags_t cast
23232 to avoid narrowing conversion warning.
23233 * opt-functions.awk (var_ref): Return (unsigned short) -1 instead of
23234 -1.
23235 * optc-gen.awk (END): Expect (unsigned short) -1 instead of -1.
23236
23237 2017-06-27 Jerome Lambourg <lambourg@adacore.com>
23238
23239 * config/vxworks.h (VXWORKS_LIBS_RTP): Alternative definition for
23240 64bit configurations.
23241 (PTR_DIFF_TYPE): Alternative definition for TARGET_LP64.
23242 (SIZE_TYPE): Likewise.
23243 * config/vxworks.c (vxworks_emutls_var_fields): Use
23244 long_unsigned_type_node instead of unsigned_type_node as the offset
23245 field type, which is "pointer" mode in emutls.c.
23246
23247 2017-06-27 Jakub Jelinek <jakub@redhat.com>
23248
23249 PR sanitizer/81209
23250 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
23251
23252 PR middle-end/81207
23253 * gimple-fold.c (replace_call_with_call_and_fold): Handle
23254 gimple_vuse copying separately from gimple_vdef copying.
23255
23256 2017-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
23257
23258 * value-prof.c (free_hist): Remove call to memset and the enclosing if
23259 condition.
23260
23261 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
23262 Olivier Hainque <hainque@adacore.com>
23263
23264 * config.gcc (*-*-vxworks*): Add TARGET_VXWORKS7=1 to tm_defines
23265 for all vxworks7 targets.
23266 * config/vxworks.h (TARGET_VXWORKS7): If not defined, define to 0.
23267 (VXWORKS_ADDITIONAL_CPP_SPEC): Alternative definition for VXWORKS7.
23268 (VXWORKS_LIBS_RTP, VXWORKS_LIBS_RTP_DIR): New macros, allowing
23269 variations for VX6/VX7 and 32/64bits later on in ...
23270 (VXWORKS_LIB_SPEC): Leverage new macros.
23271 (VXWORKS_OS_CPP_BUILTINS): Define _VSB_CONFIG_FILE for VXWORKS7,
23272 as well as _ALLOW_KEYWORD_MACROS when "inline" is not a keyword.
23273
23274 2017-06-26 Jerome Lambourg <lambourg@adacore.com>
23275
23276 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): builtin_define
23277 _VX_TOOL_FAMILY and _VX_TOOL to gnu.
23278
23279 2017-06-26 Carl Love <cel@us.ibm.com>
23280
23281 * config/rs6000/rs6000-c.c: Add support for built-in functions
23282 vector bool char vec_reve (vector bool char);
23283 vector signed char vec_reve (vector signed char);
23284 vector unsigned char vec_reve (vector unsigned char);
23285 vector bool int vec_reve (vector bool int);
23286 vector signed int vec_reve (vector signed int);
23287 vector unsigned int vec_reve (vector unsigned int);
23288 vector bool long long vec_reve (vector bool long long);
23289 vector signed long long vec_reve (vector signed long long);
23290 vector unsigned long long vec_reve (vector unsigned long long);
23291 vector bool short vec_reve (vector bool short);
23292 vector signed short vec_reve (vector signed short);
23293 vector double vec_reve (vector double);
23294 vector float vec_reve (vector float);
23295 * config/rs6000/rs6000-builtin.def (VREVE_V2DI, VREVE_V4SI,
23296 VREVE_V8HI, VREVE_V16QI, VREVE_V2DF, VREVE_V4SF, VREVE): New builtin.
23297 * config/rs6000/altivec.md (UNSPEC_VREVEV): New UNSPEC.
23298 (altivec_vreve): New pattern.
23299 * config/rs6000/altivec.h (vec_reve): New define.
23300 * doc/extend.texi (vec_rev): Update the built-in documentation file
23301 for the new built-in functions.
23302
23303 2016-06-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23304
23305 PR tree-optimization/71815
23306 * gimple-ssa-strength-reduction.c (uses_consumed_by_stmt): New
23307 function.
23308 (find_basis_for_candidate): Call uses_consumed_by_stmt rather than
23309 has_single_use.
23310 (slsr_process_phi): Likewise.
23311 (replace_uncond_cands_and_profitable_phis): Don't replace a
23312 multiply candidate with a stride of 1 (copy or cast).
23313 (phi_incr_cost): Call uses_consumed_by_stmt rather than
23314 has_single_use.
23315 (lowest_cost_path): Likewise.
23316 (total_savings): Likewise.
23317
23318 2017-06-26 Richard Biener <rguenther@suse.de>
23319
23320 PR target/81175
23321 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
23322 Use def_builtin_pure for all gather builtins.
23323
23324 2017-06-26 Richard Biener <rguenther@suse.de>
23325
23326 PR tree-optimization/81203
23327 * tree-tailcall.c (find_tail_calls): Do not move stmts into
23328 non-dominating BBs.
23329
23330 2017-06-26 Marek Polacek <polacek@redhat.com>
23331
23332 PR c/80116
23333 * doc/invoke.texi: Document -Wmultistatement-macros.
23334
23335 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
23336
23337 * doc/sourcebuild.texi (ARM-specific attributes): Document new
23338 arm_neon_ok_no_float_abi effective target.
23339
23340 2017-06-26 Richard Biener <rguenther@suse.de>
23341
23342 PR tree-optimization/80928
23343 * cfghooks.c (duplicate_block): Do not copy BB_DUPLICATED flag.
23344 (copy_bbs): Set BB_DUPLICATED flag early.
23345 (execute_on_growing_pred): Do not execute for BB_DUPLICATED
23346 marked blocks.
23347 (execute_on_shrinking_pred): Likewise.
23348 * tree-ssa.c (ssa_redirect_edge): Do not look for PHI args in
23349 BB_DUPLICATED blocks.
23350 * tree-ssa-phionlycoprop.c (eliminate_degenerate_phis_1): Properly
23351 iterate over all PHIs considering removal of *gsi.
23352
23353 2017-06-23 Jim Wilson <jim.wilson@linaro.org>
23354
23355 * doc/invoke.texi (AArch64 Options, -mtune): Re-add falkor and
23356 qdf24xx.
23357
23358 2017-06-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
23359
23360 * config/rs6000/rs6000-string.c: (expand_block_clear,
23361 do_load_for_compare, select_block_compare_mode,
23362 compute_current_alignment, expand_block_compare,
23363 expand_strncmp_align_check, expand_strn_compare,
23364 expand_block_move, rs6000_output_load_multiple)
23365 Move functions related to string/block move/compare
23366 to a separate file.
23367 * config/rs6000/rs6000.c: Move above functions to rs6000-string.c.
23368 * config/rs6000/rs6000-protos.h (rs6000_emit_dot_insn): Add prototype
23369 for this function which is now used in two files.
23370 * config/rs6000/t-rs6000: Add rule to compile rs6000-string.o.
23371 * config.gcc: Add rs6000-string.o to extra_objs for
23372 targets powerpc*-*-* and rs6000*-*-*.
23373
23374 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
23375
23376 PR target/80510
23377 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
23378 32-bit, since indexed is not valid for DImode.
23379 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
23380 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
23381 (define_peephole2 for Altivec d-form load): Add 32-bit support.
23382 (define_peephole2 for Altivec d-form store): Likewise.
23383
23384 PR ipa/81185
23385 * multiple_target.c (create_dispatcher_calls): Only create the
23386 dispatcher call if the function is the default clone of a
23387 versioned function.
23388
23389 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
23390
23391 PR middle-end/80902
23392 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
23393 a call, force the call to not be a tail call.
23394
23395 2017-06-23 Jeff Law <law@redhat.com>
23396
23397 * doc/contrib.texi: Add entry for Steven Pemberton's work on
23398 enquire.
23399
23400 2017-06-23 Will Schmidt <will_schmidt@vnet.ibm.com>
23401
23402 * config/rs6000/rs6000.c: Add include of ssa-propagate.h for
23403 update_call_from_tree(). (rs6000_gimple_fold_builtin): Add
23404 handling for early expansion of vector shifts (sl,sr,sra,rl).
23405 (builtin_function_type): Add vector shift right instructions
23406 to the unsigned argument list.
23407
23408 2017-06-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
23409
23410 rtl-optimizatoin/79286
23411 * ira.c (update_equiv_regs): Revert to using may_trap_or_fault_p again.
23412 * rtlanal.c (rtx_addr_can_trap_p_1): SYMBOL_REF_FUNCTION_P can never
23413 trap. PIC register plus a const unspec without offset can never trap.
23414
23415 2017-06-23 Marc Glisse <marc.glisse@inria.fr>
23416
23417 * tree.h (builtin_structptr_type): New type.
23418 (builtin_structptr_types): Declare new array.
23419 * tree.c (builtin_structptr_types): New array.
23420 (free_lang_data, build_common_tree_nodes): Use it.
23421
23422 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
23423
23424 PR c++/81187
23425 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
23426 -Wnoexcept.
23427
23428 2017-06-22 Matt Turner <mattst88@gmail.com>
23429
23430 * config/i386/driver-i386.c (host_detect_local_cpu): Add Kaby
23431 Lake models to skylake case. Assume skylake for unknown
23432 models with clflushopt.
23433
23434 2017-06-22 Jeff Law <law@redhat.com>
23435
23436 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
23437 frame sizes that do not satisfy aarch64_uimm12_shift.
23438
23439 2017-06-22 Jan Hubicka <hubicka@ucw.cz>
23440
23441 * profile-count.h (apply_probability,
23442 apply_scale, probability_in): Fix checks for zero.
23443
23444 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23445
23446 * incpath.c (add_sysroot_to_chain): Allow for $SYSROOT prefix.
23447 * doc/cppdiropts.texi (-I @var{dir}): Document it.
23448
23449 2016-06-22 Richard Biener <rguenther@suse.de>
23450
23451 * tree-vect-loop.c (vect_model_reduction_cost): Handle
23452 COND_REDUCTION and INTEGER_INDUC_COND_REDUCTION without
23453 REDUC_MAX_EXPR support.
23454 (vectorizable_reduction): Likewise.
23455 (vect_create_epilog_for_reduction): Likewise.
23456
23457 2017-06-22 James Greenhalgh <james.greenhalgh@arm.com>
23458
23459 * match.pd (A / (1 << B) -> A >> B): New.
23460 * generic-match-head.c: Include optabs-tree.h.
23461 * gimple-match-head.c: Likewise.
23462 * optabs-tree.h (target_supports_op_p): New.
23463 * optabs-tree.c (target_supports_op_p): New.
23464
23465 2017-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
23466
23467 * configure.ac (gcc_cv_ld_static_dynamic): Also check stderr for
23468 $gcc_cv_ld --help output.
23469 (gcc_cv_ld_demangle): Likewise.
23470 (gcc_cv_ld_eh_frame_hdr): Likewise.
23471 (gcc_cv_ld_pie): Likewise.
23472 (gcc_cv_ld_as_needed): Likewise. Prefer native forms unless $gnu_ld.
23473 (gcc_cv_ld_buildid): Likewise.
23474 (gcc_cv_ld_sysroot): Likewise.
23475 (ld_bndplt_support): Likewise.
23476 (ld_pushpopstate_support): Likewise.
23477 * configure: Regenerate.
23478 * config/sol2.h [!USE_GLD] (SYSROOT_SPEC): Define.
23479
23480 2017-06-21 Jakub Jelinek <jakub@redhat.com>
23481
23482 PR target/81151
23483 * config/i386/sse.md (round<mode>2): Renumber match_dup and
23484 operands indexes to avoid gap between operands and match_dups.
23485
23486 2017-06-21 Andrew Pinski <apinski@cavium.com>
23487
23488 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
23489 Increment Arith_shift and Arith_shift_reg by 1.
23490 * config/aarch64/aarch64-tuning-flags.def (cheap_shift_extend):
23491 New tuning flag.
23492 * config/aarch64/aarch64.c (thunderx_tunings): Enable
23493 AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.
23494 (aarch64_strip_extend): Add new argument and test for it.
23495 (aarch64_cheap_mult_shift_p): New function.
23496 (aarch64_rtx_mult_cost): Call aarch64_cheap_mult_shift_p and don't
23497 add a cost if it is true.
23498 Update calls to aarch64_strip_extend.
23499 (aarch64_rtx_costs): Update calls to aarch64_strip_extend.
23500
23501 2017-06-21 Andrew Pinski <apinski@cavium.com>
23502
23503 * config/aarch64/aarch64-cores.def (thunderxt88p1): Use thunderxt88
23504 tunings.
23505 (thunderxt88): Likewise.
23506 * config/aarch64/aarch64.c (thunderxt88_prefetch_tune): New variable.
23507 (thunderx_prefetch_tune): New variable.
23508 (thunderx2t99_prefetch_tune): Update for the correct values.
23509 (thunderxt88_tunings): New variable.
23510 (thunderx_tunings): Use thunderx_prefetch_tune instead of
23511 generic_prefetch_tune.
23512 (thunderx2t99_tunings): Use AUTOPREFETCHER_WEAK.
23513
23514 2017-06-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23515
23516 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>_lse,
23517 SHORT): Relax operand 3 to aarch64_reg_or_zero and constraint to Z.
23518 (aarch64_compare_and_swap<mode>_lse, GPI): Likewise.
23519 (aarch64_atomic_cas<mode>, SHORT): Likewise for operand 2.
23520 (aarch64_atomic_cas<mode>, GPI): Likewise.
23521
23522 2017-06-21 Martin Liska <mliska@suse.cz>
23523
23524 * gimplify.c (gimplify_label_expr): Insert GIMPLE_PREDICT
23525 statements on cold and hot labels.
23526 * predict.c (tree_estimate_probability_bb): Remove the
23527 prediction from this place.
23528
23529 2017-06-21 Martin Liska <mliska@suse.cz>
23530
23531 PR tree-optimization/79489
23532 * gimplify.c (maybe_add_early_return_predict_stmt): New
23533 function.
23534 (gimplify_return_expr): Call the function.
23535 * predict.c (tree_estimate_probability_bb): Remove handling
23536 of early return.
23537 * predict.def: Update comment about early return predictor.
23538 * gimple-predict.h (is_gimple_predict): New function.
23539 * predict.def: Change default value of early return to 66.
23540 * tree-tailcall.c (find_tail_calls): Skip GIMPLE_PREDICT
23541 statements.
23542 * passes.def: Put pass_strip_predict_hints to the beginning of
23543 IPA passes.
23544
23545 2017-06-21 Pierre-Marie de Rodat <derodat@adacore.com>
23546
23547 * dwarf2out.c (gen_decl_die): Remove the guard to skip file-scope
23548 FUNCTION_DECL declarations.
23549 (dwarf2out_early_global_decl): Remove the guard to skip FUNCTION_DECL
23550 declarations.
23551 (dwaf2out_decl): Likewise.
23552 * godump.c (go_early_global_decl): Skip call to the real debug hook
23553 for FUNCTION_DECL declarations.
23554 * passes.c (rest_of_decl_compilation): Skip call to the
23555 early_global_decl debug hook for FUNCTION_DECL declarations, unless
23556 -fdump-go-spec is passed.
23557
23558 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
23559
23560 * config/i386/i386.c (struct builtin_isa): New field pure_p.
23561 Reorder for compactness.
23562 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
23563 (def_builtin_pure, def_builtin_pure2): New functions.
23564 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
23565
23566 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
23567
23568 * match.pd (nop_convert): New predicate.
23569 ((A +- CST1) +- CST2): Allow some NOP conversions.
23570
23571 2017-06-21 Jakub Jelinek <jakub@redhat.com>
23572
23573 PR c++/81130
23574 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
23575 with ctors/dtors if GOVD_SHARED is set.
23576
23577 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
23578
23579 * config/aarch64/aarch64.md (movti_aarch64):
23580 Emit mov rather than orr.
23581 (movtf_aarch64): Likewise.
23582 * config/aarch64/aarch64-simd.md (aarch64_simd_mov):
23583 Emit mov rather than orr.
23584
23585 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
23586
23587 * config/aarch64/aarch64-simd.md (aarch64_simd_dup):
23588 Swap alternatives, make integer dup more expensive.
23589
23590 2017-06-21 Wilco Dijkstra <wdijkstr@arm.com>
23591
23592 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p):
23593 Return true for non-tls symbols.
23594
23595 2017-06-21 James Greenhalgh <james.greenhalgh@arm.com>
23596
23597 * config/aarch64/aarch64-cores.def (cortex-a55): New.
23598 (cortex-a75): Likewise.
23599 (cortex-a75.cortex-a55): Likewise.
23600 * config/aarch64/aarch64-tune.md: Regenerate.
23601 * doc/invoke.texi (-mtune): Document new values for -mtune.
23602
23603 2017-06-21 Tom de Vries <tom@codesourcery.com>
23604
23605 * doc/sourcebuild.texi (Add Options, Features for dg-add-options): Add
23606 stack_size feature.
23607 (Effective-Target Keywords, Other attributes): Suggest using
23608 dg-add-options stack_size feature to get stack limit in stack_size
23609 effective target documentation.
23610
23611 2017-06-21 Julian Brown <julian@codesourcery.com>
23612 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
23613
23614 * config/aarch64/aarch64-simd.md (aarch64_crypto_pmulldi)
23615 (aarch64_crypto_pmullv2di): Change type attribute to crypto_pmull.
23616 * config/aarch64/thunderx2t99.md (thunderx2t99_pmull): New
23617 reservation.
23618 * config/arm/cortex-a53.md (cortex_a53_advsimd_type): Add crypto_pmull to
23619 attribute type list for neon_multiply.
23620 * config/arm/cortex-a57.md (cortex_a57_neon_type): Add crypto_pmull to
23621 attribute type list for neon_multiply.
23622 * config/arm/crypto.md (crypto_vmullp64): Change type to crypto_pmull.
23623 * config/arm/exynos-m1.md (exynos_m1_neon_type): Add crypto_pmull to
23624 attribute type list for neon_multiply.
23625 * config/arm/types.md (crypto_pmull): Add.
23626 * config/arm/xgene1.md (xgene1_neon_pmull): Add crypto_pmull to
23627 attribute type list.
23628
23629 2017-06-20 Andreas Tobler <andreast@gcc.gnu.org>
23630
23631 * config.gcc (armv6*-*-freebsd*): Change the target_cpu_cname to
23632 arm1176jzf-s.
23633
23634 2017-06-20 Jakub Jelinek <jakub@redhat.com>
23635
23636 * ira-costs.c (find_costs_and_classes): Initialize cost_classes later
23637 to make sure not to dereference a NULL cost_classes_ptr pointer.
23638
23639 2017-06-20 Carl Love <cel@us.ibm.com>
23640
23641 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23642 ALTIVEC_BUILTIN_VMULESW, ALTIVEC_BUILTIN_VMULEUW,
23643 ALTIVEC_BUILTIN_VMULOSW, ALTIVEC_BUILTIN_VMULOUW entries.
23644 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin,
23645 builtin_function_type): Add ALTIVEC_BUILTIN_* case statements.
23646 * config/rs6000/altivec.md (MVULEUW, VMULESW, VMULOUW,
23647 VMULOSW): New enum "unspec" values.
23648 (vec_widen_umult_even_v4si, vec_widen_smult_even_v4si,
23649 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si,
23650 altivec_vmuleuw, altivec_vmulesw, altivec_vmulouw,
23651 altivec_vmulosw): New patterns.
23652 * config/rs6000/rs6000-builtin.def (VMLEUW, VMULESW, VMULOUW,
23653 VMULOSW): Add definitions.
23654
23655 2017-06-20 Julia Koval <julia.koval@intel.com>
23656
23657 * config/i386/i386.c: Fix rounding expand for new pattern.
23658 * config/i386/subst.md: Fix pattern (parallel -> unspec).
23659
23660 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
23661
23662 * config/aarch64/aarch64-option-extensions.def (rcpc): New.
23663 * config/aarch64/aarch64.h (AARCH64_FL_RCPC): New.
23664
23665 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
23666
23667 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
23668 feature string.
23669
23670 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
23671
23672 * config/aarch64/aarch64-cores.def: Rearrange to sort by
23673 architecture, then by implementer ID.
23674 * config/aarch64/aarch64-tune.md: Regenerate.
23675
23676 2017-06-20 Richard Biener <rguenther@suse.de>
23677
23678 PR middle-end/81097
23679 * fold-const.c (split_tree): Fold to type before negating.
23680
23681 2017-06-20 David Malcolm <dmalcolm@redhat.com>
23682
23683 * diagnostic-show-locus.c
23684 (selftest::test_fixit_deletion_affecting_newline): New function.
23685 (selftest::diagnostic_show_locus_c_tests): Call it.
23686
23687 2017-06-20 Andreas Schwab <schwab@suse.de>
23688
23689 PR target/80970
23690 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
23691 instead of "+d".
23692
23693 2017-06-20 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
23694
23695 * config/arm/arm-c.c (arm_cpu_builtins): New block to define
23696 __ARM_FEATURE_COPROC according to support.
23697
23698 2017-06-20 Jakub Jelinek <jakub@redhat.com>
23699
23700 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
23701 Rewritten to avoid overflow for > 32-bit pointers.
23702
23703 PR sanitizer/81125
23704 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
23705 by removing enum keyword.
23706 (ubsan_type_descriptor): Likewise. Formatting fix.
23707
23708 PR target/81121
23709 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
23710 splitter): Require TARGET_SSE2 in the condition.
23711
23712 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
23713
23714 PR target/79799
23715 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
23716 for doing vector set of SFmode on ISA 3.0.
23717 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
23718 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
23719 element.
23720 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
23721 SFmode value into a V4SF variable that was extracted from another
23722 V4SF variable without converting the element to double precision
23723 and back to single precision vector format.
23724 (vsx_insert_extract_v4sf_p9_2): Likewise.
23725
23726 2017-06-19 Jakub Jelinek <jakub@redhat.com>
23727
23728 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Multiply
23729 in UWHI to avoid undefined overflow.
23730
23731 PR sanitizer/81125
23732 * ubsan.h (enum ubsan_encode_value_phase): New.
23733 (ubsan_encode_value): Change second argument to
23734 enum ubsan_encode_value_phase with default value of
23735 UBSAN_ENCODE_VALUE_GENERIC.
23736 * ubsan.c (ubsan_encode_value): Change second argument to
23737 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
23738 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
23739 create_tmp_var_raw instead of create_tmp_var and use a
23740 TARGET_EXPR.
23741 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
23742 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
23743 ubsan_encode_value callers.
23744
23745 PR sanitizer/81111
23746 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
23747 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
23748 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
23749
23750 2017-06-19 Richard Biener <rguenther@suse.de>
23751
23752 PR middle-end/81118
23753 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop): Clear niter
23754 estimates if we changed anything.
23755
23756 2017-06-19 Richard Biener <rguenther@suse.de>
23757
23758 PR tree-optimization/80887
23759 * tree-ssa-sccvn.c (mprts_hook_cnt): New global.
23760 (vn_lookup_simplify_result): Allow only mprts_hook_cnt succesful
23761 simplified lookups, then reset mprts_hook.
23762 (vn_nary_build_or_lookup_1): Set mprts_hook_cnt to 9 before
23763 simplifying.
23764 (try_to_simplify): Likewise.
23765
23766 2017-06-19 Martin Liska <mliska@suse.cz>
23767
23768 PR sanitizer/80879
23769 * gimplify.c (gimplify_switch_expr):
23770 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
23771
23772 2017-06-19 Martin Liska <mliska@suse.cz>
23773
23774 * doc/install.texi: Document that PGO runs in 4 stages.
23775
23776 2017-06-19 Martin Liska <mliska@suse.cz>
23777
23778 PR ipa/80732
23779 * attribs.c (make_dispatcher_decl): Do not append '.ifunc'
23780 to dispatcher function name.
23781 * multiple_target.c (replace_function_decl): New function.
23782 (create_dispatcher_calls): Redirect both edges and references.
23783
23784 2017-06-19 Jan Hubicka <hubicka@ucw.cz>
23785
23786 * profile-count.c (profile_count::dump): Dump quality.
23787 (profile_count::differs_from_p): Update for unsigned val.
23788 * profile-count.h (profile_count_quality): New enum.
23789 (profile_count): Turn m_val to 62bit unsigned, add quality tracking.
23790
23791 2017-06-19 Richard Biener <rguenther@suse.de>
23792
23793 * tree-ssa-loop-niter.h (estimate_numbers_of_iterations): Take
23794 struct function as arg.
23795 (estimate_numbers_of_iterations): Export overload with loop arg.
23796 (free_numbers_of_iterations_estimates_loop): Use an overload of
23797 free_numbers_of_iterations_estimates instead.
23798 * tree-cfg.c (remove_bb): Adjust.
23799 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Likewise.
23800 * tree-parloops.c (gen_parallel_loop): Likewise.
23801 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables):
23802 Likewise.
23803 (tree_unroll_loops_completely): Likewise.
23804 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
23805 Use an overload instead and export.
23806 (estimated_loop_iterations): Adjust.
23807 (max_loop_iterations): Likewise.
23808 (likely_max_loop_iterations): Likewise.
23809 (estimate_numbers_of_iterations): Take struct function as arg
23810 and adjust.
23811 (loop_exits_before_overflow): Adjust.
23812 (free_numbers_of_iterations_estimates_loop): Use an overload.
23813 * tree-vect-loop.c (vect_analyze_loop_form): Adjust.
23814 * tree-vectorizer.c (vect_free_loop_info_assumptions): Likewise.
23815
23816 2017-06-19 Richard Biener <rguenther@suse.de>
23817
23818 PR ipa/81112
23819 * ipa-prop.c (find_constructor_constant_at_offset): Handle
23820 RANGE_EXPR conservatively.
23821
23822 2017-06-16 Carl Love <cel@us.ibm.com>
23823
23824 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23825 definitions for vec_float, vec_float2, vec_floato,
23826 vec_floate built-ins.
23827 * config/rs6000/vsx.md (define_c_enum "unspec"): Add RTL code
23828 for instructions vsx_xvcvsxws vsx_xvcvuxwsp, float2, floato and
23829 floate.
23830 * config/rs6000/rs6000-builtin.def (FLOAT2_V2DI, FLOATE_V2DF,
23831 FLOATE_2DI, FLOATO_V2DF, FLOATEE_V2DI, XVCVSXWSP_V4SF,
23832 UNS_FLOATO_V2DI, UNS_FLOATE_V2DI): Add definitions.
23833 * config/altivec.md (define_insn "p8_vmrgew_<mode>",
23834 define_mode_attr VF_sxddp): Add V4SF type to p8_vmrgew.
23835 * config/rs6000/altivec.h (vec_float, vec_float2, vec_floate,
23836 vec_floato): Add builtin defines.
23837 * doc/extend.texi (vec_float, vec_float2, vec_floate, vec_floato):
23838 Update the built-in documentation file for the new built-in
23839 functions.
23840
23841 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23842
23843 * config/arm/arm.opt (marm): Mark as the negative of of -mthumb.
23844 (mthumb): Mark as the negative of -marm.
23845
23846 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23847
23848 * doc/invoke.texi (ARM Options, -mcpu): Document supported
23849 extension options.
23850 (ARM Options, -mtune): Document that this accepts the same
23851 extension options as -mcpu.
23852 (ARM Options, -mfpu): Document addition of -mfpu=auto.
23853
23854 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23855
23856 * doc/invoke.texi (ARM Options, -march=): Document new syntax and
23857 permitted extensions.
23858
23859 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23860
23861 * config/arm/arm-cpus.in (armv7): Add extension +nofp.
23862 (armv7-r): Add aliases vfpv3xd and vfpv3-d16.
23863 (armv8-m.main): Add option +nodsp.
23864 * config/arm/arm-cpu-cdata.h: Regenerated.
23865
23866 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23867
23868 * config/arm/t-fuchsia: New file.
23869 * config.gcc (arm*-*-fuchsia*): Use it.
23870
23871 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23872
23873 * config/arm/t-symbian: Rewrite for new option infrastructure.
23874
23875 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23876
23877 * config/arm/t-phoenix (MULTILIB_REUSE): Clear variable.
23878 (MULTILIB_REQUIRED): Likewise.
23879
23880 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23881
23882 * config/arm/t-linux-eabi (MULTILIB_EXCEPTIONS): Set to empty.
23883 (MULTILIB_RESUE): Likewise.
23884 (MULTILIB_MATCHES): Likewise.
23885 (MULTLIB_REQUIRED): Likewise.
23886
23887 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23888
23889 * config/arm/t-rtems: Rewrite for new option framework.
23890
23891 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23892
23893 * config/arm/t-aprofile (v7_a_nosimd_variants, v7_a_simd_variants)
23894 (v7ve_nosimd_variatns, v7ve_vfpv3_simd_variants)
23895 (v7ve_vfpv4_simd_variants, v8_a_nosimd_variants, v8_a_simd_variants)
23896 (v8_1_a_simd_variants, v8_2_a_simd_variants): Move to ...
23897 * config/arm/t-multilib: ... here.
23898 (MULTILIB_OPTIONS): Add armv7 and armv7+fp architectures.
23899 (MULTILIB_MATCHES): Use armv7 libraries for armv7-r. Also use for
23900 armv7-a and armv8*-a when A-profile libraries have not been built.
23901 * config/arm/t-rmprofile: Rewrite.
23902
23903 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23904
23905 * genmultilib (multilib_reuse): Allow an explicit period to be escaped
23906 with a backslash. Remove the backslash after substituting unescaped
23907 periods.
23908 * doc/fragments.texi (MULTILIB_REUSE): Document it.
23909
23910 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23911
23912 * config.gcc: (arm*-*-*): When building a-profile libraries, force
23913 the driver to pass through the default setting of -mfloat-abi.
23914 * common/config/arm/arm-common.c (arm_target_thumb_only): Return -marm
23915 rather than NULL.
23916 * config/arm/t-multilib (MULTILIB_REUSE): Initialize to empty.
23917 (all_feat_combs): New rule.
23918 (MULTILIB_OPTIONS): Use explicit ARM and Thumb directories. Rework
23919 default libraries.
23920 * config/arm/t-aprofile: Rewrite.
23921
23922 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23923
23924 * config/arm/arm.h (FPUTYPE_AUTO): Define.
23925 * config/arm/arm.c (arm_option_override): Use FPUTYPE_AUTO if the
23926 fpu is not specified by the user/command-line.
23927 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Delete.
23928 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Delete.
23929 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Delete.
23930 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Delete.
23931 * common/config/arm/arm-common.c (arm_canon_arch_option): Use
23932 FPUTYPE_AUTO insted of FPUTYPE_DEFAULT.
23933
23934 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23935
23936 * config/arm/elf.h (MULTILIB_DEFAULTS): Delete.
23937 * config/arm/t-arm-elf: Rewritten.
23938
23939 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23940
23941 * config/arm/arm.h (TARGET_HARD_FLOAT): Also check that we
23942 have some floating-point instructions.
23943 (TARGET_SOFT_FLOAT): Define as inverse of TARGET_HARD_FLOAT.
23944 (TARGET_MAYBE_HARD_FLOAT): New macro.
23945 * config/arm/arm-builtins.c (arm_init_builtins): Use
23946 TARGET_MAYBE_HARD_FLOAT.
23947 * config/arm/arm.c (arm_option_override): Use TARGET_HARD_FLOAT_ABI.
23948
23949 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23950
23951 * common/config/arm/arm-common.c: Define INCLUDE_LIST.
23952 (configargs.h): Include it.
23953 (arm_print_hint_for_fpu_option): New function.
23954 (arm_parse_fpu_option): New function.
23955 (candidate_extension): New class.
23956 (arm_canon_for_multilib): New function.
23957 * config/arm/arm.h (CANON_ARCH_SPEC_FUNCTION): New macro.
23958 (EXTRA_SPEC_FUNCTIONS): Add CANON_ARCH_SPEC_FUNCTION.
23959 (ARCH_CANONICAL_SPECS): New macro.
23960 (DRIVER_SELF_SPECS): Add ARCH_CANONICAL_SPECS.
23961
23962 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23963
23964 * config.gcc (arm*-*-*): Ensure both target_cpu_cname and with_cpu
23965 are set after handling multilib fragments. Set target_cpu_default2
23966 from with_cpu.
23967
23968 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23969
23970 * config.gcc (arm*-*-fucshia*): Set target_cpu_cname to the real
23971 cpu name.
23972 (arm*-*-*): Set target_cpu_default2 to a quoted string.
23973 * config/arm/parsecpu.awk (check_cpu): Validate any extension
23974 options.
23975 (check_arch): Likewise.
23976 * config/arm/arm.c (arm_configure_build_target): Handle
23977 TARGET_CPU_DEFAULT being a string constant. Scan any feature
23978 options in the default.
23979
23980 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
23981
23982 * config/arm/arm-protos.h (cpu_arch_extension): Add field to record
23983 when an option is an alias of another.
23984 * config/arm/parsecpu.awk (optalias): New parser token.
23985 (gen_comm_data): Mark non-alias options as such. Emit entries
23986 for extension aliases.
23987 * config/arm/arm-cpus.in (armv5e): Make vfpv2 an alias.
23988 (armv5te, armv5tej, armv6, armv6j, armv6k, armv6z): Likewise.
23989 (armv6kz, armv6zk, armv6t2): Likewise.
23990 (armv7): Make vfpv3-d16 an alias.
23991 (armv7-a): Make vfpv3-d16, neon and neon-vfpv3 aliases. Sort in
23992 canonical order.
23993 (armv7ve): Make vfpv4-d16, neon-vfpv3 and neon-vfpv4 aliases.
23994 Sort in canonical order.
23995 (armv8-a): Sort in canonical order.
23996 (armv8.1-a, armv8.2-a): Likewise.
23997 (generic-armv7-a): Make neon and neon-vfpv3 aliases. Sort in
23998 canonical order.
23999 (cortex-a9): Sort in canonical order.
24000 * config/arm/arm.c (selftests.h): Include it.
24001 (arm_test_cpu_arch_data): New function.
24002 (arm_run_self_tests): New function.
24003 (TARGET_RUN_TARGET_SELFTESTS): Redefine.
24004 (targetm): Move declaration to the end of the file.
24005 * arm-cpu-cdata.h: Regenerated.
24006
24007 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24008
24009 * config/arm/arm.h (TARGET_MODE_SPECS): Add additional parameter to
24010 call to target_mode_check describing the type of option passed.
24011 * common/config/arm/arm-common.c (arm_arch_core_flag): Delete.
24012 (arm_target_thumb_only): Use arm_parse_arch_option_name or
24013 arm_parse_cpu_option_name to match parameters against list of
24014 available targets.
24015 * config/arm/parsecpu.awk (gen_comm_data): Don't generate
24016 arm_arch_core_flags data structure.
24017 * config/arm/arm-cpu_cdata.h: Regenerated.
24018
24019 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24020
24021 * common/config/arm/arm-common.c (arm_initialize_isa): Moved here from
24022 config/arm/arm.c.
24023 (arm_print_hint_for_cpu_option): Likewise.
24024 (arm_print_hint_for_arch_option): Likewise.
24025 (arm_parse_cpu_option_name): Likewise.
24026 (arm_parse_arch_option_name): Likewise.
24027 * config/arm/arm.c (arm_identify_fpu_from_isa): Use the computed number
24028 of entries in the all_fpus list.
24029 * config/arm/arm-protos.h (all_architectures, all_cores): Declare.
24030 (arm_parse_cpu_option_name): Declare.
24031 (arm_parse_arch_option_name): Declare.
24032 (arm_parse_option_features): Declare.
24033 (arm_intialize_isa): Declare.
24034 * config/arm/parsecpu.awk (gen_data): Move CPU and architecture
24035 data tables to ...
24036 (gen_comm_data): ... here. Make definitions non-static.
24037 * config/arm/arm-cpu-data.h: Regenerated.
24038 * config/arm/arm-cpu-cdata.h: Regenerated.
24039
24040 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24041
24042 * config/arm/arm-protos.h (arm_build_target): Remove arch_core.
24043 (cpu_arch_extension): New structure.
24044 (cpu_arch_option, arch_option, cpu_option): New structures.
24045 * config/arm/parsecpu.awk (gen_headers): Build an enumeration of
24046 architecture types.
24047 (gen_data): Generate new format data tables.
24048 * config/arm/arm.c (cpu_tune): New structure.
24049 (cpu_option, processors): Delete.
24050 (arm_print_hint_for_core_or_arch): Delete. Replace with ...
24051 (arm_print_hint_for_cpu_option): ... this and ...
24052 (arm_print_hint_for_arch_option): ... this.
24053 (arm_parse_arch_cpu_name): Delete. Replace with ...
24054 (arm_parse_cpu_option_name): ... this and ...
24055 (arm_parse_arch_option_name): ... this.
24056 (arm_unrecognized_feature): Change type of target parameter to
24057 cpu_arch_option.
24058 (arm_parse_arch_cpu_features): Delete. Replace with ...
24059 (arm_parse_option_features): ... this.
24060 (arm_configure_build_target): Rework to use new configuration data
24061 tables.
24062 (arm_print_tune_info): Rework for new configuration data tables.
24063 * config/arm/arm-cpu-data.h: Regenerated.
24064 * config/arm/arm-cpu.h: Regenerated.
24065
24066 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24067
24068 * Makefile.in (OBJS): Move sbitmap.o from here ...
24069 (OBJS-libcommon): ... to here.
24070
24071 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24072
24073 * config/arm/arm-isa.h (ISA_ALL_FPU_INTERNAL): Renamed from ISA_ALL_FPU.
24074 (ISA_ALL_CRYPTO): New macro.
24075 (ISA_ALL_SIMD): New macro
24076 (ISA_ALL_FP): New macro.
24077 * config/arm/arm.c (fpu_bitlist): Update initializer.
24078 * config/arm/arm-cpus.in: Use new ISA_ALL macros to disable crypto,
24079 simd or fp.
24080 (arm9e): Add fpu. Add option for nofp
24081 (arm946e-s, arm966e-s, arm968e-s, arm10e, arm1020e, arm1022e): Likewise.
24082 (arm926ej-s, arm1026ej-s): Likewise.
24083 (generic-armv7-a): Add fpu. Add options for simd, vfpv3, vfpv3-d16,
24084 vfpv3-fp16, vfpv3-d16-fp16, vfpv4, vfpv4-d16, neon, neon-vfp3,
24085 neon-fp16, neon-vfpv4, nofp and nosimd.
24086 (cortex-a5, cortex-a7): Add fpu. Add options for nosimd and nofp.
24087 (cortex-a8): Add fpu. Add option for nofp.
24088 (cortex-a9): Add fpu. Add options for nosimd and nofp.
24089 (cortex-a12, cortex-a15, cortex-a17): Add fpu. Add option for nofp.
24090 (cortex-r4f): Add fpu.
24091 (cortex-r5): Add fpu. Add options for nofp.dp and nofp.
24092 (cortex-r7): Use idiv option from architecture. Add fpu. Add option
24093 for nofp.
24094 (cortex-r8): Likewise.
24095 (cortex-m4): Add fpu. Add option for nofp.
24096 (cortex-a15.cortex-a7): Add fpu. Add option for nofp.
24097 (cortex-a17.cortex-a7): Likewise.
24098 (cortex-a32): Add fpu. Add options for crypto and nofp.
24099 (cortex-a35, cortex-a53): Likewise.
24100 (cortex-a57): Add fpu. Add option for crypto.
24101 (cortex-a72, cortex-a73): Likewise.
24102 (exynos-m1): Likewise.
24103 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
24104 (cortex-a73.cortex-a35, cortex-a73.cortex-a53): Likewise.
24105 (cortex-m33): Add fpu. Add option for nofp.
24106 * config/arm/arm-cpu-cdata.h: Regenerated
24107 * config/arm/arm-cpu-data.h: Regenerated.
24108
24109 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24110
24111 * arm-cpus.in (armv5e): Add options fp, vfpv2 and nofp.
24112 (armv5te, armv5tej): Likewise.
24113 (armv6, armv6j, armv6k, armv6z, armv6kz, armv6zk, armv6t2): Likewise.
24114 (armv7): Add options fp and vfpv3-d16.
24115 (armv7-a): Add options fp, simd, vfpv3, vfpv3-d16, vfpv3-d16-fp16,
24116 vfpv3-fp16, vfpv4, vfpv4-d16, neon, neon-vfpv3, neon-fp16, neon-vfpv4,
24117 nofp and nosimd.
24118 (armv7ve): Likewise.
24119 (armv7-r): Add options fp, fp.sp, idiv, nofp and noidiv.
24120 (armv7e-m): Add options fp, fpv5, fp.dp and nofp.
24121 (armv8-a): Add nocrypto option.
24122 (armv8.1-a, armv8.2-a): Likewise.
24123 (armv8-m.main): add options fp, fp.dp and nofp.
24124
24125 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24126
24127 * config/arm/arm-cpus.in (armv8-a): Add options crc, simd crypto and
24128 nofp.
24129 (armv8-a+crc): Delete.
24130 (armv8.1-a): Add options simd, crypto and nofp.
24131 (armv8.2-a): Add options fp16, simd, crypto and nofp.
24132 (armv8.2-a+fp16): Delete.
24133 (armv8-m.main): Add option dsp.
24134 (armv8-m.main+dsp): Delete.
24135 (cortex-a8): Add fpu. Add nofp option.
24136 (cortex-a9): Add fpu. Add nofp and nosimd options.
24137 * config/arm/parsecpu.awk (gen_data): Generate option tables and
24138 link to main cpu and architecture data structures.
24139 (gen_comm_data): Only put isa attributes from the main architecture
24140 in common tables.
24141 (option): New statement for architecture and CPU entries.
24142 * arm.c (struct cpu_option): New structure.
24143 (struct processors): Add entry for options.
24144 (arm_unrecognized_feature): New function.
24145 (arm_parse_arch_cpu_name): Ignore any characters after the first
24146 '+' character.
24147 (arm_parse_arch_cpu_feature): New function.
24148 (arm_configure_build_target): Separate out any CPU and architecture
24149 features and parse separately. Don't error out if -mfpu=auto is
24150 used with only an architecture string.
24151 (arm_print_asm_arch_directives): New function.
24152 (arm_file_start): Call it.
24153 * config/arm/arm-cpu-cdata.h: Regenerated.
24154 * config/arm/arm-cpu-data.h: Likewise.
24155 * config/arm/arm-tables.opt: Likewise.
24156
24157 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24158
24159 * config/arm/elf.h (ASM_SPEC): Only pass -mfpu through to the
24160 assembler when it is not -mfpu=auto.
24161
24162 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24163
24164 * config/arm/arm.h (BIG_LITTLE_SPEC): Delete macro.
24165 (ASM_REWRITE_SPEC_FUNCTIONS): New macro.
24166 (BIG_LITTLE_CPU_SPEC_FUNCTIONS): Delete macro.
24167 (ASM_CPU_SPEC): Rewrite.
24168 (MCPU_MTUNE_NATIVE_FUNCTIONS): New macro.
24169 (EXTRA_SPEC_FUNCTIONS): Move outside of ifdef. Use
24170 MCPU_MTUNE_NATIVE_FUNCTIONS and ASM_REWRITE_SPEC_FUNCTIONS. Remove
24171 reference to BIG_LITTLE_CPU_SPEC_FUNCTIONS.
24172 * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): Ensure
24173 copied string is NUL-terminated. Also strip any characters prefixed
24174 by '+'.
24175 (arm_rewrite_selected_arch): New function.
24176 (arm_rewrite_march): New function.
24177
24178 2017-06-16 Richard Earnshaw <rearnsha@arm.com>
24179
24180 * config/arm/arm.opt (x_arm_arch_string): New TargetSave option.
24181 (x_arm_cpu_string, x_arm_tune_string): Likewise.
24182 (march, mcpu, mtune): Convert to string-based options.
24183 * config/arm/arm.c (arm_print_hint_for_core_or_arch): New function.
24184 (arm_parse_arch_cpu_name): New function.
24185 (arm_configure_build_target): Use arm_parse_arch_cpu_name to
24186 identify selected architecture or CPU.
24187 (arm_option_save): New function.
24188 (TARGET_OPTION_SAVE): Redefine.
24189 (arm_option_restore): Restore string options.
24190 (arm_option_print): Print string options.
24191
24192 2017-06-16 Martin Sebor <msebor@redhat.com>
24193
24194 PR tree-optimization/80933
24195 PR tree-optimization/80934
24196 * builtins.c (fold_builtin_3): Do not handle bcmp here.
24197 * gimple-fold.c (gimple_fold_builtin_bcmp): New function.
24198 (gimple_fold_builtin_bcopy, gimple_fold_builtin_bzero): Likewise.
24199 (gimple_fold_builtin): Call them.
24200
24201 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
24202
24203 * gimple-ssa-isolate-paths.c (isolate_path): Set edge leading to path
24204 as unlikely; update profile.
24205
24206 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
24207
24208 * predict.c (force_edge_cold): Handle declaring edges impossible
24209 more aggresively.
24210
24211 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
24212
24213 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update
24214 profile.
24215 (try_unroll_loop_completely): Fix reporting.
24216
24217 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
24218
24219 * tree-ssa-tail-merge.c (replace_block_by): Fix profile updating.
24220
24221 2017-06-16 James Greenhalgh <james.greenhalgh@arm.com>
24222
24223 PR target/71778
24224 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
24225 if given a non-constant argument for an intrinsic which requires a
24226 constant.
24227
24228 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
24229
24230 * profile.c (compare_freqs): New function.
24231 (branch_prob): Sort edge list.
24232 (find_spanning_tree): Assume that the list is priority sorted.
24233
24234 2017-06-16 Richard Biener <rguenther@suse.de>
24235
24236 PR tree-optimization/81090
24237 * passes.def (pass_record_bounds): Remove.
24238 * tree-pass.h (make_pass_record_bounds): Likewise.
24239 * tree-ssa-loop.c (pass_data_record_bounds, pass_record_bounds,
24240 make_pass_record_bounds): Likewise.
24241 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Do
24242 not free niter estimates at the beginning but at the end.
24243 * tree-scalar-evolution.c (scev_finalize): Free niter estimates.
24244
24245 2017-06-16 Richard Biener <rguenther@suse.de>
24246
24247 * tree-switch-conversion.c (emit_case_bit_tests): Adjust
24248 initializer to workaround ICE in host GCC 4.8.
24249
24250 2017-06-16 Jan Hubicka <hubicka@ucw.cz>
24251
24252 * ipa-inline-transform.c (update_noncloned_frequencies): Update also
24253 counts.
24254 (clone_inlined_nodes): Update.
24255
24256 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24257
24258 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune): Update
24259 prefetch settings, and enable prefetching by default at -O3.
24260
24261 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24262
24263 * config/aarch64/aarch64.c (aarch64_override_options_internal):
24264 Set flag_prefetch_loop_arrays according to tuning data.
24265
24266 2017-06-16 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
24267
24268 * config/aarch64/aarch64-protos.h (struct cpu_prefetch_tune):
24269 New tune structure.
24270 (struct tune_params): Use cpu_prefetch_tune instead of cache_line_size.
24271 [Unrelated to main purpose of the patch] Place the pointer field last
24272 to enable type checking errors when tune structure are wrongly merged.
24273 * config/aarch64/aarch64.c (generic_prefetch_tune,)
24274 (exynosm1_prefetch_tune, qdf24xx_prefetch_tune,)
24275 (thunderx2t99_prefetch_tune): New tune constants.
24276 (tune_params *_tunings): Update all tunings (no functional change).
24277 (aarch64_override_options_internal): Set PARAM_SIMULTANEOUS_PREFETCHES,
24278 PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE, and PARAM_L2_CACHE_SIZE
24279 from tunings structures.
24280
24281 2017-06-16 Jakub Jelinek <jakub@redhat.com>
24282
24283 PR sanitizer/81094
24284 * ubsan.c (instrument_null): Add T argument, use it instead
24285 of computing it based on IS_LHS.
24286 (instrument_object_size): Likewise.
24287 (pass_ubsan::execute): Adjust instrument_null and
24288 instrument_object_size callers to pass gimple_get_lhs or
24289 gimple_assign_rhs1 result to it. Use instrument_null instead of
24290 calling get_base_address and instrument_mem_ref. Handle
24291 aggregate call arguments for object-size sanitization.
24292
24293 2017-06-16 Yury Gribov <tetra2005@gmail.com>
24294
24295 PR tree-optimization/81089
24296 * tree-vrp.c (is_masked_range_test): Validate operands of
24297 subexpression.
24298
24299 2017-06-15 Martin Sebor <msebor@redhat.com>
24300
24301 PR c++/80560
24302 * dumpfile.c (dump_register): Avoid calling memset to initialize
24303 a class with a default ctor.
24304 * gcc.c (struct compiler): Remove const qualification.
24305 * genattrtab.c (gen_insn_reserv): Replace memset with initialization.
24306 * hash-table.h: Ditto.
24307 * ipa-cp.c (allocate_and_init_ipcp_value): Replace memset with
24308 assignment.
24309 * ipa-prop.c (ipa_free_edge_args_substructures): Ditto.
24310 * omp-low.c (lower_omp_ordered_clauses): Replace memset with
24311 default ctor.
24312 * params.h (struct param_info): Make struct members non-const.
24313 * tree-switch-conversion.c (emit_case_bit_tests): Replace memset
24314 with default initialization.
24315 * vec.h (vec_copy_construct, vec_default_construct): New helper
24316 functions.
24317 (vec<T>::copy, vec<T>::splice, vec<T>::reserve): Replace memcpy
24318 with vec_copy_construct.
24319 (vect<T>::quick_grow_cleared): Replace memset with default ctor.
24320 (vect<T>::vec_safe_grow_cleared, vec_safe_grow_cleared): Same.
24321 * doc/invoke.texi (-Wclass-memaccess): Document.
24322
24323 2017-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24324
24325 * emit-rtl.h (is_leaf): Update comment about local
24326 register allocator.
24327
24328 2017-06-15 Jozef Lawrynowicz <jozef.l@somniumtech.com>
24329
24330 PR target/78818
24331 * config/msp430/msp430.c (msp430_data_attr): Check that it's possible
24332 for a variable to have a section before checking if the section has a
24333 name.
24334 Set section to.persistent if persistent attribute is set.
24335 Warn if .persistent attribute is used on an automatic variable.
24336
24337 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
24338
24339 PR rtl-optimization/80474
24340 * reorg.c (update_block): Do not ignore instructions in a delay slot.
24341
24342 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
24343
24344 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
24345 of REGNO.
24346
24347 2017-06-14 Maciej W. Rozycki <macro@imgtec.com>
24348
24349 * config/mips/mips.md (MIPS16_T_REGNUM): Remove constant.
24350 (casesi): Emit bounds checking as RTL.
24351 (casesi_internal_mips16_<mode>): Remove bounds checking.
24352
24353 2017-06-14 Max Filippov <jcmvbkbc@gmail.com>
24354
24355 * config/xtensa/xtensa.c (xtensa_option_override): Append
24356 MASK_CONST16 to target_flags in the absence of TARGET_L32R.
24357 (hwloop_optimize, hwloop_fail, hwloop_pattern_reg,
24358 xtensa_doloop_hooks): Define unconditionally.
24359 (xtensa_reorg_loops): Only call reorg_loops in the presence of
24360 TARGET_LOOPS.
24361 * config/xtensa/xtensa.h (TARGET_L32R): New definition.
24362 (TARGET_DEFAULT): Remove XCHAL_HAVE_L32R condition and account
24363 for it in xtensa_option_override.
24364 (HARD_FRAME_POINTER_IS_FRAME_POINTER,
24365 HARD_FRAME_POINTER_IS_ARG_POINTER): New definitions.
24366
24367 2017-06-14 Boris Kolpackov <boris@codesynthesis.com>
24368
24369 * doc/cppopts.texi: Document '-' special value to -MF.
24370
24371 2017-06-14 Wilco Dijkstra <wdijkstr@arm.com>
24372
24373 * config/arm/cortex-a53.md (cortex_a53_fpalu) Adjust latency.
24374 (cortex_a53_fconst): Likewise.
24375 (cortex_a53_fpmul): Likewise.
24376 (cortex_a53_f_load_64): Likewise.
24377 (cortex_a53_f_load_many): Likewise.
24378 (cortex_a53_advsimd_alu): Likewise.
24379 (cortex_a53_advsimd_alu_q): Likewise.
24380 (cortex_a53_advsimd_mul): Likewise.
24381 (cortex_a53_advsimd_mul_q): Likewise.
24382 (fpmac bypass): Add new bypass for fpmac-fpmac case.
24383 Add missing fmul, r2f_cvt and fconst cases.
24384
24385 2017-06-14 Richard Biener <rguenther@suse.de>
24386
24387 PR middle-end/81088
24388 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
24389 literal constants.
24390 (fold_binary_loc): When associating do not treat pre-existing
24391 TREE_OVERFLOW on literal constants as a reason to allow
24392 TREE_OVERFLOW on associated literal constants.
24393
24394 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
24395
24396 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
24397 (MASK_FEATURES): New macro.
24398 * config/sparc/sparc.c (sparc_option_override): Remove the special
24399 handling of -mfpu and generalize it to all MASK_FEATURES switches.
24400
24401 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
24402
24403 * simplify-rtx.c (simplify_binary_operation_1) <UDIV>: Do not simplify
24404 a division of 0 if non-call exceptions are enabled.
24405
24406 2017-06-14 Andrew Pinski <apinski@cavium.com>
24407 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
24408
24409 PR target/71663
24410 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
24411 Improve vector initialization code gen for only variable case.
24412
24413 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
24414
24415 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
24416
24417 2017-06-14 Richard Biener <rguenther@suse.de>
24418
24419 PR tree-optimization/81083
24420 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
24421 as values.
24422
24423 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24424
24425 * config/rs6000/rs6000.c: Update all comments that mentioned SPE.
24426 (rs6000_expand_builtin): Remove RS6000_BTC_EVSEL.
24427 * config/rs6000/rs6000.h (RS6000_BTC_EVSEL): Delete.
24428 * config/rs6000/vxworks.h (VXCPU_FOR_8548): Delete. Adjust former use.
24429 * config/rs6000/vxworksae.h (VXCPU_FOR_8548): Delete.
24430 * config/rs6000/vxworksmils.h (VXCPU_FOR_8548): Delete.
24431
24432 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24433
24434 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete VECTOR_SPE.
24435 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete VECTOR_SPE.
24436
24437 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24438
24439 * config/rs6000/rs6000.h (FIXED_SCRATCH): Delete.
24440
24441 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24442
24443 * config/rs6000/t-rtems: Don't handle SPE.
24444
24445 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24446
24447 * config/rs6000/t-linux: Don't handle SPE.
24448
24449 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24450
24451 * config/rs6000/eabispe.h: Delete file.
24452
24453 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24454
24455 * config/rs6000/t-spe: Delete file.
24456
24457 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24458
24459 * config/rs6000/rs6000.c (SPE_CONST_OFFSET_OK): Delete.
24460 (rs6000_legitimate_offset_address_p): Return false for anything in
24461 V2SImode or V2SFmode.
24462
24463 2017-06-13 Segher Boessenkool <segher@kernel.crashing.org>
24464
24465 * config/rs6000/rs6000-modes.def: Remove all 8-byte vector modes
24466 except V2SF and V2SI. Rearrange the vector modes, and add comments.
24467 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove V8QImode
24468 and V4HImode.
24469 (reg_offset_addressing_ok_p): Remove V4HImode and V1DImode.
24470 (rs6000_legitimate_offset_address_p): Ditto.
24471 (rs6000_emit_move): Ditto.
24472 (rs6000_init_builtins): Remove V4HI_type_node.
24473
24474 2017-06-13 Martin Liska <mliska@suse.cz>
24475
24476 PR sanitize/78204
24477 * asan.c (asan_sanitize_stack_p): Use sanitize_flags_p.
24478 (gate_asan): Likewise.
24479 * asan.h (asan_no_sanitize_address_p): Remove the function.
24480 (sanitize_flags_p): New function.
24481 * builtins.def: Fix coding style.
24482 * common.opt: Use renamed enum value.
24483 * convert.c (convert_to_integer_1): Use sanitize_flags_p.
24484 * doc/extend.texi: Document no_sanitize attribute.
24485 * flag-types.h (enum sanitize_code): Rename SANITIZE_NONDEFAULT
24486 to SANITIZE_UNDEFINED_NONDEFAULT.
24487 * gcc.c (sanitize_spec_function): Use the renamed enum value.
24488 * gimple-fold.c (optimize_atomic_compare_exchange_p):
24489 Use sanitize_flags_p.
24490 * gimplify.c (gimplify_function_tree): Likewise.
24491 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Likewise.
24492 * opts.c (parse_no_sanitize_attribute): New function.
24493 (common_handle_option): Use renamed enum value.
24494 * opts.h (parse_no_sanitize_attribute): Declare.
24495 * tree.c (sanitize_flags_p): New function.
24496 * tree.h: Declared here.
24497 * tsan.c: Use sanitize_flags_p.
24498 * ubsan.c (ubsan_expand_null_ifn): Likewise.
24499 (instrument_mem_ref): Likewise.
24500 (instrument_bool_enum_load): Likewise.
24501 (do_ubsan_in_current_function): Remove the function.
24502 (pass_ubsan::execute): Use sanitize_flags_p.
24503 * ubsan.h: Remove do_ubsan_in_current_function
24504 * tree-cfg.c (print_no_sanitize_attr_value): New function.
24505 (dump_function_to_file): Use it here.
24506
24507 2017-06-13 Martin Jambor <mjambor@suse.cz>
24508
24509 PR tree-optimization/80803
24510 PR tree-optimization/81063
24511 * tree-sra.c (subtree_mark_written_and_enqueue): Move up in the file.
24512 (propagate_subaccesses_across_link): Enqueue subtree whenever
24513 necessary instead of relying on the caller.
24514
24515 2017-06-13 Martin Jambor <mjambor@suse.cz>
24516
24517 * tree-sra.c (add_access_to_work_queue): Only enqueue accesses
24518 that have a first_link.
24519 (sort_and_splice_var_accesses): Do not check first_link before
24520 enquing.
24521 (subtree_mark_written_and_enqueue): Likewise.
24522 (propagate_all_subaccesses): Likewise and do not stop at first
24523 parent with a first_link.
24524
24525 2017-06-13 Martin Jambor <mjambor@suse.cz>
24526
24527 * tree-sra.c (dump_access_tree_1): Fix accidental dumping to stderr
24528 instead of f.
24529
24530 2017-06-13 Yury Gribov <tetra2005@gmail.com>
24531
24532 * match.pd: New pattern.
24533
24534 2017-06-13 Yury Gribov <tetra2005@gmail.com>
24535
24536 * tree-vrp.c (is_masked_range_test): New function.
24537 (register_edge_assert_for): Determine ranges for
24538 some bit tests.
24539
24540 2017-06-13 Yury Gribov <tetra2005@gmail.com>
24541
24542 PR tree-optimization/67328
24543 * fold-const.c (maskable_range_p): New function.
24544 (build_range_check): Generate bittests if possible.
24545
24546 2017-06-13 Martin Liska <mliska@suse.cz>
24547
24548 * gimple-pretty-print.c (dump_probability): Add new argument.
24549 (dump_edge_probability): Dump both probability and count.
24550 (dump_gimple_label): Likewise.
24551 (dump_gimple_bb_header): Likewise.
24552
24553 2017-06-13 Georg-Johann Lay <avr@gjlay.de>
24554
24555 PR target/81072
24556 * config/avr/avr-devices.c: Fix indentation.
24557 * config/avr/gen-avr-mmcu-specs.c: Dito.
24558
24559 2017-06-13 Richard Biener <rguenther@suse.de>
24560
24561 * tree-vect-loop.c (vect_model_reduction_cost): Do not fail,
24562 instead get vector type from stmt_info.
24563 (vectorizable_reduction): Adjust. Remove dead code.
24564
24565 2017-06-13 Richard Biener <rguenther@suse.de>
24566
24567 PR middle-end/81065
24568 * fold-const.c (extract_muldiv_1): Remove bogus distribution
24569 case of C * (x * C2 + C3).
24570 (fold_addr_of_array_ref_difference): Properly fold index difference.
24571
24572 2017-06-12 David S. Miller <davem@davemloft.net>
24573
24574 PR target/80968
24575 * config/sparc/sparc.md (return expander): Emit frame blockage if
24576 function uses alloca.
24577
24578 2017-06-12 Richard Sandiford <richard.sandiford@linaro.org>
24579
24580 * combine.c (make_field_assignment): Check len rather than the mode
24581 precision when calling force_to_mode.
24582
24583 2017-06-12 Georg-Johann Lay <avr@gjlay.de>
24584
24585 Support multilibs and devices that see flash in RAM address range.
24586
24587 PR target/81072
24588 * config/avr/avr-arch.h (avr_arch_id) <ARCH_AVRXMEGA3>: New enum.
24589 (avr_mcu_t) <flash_pm_offset>: New field.
24590 (avr_device_specific_features) <AVR_ISA_RCALL>: New enum.
24591 * config/avr/avr.h (AVR_SHORT_CALLS): New define.
24592 (AVR_HAVE_JMP_CALL): Don't set if AVR_SHORT_CALLS.
24593 (AVR_TINY_PM_OFFSET): Remove macro.
24594 * config/avr/avr.opt (-mshort-calls): New option.
24595 * config/avr/gen-avr-mmcu-specs.c (print_mcu)
24596 [*self_spec]: Add / remove -mshort-calls depending on AVR_ISA_RCALL.
24597 * config/avr/avr-c.c (avr_cpu_cpp_builtins)
24598 <__AVR_SHORT_CALLS__>: Built-in define if AVR_SHORT_CALLS.
24599 <__AVR_HAVE_JMP_CALL__>: Use AVR_HAVE_JMP_CALL as condition
24600 instead of avr_arch->have_jmp_call.
24601 <__AVR_PM_BASE_ADDRESS__>: Built-in define if avr_arch->flash_pm_offset.
24602 [AVR_TINY] <__AVR_TINY_PM_BASE_ADDRESS__>: Use
24603 avr_arch->flash_pm_offset to define.
24604 * config/avr/avr-devices.c (avr_arch_types): Add initializers for
24605 new field flash_pm_offset. Add entry for avrxmega3.
24606 (avr_texinfo): Add entry for avrxmega3.
24607 * config/avr/avr-mcus.def: Add entries for: avrxmega3,
24608 attiny212, attiny214,
24609 attiny412, attiny414, attiny416, attiny417,
24610 attiny814, attiny816, attiny817,
24611 attiny1614, attiny1616, attiny1617,
24612 attiny3214, attiny3216, attiny3217.
24613 * config/avr/avr.c (avr_assemble_integer)[AVR_TINY]: Use
24614 avr_arch->flash_pm_offset instead of AVR_TINY_PM_OFFSET.
24615 (avr_print_operand_address) [AVR_TINY]: Same.
24616 (avr_asm_init_sections) <readonly_data_section>: Only patch
24617 callback if avr_arch->flash_pm_offset = 0.
24618 (avr_asm_named_section) <avr_need_copy_data_p>: Skip setting it
24619 for rodata if avr_arch->flash_pm_offset != 0.
24620 (avr_encode_section_info) [AVR_TINY]: Adjust comment.
24621 * config/avr/genmultilib.awk (dir_rcall, opt_rcall): New vars.
24622 (opts) [AVR_ISA_RCALL]: Append opt_rcall.
24623 (m_options): Append opt_rcall.
24624 (m_dirnames): Append dir_rcall.
24625 * config/avr/t-multilib: Regenerate.
24626
24627 * configure.ac [target=avr]: Check whether avrxmega3 default
24628 linker description file works as needed.
24629 * configure: Regenerate.
24630 * doc/avr-mmcu.texi: Regenerate.
24631 * doc/invoke.texi (AVR Options) <-mshort-calls>: Document it.
24632 <__AVR_ARCH__>: Document avrxmega3 and 103.
24633 <__AVR_HAVE_JMP_CALL__>: Adjust documentation.
24634 <__AVR_SHORT_CALLS__>: Document it.
24635 <__AVR_PM_BASE_ADDRESS__>: Document it.
24636 * doc/extend.texi (AVR Options) <-mshort-calls>: Document it.
24637 (AVR Variable Attributes) <progmem>: Document this is
24638 not needed for avrxmega3.
24639 (AVR Named Address Spaces) <__flash>: Dito.
24640
24641 2017-06-12 Jan Hubicka <hubicka@ucw.cz>
24642
24643 * cgraph.c (cgraph_node::dump): Complain about profile insanities.
24644
24645 2017-06-12 Doug Rupp <rupp@adacore.com>
24646
24647 * config.gcc (*-*-vxworks*): Set use_gcc_stdint to "provide".
24648 Append vxworks-stdint.h to the tm_file list.
24649 * config/vxworks-stdint.h: New file.
24650
24651 2017-06-12 Martin Liska <mliska@suse.cz>
24652
24653 PR tree-optimization/81041
24654 * tree-profile.c (gimple_gen_ic_func_profiler):
24655 Create an extra BB in profile-generate
24656 (gimple_gen_time_profiler): Likewise.
24657
24658 2017-06-12 Jakub Jelinek <jakub@redhat.com>
24659
24660 PR tree-optimization/81003
24661 * tree-ssa-reassoc.c (force_into_ssa_name): New function.
24662 (update_range_test): Use it instead of force_gimple_operand_gsi.
24663
24664 2017-06-12 Richard Biener <rguenther@suse.de>
24665
24666 PR tree-optimization/81053
24667 * tree-vect-loop.c (vect_is_simple_reduction): Handle PHI
24668 with backedge value not defined in loop. Simplify def stmt
24669 compute.
24670
24671 2017-06-11 Tom de Vries <tom@codesourcery.com>
24672
24673 PR target/79939
24674 * config/nvptx/nvptx.c (nvptx_cannot_force_const_mem): New function.
24675 Return true.
24676 (TARGET_CANNOT_FORCE_CONST_MEM): Redefine to
24677 nvptx_cannot_force_const_mem.
24678
24679 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
24680
24681 * opts.c (finish_options): Move test for flag_split_stack after
24682 it has been initialized.
24683
24684 2017-06-11 Jason Merrill <jason@redhat.com>
24685
24686 * tree.h (id_equal): New.
24687 * dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
24688 omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
24689 instead of strcmp of IDENTIFIER_POINTER.
24690
24691 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
24692
24693 * ipa-inline-transform.c: Include function.h, cfg.h and basic-block.h
24694 (mark_all_inlined_calls_cdtor): Fix formating.
24695 (inline_transform): Rescale profile before inlining.
24696
24697 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
24698
24699 * cgraph.h (cgraph_edge::clone): Update prototype.
24700 * cgraphclones.c (cgraph_edge::clone): Update profile scaling.
24701 (cgraph_node::create_clone): Update.
24702 (cgraph_node::create_version_clone): Update.
24703 * tree-inline.c (copy_bb): Update.
24704 (expand_call_inline): Update.
24705
24706 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
24707
24708 * config/rs6000/rs6000.c (emit_vrsave_prologue): New function,
24709 factored out from ...
24710 (rs6000_emit_prologue): ... here.
24711
24712 2017-06-10 Segher Boessenkool <segher@kernel.crashing.org>
24713
24714 * config/rs6000/rs6000.c (emit_split_stack_prologue): New function,
24715 factored out from ...
24716 (rs6000_emit_prologue): ... here.
24717
24718 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
24719
24720 * predict.c (drop_profile): Also drop individual bb/edge and cgraph
24721 edge counts.
24722 (handle_missing_profiles): Fix computation of tp_first_run.
24723 (counts_to_freqs): Do not touch freqs when count is 0.
24724
24725 2017-06-10 Jan Hubicka <hubicka@ucw.cz>
24726
24727 * cgraphbuild.c (cgraph_edge::rebuild_references): Do not touch
24728 profile.
24729
24730 2017-06-10 Tom de Vries <tom@codesourcery.com>
24731
24732 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
24733 attributes): Document signal effective target.
24734
24735 2017-06-10 Tom de Vries <tom@codesourcery.com>
24736
24737 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
24738 Document effective target stack_size.
24739
24740 2017-06-09 David Malcolm <dmalcolm@redhat.com>
24741
24742 * diagnostic.c (diagnostic_report_diagnostic): Only add fixits
24743 to the edit_context if they can be auto-applied.
24744
24745 2017-06-9 Ian Lance Taylor <iant@golang.org>
24746
24747 * opts.c (finish_options): If -fsplit-stack, disable implicit
24748 -forder-blocks-and-partition.
24749 * doc/invoke.texi (Optimize Options): Document that when using
24750 -fsplit-stack -forder-blocks-and-partition is not implicitly
24751 enabled.
24752
24753 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
24754
24755 * builtin-attrs.def (ATTR_NORETURN_NOTHROW_LEAF_COLD_LIST,
24756 ATTR_CONST_NORETURN_NOTHROW_LEAF_COLD_LIST,
24757 ATTR_TMPURE_NORETURN_NOTHROW_LEAF_COLD_LIST): New.
24758 * builtins.def (abort, trap, unreachable): Declare cold.
24759 * calls.c (flags_from_decl_or_type): Lookup ECF_COLD.
24760 * tree-core.h (ECF_COLD): New.
24761 * tree.c (set_call_expr_flags): Handle ECF_COLD.
24762 (build_common_builtin_nodes): Mark unreachable and abort as cold.
24763
24764 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
24765
24766 * predict.c (unlikely_executed_stmt_p): Cleanup.
24767
24768 2017-06-09 Richard Biener <rguenther@suse.de>
24769
24770 * tree-ssa-loop-im.c (execute_sm): Do not force multi-threaded
24771 model if the ref is always written to.
24772
24773 2017-06-09 Tamar Christina <tamar.christina@arm.com>
24774
24775 * config/aarch64/aarch64.md (lrint<GPF:mode><GPI:mode>2): New.
24776
24777 2017-06-09 Tamar Christina <tamar.christina@arm.com>
24778
24779 * config/arm/arm.c (arm_rtx_costs_internal): Make sdiv more expensive
24780 than udiv.
24781
24782 2017-06-09 Tom de Vries <tom@codesourcery.com>
24783
24784 PR target/80855
24785 * config/nvptx/nvptx.md (define_expand "mov<QHSDISDFM>"): Error out with
24786 "target cannot support label values" when encountering LABEL_REF.
24787
24788 2017-06-09 Martin Liska <mliska@suse.cz>
24789
24790 * tree-profile.c (gimple_gen_ic_profiler): Update comment.
24791 (gimple_gen_ic_func_profiler): Emit direct comparison
24792 of __gcov_indirect_call_callee with NULL.
24793 (gimple_gen_time_profiler): Change probability from
24794 PROB_VERY_UNLIKELY to PROB_UNLIKELY.
24795
24796 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
24797
24798 * profile.c (edge_gcov_counts): Turn to pointer.
24799 (compute_branch_probabilities, compute_branch_probabilities): Update.
24800 (branch_prob): Do not clear edge_gcov_count.
24801 * profile.h (edge_gcov_counts): Turn to pointer.
24802 (edge_gcov_count): Update.
24803
24804 2017-06-09 Jan Hubicka <hubicka@ucw.cz>
24805
24806 * gimple.h (gimple_check_failed): Mark cold.
24807
24808 2017-06-09 Richard Biener <rguenther@suse.de>
24809
24810 PR tree-optimization/66623
24811 * tree-vect-loop.c (vect_is_simple_reduction): Cleanup,
24812 refactor check_reduction into two parts, properly computing
24813 whether we have to check reduction validity for outer loop
24814 vectorization.
24815
24816 2017-06-09 Richard Biener <rguenther@suse.de>
24817
24818 PR tree-optimization/79483
24819 * graphite-scop-detection.c (order): New global.
24820 (get_order): Compute bb to order mapping that satisfies code
24821 generation constraints.
24822 (cmp_pbbs): New helper.
24823 (build_scops): Start domwalk at entry block, sort generated
24824 pbbs.
24825
24826 2017-06-09 Richard Biener <rguenther@suse.de>
24827
24828 PR middle-end/81007
24829 * ipa-polymorphic-call.c
24830 (ipa_polymorphic_call_context::restrict_to_inner_class):
24831 Skip FIELD_DECLs with error_mark_node type.
24832 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
24833 last again.
24834
24835 2017-06-09 Martin Liska <mliska@suse.cz>
24836
24837 * predict.c (struct branch_predictor): New struct.
24838 (test_prediction_value_range): New test.
24839 (predict_c_tests): New function.
24840 * selftest-run-tests.c (selftest::run_tests): Run the function.
24841 * selftest.h: Declare new tests.
24842
24843 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
24844
24845 PR target/80966
24846 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
24847 gen_add3_insn did not fail.
24848 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
24849 r0, construct that number in a temporary reg and add that reg to r0.
24850 If asked to put the result in r0 as well, fail.
24851
24852 2017-06-08 Will Schmidt <will_schmidt@vnet.ibm.com>
24853
24854 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
24855 for early expansion of vec_eqv.
24856
24857 2017-06-08 Jakub Jelinek <jakub@redhat.com>
24858
24859 PR middle-end/81005
24860 * ubsan.c (instrument_null): Avoid pointless code temporary.
24861 (pass_ubsan::execute): Instrument aggregate arguments of calls.
24862
24863 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
24864
24865 PR target/81015
24866 Revert:
24867 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
24868
24869 PR target/59874
24870 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
24871 (*clzhi2): Ditto.
24872
24873 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
24874
24875 * predict.c (unlikely_executed_edge_p): Move ahead.
24876 (probably_never_executed_edge_p): Use it.
24877
24878 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
24879
24880 PR middle-end/79988
24881 * tree-chkp.c (chkp_gimple_call_builtin_p): Remove
24882 gimple_call_builtin_p call.
24883
24884 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
24885
24886 * system.h (fancy_abort): Annotate by ATTRIBUTE_COLD.
24887 * rtl.h (rtl_check_failed_bounds, rtl_check_failed_type1,
24888 rtl_check_failed_type2, rtl_check_failed_code1,
24889 rtl_check_failed_code2, rtl_check_failed_code_mode,
24890 rtl_check_failed_block_symbol, cwi_check_failed_bounds,
24891 rtvec_check_failed_bounds, rtl_check_failed_flag,
24892 _fatal_insn_not_found, _fatal_insn): Likewise.
24893 * tree.h (tree_contains_struct_check_failed,
24894 tree_check_failed, tree_not_check_failed,
24895 tree_class_check_failed, tree_range_check_failed,
24896 tree_not_class_check_failed, tree_int_cst_elt_check_failed,
24897 tree_vec_elt_check_failed, phi_node_elt_check_failed,
24898 tree_operand_check_failed, omp_clause_check_failed,
24899 omp_clause_operand_check_failed, omp_clause_range_check_failed):
24900 Likewise.
24901
24902 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
24903
24904 * cgraph.c (cgraph_edge::maybe_hot_p): Do not check
24905 flag_branch_probabilities.
24906 * ipa-inline.c (edge_badness): Likewise.
24907 * ipa-profile.c (ipa_propagate_frequency_1): Likewise.
24908 * postreload-gcse.c (eliminate_partially_redundant_load): Likewise.
24909 * predict.c (maybe_hot_frequency_p): Likewise.
24910 (probably_never_executed): Likewise.
24911 * sched-ebb.c (schedule_ebbs): Likewise.
24912 * sched-rgn.c (find_single_block_region): Likewise.
24913 * tracer.c (tail_duplicate): Likewise.
24914
24915 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
24916
24917 * opts.c (finish_options): x_flag_reorder_blocks_and_partition no
24918 longer requires x_flag_profile_use.
24919
24920 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
24921
24922 * cfgrtl.c (cfg_layout_initialize): Check crtl->has_bb_partition
24923 instead of flag_reorder_blocks_and_partition.
24924 * dbxout.c (dbxout_function_end): Likewise.
24925 * dwarf2out.c (gen_subprogram_die): Likewise.
24926 * haifa-sched.c (sched_create_recovery_edges): Likewise.
24927 * hw-doloop.c (reorg_loops): Likewise.
24928 * varasm.c (assemble_start_function,
24929 assemble_end_function): Likewise.
24930 (decide_function_section): Do not check for
24931 flag_reorder_blocks_and_partition.
24932
24933 2017-06-08 Alexander Ivchenko <alexander.ivchenko@intel.com>
24934
24935 * tree-chkp.c (chkp_get_hard_register_var_fake_base_address):
24936 New function.
24937 (chkp_get_hard_register_fake_addr_expr): Ditto.
24938 (chkp_build_addr_expr): Add check for hard reg case.
24939 (chkp_parse_array_and_component_ref): Ditto.
24940 (chkp_find_bounds_1): Ditto.
24941 (chkp_process_stmt): Don't generate bounds store for
24942 hard reg case.
24943
24944 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
24945
24946 * predict.c (maybe_hot_bb_p): Do not check profile status.
24947 (maybe_hot_edge_p): Likewise.
24948 (probably_never_executed): Check for zero counts even if profile
24949 is not read.
24950 (unlikely_executed_edge_p): New function.
24951 (unlikely_executed_stmt_p): New function.
24952 (unlikely_executed_bb_p): New function.
24953 (set_even_probabilities): Use unlikely predicates.
24954 (combine_predictions_for_bb): Likewise.
24955 (predict_paths_for_bb): Likewise.
24956 (predict_paths_leading_to_edge): Likewise.
24957 (determine_unlikely_bbs): New function.
24958 (estimate_bb_frequencies): Use it.
24959 (compute_function_frequency): Use zero counts even if profile is
24960 not read.
24961 * profile-count.h: Fix typo.
24962
24963 2017-08-08 Julia Koval <julia.koval@intel.com>
24964
24965 * config/i386/avx512bwintrin.h (_mm512_mask_cvtepi16_storeu_epi8,
24966 _mm512_mask_cvtsepi16_storeu_epi8,
24967 _mm512_mask_cvtusepi16_storeu_epi8): New intrinsics.
24968 * config/i386/avx512vlbwintrin.h (_mm256_mask_cvtepi16_storeu_epi8,
24969 _mm_mask_cvtsepi16_storeu_epi8, _mm256_mask_cvtsepi16_storeu_epi8,
24970 _mm_mask_cvtusepi16_storeu_epi8, _mm256_mask_cvtusepi16_storeu_epi8,
24971 _mm_mask_cvtepi16_storeu_epi8): New intrinsics.
24972 * config/i386/i386-builtin-types.def (PV8Q, V8QI): New pointer type.
24973 (VOID_FTYPE_PV32QI_V32HI_USI, VOID_FTYPE_PV8QI_V8HI_UQI,
24974 VOID_FTYPE_PV16QI_V16HI_UHI): New function types.
24975 * config/i386/i386-builtin.def (__builtin_ia32_pmovwb128mem_mask,
24976 __builtin_ia32_pmovwb256mem_mask, __builtin_ia32_pmovswb128mem_mask,
24977 __builtin_ia32_pmovswb256mem_mask, __builtin_ia32_pmovuswb128mem_mask,
24978 __builtin_ia32_pmovuswb256mem_mask,
24979 __builtin_ia32_pmovuswb512mem_mask, __builtin_ia32_pmovswb512mem_mask)
24980 __builtin_ia32_pmovwb512mem_mask): New builtins.
24981
24982 2017-08-08 Julia Koval <julia.koval@intel.com>
24983
24984 PR target/73350,80862
24985 * config/i386/subst.md (round): Fix round pattern.
24986 * config/i386/i386.c (ix86_erase_embedded_rounding):
24987 Fix erasing rounding for the fixed pattern.
24988
24989 2017-06-08 Jan Hubicka <hubicka@ucw.cz>
24990
24991 * cfgbuild.c (find_many_sub_basic_blocks): Fix thinko.
24992
24993 2017-06-08 Martin Liska <mliska@suse.cz>
24994
24995 PR gcov-profile/80911
24996 * gcov.c (block_info::block_info): New constructor.
24997
24998 2017-06-07 Carl Love <cel@us.ibm.com>
24999
25000 * config/rs6000/rs6000-c: The return type of the following
25001 built-in functions was implemented as int not long long. Fix sign
25002 of return value for the unsigned version of vec_mulo and vec_mule.
25003 vector unsigned long long vec_bperm (vector unsigned long long,
25004 vector unsigned char)
25005 vector signed long long vec_mule (vector signed int,
25006 vector signed int)
25007 vector unsigned long long vec_mule (vector unsigned int,
25008 vector unsigned int)
25009 vector signed long long vec_mulo (vector signed int,
25010 vector signed int)
25011 vector unsigned long long vec_mulo (vector unsigned int,
25012 vector unsigned int)
25013 * doc/extend.texi: Fix the documentation for the built-in
25014 functions.
25015
25016 2017-06-07 Carl Love <cel@us.ibm.com>
25017
25018 PR target/80982
25019 * config/rs6000/altivec.md (double<mode>2): Fix the implementation of
25020 for BE.
25021
25022 2017-06-07 Carl Love <cel@us.ibm.com>
25023
25024 * config/rs6000/altivec.md: Fix argument swizzle in vec_doublel
25025 support, Generate doublehv for signed int/float for BE case only.
25026
25027 2017-06-07 Alexander Monakov <amonakov@ispras.ru>
25028
25029 * doc/invoke.texi (mcx16): Rewrite.
25030
25031 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25032
25033 * config/rs6000/predicates.md (rs6000_nonimmediate_operand): Delete.
25034 * config/rs6000/rs6000.md (*movsi_internal1, movsi_from_sf,
25035 *mov<mode>_softfloat, and an anonymous splitter): Use
25036 nonimmediate_operand instead of rs6000_nonimmediate_operand.
25037
25038 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25039
25040 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE_ACC and
25041 SPEFSCR registers.
25042 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
25043 (enum rs6000_reg_type): Delete SPE_ACC_TYPE and SPEFSCR_REG_TYPE.
25044 (rs6000_debug_reg_global): Adjust.
25045 (rs6000_init_hard_regno_mode_ok): Adjust.
25046 (rs6000_dbx_register_number): Adjust.
25047 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change to 115.
25048 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
25049 Remove SPE_ACC and SPEFSCR.
25050 (REG_ALLOC_ORDER): Ditto.
25051 (FRAME_POINTER_REGNUM): Change to 111.
25052 (enum reg_class): Remove the SPE_ACC and SPEFSCR registers.
25053 (REG_CLASS_NAMES): Ditto.
25054 (REG_CLASS_CONTENTS): Delete the SPE_ACC and SPEFSCR registers.
25055 (REGISTER_NAMES): Ditto.
25056 (ADDITIONAL_REG_NAMES): Ditto.
25057 (rs6000_reg_names): Ditto.
25058 * config/rs6000/rs6000.md: Renumber some register number
25059 define_constants.
25060
25061 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25062
25063 * config/rs6000/darwin.h (REGISTER_NAMES): Delete the SPE high
25064 registers.
25065 * config/rs6000/rs6000.c (rs6000_reg_names, alt_reg_names): Ditto.
25066 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Change from 149
25067 to 117.
25068 (DWARF_REG_TO_UNWIND_COLUMN): Do not define.
25069 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
25070 Delete the SPE high registers.
25071 (REG_ALLOC_ORDER): Ditto.
25072 (enum reg_class): Remove SPE_HIGH_REGS.
25073 (REG_CLASS_NAMES): Ditto.
25074 (REG_CLASS_CONTENTS): Delete the SPE high registers.
25075 (REGISTER_NAMES): Ditto.
25076 (rs6000_reg_names): Ditto.
25077 * doc/tm.texi.in: Remove SPE as example.
25078 * doc/tm.texi: Regenerate.
25079
25080 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25081
25082 * config/rs6000/8540.md (ppc8540_brinc): Delete.
25083 * config/rs6000/e500mc.md (e500mc_brinc): Delete.
25084 * config/rs6000/e500mc64.md (e500mc64_brinc): Delete.
25085 * config/rs6000/rs6000.md (type): Remove "brinc".
25086
25087 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25088
25089 * config.gcc (powerpc*-*-*): Don't add spe.h to extra_headers.
25090 (powerpc*-linux*spe*): Use ${cpu_type} instead of rs6000.
25091 * config/rs6000/linuxspe.h: Delete file.
25092 * config/rs6000/rs6000.md: Don't include spe.md.
25093 * config/rs6000/spe.h: Delete file.
25094 * config/rs6000/spe.md: Delete file.
25095 * config/rs6000/t-rs6000: Remove spe.md.
25096
25097 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25098
25099 * config/rs6000/predicates.md (reg_or_mem_operand): Reformat.
25100 (reg_or_none500mem_operand): Delete.
25101 * config/rs6000/rs6000.md (extendsfdf2): Use reg_or_mem_operand
25102 instead of reg_or_none500mem_operand.
25103
25104 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25105
25106 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
25107 handling of SPE flags.
25108 * config/rs6000/rs6000.opt (-mspe, -mspe=no, -mspe=yes): Delete.
25109
25110 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25111
25112 * config/rs6000/rs6000-common.c (rs6000_handle_option): Remove
25113 SPE ABI handling.
25114 * config/rs6000/paired.md (paired_negv2sf2): Rename to negv2sf2.
25115 (paired_absv2sf2, paired_addv2sf3, paired_subv2sf3, paired_mulv2sf3,
25116 paired_divv2sf3): Similar.
25117 * config/rs6000/predicates.md: Replace TARGET_SPE, TARGET_SPE_ABI,
25118 SPE_VECTOR_MODE and SPE_HIGH_REGNO_P by 0; simplify.
25119 * config/rs6000/rs6000-builtin.def: Delete RS6000_BUILTIN_E and
25120 RS6000_BUILTIN_S.
25121 Delete BU_SPE_1, BU_SPE_2, BU_SPE_3, BU_SPE_E, BU_SPE_P, and BU_SPE_X.
25122 Rename the paired_* instruction patterns.
25123 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Do not
25124 define __SPE__.
25125 * config/rs6000/rs6000-protos.h (invalid_e500_subreg): Delete.
25126 * config/rs6000/rs6000.c: Delete RS6000_BUILTIN_E and RS6000_BUILTIN_S.
25127 (struct rs6000_stack): Delete fields spe_gp_save_offset, spe_gp_size,
25128 spe_padding_size, and spe_64bit_regs_used. Replace TARGET_SPE and
25129 TARGET_SPE_ABI with 0, simplify. Replace SPE_VECTOR_MODE with
25130 PAIRED_VECTOR_MODE.
25131 (struct machine_function): Delete field spe_insn_chain_scanned_p.
25132 (spe_func_has_64bit_regs_p): Delete.
25133 (spe_expand_predicate_builtin): Delete.
25134 (spe_expand_evsel_builtin): Delete.
25135 (TARGET_DWARF_REGISTER_SPAN): Do not define.
25136 (TARGET_MEMBER_TYPE_FORCES_BLK): Do not define.
25137 (invalid_e500_subreg): Delete.
25138 (rs6000_legitimize_address): Always force_reg op2 as well, for
25139 paired single memory accesses.
25140 (rs6000_member_type_forces_blk): Delete.
25141 (rs6000_spe_function_arg): Delete.
25142 (rs6000_expand_unop_builtin): Delete SPE handling.
25143 (rs6000_expand_binop_builtin): Ditto.
25144 (spe_expand_stv_builtin): Delete.
25145 (bdesc_2arg_spe): Delete.
25146 (spe_expand_builtin): Delete.
25147 (spe_expand_predicate_builtin): Delete.
25148 (spe_expand_evsel_builtin): Delete.
25149 (rs6000_invalid_builtin): Remove RS6000_BTM_SPE handling.
25150 (spe_init_builtins): Delete.
25151 (spe_func_has_64bit_regs_p): Delete.
25152 (savres_routine_name): Delete "info" parameter. Adjust callers.
25153 (rs6000_emit_stack_reset): Ditto.
25154 (rs6000_dwarf_register_span): Delete.
25155 * config/rs6000/rs6000.h (TARGET_SPE_ABI, TARGET_SPE,
25156 UNITS_PER_SPE_WORD, SPE_HIGH_REGNO_P, SPE_SIMD_REGNO_P,
25157 SPE_VECTOR_MODE, RS6000_BTM_SPE, RS6000_BUILTIN_E, RS6000_BUILTIN_S):
25158 Delete.
25159 * config/rs6000/rs6000.md (FIRST_SPE_HIGH_REGNO, LAST_SPE_HIGH_REGNO):
25160 Delete.
25161 * config/rs6000/rs6000.opt (-mabi=spe, -mabi=no-spe): Delete.
25162 * config/rs6000/spe.md: Delete every pattern that uses TARGET_SPE.
25163 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3,
25164 mulv2sf3, divv2sf3): Delete expanders.
25165
25166 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25167
25168 config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): Delete.
25169
25170 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25171
25172 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): Delete.
25173 * config/rs6000/rs6000.c: Ditto.
25174
25175 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25176
25177 * config/rs6000/predicated.md (rs6000_cbranch_operator): Delete.
25178 * config/rs6000/rs6000.md: Replace rs6000_cbranch_operator by
25179 comparison_operator.
25180
25181 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25182
25183 * config/rs6000/rs6000.c: Remove everything related to -mfloat-gprs.
25184 * config/rs6000/rs6000.opt: Ditto.
25185 * config/rs6000/t-rtems: Ditto.
25186
25187 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25188
25189 * config/rs6000/predicates.md: Replace TARGET_E500_DOUBLE and
25190 TARGET_E500_SINGLE by 0, simplify.
25191 * config/rs6000/rs6000.c: Ditto.
25192 (rs6000_option_override_internal): Delete CHECK_E500_OPTIONS.
25193 (spe_build_register_parallel): Delete.
25194 * config/rs6000/rs6000.h: Delete TARGET_E500_SINGLE,
25195 TARGET_E500_DOUBLE, and CHECK_E500_OPTIONS.
25196 * config/rs6000/rs6000.md: Replace TARGET_E500_DOUBLE,
25197 TARGET_E500_SINGLE, and <E500_CONVERT> by 0, simplify.
25198 (E500_CONVERT): Delete.
25199 * config/rs6000/spe.md: Remove many patterns and all define_constants.
25200
25201 2017-06-07 Segher Boessenkool <segher@kernel.crashing.org>
25202
25203 * config/rs6000/darwin.md: Replace TARGET_FPRS by 1 and simplify.
25204 * config/rs6000/dfp.md: Ditto.
25205 (negdd2, *negdd2_fpr): Merge.
25206 (absdd2, *absdd2_fpr): Merge.
25207 (negtd2, *negtd2_fpr): Merge.
25208 (abstd2, *abstd2_fpr): Merge.
25209 * config/rs6000/e500.h: Delete file.
25210 * config/rs6000/predicates.md (rs6000_cbranch_operator): Replace
25211 TARGET_FPRS by 1 and simplify.
25212 * config/rs6000/rs6000-c.c: Ditto.
25213 * config/rs6000/rs6000.c: Ditto. Also replace TARGET_SF_SPE and
25214 TARGET_DF_SPE by 0.
25215 * config/rs6000/rs6000.h: Ditto. Delete TARGET_SF_SPE and
25216 TARGET_DF_SPE.
25217 * config/rs6000/rs6000.md: Ditto.
25218 (floatdidf2, *floatdidf2_fpr): Merge.
25219 (move_from_CR_gt_bit): Delete.
25220 * config/rs6000/spe.md: Replace TARGET_FPRS by 1 and simplify.
25221 (E500_CR_IOR_COMPARE): Delete.
25222 (All patterns that require !TARGET_FPRS): Delete.
25223 * config/rs6000/vsx.md: Replace TARGET_FPRS by 1 and simplify.
25224
25225 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25226
25227 * passes.def (pass_iv_canon): Move before pass_loop_distribution.
25228
25229 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25230
25231 * graphds.c (add_edge): Intitialize edge's attached data.
25232 (foll_in_subgraph, dfs_fst_edge, dfs_next_edge): New function
25233 pointer parameter. Call pointed function on each edge during
25234 graph traversing. Skip traversing the edge when the function
25235 returns true.
25236 (graphds_dfs, graphds_scc): Ditto.
25237 (for_each_edge): New parameter. Pass the new parameter to callback
25238 function.
25239 * graphds.h (skip_edge_callback): New function pointer type.
25240 (graphds_dfs, graphds_scc): New function pointer parameter.
25241 (graphds_edge_callback, for_each_edge): New parameter.
25242
25243 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25244
25245 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Factor
25246 out code checking if runtime alias check is possible to below ...
25247 Call the new function.
25248 * tree-data-ref.c (runtime_alias_check_p): ... to new function.
25249 * tree-data-ref.h (runtime_alias_check_p): New decalaration.
25250
25251 2017-06-07 Marek Polacek <polacek@redhat.com>
25252
25253 PR sanitizer/80932
25254 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
25255 TYPE_OVERFLOW_WRAPS check.
25256
25257 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25258
25259 * tree-vect-loop-manip.c (vect_do_peeling): Don't skip vector loop
25260 if versioning is required.
25261 * tree-vect-loop.c (vect_analyze_loop_2): Merge niter check for loop
25262 peeling with the check for versioning.
25263
25264 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25265
25266 * tree-vectorizer.h (vect_build_loop_niters): New parameter.
25267 * tree-vect-loop-manip.c (vect_build_loop_niters): New parameter.
25268 Set true to new parameter if new ssa variable is defined.
25269 (vect_gen_vector_loop_niters): Refactor. Set range information
25270 for the new vector loop bound variable.
25271 (vect_do_peeling): Ditto.
25272
25273 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25274
25275 * tree-affine.c (ssa.h): Include header file.
25276 (tree_to_aff_combination): Handle (T1)(X - CST) when inner type
25277 has wrapping overflow behavior.
25278
25279 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25280
25281 * tree-affine.c (tree_to_aff_combination): Handle (T1)(X + X).
25282
25283 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25284
25285 (aff_combination_expand): Move (T1)(X *+- CST) simplification to ...
25286 (tree_to_aff_combination): ... here.
25287
25288 2017-06-07 Bin Cheng <bin.cheng@arm.com>
25289
25290 * tree-ssa-loop-ivopts.c (ivopts_estimate_reg_pressure): New
25291 reg_pressure model function.
25292 (ivopts_global_cost_for_size): Delete.
25293 (determine_set_costs, iv_ca_recount_cost): Call new model function
25294 ivopts_estimate_reg_pressure.
25295
25296 2017-06-07 Tamar Christina <tamar.christina@arm.com>
25297
25298 * config/aarch64/aarch64.c (aarch64_rtx_costs): Make sdiv more
25299 expensive than udiv. Remove floating point cases from mod.
25300
25301 2017-06-07 Tamar Christina <tamar.christina@arm.com>
25302
25303 * config/arm/aarch-cost-tables.h (cortexa53_extra_cost):
25304 Increase idiv cost.
25305
25306 2017-06-07 Tamar Christina <tamar.christina@arm.com>
25307
25308 * config/aarch64/aarch64.md
25309 (copysignsf3): Fix mask generation.
25310
25311 2017-06-07 Jakub Jelinek <jakub@redhat.com>
25312
25313 * dumpfile.h (enum tree_dump_index): Rename TDI_generic to
25314 TDI_gimple.
25315 (class dump_manager): Add register_dumps method.
25316 * dumpfile.c: Include langhooks.h.
25317 (dump_files): Use 0 instead of 3/4/5 for TDI_{original,gimple,nested}.
25318 (FIRST_AUTO_NUMBERED_DUMP): Decrease to 1.
25319 (FIRST_ME_AUTO_NUMBERED_DUMP): Define.
25320 (dump_manager::dump_register): Start with 512 entries instead of 32.
25321 (dump_manager::register_dumps): New method.
25322 * toplev.c (general_init): Instead of invoking register_dumps
25323 langhook, invoke register_dumps method on the dump manager.
25324 * gimplify.c (gimplify_function_tree): Use TDI_gimple instead of
25325 TDI_generic.
25326
25327 2017-06-07 Richard Sandiford <richard.sandiford@linaro.org>
25328
25329 * doc/md.texi: Clarify the restrictions on a define_insn condition.
25330 Say that # requires an associated define_split to exist, and that
25331 the define_split must be suitable for use after register allocation.
25332
25333 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
25334
25335 * cfgbuild.c (find_bb_boundaries): Initialize profile of split blocks.
25336 (compute_outgoing_frequencies): Also initialize zero counts.
25337 (find_many_sub_basic_blocks): Do not produce uninitialized profile
25338 around loops; preserve more of profile when nothing changes.
25339
25340 2017-06-06 Jim Wilson <jim.wilson@linaro.org>
25341
25342 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
25343 here.
25344 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
25345 * config/arm/arm-cpu-cdata.h: Regenerate.
25346 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
25347 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
25348 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
25349 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
25350 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
25351 support.
25352 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
25353 support.
25354 * config/arm/t-rmprofile: Likewise.
25355 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
25356
25357 2017-06-06 David S. Miller <davem@davemloft.net>
25358
25359 PR target/80968
25360 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
25361 blockage if function uses alloca.
25362
25363 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
25364
25365 * tree-ssa-loop-prefetch.c (struct mem_ref_group, struct mem_ref):
25366 New "uid" fields to hold pretty-print IDs of group and ref.
25367 Memory references are now identified as <group_id>:<ref_id>
25368 instead of using [random] addresses.
25369 (dump_mem_details): Simplify, no functional change.
25370 (dump_mem_ref): Simplify and make output more concise.
25371 Replace couple of fprintf's throughout code with calls to dump_mem_ref.
25372 (find_or_create_group): Initialize group uid.
25373 (record_ref): Initialize ref uid. Improve debug output.
25374 (prune_group_by_reuse, should_issue_prefetch_p,)
25375 (should_issue_prefetch_p, schedule_prefetches, issue_prefetch_ref,)
25376 (mark_nontemporal_store, determine_loop_nest_reuse):
25377 Improve debug output.
25378
25379 2017-06-06 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
25380
25381 * dbgcnt.def (prefetch): New debug counter.
25382 * tree-ssa-loop-prefetch.c (dbgcnt.h): New include.
25383 (schedule_prefetches): Stop issueing prefetches if debug counter
25384 tripped.
25385
25386 2017-06-06 Tom de Vries <tom@codesourcery.com>
25387
25388 * doc/sourcebuild.texi (Testsuites, C Language Testsuites,
25389 gcc.c-torture/compile): Remove mention of NO_LABEL_VALUES in fixme.
25390
25391 2017-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25392
25393 * config/aarch64/atomics.md (atomic_compare_and_swap<mode> expander):
25394 Use aarch64_reg_or_zero predicate for operand 4.
25395 (aarch64_compare_and_swap<mode> define_insn_and_split):
25396 Use aarch64_reg_or_zero predicate for operand 3. Add 'Z' constraint.
25397 (aarch64_store_exclusive<mode>): Likewise for operand 2.
25398
25399 2017-06-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
25400
25401 * config/arm/arm.c (arm_compute_save_reg_mask): Rename into ...
25402 (arm_compute_save_core_reg_mask): This.
25403 (thumb1_compute_save_reg_mask): Rename into ...
25404 (thumb1_compute_save_core_reg_mask): This.
25405 (arm_compute_save_reg0_reg12_mask): Adapt comment.
25406 (arm_compute_frame_layout): Likewise.
25407
25408 2017-06-06 Richard Biener <rguenther@suse.de>
25409
25410 PR tree-optimization/80974
25411 * tree-ssa-sccvn.c (set_ssa_val_to): Do not change but only
25412 keep or clear leaders SSA info.
25413
25414 2017-06-06 Tom de Vries <tom@codesourcery.com>
25415
25416 * config/nvptx/nvptx.c (split_mode_p): New function.
25417 (nvptx_declare_function_name, nvptx_print_operand): Use split_mode_p.
25418
25419 2017-06-06 Tom de Vries <tom@codesourcery.com>
25420
25421 * config/nvptx/nvptx.c (nvptx_print_operand): Use maybe_split_mode.
25422
25423 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
25424
25425 PR bootstrap/80978
25426 * tree-cfg.c (execute_fixup_cfg): Fix condition on when to rescale
25427 profile.
25428
25429 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
25430
25431 * shrink-wrap.c (handle_simple_exit): Update profile.
25432 (try_shrink_wrapping): Upate profile.
25433
25434 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
25435
25436 * predict.c (tree_estimate_probability_bb): Add LOCAL_ONLY.
25437 (tree_guess_outgoing_edge_probabilities): New.
25438 * predict.h (tree_guess_outgoing_edge_probabilities): Declare.
25439 * tree-cfg.c (gimple_find_sub_bbs): Propagate profile.
25440
25441 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
25442
25443 * ipa-split.c (split_function): Initialize return bb profile.
25444
25445 2017-06-06 Jan Hubicka <hubicka@ucw.cz>
25446
25447 * profile.c (compute_branch_probabilities): Also initialize
25448 EXIT_BLOCK profile.
25449
25450 2017-06-06 Richard Biener <rguenther@suse.de>
25451
25452 PR tree-optimization/80928
25453 * tree-vect-loop.c (vect_update_vf_for_slp): Amend dumps.
25454 (vect_analyze_loop_operations): Properly guard analysis for
25455 pure SLP case.
25456 (vect_transform_loop): Likewise.
25457 (vect_analyze_loop_2): Also reset SLP type on PHIs.
25458 (vect_model_induction_cost): Do not cost for pure SLP.
25459 (vectorizable_induction): Pass in SLP node, implement SLP vectorization
25460 of induction in inner loop vectorization.
25461 * tree-vect-slp.c (vect_create_new_slp_node): Handle PHIs.
25462 (vect_get_and_check_slp_defs): Handle vect_induction_def.
25463 (vect_build_slp_tree): Likewise. Handle PHIs as terminating the
25464 recursion.
25465 (vect_analyze_slp_cost_1): Cost induction.
25466 (vect_detect_hybrid_slp_stmts): Handle PHIs.
25467 (vect_get_slp_vect_defs): Likewise.
25468 * tree-vect-stmts.c (vect_analyze_stmt): Handle induction.
25469 (vect_transform_stmt): Handle SLP reductions.
25470 * tree-vectorizer.h (vectorizable_induction): Adjust.
25471
25472 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
25473
25474 * config/rs6000/rs6000.c (make_resolver_func): Update
25475 init_lowered_empty_function call.
25476
25477 2017-06-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
25478
25479 * doc/invoke.texi: Document the -fprofile-abs-path option.
25480 * common.opt (fprofile-abs-path): New option.
25481 * gcov-io.h (gcov_write_filename): Declare.
25482 * gcov-io.c (gcov_write_filename): New function.
25483 * coverage.c (coverage_begin_function): Use gcov_write_filename.
25484 * profile.c (output_location): Likewise.
25485
25486 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
25487
25488 * shring-wrap.c: Revert accidental commit.
25489
25490 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
25491
25492 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
25493
25494 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
25495
25496 * cfgexpand.c (expand_gimple_tailcall): Initialize profile of
25497 new edge.
25498 * ipa-inline.c (want_inline_self_recursive_call_p): Watch for missing
25499 profile in callgraph edge.
25500 * profile-count.h (apply_probability): If THIS is 0, then result is 0
25501 (apply_scale): Likewise.
25502 * tree-inline.c (copy_bb, copy_edges_for_bb, copy_cfg_body):
25503 Also scale profile when inlining function with zero profile.
25504 (initialize_cfun): Update exit block profile even when it is zero.
25505 * tree-ssa-threadupdate.c (clear_counts_path): Handle correctly case
25506 when profile is read.
25507
25508 2017-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
25509
25510 * config/rs6000/rs6000.c (toplevel): Include attribs.h.
25511 (CLONE_*): New constants to define the processors we can generate
25512 code for with the target_clone attribute.
25513 (rs6000_clone_map): New array to identify which clone processors
25514 the current program is running on.
25515 (TARGET_COMPARE_VERSION_PRIORITY): Define to enable the
25516 target_clone attribute.
25517 (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Likewise.
25518 (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Likewise.
25519 (TARGET_OPTION_FUNCTION_VERSIONS): Likewise.
25520 (cpu_expand_builtin): Add support for target_clone attribute.
25521 (rs6000_valid_attribute_p): Allow "default" attribute.
25522 (get_decl_name): New debug function to simplify printing the
25523 current function name in debugging statements.
25524 (rs6000_clone_priority): New functions to support the target_clone
25525 attribute, and be able to generate code to switch between ISA 2.05
25526 through ISA 3.0 (power6 through power9).
25527 (rs6000_compare_version_priority): Likewise.
25528 (rs6000_get_function_versions_dispatcher): Likewise.
25529 (make_resolver_func): Likewise.
25530 (add_condition_to_bb): Likewise.
25531 (dispatch_function_versions): Likewise.
25532 (rs6000_generate_version_dispatcher_body): Likewise.
25533 (rs6000_can_inline_p): Call get_decl_name for debugging usage.
25534 (fusion_gpr_load_p): Fix a spacing issue.
25535 * doc/extend.texi (Common Function Attributes): Document that the
25536 PowerPC supports the target_clone attribute.
25537
25538 2017-06-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
25539
25540 * config/arm/arm.h: explain F symbol found in description of ARM
25541 register allocation in its legend.
25542
25543 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
25544
25545 * config/mips/frame-header-opt.c: Include profile-count.h.
25546 * config/riscv/riscv.c: Include profile-count.h
25547
25548 2017-06-05 Jan Hubicka <hubicka@ucw.cz>
25549
25550 * tree-ssa-loop-im.c (execute_sm_if_changed): Add FLAG_BBS parameter;
25551 update profile.
25552 (sm_set_flag_if_changed): Add bbs field.
25553 (execute_sm_if_changed_flag_set): Pass BBS.
25554 (execute_sm): Update.
25555
25556 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25557
25558 * config/aarch64/aarch64-simd.md (aarch64_store_lane0<mode>):
25559 New pattern.
25560
25561 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25562
25563 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): New define_insn.
25564 (peephole2): New peephole2 to emit the above.
25565 * config/aarch64/predicates.md (aarch64_sub_immediate): New predicate.
25566
25567 2017-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25568
25569 * config/aarch64/aarch64.c (define_peephole2 above
25570 *sub_<shift>_<mode>): New peephole.
25571
25572 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
25573
25574 * config/i386/i386.c (make_resolver_func): Update.
25575 * Makefile.in: Add profile-count.h and profile-count.o
25576 * auto-profile.c (afdo_indirect_call): Update to new API.
25577 (afdo_set_bb_count): Update.
25578 (afdo_propagate_edge): Update.
25579 (afdo_propagate_circuit): Update.
25580 (afdo_calculate_branch_prob): Update.
25581 (afdo_annotate_cfg): Update.
25582 * basic-block.h: Include profile-count.h
25583 (struct edge_def): Turn count to profile_count.
25584 (struct basic_block_def): Likewie.
25585 (REG_BR_PROB_BASE): Move to profile-count.h
25586 (RDIV): Move to profile-count.h
25587 * bb-reorder.c (max_entry_count): Turn to profile_count.
25588 (find_traces): Update.
25589 (rotate_loop):Update.
25590 (connect_traces):Update.
25591 (sanitize_hot_paths):Update.
25592 * bt-load.c (migrate_btr_defs): Update.
25593 * cfg.c (RDIV): Remove.
25594 (init_flow): Use alloc_block.
25595 (alloc_block): Uninitialize count.
25596 (unchecked_make_edge): Uninitialize count.
25597 (check_bb_profile): Update.
25598 (dump_edge_info): Update.
25599 (dump_bb_info): Update.
25600 (update_bb_profile_for_threading): Update.
25601 (scale_bbs_frequencies_int): Update.
25602 (scale_bbs_frequencies_gcov_type): Update.
25603 (scale_bbs_frequencies_profile_count): New.
25604 * cfg.h (update_bb_profile_for_threading): Update.
25605 (scale_bbs_frequencies_profile_count): Declare.
25606 * cfgbuild.c (compute_outgoing_frequencies): Update.
25607 (find_many_sub_basic_blocks): Update.
25608 * cfgcleanup.c (try_forward_edges): Update.
25609 (try_crossjump_to_edge): Update.
25610 * cfgexpand.c (expand_gimple_tailcall): Update.
25611 (construct_exit_block): Update.
25612 * cfghooks.c (verify_flow_info): Update.
25613 (dump_bb_for_graph): Update.
25614 (split_edge): Update.
25615 (make_forwarder_block): Update.
25616 (duplicate_block): Update.
25617 (account_profile_record): Update.
25618 * cfgloop.c (find_subloop_latch_edge_by_profile): Update.
25619 (get_estimated_loop_iterations): Update.
25620 * cfgloopanal.c (expected_loop_iterations_unbounded): Update.
25621 (single_likely_exit): Update.
25622 * cfgloopmanip.c (scale_loop_profile): Update.
25623 (loopify): Update.
25624 (set_zero_probability): Update.
25625 (lv_adjust_loop_entry_edge): Update.
25626 * cfgrtl.c (force_nonfallthru_and_redirect): Update.
25627 (purge_dead_edges): Update.
25628 (rtl_account_profile_record): Update.
25629 * cgraph.c (cgraph_node::create): Uninitialize count.
25630 (symbol_table::create_edge): Uninitialize count.
25631 (cgraph_update_edges_for_call_stmt_node): Update.
25632 (cgraph_edge::dump_edge_flags): Update.
25633 (cgraph_node::dump): Update.
25634 (cgraph_edge::maybe_hot_p): Update.
25635 * cgraph.h: Include profile-count.h
25636 (create_clone), create_edge, create_indirect_edge): Update.
25637 (cgraph_node): Turn count to profile_count.
25638 (cgraph_edge0: Likewise.
25639 (make_speculative, clone): Update.
25640 (create_edge): Update.
25641 (init_lowered_empty_function): Update.
25642 * cgraphclones.c (cgraph_edge::clone): Update.
25643 (duplicate_thunk_for_node): Update.
25644 (cgraph_node::create_clone): Update.
25645 * cgraphunit.c (cgraph_node::analyze): Update.
25646 (cgraph_node::expand_thunk): Update.
25647 * final.c (dump_basic_block_info): Update.
25648 * gimple-streamer-in.c (input_bb): Update.
25649 * gimple-streamer-out.c (output_bb): Update.
25650 * graphite.c (print_global_statistics): Update.
25651 (print_graphite_scop_statistics): Update.
25652 * hsa-brig.c: Include basic-block.h.
25653 * hsa-dump.c: Include basic-block.h.
25654 * hsa-gen.c (T sum_slice): Update.
25655 (convert_switch_statements):Update.
25656 * hsa-regalloc.c: Include basic-block.h.
25657 * ipa-chkp.c (chkp_produce_thunks): Update.
25658 * ipa-cp.c (struct caller_statistics): Update.
25659 (init_caller_stats): Update.
25660 (gather_caller_stats): Update.
25661 (ipcp_cloning_candidate_p): Update.
25662 (good_cloning_opportunity_p): Update.
25663 (get_info_about_necessary_edges): Update.
25664 (dump_profile_updates): Update.
25665 (update_profiling_info): Update.
25666 (update_specialized_profile): Update.
25667 (perhaps_add_new_callers): Update.
25668 (decide_about_value): Update.
25669 (ipa_cp_c_finalize): Update.
25670 * ipa-devirt.c (struct odr_type_warn_count): Update.
25671 (struct decl_warn_count): Update.
25672 (struct final_warning_record): Update.
25673 (possible_polymorphic_call_targets): Update.
25674 (ipa_devirt): Update.
25675 * ipa-fnsummary.c (redirect_to_unreachable): Update.
25676 * ipa-icf.c (sem_function::merge): Update.
25677 * ipa-inline-analysis.c (do_estimate_edge_time): Update.
25678 * ipa-inline.c (compute_uninlined_call_time): Update.
25679 (compute_inlined_call_time): Update.
25680 (want_inline_small_function_p): Update.
25681 (want_inline_self_recursive_call_p): Update.
25682 (edge_badness): Update.
25683 (lookup_recursive_calls): Update.
25684 (recursive_inlining): Update.
25685 (inline_small_functions): Update.
25686 (dump_overall_stats): Update.
25687 (dump_inline_stats): Update.
25688 * ipa-profile.c (ipa_profile_generate_summary): Update.
25689 (ipa_propagate_frequency): Update.
25690 (ipa_profile): Update.
25691 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
25692 * ipa-utils.c (ipa_merge_profiles): Update.
25693 * loop-doloop.c (doloop_modify): Update.
25694 * loop-unroll.c (report_unroll): Update.
25695 (unroll_loop_runtime_iterations): Update.
25696 * lto-cgraph.c (lto_output_edge): Update.
25697 (lto_output_node): Update.
25698 (input_node): Update.
25699 (input_edge): Update.
25700 (merge_profile_summaries): Update.
25701 * lto-streamer-in.c (input_cfg): Update.
25702 * lto-streamer-out.c (output_cfg): Update.
25703 * mcf.c (create_fixup_graph): Update.
25704 (adjust_cfg_counts): Update.
25705 (sum_edge_counts): Update.
25706 * modulo-sched.c (sms_schedule): Update.
25707 * postreload-gcse.c (eliminate_partially_redundant_load): Update.
25708 * predict.c (maybe_hot_count_p): Update.
25709 (probably_never_executed): Update.
25710 (dump_prediction): Update.
25711 (combine_predictions_for_bb): Update.
25712 (propagate_freq): Update.
25713 (handle_missing_profiles): Update.
25714 (counts_to_freqs): Update.
25715 (rebuild_frequencies): Update.
25716 (force_edge_cold): Update.
25717 * predict.h: Include profile-count.h
25718 (maybe_hot_count_p, counts_to_freqs): UPdate.
25719 * print-rtl-function.c: Do not include cfg.h
25720 * print-rtl.c: Include basic-block.h
25721 * profile-count.c: New file.
25722 * profile-count.h: New file.
25723 * profile.c (is_edge_inconsistent): Update.
25724 (correct_negative_edge_counts): Update.
25725 (is_inconsistent): Update.
25726 (set_bb_counts): Update.
25727 (read_profile_edge_counts): Update.
25728 (compute_frequency_overlap): Update.
25729 (compute_branch_probabilities): Update; Initialize and deinitialize
25730 gcov_count tables.
25731 (branch_prob): Update.
25732 * profile.h (bb_gcov_counts, edge_gcov_counts): New.
25733 (edge_gcov_count): New.
25734 (bb_gcov_count): New.
25735 * shrink-wrap.c (try_shrink_wrapping): Update.
25736 * tracer.c (better_p): Update.
25737 * trans-mem.c (expand_transaction): Update.
25738 (ipa_tm_insert_irr_call): Update.
25739 (ipa_tm_insert_gettmclone_call): Update.
25740 * tree-call-cdce.c: Update.
25741 * tree-cfg.c (gimple_duplicate_sese_region): Update.
25742 (gimple_duplicate_sese_tail): Update.
25743 (gimple_account_profile_record): Update.
25744 (execute_fixup_cfg): Update.
25745 * tree-inline.c (copy_bb): Update.
25746 (copy_edges_for_bb): Update.
25747 (initialize_cfun): Update.
25748 (freqs_to_counts): Update.
25749 (copy_cfg_body): Update.
25750 (expand_call_inline): Update.
25751 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
25752 * tree-ssa-loop-ivcanon.c (unloop_loops): Update.
25753 (try_unroll_loop_completely): Update.
25754 (try_peel_loop): Update.
25755 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
25756 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
25757 * tree-ssa-loop-split.c (connect_loops): Update.
25758 * tree-ssa-loop-unswitch.c (hoist_guard): Update.
25759 * tree-ssa-reassoc.c (branch_fixup): Update.
25760 * tree-ssa-tail-merge.c (replace_block_by): Update.
25761 * tree-ssa-threadupdate.c (create_block_for_threading): Update.
25762 (compute_path_counts): Update.
25763 (update_profile): Update.
25764 (recompute_probabilities): Update.
25765 (update_joiner_offpath_counts): Update.
25766 (estimated_freqs_path): Update.
25767 (freqs_to_counts_path): Update.
25768 (clear_counts_path): Update.
25769 (ssa_fix_duplicate_block_edges): Update.
25770 (duplicate_thread_path): Update.
25771 * tree-switch-conversion.c (case_bit_test_cmp): Update.
25772 (struct switch_conv_info): Update.
25773 * tree-tailcall.c (decrease_profile): Update.
25774 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
25775 * tree-vect-loop.c (scale_profile_for_vect_loop): Update.
25776 * value-prof.c (check_counter): Update.
25777 (gimple_divmod_fixed_value): Update.
25778 (gimple_mod_pow2): Update.
25779 (gimple_mod_subtract): Update.
25780 (gimple_ic_transform): Update.
25781 (gimple_stringop_fixed_value): Update.
25782 * value-prof.h (gimple_ic): Update.
25783
25784 2017-06-02 Carl Love <cel@us.ibm.com>
25785
25786 * config/rs6000/rs6000-c: Add support for built-in functions
25787 vector double vec_doublee (vector signed int);
25788 vector double vec_doublee (vector unsigned int);
25789 vector double vec_doublee (vector float);
25790 vector double vec_doubleh (vector signed int);
25791 vector double vec_doubleh (vector unsigned int);
25792 vector double vec_doubleh (vector float);
25793 vector double vec_doublel (vector signed int);
25794 vector double vec_doublel (vector unsigned int);
25795 vector double vec_doublel (vector float);
25796 vector double vec_doubleo (vector signed int);
25797 vector double vec_doubleo (vector unsigned int);
25798 vector double vec_doubleo (vector float);.
25799 * config/rs6000/rs6000-builtin.def: Add definitions for DOUBLEE,
25800 DOUBLEO, DOUBLEH, DOUBLEL, UNS_DOUBLEO, UNS_DOUBLEE, UNS_DOUBLEH,
25801 UNS_DOUBLEL.
25802 * config/rs6000/altivec.md: Add code generator for doublee<mode>2,
25803 unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, doubleh<mode>2,
25804 unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, add mode attribute
25805 VS_sxwsp.
25806 * config/rs6000/altivec.h: Add define for vec_doublee, vec_doubleo,
25807 vec_doublel, vec_doubleh.
25808 * doc/extend.texi: Update the built-in documentation file for the
25809 new built-in functions.
25810
25811 2017-06-02 David Malcolm <dmalcolm@redhat.com>
25812
25813 PR jit/80954
25814 * ipa-inline-analysis.c (free_growth_caches): Set
25815 edge_removal_hook_holder to NULL after removing it.
25816
25817 2017-06-02 Sudakshina Das <sudi.das@arm.com>
25818
25819 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
25820 comparision with zero.
25821
25822 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
25823 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
25824 for early expansion of vec_min and vec_max builtins.
25825 (builtin_function_type): Add min/max unsigned variants to those
25826 identified as having unsigned arguments.
25827
25828 2017-06-02 Olivier Hainque <hainque@adacore.com>
25829
25830 * config/vx-common.h (DWARF_UNWIND_INFO): Switch #define to 1.
25831
25832 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25833
25834 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
25835 Use VALL_F16 iterator rather than VALL.
25836
25837 2017-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25838
25839 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap):
25840 Emit CBNZ inside loop when doing a strong exchange and comparing
25841 against zero. Generate the CC flags after the loop.
25842
25843 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
25844
25845 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
25846 (dl_section_ref): New.
25847 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
25848 On AIX, append an expression to subtract the size of the
25849 section length to dl_section_ref.
25850
25851 2017-06-02 Will Schmidt <will_schmidt@vnet.ibm.com>
25852
25853 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling
25854 for early expansion of vector absolute builtins.
25855
25856 2017-06-02 Richard Biener <rguenther@suse.de>
25857
25858 * tree-vect-slp.c (vect_detect_hybrid_slp_2): Match up
25859 what we consider a relevant use stmt with vect_detect_hybrid_slp_stmts.
25860
25861 2017-06-02 Richard Biener <rguenther@suse.de>
25862
25863 PR tree-optimization/80948
25864 * tree-tailcall.c (find_tail_calls): Track stmts to move in
25865 stmt order as well.
25866
25867 2017-06-02 Richard Biener <rguenther@suse.de>
25868
25869 * tree-vect-loop.c (vect_analyze_loop_operations): Not relevant
25870 PHIs are ok.
25871 * tree-vect-stmts.c (process_use): Do not mark backedge defs
25872 for inductions as relevant.
25873
25874 2017-06-02 Richard Biener <rguenther@suse.de>
25875
25876 * tree-vect-loop.c (get_initial_def_for_induction): Inline into ...
25877 (vectorizable_induction): ... this. Remove dead code.
25878
25879 2017-06-02 Eric Botcazou <ebotcazou@adacore.com>
25880
25881 * builtins. (expand_builtin_alloca): Remove second parameter and
25882 infer its value from the first parameter instead.
25883 (expand_builtin) <BUILT_IN_ALLOCA>: Adjust call to above.
25884
25885 2017-06-02 Jakub Jelinek <jakub@redhat.com>
25886
25887 PR rtl-optimization/80903
25888 * loop-doloop.c (add_test): Unshare sequence.
25889
25890 2017-06-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
25891
25892 * doc/invoke.texi: Document the -Wsizeof-pointer-div warning.
25893
25894 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
25895
25896 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers): Make
25897 static.
25898 (xlogue_layout::get_stack_space_used, xlogue_layout::s_instances,
25899 xlogue_layout::get_instance, logue_layout::xlogue_layout,
25900 sp_valid_at, fp_valid_at, choose_basereg): Formatting.
25901 (xlogue_layout::get_stub_rtx): Make static.
25902 (xlogue_layout::get_stub_name): Avoid const-cast, make static.
25903 (xlogue_layout::compute_stub_managed_regs): Rename to...
25904 (xlogue_layout::count_stub_managed_regs): ...this.
25905 (xlogue_layout::is_stub_managed_reg): New function.
25906 (xlogue_layout::m_stub_names): Rename to...
25907 (xlogue_layout::s_stub_names): ...this, make static.
25908 (xlogue_layout::STUB_INDEX_OFFSET, xlogue_layout::MIN_REGS,
25909 xlogue_layout::MAX_REGS, xlogue_layout::MAX_EXTRA_REGS,
25910 xlogue_layout::VARIANT_COUNT, xlogue_layout::STUB_NAME_MAX_LEN,
25911 xlogue_layout::s_stub_names): Instantiate statics.
25912 (stub_managed_regs): Remove.
25913 (ix86_save_reg): Use xlogue_layout::compute_stub_managed_regs.
25914 (disable_call_ms2sysv_xlogues): Rename to...
25915 (warn_once_call_ms2sysv_xlogues): ...this, and warn only once.
25916 (ix86_initial_elimination_offset, ix86_expand_call): Fix call_ms2sysv
25917 warning logic.
25918 (ix86_static_chain): Make sure that ix86_static_chain_on_stack can't
25919 change after reload_completed.
25920 (ix86_can_use_return_insn_p): Use the ix86_frame data structure
25921 directly.
25922 (ix86_expand_prologue): Likewise.
25923 (ix86_expand_epilogue): Likewise.
25924 (ix86_expand_split_stack_prologue): Likewise.
25925 (ix86_compute_frame_layout): Remove frame parameter ...
25926 (TARGET_COMPUTE_FRAME_LAYOUT): ... and export it as a target hook.
25927 (ix86_finalize_stack_realign_flags): Call ix86_compute_frame_layout
25928 only if necessary.
25929 (ix86_init_machine_status): Don't set use_fast_prologue_epilogue_nregs.
25930 (ix86_frame): Move from here ...
25931 * config/i386/i386.h (ix86_frame): ... to here.
25932 (machine_function): Remove use_fast_prologue_epilogue_nregs, cache the
25933 complete ix86_frame data structure instead. Remove some_ld_name.
25934
25935 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
25936
25937 * dwarf2out.c (dwarf2out_late_global_decl): Add locations for
25938 symbols that hold a DECL_VALUE_EXPR.
25939
25940 2017-06-01 Martin Jambor <mjambor@suse.cz>
25941
25942 PR tree-optimization/80898
25943 * tree-sra.c (process_subtree_disqualification): Removed.
25944 (disqualify_candidate): Do not acll
25945 process_subtree_disqualification.
25946 (subtree_mark_written_and_enqueue): New function.
25947 (propagate_all_subaccesses): Set grp_write of LHS subtree if the
25948 RHS has been disqualified and re-queue LHS if necessary. Apart
25949 from that, ignore disqualified RHS.
25950
25951 2017-06-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
25952
25953 * config/s390/s390.c (s390_emit_epilogue): Disable early return
25954 address fetch for z10 or later.
25955
25956 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
25957
25958 * config/arc/arc.md (tst_movb): Add guard when splitting.
25959
25960 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
25961
25962 * config/arc/arc.c (arc_can_eliminate): Test against
25963 arc_frame_pointer_needed.
25964
25965 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
25966
25967 * config/arc/arc.c (arc_expand_prologue): Emit a special barrier
25968 to prevent store reordering.
25969 * config/arc/arc.md (UNSPEC_ARC_STKTIE): Define.
25970 (type): Add block type.
25971 (stack_tie): Define special instruction to be used in
25972 expand_prologue.
25973
25974 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
25975
25976 * config/arc/arc.md (commutative_binary_comparison): Remove 'I'
25977 constraint. It is not valid for the pattern.
25978 (noncommutative_binary_comparison): Likewise.
25979
25980 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
25981
25982 * config/arc/simdext.md (movv2hi_insn): Change predicate to avoid
25983 scaled addresses.
25984
25985 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
25986
25987 * config/arc/arc.c (arc_conditional_register_usage): Allow r30 to
25988 be used by the reg-alloc.
25989
25990 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
25991
25992 * config/arc/arc.md (mulsi3): Avoid use of hard registers before
25993 reg-alloc when having mul64 or mul32x16 instructions.
25994 (mulsidi3): Likewise.
25995 (umulsidi3): Likewise.
25996 (mulsi32x16): New pattern.
25997 (mulsi64): Likewise.
25998 (mulsidi64): Likewise.
25999 (umulsidi64): Likewise.
26000 (MUL32x16_REG): Define.
26001 (mul64_600): Use MUL32x16_REG.
26002 (mac64_600): Likewise.
26003 (umul64_600): Likewise.
26004 (umac64_600): Likewise.
26005
26006 2017-06-01 Claudiu Zissulescu <claziss@synopsys.com>
26007
26008 * config/arc/arc.md (mulsi3_700): Make it commutative.
26009
26010 2017-06-01 Jose E. Marchesi <jose.marchesi@oracle.com>
26011
26012 * config/sparc/sparc.md (*zero_extendsidi2_insn_sp64): Set insn
26013 type for movstouw.
26014 (*sign_extendsidi2_insn): Likewise for movstosw.
26015
26016 2017-06-01 Pierre-Marie de Rodat <derodat@adacore.com>
26017
26018 * dwarf2out.c (get_discr_value): Call the get_debug_type hook on
26019 the type of the input discriminant value. Convert the
26020 discriminant value of signedness vary.
26021
26022 2017-06-01 Volker Reichelt <v.reichelt@netcologne.de>
26023
26024 * doc/invoke.texi (-Wcatch-value): Document new shortcut.
26025 Add to -Wall section.
26026
26027 2017-06-01 Richard Biener <rguenther@suse.de>
26028
26029 PR middle-end/66313
26030 * fold-const.c (fold_plusminus_mult_expr): If the factored
26031 factor may be zero use a wrapping type for the inner operation.
26032 * tree-tailcall.c (independent_of_stmt_p): Pass in to_move bitmap
26033 and handle moved defs.
26034 (process_assignment): Properly guard the unary op case. Return a
26035 tri-state indicating that moving the stmt before the call may allow
26036 to continue. Pass through to_move.
26037 (find_tail_calls): Handle moving unrelated defs before
26038 the call.
26039
26040 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
26041
26042 PR target/80618
26043 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
26044 splitter result in the canonical way.
26045
26046 2017-05-31 Uros Bizjak <ubizjak@gmail.com>
26047
26048 * config/i386/i386.md (*zero_extendsidi2): Enable alternative (?r, *Yj)
26049 also for 32bit target. Update insn attributes.
26050 (zero-extendsidi2 splitter): Allow all registers for operand 1.
26051
26052 2017-05-31 Sebastian Peryt <sebastian.peryt@intel.com>
26053
26054 * config/i386/avx512fintrin.h (_mm_mask_max_sd)
26055 (_mm_maskz_max_sd, _mm_mask_max_ss, _mm_maskz_max_ss)
26056 (_mm_mask_min_sd, _mm_maskz_min_sd, _mm_mask_min_ss)
26057 (_mm_maskz_min_ss): New intrinsics.
26058
26059 2017-05-31 Martin Liska <mliska@suse.cz>
26060
26061 * tree-vect-loop.c (vect_create_epilog_for_reduction):
26062 Change comment style to one we normally use.
26063 (vectorizable_reduction): Likewise.
26064 (vectorizable_induction): Likewise.
26065 * tree-vect-stmts.c (vectorizable_mask_load_store): Likewise.
26066 (vectorizable_call): Likewise.
26067 (vectorizable_simd_clone_call): Likewise.
26068 (vectorizable_conversion): Likewise.
26069 (vectorizable_assignment): Likewise.
26070 (vectorizable_shift): Likewise.
26071 (vectorizable_operation): Likewise.
26072 (vectorizable_store): Likewise.
26073 (vectorizable_load): Likewise.
26074 * tree-vectorizer.h: Likewise.
26075
26076 2017-05-31 Alexander Monakov <amonakov@ispras.ru>
26077
26078 * passes.c (emergency_dump_function): New.
26079 * tree-pass.h (emergency_dump_function): Declare.
26080 * plugin.c (plugins_internal_error_function): Remove.
26081 * plugin.h (plugins_internal_error_function): Remove declaration.
26082 * toplev.c (internal_error_function): New static function. Use it...
26083 (general_init): ...here.
26084
26085 2017-05-31 Graham Markall <graham.markall@embecosm.com>
26086
26087 * config/arc/arc.c (arc_print_operand): Handle constant operands.
26088 (arc_rtx_costs): Add costs for new patterns.
26089 * config/arc/arc.md: Additional *add_n and *sub_n patterns.
26090 * config/arc/predicates.md: Add _1_2_3_operand predicate.
26091
26092 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
26093
26094 * tree-ssa-strlen.c (get_next_strinfo): New function.
26095 (get_stridx_plus_constant): Use it.
26096 (zero_length_string): Likewise.
26097 (adjust_related_strinfos): Likewise.
26098 (adjust_last_stmt): Likewise.
26099
26100 2017-05-31 Richard Biener <rguenther@suse.de>
26101
26102 PR target/80880
26103 * config/i386/i386.c (ix86_expand_builtin): Remove assert
26104 for arg being an SSA name when expanding IX86_BUILTIN_BNDRET.
26105
26106 2017-05-31 Richard Sandiford <richard.sandiford@linaro.org>
26107
26108 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Remove
26109 loop_vinfo argument and use of dependence distance vectors.
26110 Check instead whether the two references differ only in their
26111 initial value and assume that they have the same alignment if the
26112 difference is a multiple of the vector alignment.
26113 (vect_analyze_data_refs_alignment): Update call accordingly.
26114
26115 2017-05-31 Martin Liska <mliska@suse.cz>
26116
26117 PR target/79155
26118 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
26119
26120 2017-05-31 Bin Cheng <bin.cheng@arm.com>
26121
26122 * tree-vect-loop-manip.c (create_intersect_range_checks_index)
26123 (create_intersect_range_checks): Move from ...
26124 * tree-data-ref.c (create_intersect_range_checks_index)
26125 (create_intersect_range_checks): ... to here.
26126 (create_runtime_alias_checks): New function factored from ...
26127 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): ...
26128 here. Call above function.
26129 * tree-data-ref.h (create_runtime_alias_checks): New function.
26130
26131 2017-05-31 Bin Cheng <bin.cheng@arm.com>
26132
26133 * tree-data-ref.c (prune_runtime_alias_test_list): Relax minimal
26134 segment length for dr_b and compute it in wide_int.
26135
26136 2017-05-31 Richard Biener <rguenther@suse.de>
26137
26138 PR tree-optimization/80906
26139 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
26140 and pass through iv_map.
26141 (copy_bb_and_scalar_dependences): Adjust.
26142 (translate_pending_phi_nodes): Likewise.
26143 (copy_loop_close_phi_args): Handle code-generating IVs instead
26144 of ICEing.
26145
26146 2017-05-30 David Malcolm <dmalcolm@redhat.com>
26147
26148 * diagnostic-color.c (color_dict): Add "type-diff".
26149 (parse_gcc_colors): Update comment.
26150 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
26151 -fdiagnostics-show-template-tree and -fno-elide-type.
26152 (GCC_COLORS): Add type-diff to example.
26153 (type-diff=): New.
26154 (-fdiagnostics-show-template-tree): New.
26155 (-fno-elide-type): New.
26156 * pretty-print.c (pp_format): Pass quote and formatters[argno] to
26157 the pp_format_decoder callback. Call any m_format_postprocessor's
26158 "handle" method.
26159 (pretty_printer::pretty_printer): Initialize
26160 m_format_postprocessor.
26161 (pretty_printer::~pretty_printer): Delete any
26162 m_format_postprocessor.
26163 * pretty-print.h (printer_fn): Add bool and const char ** parameters.
26164 (class format_postprocessor): New class.
26165 (struct pretty_printer::format_decoder): Document the new parameters.
26166 (struct pretty_printer::m_format_postprocessor): New field.
26167 * tree-diagnostic.c (default_tree_printer): Update for new
26168 bool and const char ** params.
26169 * tree-diagnostic.h (default_tree_printer): Likewise.
26170
26171 2017-05-30 Segher Boessenkool <segher@kernel.crashing.org>
26172
26173 * config/rs6000/predicates.md (cc_reg_not_micro_cr0_operand): Delete.
26174 (lwa_operand): Delete rs6000_gen_cell_microcode test.
26175 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete
26176 rs6000_gen_cell_microcode code.
26177 (rs6000_final_prescan_insn): Delete.
26178 (rs6000_opt_vars): Delete the "gen-cell-microcode" and
26179 "warn-cell-microcode" entries.
26180 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Delete.
26181 * config/rs6000/rs6000.md: Delete rs6000_gen_cell_microcode tests
26182 throughout. Change cc_reg_not_micro_cr0_operand to
26183 cc_reg_not_cr0_operand throughout.
26184 (*extendhi<mode>2_noload): Delete.
26185 * config/rs6000/rs6000.opt (mgen-cell-microcode): Replace by stub.
26186 (mwarn-cell-microcode): Delete.
26187 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
26188 -mgen-cell-microcode and -mwarn-cell-microcode.
26189
26190 2017-05-30 Uros Bizjak <ubizjak@gmail.com>
26191
26192 PR target/80833
26193 * config/i386/constraints.md (Yd): New constraint.
26194 (Ye): Ditto.
26195 * config/i386/i386.md (*movti_internal): Add (?r, Ye)
26196 and (?Yd, r) alternatives. Update insn attributes.
26197 * config/i386/i386.md (*movti_internal): Add (?r, *Ye)
26198 and (?*Yd, r) alternatives. Update insn attributes.
26199 (double-mode inter-unit splitters): Add new GR<->XMM splitters.
26200
26201 2017-05-30 Pierre-Marie de Rodat <derodat@adacore.com>
26202
26203 * gimplify.c (gimplify_modify_expr): Don't create a
26204 DECL_DEBUG_EXPR link if *FROM_P does not belong to the current
26205 function.
26206
26207 2017-05-30 Wilco Dijkstra <wdijkstr@arm.com>
26208
26209 * config/arm/arm-builtins.c (arm_expand_builtin): Remove const.
26210
26211 2017-05-30 Richard Biener <rguenther@suse.de>
26212
26213 * tree-vectorizer.h (struct _stmt_vec_info): Add reduc_type
26214 and reduc_def fields.
26215 (STMT_VINFO_REDUC_TYPE): New define.
26216 (STMT_VINFO_REDUC_DEF): Likewise.
26217 (vect_force_simple_reduction): Adjust prototype.
26218 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Adjust.
26219 (vect_is_simple_reduction): Remove check_reduction argument.
26220 (vect_force_simple_reduction): Adjust and set
26221 STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
26222 (vectorizable_reduction): Do not re-do reduction analysis
26223 but use STMT_VINFO_REDUC_TYPE and STMT_VINFO_REDUC_DEF.
26224 * tree-parloops.c (gather_scalar_reductions): Adjust.
26225
26226 2017-05-30 Richard Biener <rguenther@suse.de>
26227
26228 PR middle-end/80901
26229 * cfgexpand.c (expand_gimple_cond): Match up loop fixup with
26230 split_edge code.
26231
26232 2017-05-24 Robin Dapp <rdapp@linux.vnet.ibm.com>
26233
26234 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs):
26235 Introduce unknown_misalignment parameter and remove vf.
26236 (vect_peeling_hash_get_lowest_cost):
26237 Pass unknown_misalignment parameter.
26238 (vect_enhance_data_refs_alignment):
26239 Fix unsupportable data ref treatment.
26240
26241 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
26242
26243 * tree-vect-data-refs.c (vect_get_data_access_cost):
26244 Workaround for SLP handling.
26245 (vect_enhance_data_refs_alignment):
26246 Compute costs for doing no peeling at all, compare to the best
26247 peeling costs so far and avoid peeling if cheaper.
26248
26249 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
26250
26251 * tree-vect-data-refs.c (vect_peeling_hash_choose_best_peeling):
26252 Return peeling info and set costs to zero for unlimited cost
26253 model.
26254 (vect_enhance_data_refs_alignment): Also inspect all datarefs
26255 with unknown misalignment. Compute and costs for unknown
26256 misalignment, compare them to the costs for known misalignment
26257 and choose the cheapest for peeling.
26258
26259 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
26260
26261 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Rename.
26262 (vect_get_peeling_costs_all_drs): Create function.
26263 (vect_peeling_hash_get_lowest_cost):
26264 Use vect_get_peeling_costs_all_drs.
26265 (vect_peeling_supportable): Create function.
26266 (vect_enhance_data_refs_alignment): Use vect_peeling_supportable.
26267
26268 2017-05-30 Robin Dapp <rdapp@linux.vnet.ibm.com>
26269
26270 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Create
26271 DR_HAS_NEGATIVE_STEP.
26272 (vect_update_misalignment_for_peel): Define DR_MISALIGNMENT.
26273 (vect_enhance_data_refs_alignment): Use.
26274 (vect_duplicate_ssa_name_ptr_info): Use.
26275 * tree-vectorizer.h (dr_misalignment): Use.
26276 (known_alignment_for_access_p): Use.
26277
26278 2017-05-30 Jozef Lawrynowicz <jozef.l@somniumtech.com>
26279
26280 PR target/78838
26281 * config/msp430/msp430.c (gen_prefix): Return NULL when section name is
26282 .lowtext.
26283 (has_section_name): New function.
26284
26285 2017-05-30 Martin Liska <mliska@suse.cz>
26286
26287 PR other/80909
26288 * auto-profile.c (get_function_decl_from_block): Fix
26289 parenthesis.
26290
26291 2017-05-30 Richard Biener <rguenther@suse.de>
26292
26293 PR middle-end/80876
26294 * cfgexpand.c (expand_gimple_cond): Fixup preserving loops again.
26295
26296 2017-05-30 Martin Liska <mliska@suse.cz>
26297
26298 * dumpfile.c: Use newly added macro DUMP_FILE_INFO.
26299 * dumpfile.h (struct dump_file_info): Remove ctors.
26300
26301 2017-05-30 Martin Liska <mliska@suse.cz>
26302
26303 * predict.def: Fix GNU coding style.
26304
26305 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
26306
26307 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
26308 Mark 'to' argument with ATTRIBUTE_UNUSED.
26309
26310 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
26311
26312 * config/xtensa/xtensa.c (xtensa_emit_call): Use
26313 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
26314 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
26315 format string.
26316
26317 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
26318
26319 * doc/install.texi (Options specification): Restore entry of
26320 --enable-sjlj-exceptions.
26321
26322 2017-05-27 Michael Eager <eager@eagercon.com>
26323
26324 Revert:
26325 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
26326
26327 See https://gcc.gnu.org/ml/gcc/2017-05/msg00221.html.
26328
26329 * config/microblaze/microblaze.h
26330 (FIXED_REGISTERS): Update in macro.
26331 (CALL_USED_REGISTERS): Update in macro.
26332
26333 2017-05-27 François-Xavier Coudett <fxcoudert@gcc.gnu.org>
26334
26335 * doc/install.texi: Add links to macOS binary distributions.
26336
26337 2017-05-27 Jakub Jelinek <jakub@redhat.com>
26338
26339 PR bootstrap/80887
26340 Revert:
26341 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
26342
26343 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
26344
26345 2017-05-26 Martin Liska <mliska@suse.cz>
26346
26347 * dumpfile.h (enum dump_kind): Renumber TDF_* flags to be contiguous.
26348
26349 2017-05-26 Martin Liska <mliska@suse.cz>
26350
26351 * cfg.c (check_bb_profile): Do not use TDF_COMMENT and print
26352 always leading ';; '.
26353 (dump_bb_info): Likewise.
26354 (brief_dump_cfg): Likewise.
26355 * cfgrtl.c (print_rtl_with_bb): Do not use TDF_COMMENT.
26356 * dumpfile.c: Remove usage of TDF_VERBOSE.
26357 * dumpfile.h (enum dump_kind): Likewise.
26358 (dump_gimple_bb_header): Do not use TDF_COMMENT.
26359 * print-tree.c (debug_verbose): Remove.
26360 * tree-cfg.c (gimple_dump_cfg): Do not use TDF_COMMENT.
26361 (dump_function_to_file): Remove dumps guarded with TDF_VERBOSE.
26362 * tree-diagnostic.c (default_tree_printer): Replace
26363 TDF_DIAGNOSTIC with TDF_SLIM.
26364
26365 2017-05-26 Bin Cheng <bin.cheng@arm.com>
26366
26367 * tree-vect-loop-manip.c (create_intersect_range_checks_index): Pass
26368 in parameter loop, rather than loop_vinfo.
26369 (create_intersect_range_checks): Ditto.
26370 (vect_create_cond_for_alias_checks): Update call to above functions.
26371
26372 2017-05-26 Bin Cheng <bin.cheng@arm.com>
26373
26374 PR tree-optimization/80815
26375 * tree-data-ref.c (prune_runtime_alias_test_list): Simplify condition
26376 for merging runtime alias checks. Handle negative DR_STEPs.
26377
26378 2017-05-26 Bin Cheng <bin.cheng@arm.com>
26379
26380 * tree-vect-data-refs.c (Operator==, comp_dr_with_seg_len_pair):
26381 Move from ...
26382 * tree-data-ref.c (Operator==, comp_dr_with_seg_len_pair): To here.
26383 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Factor
26384 out code pruning runtime alias checks.
26385 * tree-data-ref.c (prune_runtime_alias_test_list): New function
26386 factored out from above.
26387 * tree-vectorizer.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
26388 Move from ...
26389 * tree-data-ref.h (struct dr_with_seg_len, dr_with_seg_len_pair_t):
26390 ... to here.
26391 (prune_runtime_alias_test_list): New decalaration.
26392
26393 2017-05-26 Bin Cheng <bin.cheng@arm.com>
26394
26395 * tree-vect-data-refs.c (compare_tree): Rename and move ...
26396 * tree-data-ref.c (data_ref_compare_tree): ... to here.
26397 * tree-data-ref.h (data_ref_compare_tree): New decalaration.
26398 * tree-vect-data-refs.c (dr_group_sort_cmp): Update uses.
26399 (operator==, comp_dr_with_seg_len_pair): Ditto.
26400 (vect_prune_runtime_alias_test_list): Ditto.
26401
26402 2017-05-26 Martin Liska <mliska@suse.cz>
26403
26404 PR ipa/80663
26405 * params.def: Bound partial-inlining-entry-probability param.
26406
26407 2017-05-26 Marek Polacek <polacek@redhat.com>
26408
26409 PR sanitizer/80875
26410 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
26411 can be negated.
26412
26413 2017-05-26 Richard Biener <rguenther@suse.de>
26414
26415 PR tree-optimization/80842
26416 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
26417 value.
26418
26419 2017-05-26 Richard Biener <rguenther@suse.de>
26420
26421 PR tree-optimization/80844
26422 * tree-vectorizer.c (adjust_simduid_builtins): Propagate results.
26423
26424 2017-05-25 Sebastian Peryt <sebastian.peryt@intel.com>
26425
26426 * doc/md.texi (Machine Constraints): Update x86 family
26427 machine constraints section to match 'config/i386/constraints.md'.
26428
26429 2017-05-25 Volker Reichelt <v.reichelt@netcologne.de>
26430
26431 * doc/invoke.texi (-Wcatch-value=): Document new warning option.
26432
26433 2017-05-25 Nathan Sidwell <nathan@acm.org>
26434
26435 * doc/invoke.texi (--enable-languages): Update documentation.
26436
26437 2017-05-25 Martin Liska <mliska@suse.cz>
26438
26439 * dumpfile.c: Add TDF_FOLDING.
26440 * dumpfile.h (enum dump_kind): Likewise.
26441 * genmatch.c (dt_simplify::gen_1): Use it.
26442
26443 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
26444
26445 * match.pd (view_convert (convert@0 @1)): Handle zero-extension.
26446
26447 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
26448
26449 * match.pd ((A +- CST1) +- CST2): Allow some conversions.
26450 * tree.c (drop_tree_overflow): Handle COMPLEX_CST and VECTOR_CST.
26451
26452 2017-05-25 Marc Glisse <marc.glisse@inria.fr>
26453
26454 * fold-const.c (fold_binary_loc) [(A & C) == D]: Remove transformation.
26455 * match.pd (X == C): Rewrite it here.
26456 (with_possible_nonzero_bits, with_possible_nonzero_bits2,
26457 with_certain_nonzero_bits2): New predicates.
26458 * tree-ssanames.c (get_nonzero_bits): Handle INTEGER_CST.
26459
26460 2017-05-24 Nathan Sidwell <nathan@acm.org>
26461
26462 * lto-streamer-in.c (lto_input_data_block): Adjust T const cast to
26463 avoid warning.
26464
26465 * auto-profile.c (afdo_propagate): Adjust T const cast to avoid
26466 warning.
26467
26468 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
26469
26470 * config/powerpcspe: New port. Files are copied from the rs6000
26471 port, with "rs6000" in filenames replaced by "powerpcspe".
26472
26473 2017-05-24 Wilco Dijkstra <wdijkstr@arm.com>
26474
26475 PR rtl-optimization/80754
26476 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
26477
26478 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
26479
26480 * config/sparc/sparc.md (length): Return the correct value for -mflat
26481 sibcalls to match output_sibcall.
26482
26483 2017-05-24 Segher Boessenkool <segher@kernel.crashing.org>
26484
26485 PR bootstrap/80860
26486 PR bootstrap/80843
26487 * config/rs6000/rs6000.c (struct machine_function): Add new field
26488 n_components.
26489 (rs6000_get_separate_components): Init that field, use it.
26490 (rs6000_components_for_bb): Use the field.
26491
26492 2017-05-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
26493
26494 * config/arm/arm.c (arm_expand_prologue): Fix typo in comment.
26495
26496 2017-05-24 Peter Bergner <bergner@vnet.ibm.com>
26497
26498 PR middle-end/80823
26499 * tree-cfg.c (group_case_labels_stmt): Delete increment of "i";
26500
26501 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
26502
26503 PR target/80725
26504 * config/s390/s390.c (s390_check_qrst_address): Check incoming
26505 address against address_operand predicate.
26506 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
26507
26508 2017-05-24 Eric Botcazou <ebotcazou@adacore.com>
26509
26510 * var-tracking.c (track_expr_p): Do not return 0 for tracked record
26511 parameters passed indirectly.
26512
26513 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
26514
26515 * config/i386/i386.md (*movdi_internal): Remove SSE4
26516 alternative 18 (?r, *v). Update insn attributes.
26517 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
26518 Update insn attributes.
26519 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
26520 Update insn attributes.
26521 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
26522 alternative 1 (r, v). Remove isa attribute.
26523 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
26524 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
26525 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
26526
26527 2017-05-23 Tom de Vries <tom@codesourcery.com>
26528
26529 * doc/sourcebuild.texi (Directives, Verify compiler message): Document
26530 dg-line directive.
26531
26532 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
26533
26534 * cgraphunit.c (symbol_table::process_new_functions): Update.
26535 * ipa-fnsummary.c (pass_data_inline_parameters): Remove.
26536 (inline_generate_summary): Rename to ...
26537 (ipa_fn_summary_generate): ... this one.
26538 (inline_read_summary): Rename to ...
26539 (ipa_fn_summary_read): ... this one.
26540 (inline_write_summary): Rename to ...
26541 (ipa_fn_summary_write): ... this one.
26542 (inline_free_summary): Rename to ...
26543 (ipa_free_fn_summary): ... this one.
26544 (pass_data_local_fn_summary, pass_local_fn_summary,
26545 make_pass_local_fn_summary, pass_data_ipa_free_fn_summary,
26546 pass_ipa_free_fn_summary, make_pass_ipa_free_fn_summary,
26547 pass_data_ipa_fn_summary, pass_ipa_fn_summary,
26548 make_pass_ipa_fn_summary): New.
26549 * ipa-fnsummary.h (inline_generate_summary, inline_read_summary,
26550 inline_write_summary, inline_free_summary): Remove.
26551 (ipa_free_fn_summary) : New.
26552 * ipa-inline.c (ipa_inline): Update.
26553 (pass_ipa_inline): Do not generate summaries.
26554 * ipa.c (pass_data_ipa_free_fn_summary, pass_ipa_free_fn_summary):
26555 Remove.
26556 * passes.def: Replace pass_inline_parameters by pass_local_fn_summary
26557 and add pass_ipa_fn_summary.
26558 * tree-pass.h (make_pass_ipa_fn_summary, make_pass_local_fn_summary):
26559 New.
26560 (make_pass_inline_parameters): Remove.
26561
26562 2017-05-23 Thomas Schwinge <thomas@codesourcery.com>
26563
26564 * omp-low.c (struct omp_context): Remove "default_kind" member.
26565 Adjust all users.
26566
26567 * omp-offload.c (execute_oacc_device_lower): Remove the
26568 parallelism dimensions function attributes for unparallelized
26569 OpenACC kernels constructs.
26570
26571 2017-05-23 Martin Liska <mliska@suse.cz>
26572
26573 * cgraph.c (cgraph_node::get_create): Use symtab_node::dump_{asm_,}name
26574 functions.
26575 (cgraph_edge::make_speculative): Likewise.
26576 (cgraph_edge::resolve_speculation): Likewise.
26577 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
26578 (cgraph_node::dump): Likewise.
26579 * cgraph.h: Likewise.
26580 * cgraphunit.c (analyze_functions): Likewise.
26581 (symbol_table::compile): Likewise.
26582 * ipa-cp.c (print_all_lattices): Likewise.
26583 (determine_versionability): Likewise.
26584 (initialize_node_lattices): Likewise.
26585 (ipcp_verify_propagated_values): Likewise.
26586 (estimate_local_effects): Likewise.
26587 (update_profiling_info): Likewise.
26588 (create_specialized_node): Likewise.
26589 (perhaps_add_new_callers): Likewise.
26590 (decide_about_value): Likewise.
26591 (decide_whether_version_node): Likewise.
26592 (identify_dead_nodes): Likewise.
26593 (ipcp_store_bits_results): Likewise.
26594 * ipa-devirt.c (dump_targets): Likewise.
26595 (ipa_devirt): Likewise.
26596 * ipa-icf.c (sem_item::dump): Likewise.
26597 (sem_function::equals): Likewise.
26598 (sem_variable::equals): Likewise.
26599 (sem_item_optimizer::read_section): Likewise.
26600 (sem_item_optimizer::execute): Likewise.
26601 (congruence_class::dump): Likewise.
26602 * ipa-inline-analysis.c (dump_ipa_call_summary): Likewise.
26603 (dump_inline_summary): Likewise.
26604 (estimate_node_size_and_time): Likewise.
26605 (inline_analyze_function): Likewise.
26606 * ipa-inline-transform.c (inline_call): Likewise.
26607 * ipa-inline.c (report_inline_failed_reason): Likewise.
26608 (want_early_inline_function_p): Likewise.
26609 (edge_badness): Likewise.
26610 (update_edge_key): Likewise.
26611 (inline_small_functions): Likewise.
26612 * ipa-profile.c (ipa_profile): Likewise.
26613 * ipa-prop.c (ipa_print_node_jump_functions): Likewise.
26614 (ipa_make_edge_direct_to_target): Likewise.
26615 (remove_described_reference): Likewise.
26616 (ipa_impossible_devirt_target): Likewise.
26617 (propagate_controlled_uses): Likewise.
26618 (ipa_print_node_params): Likewise.
26619 (ipcp_transform_function): Likewise.
26620 * ipa-pure-const.c (pure_const_read_summary): Likewise.
26621 (propagate_pure_const): Likewise.
26622 * ipa-reference.c (generate_summary): Likewise.
26623 (read_write_all_from_decl): Likewise.
26624 (propagate): Likewise.
26625 (ipa_reference_read_optimization_summary): Likewise.
26626 * ipa-utils.c (ipa_merge_profiles): Likewise.
26627 * ipa.c (walk_polymorphic_call_targets): Likewise.
26628 (symbol_table::remove_unreachable_nodes): Likewise.
26629 (ipa_single_use): Likewise.
26630 * passes.c (execute_todo): Likewise.
26631 * predict.c (drop_profile): Likewise.
26632 * symtab.c (symtab_node::get_dump_name): New function.
26633 (symtab_node::dump_name): Likewise.
26634 (symtab_node::dump_asm_name): Likewise.
26635 (symtab_node::dump_references): Likewise.
26636 (symtab_node::dump_referring): Likewise.
26637 (symtab_node::dump_base): Likewise.
26638 (symtab_node::debug_symtab): Likewise.
26639 * tree-sra.c (convert_callers_for_node): Likewise.
26640 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
26641 * value-prof.c (init_node_map): Likewise.
26642
26643 2017-05-23 Martin Liska <mliska@suse.cz>
26644
26645 * cgraph.h: Move symtab_node::dump_table to symbol_table::dump
26646 and symtab_node::debug_symtab to symbol_table::debug.
26647 * cgraphunit.c (analyze_functions): Use the renamed function.
26648 (symbol_table::compile): Likewise.
26649 * ipa-cp.c (ipcp_verify_propagated_values): Likewise.
26650 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
26651 * passes.c (execute_todo): Likewise.
26652 * symtab.c (symbol_table::dump): New function.
26653 * tree-ssa-structalias.c (ipa_pta_execute): Use the renamed function.
26654
26655 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
26656
26657 * ipa-fnsummary.c (estimate_node_size_and_time): Do not sanity check
26658 that nonconst implies exec.
26659
26660 2017-05-23 Jan Hubicka <hubicka@ucw.cz>
26661
26662 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
26663 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
26664 (inline_edge_summary_vec): Turn into ...
26665 (ipa_call_summaries): ... this one.
26666 (redirect_to_unreachable, edge_set_predicate,
26667 evaluate_properties_for_edge, inline_summary_alloc,
26668 reset_ipa_call_summary, reset_inline_summary,
26669 inline_summary_t::duplicate): Update.
26670 (inline_edge_duplication_hook): Turn to ...
26671 (ipa_call_summary_t::duplicate): ... this one.
26672 (inline_edge_removal_hook): Turn to ...
26673 (ipa_call_summary_t::remove): ... this one.
26674 (dump_inline_edge_summary): Turn to ...
26675 (dump_ipa_call_summary): ... this one.
26676 (estimate_function_body_sizes): Update.
26677 (inline_update_callee_summaries): Update.
26678 (remap_edge_change_prob): Update.
26679 (remap_edge_summaries): Update.
26680 (inline_merge_summary): Update.
26681 (do_estimate_edge_time): Update.
26682 (inline_generate_summary): Update.
26683 (inline_read_section): Update.
26684 (inline_read_summary): Update.
26685 (inline_free_summary): Update.
26686 * ipa-inline.c (can_inline_edge_p): Update.
26687 (compute_inlined_call_time): Update.
26688 (want_inline_small_function_p): Update.
26689 (edge_badness): Update.
26690 (early_inliner): Update.
26691 * ipa-inline.h (inline_edge_summary): Turn to ...
26692 (ipa_call_summary): ... this one.
26693 (ipa_call_summary_t): New class.
26694 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
26695 (ipa_call_summaries): New.
26696 (inline_edge_summary): Remove.
26697 (estimate_edge_growth): Update.
26698 * ipa-profile.c (ipa_propagate_frequency_1): Update.
26699 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
26700 * ipa-split.c (execute_split_functions): Update.
26701 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
26702
26703 2017-05-23 Tom de Vries <tom@codesourcery.com>
26704
26705 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
26706 attributes): Document rdrand effective target.
26707
26708 2017-05-23 Tom de Vries <tom@codesourcery.com>
26709
26710 * doc/sourcebuild.texi (Effective-Target Keywords, Other hardware
26711 attributes): Sort alphabetically.
26712
26713 2017-05-23 Georg-Johann Lay <avr@gjlay.de>
26714
26715 * config/avr/genmultilib.awk: Use gsub instead of gensub.
26716
26717 2017-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
26718
26719 PR target/80718
26720 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Split
26721 V2DF/V2DI splat into two separate patterns, one that handles
26722 registers, and the other that only handles memory. Drop support
26723 for splatting from a GPR on ISA 2.07 and then splitting the
26724 splat into direct move and splat.
26725 (vsx_splat_<mode>_reg): Likewise.
26726 (vsx_splat_<mode>_mem): Likewise.
26727
26728 2017-05-22 Segher Boessenkool <segher@kernel.crashing.org>
26729
26730 * cfgcleanup.c (bb_is_just_return): Allow CLOBBERs.
26731
26732 2017-05-22 Jakub Jelinek <jakub@redhat.com>
26733
26734 PR middle-end/80809
26735 * omp-low.c (finish_taskreg_remap): New function.
26736 (finish_taskreg_scan): If unit size of ctx->record_type
26737 is non-constant, unshare the size expression and replace
26738 decls in it with possible outer var refs.
26739
26740 PR middle-end/80809
26741 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
26742 GOVD_SHARED rather than GOVD_PRIVATE with it.
26743 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
26744 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
26745
26746 PR middle-end/80853
26747 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
26748 as last argument to build_outer_var_ref for pointer bases of array
26749 section reductions.
26750
26751 2017-05-19 Martin Sebor <msebor@redhat.com>
26752
26753 * print-tree.c (print_node): Print DECL_READ_P flag.
26754
26755 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
26756
26757 * Makefile.in: Add ipa-fnsummary.o and ipa-fnsummary.h
26758 * auto-profile.c: Replace ipa-inline.h by ipa-fnsummary.h
26759 * cgraph.c: Likewise.
26760 * cgraphunit.c: Likewise.
26761 * gengtype.c: Likewise.
26762 * ipa-cp.c: Likewise.
26763 * ipa-devirt.c: Likewise.
26764 * ipa-icf.c: Likewise.
26765 * ipa-predicate.c: Likewise.
26766 * ipa-profile.c: Likewise.
26767 * ipa-prop.c: Likewise.
26768 * ipa-split.c: Likewise.
26769 * ipa.c: Likewise.
26770 * ipa-inline-analysis.c (inline_summaries, ipa_call_summaries,
26771 edge_predicate_pool, dump_inline_hints,
26772 inline_summary::account_size_time, redirect_to_unreachable,
26773 edge_set_predicate, set_hint_predicate,
26774 evaluate_conditions_for_known_args, evaluate_properties_for_edge,
26775 inline_summary_alloc, ipa_call_summary::reset, inline_summary::reset,
26776 inline_summary_t::remove, remap_hint_predicate_after_duplication,
26777 inline_summary_t::duplicate, ipa_call_summary_t::duplicate,
26778 ipa_call_summary_t::remove, initialize_growth_caches,
26779 free_growth_caches, dump_ipa_call_summary, dump_inline_summary,
26780 debug_inline_summary, dump_inline_summaries, initialize_inline_failed,
26781 mark_modified, unmodified_parm_1, unmodified_parm,
26782 unmodified_parm_or_parm_agg_item, eliminated_by_inlining_prob,
26783 set_cond_stmt_execution_predicate, set_switch_stmt_execution_predicate,
26784 compute_bb_predicates, will_be_nonconstant_expr_predicate,
26785 will_be_nonconstant_predicate, record_modified_bb_info,
26786 get_minimal_bb, record_modified, param_change_prob,
26787 phi_result_unknown_predicate, predicate_for_phi_result,
26788 array_index_predicate, clobber_only_eh_bb_p, fp_expression_p,
26789 estimate_function_body_sizes, compute_inline_parameters,
26790 compute_inline_parameters_for_curren, pass_data_inline_parameters,
26791 estimate_node_size_and_time, estimate_ipcp_clone_size_and_time,
26792 inline_update_callee_summaries, remap_edge_change_prob,
26793 remap_edge_summaries, remap_hint_predicate, inline_merge_summary,
26794 inline_update_overall_summary, inline_indirect_intraprocedural_analysis,
26795 inline_analyze_function, inline_summary_t::insert,
26796 inline_generate_summary, read_ipa_call_summary, inline_read_section,
26797 inline_read_summary, write_ipa_call_summary, inline_write_summary,
26798 inline_free_summary): Move to ipa-fnsummary.h
26799 (predicate_t): Remove.
26800 * ipa-fnsummary.c: New file.
26801 * ipa-inline.h: Do not include sreal.h and ipa-predicate.h
26802 (enum inline_hints_vals, inline_hints, agg_position_info,
26803 INLINE_SIZE_SCALE, size_time_entry, inline_summary, inline_summary_t,
26804 inline_summaries, ipa_call_summary, ipa_call_summary_t,
26805 ipa_call_summaries, debug_inline_summary, dump_inline_summaries,
26806 dump_inline_summary, dump_inline_hints, inline_generate_summary,
26807 inline_read_summary, inline_write_summary, inline_free_summary,
26808 inline_analyze_function, initialize_inline_failed,
26809 inline_merge_summary, inline_update_overall_summary,
26810 compute_inline_parameters): Move to ipa-fnsummary.h
26811 * ipa-fnsummary.h: New file.
26812 * ipa-inline-transform.h: Include ipa-inline.h.
26813 * ipa-inline.c: LIkewise.
26814
26815 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
26816
26817 * ipa-inline.c (edge_badness): Use inlined_time instead of
26818 inline_summaries->get.
26819
26820 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
26821
26822 * ipa-inline.c (edge_badness): Use estimate_size_after_inlining.
26823
26824 2017-05-22 Nathan Sidwell <nathan@acm.org>
26825
26826 * doc/invoke.texi (fdump-translation-unit): Delete documentation.
26827 (fdump-lang): Document 'raw' option.
26828 * dumpfile.h (TDI_tu): Delete.
26829 * dumpfile.c (dump_files): Remove translation-unit.
26830 (FIRST_AUTO_NUMBERED_DUMP): Decrement.
26831
26832 2017-05-22 Georg-Johann Lay <avr@gjlay.de>
26833
26834 * config/avr/t-avr (AWK) [t-multilib]: Remove "-v FORMAT=Makefile"
26835 command option from $(AWK) call.
26836 * config/avr/genmultilib.awk: Simplify and rewrite so that it
26837 generates MULTILIB_REQUIRED instead of MULTILIB_EXCEPTIONS.
26838 [FORMAT]: Remove handling of variable.
26839 * config/avr/t-multilib: Regenerate.
26840
26841 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
26842
26843 * ipa-inline-analysis.c (inline_summary::reset): Do not reset
26844 self_time.
26845 (dump_inline_summary): Do not print self_time.
26846 (estimate_function_body_sizes): Do not set self_time.
26847 (compute_inline_parameters): Likewise.
26848 (inline_read_section, inline_write_summary): Do not stream self_time.
26849 * ipa-inline.h (inline_summary): Drop self_time.
26850
26851 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
26852
26853 * ipa-inline-analysis.c (account_size_time): Rename to ...
26854 (inline_summary::account_size_time): ... this one.
26855 (reset_ipa_call_summary): Turn to ...
26856 (ipa_call_summary::reset): ... this one.
26857 (reset_inline_summary): Turn to ...
26858 (inline_summary::reset): ... this one.
26859 (inline_summary_t::remove): Update.
26860 (inline_summary_t::duplicate): Update.
26861 (ipa_call_summary_t::remove): Update.
26862 (dump_inline_summary): Update.
26863 (estimate_function_body_sizes): Update.
26864 (compute_inline_parameters): Update.
26865 (estimate_node_size_and_time): Update.
26866 (inline_merge_summary): Update.
26867 (inline_update_overall_summary): Update.
26868 (inline_read_section): Update.
26869 (inline_write_summary): Update.
26870 * ipa-inline.h (inline_summary): Rename entry to size_time_table;
26871 add account_size_time and reset member functions.
26872 (ipa_call_summary): Add reset function.
26873 * ipa-predicate.h (predicate::operator &): Constify.
26874
26875 2017-05-22 Richard Biener <rguenther@suse.de>
26876
26877 * df-scan.c (df_insn_refs_verify): Speedup when not verifying.
26878
26879 2017-05-19 Jason Merrill <jason@redhat.com>
26880
26881 * tree.c (make_tree_vec_stat, grow_tree_vec_stat): Use size_t.
26882
26883 2017-05-19 Marek Polacek <polacek@redhat.com>
26884
26885 PR sanitizer/80800
26886 * fold-const.c (extract_muldiv_1) <case TRUNC_DIV_EXPR>: Add
26887 TYPE_OVERFLOW_WRAPS checks.
26888
26889 2017-05-19 Thomas Schwinge <thomas@codesourcery.com>
26890
26891 * tree-core.h (enum omp_clause_default_kind): Add
26892 "OMP_CLAUSE_DEFAULT_PRESENT".
26893 * tree-pretty-print.c (dump_omp_clause): Handle it.
26894 * gimplify.c (enum gimplify_omp_var_data): Add
26895 "GOVD_MAP_FORCE_PRESENT".
26896 (gimplify_adjust_omp_clauses_1): Map it to
26897 "GOMP_MAP_FORCE_PRESENT".
26898 (oacc_default_clause): Handle "OMP_CLAUSE_DEFAULT_PRESENT".
26899
26900 * gimplify.c (oacc_default_clause): Clarify.
26901
26902 2017-05-19 Nathan Sidwell <nathan@acm.org>
26903
26904 LANG_HOOK_REGISTER_DUMPS
26905 * toplev.c (general_init): Call register dump lang hook.
26906 * doc/invoke.texi: Document -fdump-lang option family.
26907 * dumpfile.c (dump_files): Remove class dump here.
26908 (FIRST_AUTO_NUMBERED_DUMP): Adjust.
26909 * dumpfile.h (tree_dump_index): Remove TDI_class.
26910 * langhooks-def.h (lhd_register_dumps): Declare.
26911 (LANG_HOOKS_REGISTER_DUMPS): Define.
26912 (LANG_HOOKS_INITIALIZER): Add it.
26913 * langhooks.c (lhd_register_dumps): Define.
26914 * langhooks.h (struct lang_hooks): Add register_dumps.
26915
26916 2017-05-19 Nathan Sidwell <nathan@acm.org>
26917
26918 * context.h (context::set_passes): New.
26919 * context.c (context::context): Do not create pass manager.
26920 * toplev.c (general_init): Create pass manager here.
26921
26922 2017-05-19 Segher Boessenkool <segher@kernel.crashing.org>
26923
26924 * config/rs6000/rs6000.md (splitter to load of -1 and mask): Don't
26925 use this splitter if two add or or instructions would also work for
26926 the constant we want to generate.
26927
26928 2017-05-19 Richard Biener <rguenther@suse.de>
26929
26930 PR build/80821
26931 * genmatch.c (dt_node::gen_kids_1): Add missing scope around
26932 predicate evaluation.
26933
26934 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
26935
26936 * ipa-inline.h (ipa_call_summary): Turn sizes into signed;
26937 add ctor.
26938 * ipa-inline.c (want_inline_small_function_p): Do not cast to
26939 unsigned.
26940
26941 2017-05-19 Jan Hubicka <hubicka@ucw.cz>
26942
26943 * ipa-inline-analysis.c (cgraph_2edge_hook_list, cgraph_edge_hook_list,
26944 inline_edge_removal_hook, inline_edge_duplication_hook): Remove.
26945 (inline_edge_summary_vec): Turn into ...
26946 (ipa_call_summaries): ... this one.
26947 (redirect_to_unreachable, edge_set_predicate,
26948 evaluate_properties_for_edge, inline_summary_alloc,
26949 reset_ipa_call_summary, reset_inline_summary,
26950 inline_summary_t::duplicate): Update.
26951 (inline_edge_duplication_hook): Turn to ...
26952 (ipa_call_summary_t::duplicate): ... this one.
26953 (inline_edge_removal_hook): Turn to ...
26954 (ipa_call_summary_t::remove): ... this one.
26955 (dump_inline_edge_summary): Turn to ...
26956 (dump_ipa_call_summary): ... this one.
26957 (estimate_function_body_sizes): Update.
26958 (inline_update_callee_summaries): Update.
26959 (remap_edge_change_prob): Update.
26960 (remap_edge_summaries): Update.
26961 (inline_merge_summary): Update.
26962 (do_estimate_edge_time): Update.
26963 (inline_generate_summary): Update.
26964 (inline_read_section): Update.
26965 (inline_read_summary): Update.
26966 (inline_free_summary): Update.
26967 * ipa-inline.c (can_inline_edge_p): Update.
26968 (compute_inlined_call_time): Update.
26969 (want_inline_small_function_p): Update.
26970 (edge_badness): Update.
26971 (early_inliner): Update.
26972 * ipa-inline.h (inline_edge_summary): Turn to ...
26973 (ipa_call_summary): ... this one.
26974 (ipa_call_summary_t): New class.
26975 (inline_edge_summary_t, inline_edge_summary_vec): Remove.
26976 (ipa_call_summaries): New.
26977 (inline_edge_summary): Remove.
26978 (estimate_edge_growth): Update.
26979 * ipa-profile.c (ipa_propagate_frequency_1): Update.
26980 * ipa-prop.c (ipa_make_edge_direct_to_target): Update.
26981 * ipa-split.c (execute_split_functions): Update.
26982 * ipa.c (symbol_table::remove_unreachable_nodes): Update.
26983
26984 2017-05-19 Richard Biener <rguenther@suse.de>
26985
26986 PR middle-end/80764
26987 * cfgexpand.c (expand_gimple_cond): Fix loop fixup.
26988
26989 2017-05-18 Segher Boessenkool <segher@kernel.crashing.org>
26990
26991 * config/rs6000/rs6000.c (struct machine_function): Add field
26992 fpr_is_wrapped_separately.
26993 (rs6000_get_separate_components): Use 64 components. Handle the
26994 new FPR components.
26995 (rs6000_components_for_bb): Handle the FPR components.
26996 (rs6000_emit_prologue_components): Handle the FPR components.
26997 (rs6000_emit_epilogue_components): Handle the FPR components.
26998 (rs6000_set_handled_components): Handle the FPR components.
26999 (rs6000_emit_prologue): Don't output prologue code for those FPRs
27000 that are already separately shrink-wrapped.
27001 (rs6000_emit_epilogue): Don't output epilogue code for those FPRs
27002 that are already separately shrink-wrapped.
27003
27004 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
27005
27006 PR target/80510
27007 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
27008 New predicate.
27009
27010 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
27011 (define_peephole2 for Altivec d-form load): Add peepholes to catch
27012 cases where the register allocator uses a move and an offsettable
27013 memory operation to/from a FPR register on ISA 2.06/2.07.
27014 (define_peephole2 for Altivec d-form store): Likewise.
27015
27016 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
27017
27018 PR target/80799
27019 * config/i386/mmx.md (*mov<mode>_internal): Enable
27020 alternatives 11, 12, 13 and 14 also for 32bit targets.
27021 Remove alternatives 15, 16, 17 and 18.
27022 * config/i386/sse.md (vec_concatv2di): Change
27023 alternative (!x, *y) to (x, ?!*Yn).
27024
27025 2017-05-18 Paolo Carlini <paolo.carlini@oracle.com>
27026
27027 * dumpfile.h (enum dump_kind): Remove stray comma.
27028
27029 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
27030
27031 * Makefile.in: Add ipa-predicate.o and ipa-predicate.h
27032 * ipa-inline-analysis.c (NUM_CONDITIONS): turn into
27033 predicate::num_conditions
27034 (IS_NOT_CONSTANT): turn into predicate::is_not_constant.
27035 (CHANGED): turn into predicate::changed.
27036 (agg_position_info): Move to ipa-predicate.h
27037 (add_condition, predicate::add_clause, predicate::operator &=,
27038 predicate::or_with, predicate::evaluate, predicate::probability,
27039 dump_condition, dump_clause, predicate::dump,
27040 predicate::remap_after_duplication, predicate::remap_after_inlining,
27041 predicate::stream_in, predicate::stream_out): Move to ipa-predicate.c
27042 (evaluate_conditions_for_known_args): Update.
27043 (set_cond_stmt_execution_predicate): Update.
27044 * ipa-inline.h: Include ipa-predicate.h
27045 (condition, inline_param_summary, conditions, agg_position_info,
27046 predicate): Move to ipa-predicate.h
27047 * ipa-predicate.c: New file.
27048 * ipa-predicate.h: New file.
27049
27050 2017-05-18 Wilco Dijkstra <wdijkstr@arm.com>
27051
27052 * final.c (leaf_function_p): Check we are not in a sequence.
27053
27054 2017-05-18 Martin Liska <mliska@suse.cz>
27055
27056 * cfgrtl.c (rtl_verify_edges): Remove usage of TDF_RTL.
27057 * dumpfile.c (dump_register): Use new enum dump_kind.
27058 (get_dump_file_name): Likewise.
27059 (dump_enable_all): Likewise.
27060 (dump_switch_p_1): Likewise.
27061 (enable_rtl_dump_file): Remove usage of TDF_RTL.
27062 * dumpfile.h (enum dump_kind): New enum type.
27063 (struct dump_file_info): Create constructor and
27064 format fields and comments.
27065 * passes.c (pass_manager::register_one_dump_file):
27066 Use num dump_kind.
27067 * statistics.c (statistics_early_init): Likewise.
27068 * tree-ssa-loop-prefetch.c (dump_mem_details): Replace
27069 TDF_TREE with TDF_SLIM.
27070 (gather_memory_references_ref): Likewise.
27071
27072 2017-05-18 Martin Liska <mliska@suse.cz>
27073
27074 * vec.h (struct vnull): Use it.
27075
27076 2017-05-18 Jan Hubicka <hubicka@ucw.cz>
27077
27078 * ipa-inline-analysis.c (predicate_conditions): Move to ipa-inline.h
27079 (true_predicate, false_predicate, true_predicate_p,
27080 false_predicate_p): Remove.
27081 (single_cond_predicate, not_inlined_predicate): Turn to member function
27082 in ipa-inline.h
27083 (add_condition): Update.
27084 (add_clause): Turn to...
27085 (predicate::add_clause): ... this one; update; allow passing NULL
27086 as parameter.
27087 (and_predicates): Turn to ...
27088 (predicate::operator &=): ... this one.
27089 (predicates_equal_p): Move to predicate::operator == in ipa-inline.h
27090 (or_predicates): Turn to ...
27091 (predicate::or_with): ... this one.
27092 (evaluate_predicate): Turn to ...
27093 (predicate::evaluate): ... this one.
27094 (predicate_probability): Turn to ...
27095 (predicate::probability): ... this one.
27096 (dump_condition): Update.
27097 (dump_predicate): Turn to ...
27098 (predicate::dump): ... this one.
27099 (account_size_time): Update.
27100 (edge_set_predicate): Update.
27101 (set_hint_predicate): UPdate.
27102 (evaluate_conditions_for_known_args): Update.
27103 (evaluate_properties_for_edge): Update.
27104 (remap_predicate_after_duplication): Turn to...
27105 (predicate::remap_after_duplication): ... this one.
27106 (remap_hint_predicate_after_duplication): Update.
27107 (inline_summary_t::duplicate): UPdate.
27108 (dump_inline_edge_summary): Update.
27109 (dump_inline_summary): Update.
27110 (set_cond_stmt_execution_predicate): Update.
27111 (set_switch_stmt_execution_predicate): Update.
27112 (compute_bb_predicates): Update.
27113 (will_be_nonconstant_expr_predicate): Update.
27114 (will_be_nonconstant_predicate): Update.
27115 (phi_result_unknown_predicate): Update.
27116 (predicate_for_phi_result): Update.
27117 (array_index_predicate): Update.
27118 (estimate_function_body_sizes): Update.
27119 (estimate_node_size_and_time): Update.
27120 (estimate_ipcp_clone_size_and_time): Update.
27121 (remap_predicate): Rename to ...
27122 (predicate::remap_after_inlining): ... this one.
27123 (remap_hint_predicate): Update.
27124 (inline_merge_summary): Update.
27125 (inline_update_overall_summary): Update.
27126 (estimate_size_after_inlining): Update.
27127 (read_predicate): Rename to ...
27128 (predicate::stream_in): ... this one.
27129 (read_inline_edge_summary): Update.
27130 (write_predicate): Rename to ...
27131 (predicate::stream_out): ... this one.
27132 (write_inline_edge_summary): Update.
27133 * ipa-inline.h (MAX_CLAUSES): Turn to predicate::max_clauses.
27134 (clause_t): Turn to uint32_t
27135 (predicate): Turn to class; implement constructor and operators
27136 ==, !=, &
27137 (size_time_entry): Update.
27138 (inline_summary): Update.
27139 (inline_edge_summary): Update.
27140
27141 2017-05-18 Marc Glisse <marc.glisse@inria.fr>
27142
27143 * fold-const.c (fold_binary_loc): Move transformation...
27144 * match.pd (C - X CMP X): ... here.
27145
27146 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
27147
27148 * config/sparc/sparc.c (sparc_option_override): Set function
27149 alignment for -mcpu=niagara7 to 64 to match the I$ line.
27150 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
27151 latency to 1.
27152 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
27153 latency to 2.
27154 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
27155
27156 2017-05-18 Marek Polacek <polacek@redhat.com>
27157
27158 PR sanitizer/80797
27159 * ubsan.c (instrument_null): Unwrap ADDR_EXPRs.
27160 (pass_ubsan::execute): Call gimple_assign_single_p instead of
27161 gimple_assign_load_p.
27162
27163 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
27164
27165 PR middle-end/80692
27166 * real.c (do_compare): Give decimal_do_compare preference over
27167 comparing just the signs.
27168
27169 2017-05-17 Uros Bizjak <ubizjak@gmail.com>
27170
27171 * doc/md.texi (Canonicalization of Instructions): Describe the
27172 canonical form of instructions that inherently set a condition
27173 code register.
27174
27175 2017-05-17 Peter Bergner <bergner@vnet.ibm.com>
27176
27177 PR middle-end/80775
27178 * tree-cfg.c: Move deletion of unreachable case statements to after
27179 the merging of consecutive case labels.
27180
27181 2017-05-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
27182
27183 * config/arm/arm.c (cmse_nonsecure_call_clear_caller_saved): Refer
27184 readers to __gnu_cmse_nonsecure_call libcall for saving, clearing and
27185 restoring of callee-saved registers.
27186
27187 2017-05-17 Eric Botcazou <ebotcazou@adacore.com>
27188
27189 * compare-elim.c (equivalent_reg_at_start): Adjust outdated comment.
27190 * config/visium/visium.c (single_set_and_flags): Likewise.
27191 * config/visium/visium.md (Substitutions): Likewise.
27192
27193 2017-05-17 Martin Liska <mliska@suse.cz>
27194
27195 * cfg.c: Introduce dump_flags_t type and
27196 use it instead of int type.
27197 * cfg.h: Likewise.
27198 * cfghooks.c: Likewise.
27199 * cfghooks.h (struct cfg_hooks): Likewise.
27200 * cfgrtl.c: Likewise.
27201 * cfgrtl.h: Likewise.
27202 * cgraph.c (cgraph_node::get_body): Likewise.
27203 * coretypes.h: Likewise.
27204 * domwalk.c: Likewise.
27205 * domwalk.h: Likewise.
27206 * dumpfile.c (struct dump_option_value_info): Likewise.
27207 (dump_enable_all): Likewise.
27208 (dump_switch_p_1): Likewise.
27209 (opt_info_switch_p): Likewise.
27210 * dumpfile.h (enum tree_dump_index): Likewise.
27211 (struct dump_file_info): Likewise.
27212 * genemit.c: Likewise.
27213 * generic-match-head.c: Likewise.
27214 * gengtype.c (open_base_files): Likewise.
27215 * gimple-pretty-print.c: Likewise.
27216 * gimple-pretty-print.h: Likewise.
27217 * graph.c (print_graph_cfg): Likewise.
27218 * graphite-scop-detection.c (dot_all_sese): Likewise.
27219 * ipa-devirt.c (build_type_inheritance_graph): Likewise.
27220 * loop-unroll.c (report_unroll): Likewise.
27221 * passes.c (pass_manager::register_one_dump_file): Likewise.
27222 * print-tree.c: Likewise.
27223 * statistics.c: Likewise.
27224 * tree-cfg.c: Likewise.
27225 * tree-cfg.h: Likewise.
27226 * tree-dfa.c: Likewise.
27227 * tree-dfa.h: Likewise.
27228 * tree-dump.c (dump_function): Likewise.
27229 * tree-dump.h (struct dump_info): Likewise.
27230 * tree-pretty-print.c: Likewise.
27231 * tree-pretty-print.h: Likewise.
27232 * tree-ssa-live.c: Likewise.
27233 * tree-ssa-live.h: Likewise.
27234 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
27235 * tree-vect-loop.c: Likewise.
27236 * tree-vect-slp.c: Likewise.
27237
27238 2017-05-16 James Greenhalgh <james.greenhalgh@arm.com>
27239 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27240
27241 PR tree-optimization/80457
27242 * tree-vect-stmts.c (vect_model_simple_cost): Model the cost
27243 of all arguments to a statement as scalar_to_vec operations.
27244 (vectorizable_call): Adjust call to vect_model_simple_cost for
27245 new parameter.
27246 (vectorizable_conversion): Likewise.
27247 (vectorizable_assignment): Likewise.
27248 (vectorizable_shift): Likewise.
27249 (vectorizable_operation): Likewise.
27250 (vectorizable_comparison): Likewise.
27251 (vect_is_simple_cond): Record the def types for operands.
27252 (vectorizable_condition): Likewise, call vect_model_simple_cost.
27253 * tree-vectorizer.h (vect_model_simple_cost): Add new parameter
27254 for statement argument count.
27255
27256 2017-05-16 Carl Love <cel@us.ibm.com>
27257
27258 * config/rs6000/rs6000-c: Add support for built-in functions
27259 vector unsigned long long vec_bperm (vector unsigned long long,
27260 vector unsigned char)
27261 vector signed long long vec_mule (vector signed int,
27262 vector signed int)
27263 vector unsigned long long vec_mule (vector unsigned int,
27264 vector unsigned int)
27265 vector signed long long vec_mulo (vector signed int,
27266 vector signed int)
27267 vector unsigned long long vec_mulo (vector unsigned int,
27268 vector unsigned int)
27269 vector signed char vec_sldw (vector signed char,
27270 vector signed char,
27271 const int)
27272 vector unsigned char vec_sldw (vector unsigned char,
27273 vector unsigned char,
27274 const int)
27275 vector signed short vec_sldw (vector signed short,
27276 vector signed short,
27277 const int)
27278 vector unsigned short vec_sldw (vector unsigned short,
27279 vector unsigned short,
27280 const int)
27281 vector signed int vec_sldw (vector signed int,
27282 vector signed int,
27283 const int)
27284 vector unsigned int vec_sldw (vector unsigned int,
27285 vector unsigned int,
27286 const int)
27287 vector signed long long vec_sldw (vector signed long long,
27288 vector signed long long,
27289 const int)
27290 vector unsigned long long vec_sldw (vector unsigned long long,
27291 vector unsigned long long,
27292 const int)
27293 * config/rs6000/rs6000-c: Add support for built-in functions
27294 * config/rs6000/rs6000-builtin.def: Add definition for SLDW.
27295 * config/rs6000/altivec.h: Add defintion for vec_sldw.
27296 * doc/extend.texi: Update the built-in documentation for the
27297 new built-in functions.
27298
27299 2017-05-16 Marek Polacek <polacek@redhat.com>
27300
27301 PR sanitizer/80536
27302 PR sanitizer/80386
27303 * tree.c (save_expr): Don't fold the expression.
27304
27305 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
27306
27307 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
27308 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
27309 and (?*y,m). Update insn attributes.
27310
27311 2017-05-16 Martin Liska <mliska@suse.cz>
27312
27313 * cgraph.c (cgraph_edge::resolve_speculation): Add default value for
27314 flags argument of print_gimple_stmt, print_gimple_expr,
27315 print_generic_stmt and print_generic_expr.
27316 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
27317 * coretypes.h: Likewise.
27318 * except.c (dump_eh_tree): Likewise.
27319 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
27320 * gimple-pretty-print.h: Likewise.
27321 * gimple-ssa-backprop.c (dump_usage_prefix): Likewise.
27322 (backprop::push_to_worklist): Likewise.
27323 (backprop::pop_from_worklist): Likewise.
27324 (backprop::process_use): Likewise.
27325 (backprop::intersect_uses): Likewise.
27326 (note_replacement): Likewise.
27327 * gimple-ssa-store-merging.c
27328 (pass_store_merging::terminate_all_aliasing_chains): Likewise.
27329 (imm_store_chain_info::coalesce_immediate_stores): Likewise.
27330 (pass_store_merging::execute): Likewise.
27331 * gimple-ssa-strength-reduction.c (dump_candidate): Likewise.
27332 (ssa_base_cand_dump_callback): Likewise.
27333 (dump_incr_vec): Likewise.
27334 (replace_refs): Likewise.
27335 (replace_mult_candidate): Likewise.
27336 (create_add_on_incoming_edge): Likewise.
27337 (create_phi_basis): Likewise.
27338 (insert_initializers): Likewise.
27339 (all_phi_incrs_profitable): Likewise.
27340 (introduce_cast_before_cand): Likewise.
27341 (replace_one_candidate): Likewise.
27342 * gimplify.c (gimplify_expr): Likewise.
27343 * graphite-isl-ast-to-gimple.c (is_valid_rename): Likewise.
27344 (set_rename): Likewise.
27345 (rename_uses): Likewise.
27346 (copy_loop_phi_nodes): Likewise.
27347 (add_close_phis_to_merge_points): Likewise.
27348 (copy_loop_close_phi_args): Likewise.
27349 (copy_cond_phi_args): Likewise.
27350 (graphite_copy_stmts_from_block): Likewise.
27351 (translate_pending_phi_nodes): Likewise.
27352 * graphite-poly.c (print_pdr): Likewise.
27353 (dump_gbb_cases): Likewise.
27354 (dump_gbb_conditions): Likewise.
27355 (print_scop_params): Likewise.
27356 * graphite-scop-detection.c (build_cross_bb_scalars_def): Likewise.
27357 (build_cross_bb_scalars_use): Likewise.
27358 (gather_bbs::before_dom_children): Likewise.
27359 * hsa-dump.c (dump_hsa_immed): Likewise.
27360 * ipa-cp.c (print_ipcp_constant_value): Likewise.
27361 (get_replacement_map): Likewise.
27362 * ipa-inline-analysis.c (dump_condition): Likewise.
27363 (estimate_function_body_sizes): Likewise.
27364 * ipa-polymorphic-call.c (check_stmt_for_type_change): Likewise.
27365 (ipa_polymorphic_call_context::get_dynamic_type): Likewise.
27366 * ipa-prop.c (ipa_dump_param): Likewise.
27367 (ipa_print_node_jump_functions_for_edge): Likewise.
27368 (ipa_modify_call_arguments): Likewise.
27369 (ipa_modify_expr): Likewise.
27370 (ipa_dump_param_adjustments): Likewise.
27371 (ipa_dump_agg_replacement_values): Likewise.
27372 (ipcp_modif_dom_walker::before_dom_children): Likewise.
27373 * ipa-pure-const.c (check_stmt): Likewise.
27374 (pass_nothrow::execute): Likewise.
27375 * ipa-split.c (execute_split_functions): Likewise.
27376 * omp-offload.c (dump_oacc_loop_part): Likewise.
27377 (dump_oacc_loop): Likewise.
27378 * trans-mem.c (tm_log_emit): Likewise.
27379 (tm_memopt_accumulate_memops): Likewise.
27380 (dump_tm_memopt_set): Likewise.
27381 (dump_tm_memopt_transform): Likewise.
27382 * tree-cfg.c (gimple_verify_flow_info): Likewise.
27383 (print_loop): Likewise.
27384 * tree-chkp-opt.c (chkp_print_addr): Likewise.
27385 (chkp_gather_checks_info): Likewise.
27386 (chkp_get_check_result): Likewise.
27387 (chkp_remove_check_if_pass): Likewise.
27388 (chkp_use_outer_bounds_if_possible): Likewise.
27389 (chkp_reduce_bounds_lifetime): Likewise.
27390 * tree-chkp.c (chkp_register_addr_bounds): Likewise.
27391 (chkp_mark_completed_bounds): Likewise.
27392 (chkp_register_incomplete_bounds): Likewise.
27393 (chkp_mark_invalid_bounds): Likewise.
27394 (chkp_maybe_copy_and_register_bounds): Likewise.
27395 (chkp_build_returned_bound): Likewise.
27396 (chkp_get_bound_for_parm): Likewise.
27397 (chkp_build_bndldx): Likewise.
27398 (chkp_get_bounds_by_definition): Likewise.
27399 (chkp_generate_extern_var_bounds): Likewise.
27400 (chkp_get_bounds_for_decl_addr): Likewise.
27401 * tree-chrec.c (chrec_apply): Likewise.
27402 * tree-data-ref.c (dump_data_reference): Likewise.
27403 (dump_subscript): Likewise.
27404 (dump_data_dependence_relation): Likewise.
27405 (analyze_overlapping_iterations): Likewise.
27406 * tree-inline.c (expand_call_inline): Likewise.
27407 (tree_function_versioning): Likewise.
27408 * tree-into-ssa.c (dump_defs_stack): Likewise.
27409 (dump_currdefs): Likewise.
27410 (dump_names_replaced_by): Likewise.
27411 (dump_update_ssa): Likewise.
27412 (update_ssa): Likewise.
27413 * tree-object-size.c (pass_object_sizes::execute): Likewise.
27414 * tree-parloops.c (build_new_reduction): Likewise.
27415 (try_create_reduction_list): Likewise.
27416 (ref_conflicts_with_region): Likewise.
27417 (oacc_entry_exit_ok_1): Likewise.
27418 (oacc_entry_exit_single_gang): Likewise.
27419 * tree-pretty-print.h: Likewise.
27420 * tree-scalar-evolution.c (set_scalar_evolution): Likewise.
27421 (get_scalar_evolution): Likewise.
27422 (add_to_evolution): Likewise.
27423 (get_loop_exit_condition): Likewise.
27424 (analyze_evolution_in_loop): Likewise.
27425 (analyze_initial_condition): Likewise.
27426 (analyze_scalar_evolution): Likewise.
27427 (instantiate_scev): Likewise.
27428 (number_of_latch_executions): Likewise.
27429 (gather_chrec_stats): Likewise.
27430 (final_value_replacement_loop): Likewise.
27431 (scev_const_prop): Likewise.
27432 * tree-sra.c (dump_access): Likewise.
27433 (disqualify_candidate): Likewise.
27434 (create_access): Likewise.
27435 (reject): Likewise.
27436 (maybe_add_sra_candidate): Likewise.
27437 (create_access_replacement): Likewise.
27438 (analyze_access_subtree): Likewise.
27439 (analyze_all_variable_accesses): Likewise.
27440 (sra_modify_assign): Likewise.
27441 (initialize_constant_pool_replacements): Likewise.
27442 (find_param_candidates): Likewise.
27443 (decide_one_param_reduction): Likewise.
27444 (replace_removed_params_ssa_names): Likewise.
27445 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
27446 * tree-ssa-copy.c (dump_copy_of): Likewise.
27447 (copy_prop_visit_cond_stmt): Likewise.
27448 * tree-ssa-dce.c (mark_operand_necessary): Likewise.
27449 * tree-ssa-dom.c (pass_dominator::execute): Likewise.
27450 (record_equivalences_from_stmt): Likewise.
27451 * tree-ssa-dse.c (compute_trims): Likewise.
27452 (delete_dead_call): Likewise.
27453 (delete_dead_assignment): Likewise.
27454 * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
27455 (forward_propagate_into_cond): Likewise.
27456 (pass_forwprop::execute): Likewise.
27457 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
27458 * tree-ssa-loop-im.c (invariantness_dom_walker::before_dom_children):
27459 Likewise.
27460 (move_computations_worker): Likewise.
27461 (execute_sm): Likewise.
27462 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
27463 (remove_exits_and_undefined_stmts): Likewise.
27464 (remove_redundant_iv_tests): Likewise.
27465 * tree-ssa-loop-ivopts.c (dump_use): Likewise.
27466 (adjust_iv_update_pos): Likewise.
27467 * tree-ssa-math-opts.c (bswap_replace): Likewise.
27468 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Likewise.
27469 (value_replacement): Likewise.
27470 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
27471 * tree-ssa-pre.c (print_pre_expr): Likewise.
27472 (get_representative_for): Likewise.
27473 (create_expression_by_pieces): Likewise.
27474 (insert_into_preds_of_block): Likewise.
27475 (eliminate_insert): Likewise.
27476 (eliminate_dom_walker::before_dom_children): Likewise.
27477 (eliminate): Likewise.
27478 (remove_dead_inserted_code): Likewise.
27479 * tree-ssa-propagate.c (substitute_and_fold): Likewise.
27480 * tree-ssa-reassoc.c (get_rank): Likewise.
27481 (eliminate_duplicate_pair): Likewise.
27482 (eliminate_plus_minus_pair): Likewise.
27483 (eliminate_not_pairs): Likewise.
27484 (undistribute_ops_list): Likewise.
27485 (eliminate_redundant_comparison): Likewise.
27486 (update_range_test): Likewise.
27487 (optimize_range_tests_var_bound): Likewise.
27488 (optimize_vec_cond_expr): Likewise.
27489 (rewrite_expr_tree): Likewise.
27490 (rewrite_expr_tree_parallel): Likewise.
27491 (linearize_expr): Likewise.
27492 (break_up_subtract): Likewise.
27493 (linearize_expr_tree): Likewise.
27494 (attempt_builtin_powi): Likewise.
27495 (attempt_builtin_copysign): Likewise.
27496 (transform_stmt_to_copy): Likewise.
27497 (transform_stmt_to_multiply): Likewise.
27498 (dump_ops_vector): Likewise.
27499 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Likewise.
27500 (print_scc): Likewise.
27501 (set_ssa_val_to): Likewise.
27502 (visit_reference_op_store): Likewise.
27503 (visit_use): Likewise.
27504 (sccvn_dom_walker::before_dom_children): Likewise.
27505 (run_scc_vn): Likewise.
27506 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
27507 Likewise.
27508 (expr_hash_elt::print): Likewise.
27509 (const_and_copies::pop_to_marker): Likewise.
27510 (const_and_copies::record_const_or_copy_raw): Likewise.
27511 * tree-ssa-structalias.c (compute_dependence_clique): Likewise.
27512 * tree-ssa-uninit.c (collect_phi_def_edges): Likewise.
27513 (dump_predicates): Likewise.
27514 (find_uninit_use): Likewise.
27515 (warn_uninitialized_phi): Likewise.
27516 (pass_late_warn_uninitialized::execute): Likewise.
27517 * tree-ssa.c (verify_vssa): Likewise.
27518 (verify_ssa): Likewise.
27519 (maybe_optimize_var): Likewise.
27520 * tree-vrp.c (dump_value_range): Likewise.
27521 (dump_all_value_ranges): Likewise.
27522 (dump_asserts_for): Likewise.
27523 (register_edge_assert_for_2): Likewise.
27524 (vrp_visit_cond_stmt): Likewise.
27525 (vrp_visit_switch_stmt): Likewise.
27526 (vrp_visit_stmt): Likewise.
27527 (vrp_visit_phi_node): Likewise.
27528 (simplify_cond_using_ranges_1): Likewise.
27529 (fold_predicate_in): Likewise.
27530 (evrp_dom_walker::before_dom_children): Likewise.
27531 (evrp_dom_walker::push_value_range): Likewise.
27532 (evrp_dom_walker::pop_value_range): Likewise.
27533 (execute_early_vrp): Likewise.
27534
27535 2017-05-16 Richard Biener <rguenther@suse.de>
27536
27537 * dwarf2out.c (loc_list_from_tree_1): Do not create
27538 DW_OP_GNU_variable_value for DECL_IGNORED_P decls.
27539
27540 2017-05-16 Richard Biener <rguenther@suse.de>
27541
27542 * dwarf2out.c (resolve_variable_value_in_expr): Lookup DIE
27543 just generated.
27544 (note_variable_value_in_expr): If we resolved the decl ref
27545 do not push to the stack.
27546
27547 2017-05-16 Matthew Wahab <matthew.wahab@arm.com>
27548
27549 * config/arm/arm_neon.h (vadd_f16): Use standard arithmetic
27550 operations in fast-math mode.
27551 (vaddq_f16): Likewise.
27552 (vmul_f16): Likewise.
27553 (vmulq_f16): Likewise.
27554 (vsub_f16): Likewise.
27555 (vsubq_f16): Likewise.
27556 * config/arm/neon.md (add<mode>3): New.
27557 (sub<mode>3): New.
27558 (fma:<VH:mode>3): New. Also remove outdated comment.
27559 (mul<mode>3): New.
27560
27561 2017-05-16 Martin Liska <mliska@suse.cz>
27562
27563 PR ipa/79849.
27564 PR ipa/79850.
27565 * ipa-devirt.c (warn_types_mismatch): Fix typo.
27566 (odr_types_equivalent_p): Likewise.
27567
27568 2017-05-15 Sylvestre Ledru <sylvestre@debian.org>
27569
27570 * plugin.c (try_init_one_plugin): Fix ressource leaks (CID 726637).
27571
27572 2017-05-15 Uros Bizjak <ubizjak@gmail.com>
27573
27574 PR target/80425
27575 * config/i386.i386.md (*zero_extendsidi2): Do not penalize
27576 non-interunit SSE move alternatives with '?'.
27577 (zero-extendsidi peephole2): New peephole to skip intermediate
27578 general register in SSE zero-extend sequence.
27579
27580 2017-05-15 Jeff Law <law@redhat.com>
27581
27582 * reorg.c (relax_delay_slots): Create a new variable to hold
27583 the temporary target rather than clobbering TARGET_LABEL.
27584
27585 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Add
27586 missing argument to extract_bit_field call.
27587 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Likewise.
27588
27589 2017-05-15 Martin Liska <mliska@suse.cz>
27590
27591 PR driver/31468
27592 * gcc.c (process_command): Do not allow empty argument of -o option.
27593
27594 2017-05-15 Renlin Li <renlin.li@arm.com>
27595
27596 * config/aarch64/aarch64-protos.h (aarch64_expand_call): Declare.
27597 * config/aarch64/aarch64.c (aarch64_expand_call): Define.
27598 * config/aarch64/constraints.md (Usf): Add long call check.
27599 * config/aarch64/aarch64.md (call): Use aarch64_expand_call.
27600 (call_value): Likewise.
27601 (sibcall): Likewise.
27602 (sibcall_value): Likewise.
27603 (call_insn): New.
27604 (call_value_insn): New.
27605 (sibcall_insn): Update rtx pattern.
27606 (sibcall_value_insn): Likewise.
27607 (call_internal): Remove.
27608 (call_value_internal): Likewise.
27609 (sibcall_internal): Likewise.
27610 (sibcall_value_internal): Likewise.
27611 (call_reg): Likewise.
27612 (call_symbol): Likewise.
27613 (call_value_reg): Likewise.
27614 (call_value_symbol): Likewise.
27615
27616 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
27617
27618 PR target/80600
27619 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
27620
27621 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
27622
27623 * config/i386.i386.c (ix86_cc_modes_compatible): CCNOmode is
27624 compatible with CCGOCmode and with CCZmode.
27625
27626 2017-05-14 Martin Sebor <msebor@redhat.com>
27627
27628 PR middle-end/77671
27629 * gimple-fold.c (gimple_fold_builtin_sprintf): Make extern.
27630 (gimple_fold_builtin_snprintf): Same.
27631 * gimple-fold.h (gimple_fold_builtin_sprintf): Declare.
27632 (gimple_fold_builtin_snprintf): Same.
27633 * gimple-ssa-sprintf.c (get_format_string): Correct the detection
27634 of character types.
27635 (is_call_safe): New function.
27636 (try_substitute_return_value): Call it.
27637 (try_simplify_call): New function.
27638 (pass_sprintf_length::handle_gimple_call): Call it.
27639
27640 2017-05-14 Martin Sebor <msebor@redhat.com>
27641
27642 PR middle-end/80669
27643 * builtins.c (expand_builtin_stpncpy): Simplify.
27644
27645 2017-05-14 Daniel Santos <daniel.santos@pobox.com>
27646
27647 * config/i386/i386.opt: Add option -mcall-ms2sysv-xlogues.
27648 * config/i386/i386.h
27649 (x86_64_ms_sysv_extra_clobbered_registers): Change type to unsigned.
27650 (NUM_X86_64_MS_CLOBBERED_REGS): New macro.
27651 (struct machine_function): Add new members call_ms2sysv,
27652 call_ms2sysv_pad_in, call_ms2sysv_pad_out and call_ms2sysv_extra_regs.
27653 (struct machine_frame_state): New fields sp_realigned and
27654 sp_realigned_offset.
27655 * config/i386/i386.c
27656 (enum xlogue_stub): New enum.
27657 (enum xlogue_stub_sets): New enum.
27658 (class xlogue_layout): New class.
27659 (struct ix86_frame): New fields stack_realign_allocate_offset,
27660 stack_realign_offset and outlined_save_offset. Modify comments to
27661 detail stack layout when using out-of-line stubs.
27662 (ix86_target_string): Add -mcall-ms2sysv-xlogues option.
27663 (ix86_option_override_internal): Add sorry() for TARGET_SEH and
27664 -mcall-ms2sysv-xlogues.
27665 (stub_managed_regs): New static variable.
27666 (ix86_save_reg): Add new parameter ignore_outlined to optionally omit
27667 registers managed by out-of-line stub.
27668 (disable_call_ms2sysv_xlogues): New function.
27669 (ix86_compute_frame_layout): Modify re-alignment calculations, disable
27670 m->call_ms2sysv when appropriate and compute frame layout for
27671 out-of-line stubs.
27672 (sp_valid_at, fp_valid_at): New inline functions.
27673 (choose_basereg): New function.
27674 (choose_baseaddr): Add align parameter, use choose_basereg and modify
27675 all callers.
27676 (ix86_emit_save_reg_using_mov, ix86_emit_restore_sse_regs_using_mov):
27677 Use align parameter of choose_baseaddr to generated aligned SSE movs
27678 when possible.
27679 (pro_epilogue_adjust_stack): Modify to track
27680 machine_frame_state::sp_realigned.
27681 (ix86_nsaved_regs): Modify to accommodate changes to ix86_save_reg.
27682 (ix86_nsaved_sseregs): Likewise.
27683 (ix86_emit_save_regs): Likewise.
27684 (ix86_emit_save_regs_using_mov): Likewise.
27685 (ix86_emit_save_sse_regs_using_mov): Likewise.
27686 (get_scratch_register_on_entry): Likewise.
27687 (gen_frame_set): New function.
27688 (gen_frame_load): Likewise.
27689 (gen_frame_store): Likewise.
27690 (emit_outlined_ms2sysv_save): Likewise.
27691 (emit_outlined_ms2sysv_restore): Likewise.
27692 (ix86_expand_prologue): Modify stack re-alignment code and call
27693 emit_outlined_ms2sysv_save when appropriate.
27694 (ix86_emit_leave): Clear machine_frame_state::sp_realigned. Add
27695 parameter rtx_insn *insn, which allows the function to be used to only
27696 generate the notes.
27697 (ix86_expand_epilogue): Modify validity checks of frame and stack
27698 pointers, and call emit_outlined_ms2sysv_restore when appropriate.
27699 (ix86_expand_call): Modify to enable m->call_ms2sysv when appropriate.
27700 * config/i386/predicates.md
27701 (save_multiple): New predicate.
27702 (restore_multiple): Likewise.
27703 * config/i386/sse.md
27704 (save_multiple<mode>): New pattern.
27705 (save_multiple_realign<mode>): Likewise.
27706 (restore_multiple<mode>): Likewise.
27707 (restore_multiple_and_return<mode>): Likewise.
27708 (restore_multiple_leave_return<mode>): Likewise.
27709 * Makefile.in: Export HOSTCXX and HOSTCXXFLAGS to site.exp
27710
27711 2017-05-14 Julia Koval <julia.koval@intel.com>
27712
27713 * config/i386/i386-builtin-types.def (VOID_FTYPE_INT_INT64): New type.
27714 * config/i386/i386-builtin.def (__builtin_ia32_xgetbv)
27715 (__builtin_ia32_xsetbv): New builtins.
27716 * config/i386/i386.c (ix86_expand_special_args_builtin):
27717 Process new types.
27718 (ix86_expand_builtin): Special expand for new intrinsics.
27719 * config/i386/i386.md (UNSPECV_XGETBV, UNSPECV_XSETBV): New.
27720 (xsetbv, xsetbv_rex64, xgetbv, xgetbv_rex64): New insn patterns.
27721 * config/i386/xsaveintrin.h (_xsetbv, _getbv): New intrinsics.
27722
27723 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27724
27725 * cfganal.c (inverted_post_order_compute): Change argument type
27726 to vec *.
27727 * cfganal.h (inverted_post_order_compute): Adjust prototype.
27728 * df-core.c (rest_of_handle_df_initialize): Adjust.
27729 (rest_of_handle_df_finish): Likewise.
27730 (df_analyze_1): Likewise.
27731 (df_analyze): Likewise.
27732 (loop_inverted_post_order_compute): Change argument to be a vec *.
27733 (df_analyze_loop): Adjust.
27734 (df_get_n_blocks): Likewise.
27735 (df_get_postorder): Likewise.
27736 * df.h (struct df_d): Change field to be a vec.
27737 * lcm.c (compute_laterin): Adjust.
27738 (compute_available): Likewise.
27739 * lra-lives.c (lra_create_live_ranges_1): Likewise.
27740 * tree-ssa-dce.c (remove_dead_stmt): Likewise.
27741 * tree-ssa-pre.c (compute_antic): Likewise.
27742
27743 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27744
27745 * cfganal.c (connect_infinite_loops_to_exit): Adjust.
27746 (depth_first_search::depth_first_search): Change structure init
27747 function to this constructor.
27748 (depth_first_search::add_bb): Rename function to this member.
27749 (depth_first_search::execute): Likewise.
27750 (flow_dfs_compute_reverse_finish): Adjust.
27751
27752 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27753
27754 * ddg.c (find_nodes_on_paths): Use auto_sbitmap.
27755 (longest_simple_path): Likewise.
27756 * shrink-wrap.c (spread_components): Likewise.
27757 (disqualify_problematic_components): Likewise.
27758 (emit_common_heads_for_components): Likewise.
27759 (emit_common_tails_for_components): Likewise.
27760 (insert_prologue_epilogue_for_components): Likewise.
27761
27762 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27763
27764 * tree-ssa-dse.c (dse_dom_walker): Make m_live_byes a
27765 auto_sbitmap.
27766
27767 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27768
27769 * df-core.c (df_set_blocks): Start using auto_bitmap.
27770 (df_compact_blocks): Likewise.
27771 * df-problems.c (df_rd_confluence_n): Likewise.
27772 * df-scan.c (df_insn_rescan_all): Likewise.
27773 (df_process_deferred_rescans): Likewise.
27774 (df_update_entry_block_defs): Likewise.
27775 (df_update_exit_block_uses): Likewise.
27776 (df_entry_block_bitmap_verify): Likewise.
27777 (df_exit_block_bitmap_verify): Likewise.
27778 (df_scan_verify): Likewise.
27779 * lra-constraints.c (lra_constraints): Likewise.
27780 (undo_optional_reloads): Likewise.
27781 (lra_undo_inheritance): Likewise.
27782 * lra-remat.c (calculate_gen_cands): Likewise.
27783 (do_remat): Likewise.
27784 * lra-spills.c (assign_spill_hard_regs): Likewise.
27785 (spill_pseudos): Likewise.
27786 * tree-ssa-pre.c (bitmap_set_and): Likewise.
27787 (bitmap_set_subtract_values): Likewise.
27788
27789 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27790
27791 * haifa-sched.c (estimate_shadow_tick): Replace manual bitmap
27792 management with auto_bitmap.
27793 (fix_inter_tick): Likewise.
27794 (fix_recovery_deps): Likewise.
27795 * ira.c (add_store_equivs): Likewise.
27796 (find_moveable_pseudos): Likewise.
27797 (split_live_ranges_for_shrink_wrap): Likewise.
27798 * print-rtl.c (rtx_reuse_manager::rtx_reuse_manager): Likewise.
27799 (rtx_reuse_manager::seen_def_p): Likewise.
27800 (rtx_reuse_manager::set_seen_def): Likewise.
27801 * print-rtl.h (class rtx_reuse_manager): Likewise.
27802
27803 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27804
27805 * bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
27806 lifetime.
27807 (migrate_btr_def): Likewise.
27808 * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
27809 * df-core.c (loop_post_order_compute): Likewise.
27810 (loop_inverted_post_order_compute): Likewise.
27811 * hsa-common.h: Likewise.
27812 * hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
27813 * init-regs.c (initialize_uninitialized_regs): Likewise.
27814 * ipa-inline.c (resolve_noninline_speculation): Likewise.
27815 (inline_small_functions): Likewise.
27816 * ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
27817 * ira.c (combine_and_move_insns): Likewise.
27818 (build_insn_chain): Likewise.
27819 * loop-invariant.c (find_invariants): Likewise.
27820 * lower-subreg.c (propagate_pseudo_copies): Likewise.
27821 * predict.c (tree_predict_by_opcode): Likewise.
27822 (predict_paths_leading_to): Likewise.
27823 (predict_paths_leading_to_edge): Likewise.
27824 (estimate_loops_at_level): Likewise.
27825 (estimate_loops): Likewise.
27826 * shrink-wrap.c (try_shrink_wrapping): Likewise.
27827 (spread_components): Likewise.
27828 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
27829 * tree-loop-distribution.c (rdg_build_partitions): Likewise.
27830 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
27831 * tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
27832 * tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
27833 * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
27834 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
27835 * tree-ssa-threadupdate.c (compute_path_counts): Likewise.
27836 (mark_threaded_blocks): Likewise.
27837 (thread_through_all_blocks): Likewise.
27838 * tree-ssa.c (verify_ssa): Likewise.
27839 (execute_update_addresses_taken): Likewise.
27840 * tree-ssanames.c (verify_ssaname_freelists): Likewise.
27841
27842 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27843
27844 * cfganal.c (mark_dfs_back_edges): Replace manual stack with
27845 auto_vec.
27846 (post_order_compute): Likewise.
27847 (inverted_post_order_compute): Likewise.
27848 (pre_and_rev_post_order_compute_fn): Likewise.
27849
27850 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27851
27852 * genrecog.c (int_set::int_set): Explicitly construct our
27853 auto_vec base class.
27854 * vec.h (auto_vec::auto_vec): New constructor.
27855
27856 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27857
27858 * bitmap.h (class auto_bitmap): New constructor taking
27859 bitmap_obstack * argument.
27860
27861 2017-05-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27862
27863 * bitmap.h (class auto_bitmap): Change type of m_bits to
27864 bitmap_head, and adjust ctor / dtor and member operators.
27865
27866 2017-05-13 Uros Bizjak <ubizjak@gmail.com>
27867
27868 * compare-elim.c (equivalent_reg_at_start): Return NULL_RTX
27869 when returned register mode doesn't match original mode.
27870
27871 2017-05-12 Jeff Law <law@redhat.com>
27872 Jakub Jelinek <jakub@redhat.com>
27873
27874 * config/mn10300/mn10300.c (mn10300_match_ccmode): Fix where
27875 we look for cc setter after the compare-elim changes.
27876 * config/mn10300/mn10300.md (addsi3_flags): Fix order of patterns
27877 within the vector to match what compare-elim now expects.
27878 (subsi3_flags, andsi3_flags, iorsi3_flags): Likewise.
27879 (xorsi3_flags, one_cmplsi2_flags): Likewise.
27880
27881 * config/rx/rx.c (rx_match_ccmode): Fix where we look cc setter
27882 after the compare-elim changes.
27883 * config/rx/rx.md (abssi2_flags): Fix order of patterns within
27884 the vector to match what compare-elim now expects.
27885 (addsi3_flags, adc_flags, addsi3_flags peepholes): Likewise.
27886 (andsi3_flags, negsi2_flags, one_cmplsi2_flags): Likewise.
27887 (iorsi3_flags, rotlsi3_flags, rotrsi3_flags): Likewise.
27888 (ashrsi3_flags, lshrsi3_flags, ashlsi3_flags): Likewise.
27889 (ssaddsi3, subsi3_flags, sbb_flags, xorsi3_flags): Likewise.
27890
27891 * config/visium/visium.c (single_set_and_flags): Fix where
27892 we look for cc setter after the compare-elim changes.
27893 * config/visium/visium.md (flags_subst_logic): Fix order of patterns
27894 with the vector to match what compare-elim now expects.
27895 (flags_subst_arith, add<mode>3_insn_set_carry): Likewise.
27896 (add<mode>3_insn_set_overflow, addsi3_insn_set_carry): Likewise.
27897 (addsi3_insn_set_overflow, sub<mode>3_insn_set_carry): Likewise.
27898 (sub<mode>3_insn_set_overflow, subsi3_insn_set_carry): Likewise.
27899 (subsi3_insn_set_overflow, negsi2_insn_set_carry): Likewise.
27900 (neg<mode>2_insn_set_overflow): Likewise.
27901
27902 2017-05-12 Jim Wilson <jim.wilson@linaro.org>
27903
27904 PR middle-end/79794
27905 * expmed.c (extract_bit_field_1): Add alt_rtl argument. Before
27906 maybe_expand_insn call, set ops[0].target. If still set after call,
27907 set alt_rtl. Add extra arg to recursive calls.
27908 (extract_bit_field): Add alt_rtl argument. Pass to
27909 extract_bit_field.
27910 * expmed.h (extract_bit_field): Fix prototype.
27911 * expr.c (emit_group_load_1, copy_blkmode_from_reg)
27912 (copy_blkmode_to_reg, read_complex_part, store_field): Pass extra NULL
27913 to extract_bit_field_calls.
27914 (expand_expr_real_1): Pass alt_rtl to expand_expr_real instead of 0.
27915 Pass alt_rtl to extract_bit_field calls.
27916 * calls.c (store_unaligned_arguments_into_psuedos)
27917 load_register_parameters): Pass extra NULL to extract_bit_field calls.
27918 * optabs.c (maybe_legitimize_operand): Clear op->target when call
27919 gen_reg_rtx.
27920 * optabs.h (struct expand_operand): Add target bitfield.
27921
27922 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
27923
27924 * compare-elim.c (try_eliminate_compare): Canonicalize
27925 operation with embedded compare to
27926 [(set (reg:CCM) (compare:CCM (operation) (immediate)))
27927 (set (reg) (operation)].
27928
27929 * config/i386/i386.c (TARGET_FLAGS_REGNUM): New define.
27930
27931 2017-05-12 Uros Bizjak <ubizjak@gmail.com>
27932
27933 PR target/80723
27934 * config/i386/i386.c (ix86_rtx_cost) [case PLUS]: Ignore the
27935 cost of adding a carry flag for ADC instruction.
27936 [case MINUS]: Ignore the cost of subtracting a carry flag
27937 for SBB instruction.
27938
27939 2017-05-12 Steven Munroe <munroesj@gcc.gnu.org>
27940
27941 * config.gcc (powerpc*-*-*): Add bmi2intrin.h, bmiintrin.h,
27942 and x86intrin.h
27943 * config/rs6000/bmiintrin.h: New file.
27944 * config/rs6000/bmi2intrin.h: New file.
27945 * config/rs6000/x86intrin.h: New file.
27946
27947 2017-05-12 Jeff Law <law@redhat.com>
27948
27949 * tree-vrp.c (vrp_dom_walker::before_dom_children): Push unwinding
27950 markers.
27951
27952 2017-05-12 Peter Bergner <bergner@vnet.ibm.com>
27953
27954 PR middle-end/80707
27955 * tree-cfg.c: Remove cfg edges of unreachable case statements.
27956
27957 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
27958
27959 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
27960 early expansion of vector divide builtins.
27961 (builtin_function_type): Add VSX_BUILTIN_UDIV_V2DI to the list of
27962 builtins identified as having unsigned arguments.
27963
27964 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
27965
27966 * config/rs6000/rs6000.c (gimple-fold.h): New #include.
27967 (rs6000_gimple_fold_builtin): Add handling for early GIMPLE
27968 expansion of vector logical operations (and, andc, or, xor,
27969 nor, orc, nand).
27970
27971 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
27972
27973 * gimple-fold.c (create_tmp_reg_or_ssa_name): Remove static declaration.
27974 * gimple-fold.h (create_tmp_reg_or_ssa_name): New prototype.
27975
27976 2017-05-12 Will Schmidt <will_schmidt@vnet.ibm.com>
27977
27978 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add handling for
27979 early GIMPLE expansion of vector multiplies.
27980
27981 2017-05-12 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
27982
27983 * config/arm/arm.md (movsi): Add TARGET_32BIT in addition to the
27984 TARGET_HAVE_MOVT conditional.
27985 (movt splitter): Likewise.
27986
27987 2017-05-12 Richard Biener <rguenther@suse.de>
27988
27989 * tree-ssa-sccvn.h (has_VN_INFO): Declare.
27990 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
27991 Fold all stmts not inplace.
27992
27993 2017-05-12 Richard Biener <rguenther@suse.de>
27994
27995 PR tree-optimization/80713
27996 * tree-ssa-pre.c (remove_dead_inserted_code): Clear
27997 inserted_exprs bit for not removed stmts.
27998
27999 2017-05-12 Thomas Schwinge <thomas@codesourcery.com>
28000
28001 PR middle-end/69921
28002 * tree-parloops.c (create_parallel_loop): Set "oacc kernels
28003 parallelized" attribute for parallelized OpenACC kernels.
28004 * omp-offload.c (execute_oacc_device_lower): Use it.
28005
28006 * omp-expand.c (expand_omp_target) <GF_OMP_TARGET_KIND_OACC_KERNELS>:
28007 Set "oacc kernels" attribute.
28008 * omp-general.c (oacc_set_fn_attrib): Remove is_kernel formal
28009 parameter. Adjust all users.
28010 (oacc_fn_attrib_kernels_p): Remove function.
28011 * omp-offload.c (execute_oacc_device_lower): Look for "oacc
28012 kernels" attribute instead of calling oacc_fn_attrib_kernels_p.
28013 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
28014 * tree-parloops.c (create_parallel_loop): If oacc_kernels_p,
28015 assert "oacc kernels" attribute is set.
28016
28017 2017-05-11 Carl Love <cel@us.ibm.com>
28018
28019 * config/rs6000/rs6000-c: Add support for built-in functions
28020 vector unsigned char vec_popcnt (vector signed char)
28021 vector unsigned char vec_popcnt (vector unsigned char)
28022 vector unsigned short vec_popcnt (vector signed short)
28023 vector unsigned short vec_popcnt (vector unsigned short)
28024 vector unsigned int vec_popcnt (vector signed int)
28025 vector unsigned int vec_popcnt (vector unsigned int)
28026 vector unsigned long long vec_popcnt (vector signed long long)
28027 vector unsigned long long vec_popcnt (vector unsigned long long)
28028 vector signed long long vec_slo (vector signed long long,
28029 vector signed char)
28030 vector signed long long vec_slo (vector signed long long,
28031 vector unsigned char)
28032 vector unsigned long long vec_slo (vector unsigned long long,
28033 vector signed char)
28034 vector unsigned long long vec_slo (vector unsigned long long,
28035 vector unsigned char)
28036 * config/rs6000/rs6000-builtin.def: Add definitions for VPOPCNTUB,
28037 VPOPCNTUH, VPOPCNTUW, and VPOPCNTUD overloads.
28038 * config/rs6000/altivec.h: Add define for vec_popcnt, vec_popcntb,
28039 vec_popcnth, vec_popcntw and vec_popcntd built-in functions.
28040 * doc/extend.texi: Update the built-in documentation file for the
28041 new built-in functions.
28042
28043 2017-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
28044
28045 * attribs.h (sorted_attr_string): Move machine independent
28046 functions for target clone support from the i386 port to common
28047 code. Rename ix86_function_versions to common_function_versions.
28048 Rename make_name to make_unique_name.
28049 (common_function_versions): Likewise.
28050 (make_unique_name): Likewise.
28051 (make_dispatcher_decl): Likewise.
28052 (is_function_default_version): Likewise.
28053 * attribs.c (attr_strcmp): Likewise.
28054 (sorted_attr_string): Likewise.
28055 (common_function_versions): Likewise.
28056 (make_unique_name): Likewise.
28057 (make_dispatcher_decl): Likewise.
28058 (is_function_default_version): Likewise.
28059 * config/i386/i386.c (attr_strcmp): Likewise.
28060 (sorted_attr_string): Likewise.
28061 (ix86_function_versions): Likewise.
28062 (make_name): Likewise.
28063 (make_dispatcher_decl): Likewise.
28064 (is_function_default_version): Likewise.
28065 (TARGET_OPTION_FUNCTION_VERSIONS): Update target function hook.
28066
28067 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28068
28069 PR target/80695
28070 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
28071 Account for direct move costs for vec_construct of integer
28072 vectors.
28073
28074 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
28075
28076 PR target/80706
28077 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
28078 (UNSPEC_STX_ATOMIC): Ditto.
28079 (loaddi_via_sse): New insn.
28080 (storedi_via_sse): Ditto.
28081 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
28082 Update corresponding peephole2 patterns.
28083 (atomic_storedi_fpu): Ditto.
28084
28085 2017-05-11 Julia Koval <julia.koval@intel.com>
28086
28087 * config/i386/avx512fintrin.h (_mm_mask_rsqrt14_sd)
28088 (_mm_maskz_rsqrt14_sd, _mm_mask_rsqrt14_ss, _mm_maskz_rsqrt14_ss):
28089 New intrinsics.
28090 * config/i386/i386-builtin.def (__builtin_ia32_rsqrt14sd_mask)
28091 (__builtin_ia32_rsqrt14ss_mask): New builtins.
28092 * config/i386/sse.md (rsqrt14_<mode>_mask): New pattern.
28093
28094 2017-05-11 Nathan Sidwell <nathan@acm.org>
28095
28096 * graphite-poly.c: Include dumpfile.h.
28097
28098 * dumpfle.h (dump_function): Declare here ...
28099 * tree-dump.h (dump_function): ... not here.
28100 * dumpfile.c: #include tree-cfg.h.
28101 (dump_function): Move here from ...
28102 * tree-dump.c (dump_function): ... here.
28103 * gimplify.c: #include splay-tree.h, not tree-dump.h.
28104 * graphite-poly.c: Don't include tree-dump.h.
28105 * cgraphclones.c: Include dumpfile.h not tree-dump.h.
28106 * print-tree.c: Likewise.
28107 * stor-layout.c: Likewise.
28108 * tree-nested.c: Likewise.
28109
28110 * dumpfile.c (dump_start): Use TDF_FLAGS.
28111 (dump_enable_all): Fix TDF_KIND check thinko.
28112
28113 2017-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org>
28114
28115 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
28116 array entries to represent two legal parameterizations of the
28117 overloaded __builtin_cmpb function, as represented by the
28118 P6_OV_BUILTIN_CMPB constant.
28119 (altivec_resolve_overloaded_builtin): Add special case handling
28120 for the __builtin_cmpb function, as represented by the
28121 P6_OV_BUILTIN_CMPB constant.
28122 * config/rs6000/rs6000-builtin.def (BU_P6_2): New macro.
28123 (BU_P6_64BIT_2): New macro.
28124 (BU_P6_OVERLOAD_2): New macro
28125 (CMPB_32): Add 32-bit compare-bytes support for 32-bit only targets.
28126 (CMPB): Add 64-bit compare-bytes support for 32-bit and 64-bit targets.
28127 (CMPB): Add overload support to represent both 32-bit and 64-bit
28128 compare-bytes function.
28129 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
28130 support for TARGET_CMPB.
28131 * config/rs6000/rs6000.h: Add support for RS6000_BTM_CMPB.
28132 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
28133 documentation of the __builtin_cmpb overloaded built-in function.
28134
28135 2017-05-11 Richard Biener <rguenther@suse.de>
28136
28137 PR tree-optimization/80705
28138 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
28139 bases are not vectorizable.
28140
28141 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28142
28143 * tree-ssa-loop-ivopts.c (determine_set_costs): Skip non-interger
28144 when counting register pressure.
28145
28146 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28147
28148 * tree-ssa-loop-ivopts.c (compare_cost_pair): New.
28149 (iv_ca_more_deps): Renamed to ...
28150 (iv_ca_compare_deps): ... this.
28151 (iv_ca_extend): Extend iv_ca if NEW_CP is cheaper than OLD_CP.
28152
28153 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28154
28155 * tree-ssa-loop-ivopts.c (find_interesting_uses): Move inv vars dump
28156 to ...
28157 (determine_group_iv_costs): ... here.
28158 (find_inv_vars_cb): Record inv var if it's not recorded before.
28159
28160 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28161
28162 * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): Refine comments.
28163 (get_shiftadd_cost): Ditto.
28164
28165 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28166
28167 * tree-ssa-address.c: Include header file.
28168 (move_hint_to_base): Return TRUE if BASE_HINT is moved to memory
28169 address.
28170 (add_to_parts): Refactor.
28171 (addr_to_parts): New parameter. Update use of move_hint_to_base.
28172 (create_mem_ref): Update use of addr_to_parts. Re-associate addr
28173 in new order.
28174
28175 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28176
28177 PR tree-optimization/53090
28178 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New enum value
28179 COMP_IV_EXPR_2.
28180 (extract_cond_operands): Detect condition with IV on both sides
28181 and return COMP_IV_EXPR_2.
28182 (find_interesting_uses_cond): Add iv_use for both IVs in condition.
28183 (rewrite_use_compare): Simplify by removing call to function
28184 extract_cond_operands.
28185
28186 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28187
28188 * tree-ssa-loop-ivopts.c (enum comp_iv_rewrite): New.
28189 (extract_cond_operands): Detect condition comparing against non-
28190 invariant bound and return appropriate enum value.
28191 (find_interesting_uses_cond): Update use of extract_cond_operands.
28192 Handle its return value accordingly.
28193 (determine_group_iv_cost_cond, rewrite_use_compare): Ditto.
28194
28195 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28196
28197 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Re-associate
28198 nonlinear iv_use computation in loop invariant sensitive way.
28199
28200 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28201
28202 * tree-ssa-loop-ivopts.c (relate_compare_use_with_all_cands): New.
28203 (find_iv_candidates): Call relate_compare_use_with_all_cands.
28204
28205 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28206
28207 * tree-ssa-loop-ivopts.c (struct iv_cand): New field inv_exprs.
28208 (dump_cand): Support iv_cand.inv_exprs.
28209 (add_candidate_1): Record invariant exprs in iv_cand.inv_exprs
28210 for candidates.
28211 (iv_ca_set_no_cp, iv_ca_set_cp, free_loop_data): Support
28212 iv_cand.inv_exprs.
28213
28214 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28215
28216 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Move
28217 from ...
28218 * tree-ssa-address.c (multiplier_allowed_in_address_p): ... to here
28219 as local function. Include necessary header files.
28220 * tree-ssa-loop-ivopts.h (multiplier_allowed_in_address_p): Delete.
28221
28222 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28223
28224 * tree-ssa-loop-ivopts.c (autoinc_possible_for_pair): Simplify.
28225
28226 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28227
28228 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Handle more
28229 operators: TRUNC_DIV_EXPR, BIT_AND_EXPR, BIT_IOR_EXPR, LSHIFT_EXPR,
28230 RSHIFT_EXPR and BIT_NOT_EXPR.
28231
28232 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28233
28234 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr): Simplify.
28235 (adjust_setup_cost): New parameter supporting round up adjustment.
28236 (struct address_cost_data): Delete.
28237 (force_expr_to_var_cost): Don't bound cost with spill_cost.
28238 (split_address_cost, ptr_difference_cost): Delete.
28239 (difference_cost, compare_aff_trees, record_inv_expr): Delete.
28240 (struct ainc_cost_data): New struct.
28241 (get_address_cost_ainc): New function.
28242 (get_address_cost, get_computation_cost): Reimplement.
28243 (determine_group_iv_cost_address): Record inv_expr for all uses of
28244 a group.
28245 (determine_group_iv_cost_cond): Call get_loop_invariant_expr.
28246 (iv_ca_has_deps): Reimplemented to ...
28247 (iv_ca_more_deps): ... this. Check if NEW_CP introduces more deps
28248 than OLD_CP.
28249 (iv_ca_extend): Call iv_ca_more_deps.
28250
28251 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28252
28253 * tree-ssa-address.c (struct mem_address): Move to header file.
28254 (valid_mem_ref_p, move_fixed_address_to_symbol): Make it global.
28255 * tree-ssa-address.h (struct mem_address): Move from C file.
28256 (valid_mem_ref_p, move_fixed_address_to_symbol): Declare.
28257
28258 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28259
28260 * tree-affine.h (aff_combination_type): New interface.
28261 (aff_combination_zero_p): Remove static.
28262 (aff_combination_const_p): New interface.
28263 (aff_combination_singleton_var_p): New interfaces.
28264
28265 2017-05-11 Richard Biener <rguenther@suse.de>
28266
28267 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
28268 Skip unreachable blocks and destinations.
28269 (eliminate): Move stmt removal and fixup ...
28270 (fini_eliminate): ... here. Skip inserted exprs.
28271 (pass_pre::execute): Move fini_pre after fini_eliminate.
28272 * tree-ssa-tailmerge.c: Include tree-cfgcleanup.h.
28273 (tail_merge_optimize): Run cleanup_tree_cfg if requested by
28274 PRE to get rid of dead code that has invalid SSA form and
28275 split critical edges again.
28276
28277 2017-05-11 Bin Cheng <bin.cheng@arm.com>
28278
28279 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
28280
28281 2017-05-11 Richard Biener <rguenther@suse.de>
28282
28283 * passes.c (execute_function_todo): Verify loops if they are
28284 said to be up-to-date.
28285 * cfgexpand.c (pass_expand::execute): Discard loops for -dx.
28286 * trans-mem.c (pass_tm_edges::execute): Mark loops for fixup.
28287
28288 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
28289
28290 PR target/80090
28291 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
28292 handle calling assemble_external ourself.
28293
28294 PR target/79027
28295 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
28296 modes with zero size. Enhance comment.
28297
28298 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28299
28300 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
28301 built-ins for vec_xl and vec_xst with short and char pointer
28302 arguments.
28303
28304 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
28305
28306 * config/i386/avx512fintrin.h (_mm_mask_max_round_sd)
28307 (_mm_maskz_max_round_sd, _mm_mask_max_round_ss)
28308 (_mm_maskz_max_round_ss, _mm_mask_min_round_sd)
28309 (_mm_maskz_min_round_sd, _mm_mask_min_round_ss)
28310 (_mm_maskz_min_round_ss): New intrinsics.
28311 * config/i386/i386-builtin-types.def (V2DF, V2DF, V2DF, V2DF, UQI, INT)
28312 (V4SF, V4SF, V4SF, V4SF, UQI, INT): New function type aliases.
28313 * config/i386/i386-builtin.def (__builtin_ia32_maxsd_mask_round)
28314 (__builtin_ia32_maxss_mask_round, __builtin_ia32_minsd_mask_round)
28315 (__builtin_ia32_minss_mask_round): New builtins.
28316 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
28317 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
28318 * config/i386/sse.md (<sse>_vm<code><mode>3<round_saeonly_name>):
28319 Rename to ...
28320 (<sse>_vm<code><mode>3<mask_name><round_saeonly_name>): ... this.
28321 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_op3>%2, %1, %0|%0, %1, %<iptr>2<round_saeonly_op3>}):
28322 Change to ...
28323 (v<maxmin_float><ssescalarmodesuffix>\t{<round_saeonly_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_saeonly_mask_op3>}):
28324 ... this.
28325
28326 2017-05-10 Sebastian Peryt <sebastian.peryt@intel.com>
28327
28328 * config/i386/avx512fintrin.h (_mm_mask_mul_round_sd)
28329 (_mm_maskz_mul_round_sd, _mm_mask_mul_round_ss)
28330 (_mm_maskz_mul_round_ss, _mm_mask_div_round_sd)
28331 (_mm_maskz_div_round_sd, _mm_mask_div_round_ss)
28332 (_mm_maskz_div_round_ss, _mm_mask_mul_sd, _mm_maskz_mul_sd)
28333 (_mm_mask_mul_ss, _mm_maskz_mul_ss, _mm_mask_div_sd)
28334 (_mm_maskz_div_sd, _mm_mask_div_ss, _mm_maskz_div_ss): New intrinsics.
28335 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
28336 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
28337 * config/i386/i386-builtin.def (__builtin_ia32_divsd_mask_round)
28338 (__builtin_ia32_divss_mask_round, __builtin_ia32_mulsd_mask_round)
28339 (__builtin_ia32_mulss_mask_round): New builtins.
28340 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
28341 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
28342 * config/i386/sse.md (<sse>_vm<multdiv_mnemonic><mode>3<round_name>):
28343 Rename to ...
28344 (<sse>_vm<multdiv_mnemonic><mode>3<mask_name><round_name>): ... this.
28345 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
28346 Change to ...
28347 (v<multdiv_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
28348 ... this.
28349
28350 2017-05-10 Julia Koval <julia.koval@intel.com>
28351
28352 * config/i386/avxintrin.h (_mm256_set_m128, _mm256_set_m128d)
28353 (_mm256_set_m128i, _mm256_setr_m128, _mm256_setr_m128d)
28354 (_mm256_setr_m128i): New intrinsics.
28355
28356 2017-05-10 Julia Koval <julia.koval@intel.com>
28357
28358 * config/i386/avx512fintrin.h (_mm_mask_rcp14_sd)
28359 (_mm_maskz_rcp14_sd, _mm_mask_rcp14_ss)
28360 (_mm_maskz_rcp14_ss): New intrinsics.
28361 * config/i386/i386-builtin.def (__builtin_ia32_rcp14sd_mask)
28362 (__builtin_ia32_rcp14ss_mask): New builtins.
28363 * config/i386/sse.md (srcp14<mode>_mask): New pattern.
28364
28365 2017-05-10 Peter Bergner <bergner@vnet.ibm.com>
28366
28367 PR tree-optimization/51513
28368 * tree-cfg.c (gimple_seq_unreachable_p): New function.
28369 (assert_unreachable_fallthru_edge_p): Use it.
28370 (group_case_labels_stmt): Likewise.
28371 * tree-cfg.h: Prototype it.
28372 * stmt.c: Include cfghooks.h and tree-cfg.h.
28373 (emit_case_dispatch_table) <gap_label>: New local variable.
28374 Use it to fill dispatch table gaps.
28375 Test for default_label before updating probabilities.
28376 (expand_case) <default_label>: Remove unneeded initialization.
28377 Test for unreachable default case statement and remove its edge.
28378 Set default_label accordingly.
28379 * tree-ssa-ccp.c (optimize_unreachable): Update comment.
28380
28381 2017-05-10 Carl Love <cel@us.ibm.com>
28382
28383 * config/rs6000/rs6000-c: Add support for built-in functions
28384 vector signed char vec_neg (vector signed char)
28385 vector signed short int vec_neg (vector short int)
28386 vector signed int vec_neg (vector signed int)
28387 vector signed long long vec_neg (vector signed long long)
28388 vector float vec_neg (vector float)
28389 vector double vec_neg (vector double)
28390 * config/rs6000/rs6000-builtin.def: Add definitions for NEG function
28391 overload.
28392 * config/rs6000/altivec.h: Add define for vec_neg
28393 * doc/extend.texi: Update the built-in documentation for the
28394 new built-in functions.
28395
28396 2017-05-10 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
28397
28398 PR tree-optimization/77644
28399 * match.pd (sqrt(x) cmp sqrt(y) -> x cmp y): New pattern.
28400
28401 2017-05-10 Nathan Sidwell <nathan@acm.org>
28402
28403 * dumpfile.h (TDI_lang_all): New.
28404 (TDF_KIND): New. Renumber others
28405 (TDF_LANG, TDF_TREE, TDF_RTL, TDF_IPA): Enumerate value, rather
28406 than bits.
28407 * dumpfile.c (dump_files): Mark language dumps as TDF_LANG. add
28408 lang-all.
28409 (get_dump_file_name): Adjust suffix generation.
28410 (dump_enable_all): Use TDF_KIND.
28411 * doc/invoke.texi (-fdump-lang-all): Document.
28412
28413 * dumpfile.h: Tabify.
28414
28415 2017-05-10 Wilco Dijkstra <wdijkstr@arm.com>
28416
28417 PR target/80671
28418 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
28419 Move member access before delete.
28420
28421 2017-05-10 Alexandre Oliva <aoliva@redhat.com>
28422
28423 * tree-inline.c (expand_call_inline): Split block at stmt
28424 before the call.
28425
28426 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
28427
28428 PR target/68163
28429 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
28430 are now unused after splitting mov{sf,sd}_hardfloat.
28431 (f32_lr2): Likewise.
28432 (f32_lm): Likewise.
28433 (f32_lm2): Likewise.
28434 (f32_li): Likewise.
28435 (f32_li2): Likewise.
28436 (f32_lv): Likewise.
28437 (f32_sr): Likewise.
28438 (f32_sr2): Likewise.
28439 (f32_sm): Likewise.
28440 (f32_sm2): Likewise.
28441 (f32_si): Likewise.
28442 (f32_si2): Likewise.
28443 (f32_sv): Likewise.
28444 (f32_dm): Likewise.
28445 (f32_vsx): Likewise.
28446 (f32_av): Likewise.
28447 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
28448 For movsf, order stores so the VSX stores occur before the GPR
28449 store which encourages the register allocator to use a traditional
28450 FPR instead of a GPR. For movsd, order the stores so that the GPR
28451 store comes before the VSX stores to allow the power6 to work.
28452 This is due to the power6 not having a 32-bit integer store
28453 instruction from a FPR.
28454 (movsf_hardfloat): Likewise.
28455 (movsd_hardfloat): Likewise.
28456
28457 2017-05-09 Martin Sebor <msebor@redhat.com>
28458
28459 PR translation/80280
28460 * config/sol2-c.c (cmn_err_flag_specs): Initialize new data member
28461 added in r247778.
28462
28463 PR translation/80280
28464 * config/i386/msformat-c.c (ms_printf_flag_specs): Initialize new
28465 data member added in r247778.
28466 (ms_scanf_flag_specs, ms_strftime_flag_specs): Same.
28467
28468 2017-05-09 Nathan Sidwell <nathan@acm.org>
28469
28470 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Unconditionally pure.
28471
28472 * ipa-devirt.c (default_hash_traits<type_pair>): Skip struct-scope
28473 typedefs.
28474
28475 2017-05-09 Marek Polacek <polacek@redhat.com>
28476
28477 * doc/invoke.texi: Fix typo.
28478
28479 2017-05-09 Richard Biener <rguenther@suse.de>
28480
28481 * tree-vrp.c (vrp_val_is_max): Adjust comment.
28482 (vrp_val_is_min): Likewise.
28483 (set_value_range_to_value): Likewise.
28484 (set_value_range_to_nonnegative): Likewise.
28485 (gimple_assign_nonzero_p): Likewise.
28486 (gimple_stmt_nonzero_p): Likewise.
28487 (vrp_int_const_binop): Likewise. Remove unreachable case.
28488 (adjust_range_with_scev): Adjust comments.
28489 (compare_range_with_value): Likewise.
28490 (extract_range_from_phi_node): Likewise.
28491 (test_for_singularity): Likewise.
28492
28493 2017-05-09 Richard Biener <rguenther@suse.de>
28494
28495 * tree-vrp.c (get_single_symbol): Add assert that we don't
28496 get overflowed constants as invariant part.
28497 (compare_values_warnv): Add comment before the TREE_NO_WARNING
28498 checks. Use wi::cmp instead of recursing for integer constants.
28499 (compare_values): Just ignore whether we assumed undefined
28500 overflow instead of failing the compare.
28501 (extract_range_for_var_from_comparison_expr): Add comment before the
28502 TREE_NO_WARNING sets.
28503 (test_for_singularity): Likewise.
28504 (extract_range_from_comparison): Do not disable optimization
28505 when we assumed undefined overflow.
28506 (extract_range_basic): Remove init of unused var.
28507
28508 2017-05-09 Richard Biener <rguenther@suse.de>
28509
28510 * tree-vrp.c (vrp_int_const_binop): Use wide-ints and simplify.
28511 (extract_range_from_multiplicative_op_1): Adjust.
28512 (extract_range_from_binary_expr_1): Use int_const_binop.
28513
28514 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
28515
28516 PR target/80101
28517 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
28518 rs6000_store_data_bypass_p in seven define_bypass directives and
28519 in several comments.
28520 * config/rs6000/rs6000-protos.h: Add prototype for
28521 rs6000_store_data_bypass_p function.
28522 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
28523 function implements slightly different (rs6000-specific) semantics
28524 than store_data_bypass_p, returning false rather than aborting
28525 with assertion error when arguments do not satisfy the
28526 requirements of store data bypass.
28527 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
28528 rs6000_store_data_bypass_p.
28529
28530 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
28531
28532 * config/xtensa/xtensa-protos.h
28533 (xtensa_initial_elimination_offset): New declaration.
28534 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
28535 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
28536 macro definition, add case for FRAME_POINTER_REGNUM when
28537 FRAME_GROWS_DOWNWARD.
28538 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro definition.
28539 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
28540 xtensa_initial_elimination_offset.
28541
28542 2017-05-08 Nathan Sidwell <nathan@acm.org>
28543
28544 * doc/invoke.texi: Alphabetize -fdump options.
28545
28546 2017-05-08 Martin Sebor <msebor@redhat.com>
28547
28548 PR translation/80280
28549 * config/sol2-c.c (solaris_pragma_align): Correct quoting.
28550
28551 2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
28552
28553 * target.def (compute_frame_layout): New optional target hook.
28554 * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook.
28555 * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation.
28556 * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout
28557 target hook.
28558 * reload1.c (verify_initial_elim_offsets): Likewise.
28559 * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define.
28560 (use_simple_return_p): Call arm_compute_frame_layout if needed.
28561 (arm_get_frame_offsets): Split up into this ...
28562 (arm_compute_frame_layout): ... and this function.
28563
28564 2017-05-08 Richard Sandiford <richard.sandiford@arm.com>
28565
28566 * config/aarch64/constraints.md (Usa): New constraint.
28567 * config/aarch64/aarch64.md (*movsi_aarch64, *movdi_aarch64): Use it.
28568
28569 2017-05-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
28570
28571 * config.gcc (arm*-*-*): Set TM_MULTILIB_CONFIG from
28572 with_multilib_list after it has been checked.
28573
28574 2017-05-08 Richard Biener <rguenther@suse.de>
28575
28576 * tree-ssa-pre.c (bitmap_set_and): Avoid bitmap copy.
28577 (bitmap_set_subtract_values): Likewise.
28578
28579 2017-05-08 Richard Biener <rguenther@suse.de>
28580
28581 * tree-vrp.c (gimple_assign_nonzero_warnv_p): Rename to ...
28582 (gimple_assign_nonzero): ... this and remove strict_overflow_p
28583 argument.
28584 (gimple_stmt_nonzero_warnv_p): Rename to ...
28585 (gimple_stmt_nonzero_p): ... this and remove strict_overflow_p
28586 argument.
28587 (vrp_stmt_computes_nonzero): Remove strict_overflow_p argument.
28588 (extract_range_basic): Adjust, do not disable propagation on
28589 strict overflow sensitive simplification.
28590 (vrp_visit_cond_stmt): Likewise.
28591
28592 2017-05-05 Jan Hubicka <hubicka@ucw.cz>
28593
28594 * ipa-inline-analysis.c (estimate_function_body_sizes): Recompute
28595 body size unconditionally.
28596
28597 2017-05-07 Jeff Law <law@redhat.com>
28598
28599 Revert:
28600 2017-05-06 Jeff Law <law@redhat.com>
28601 PR tree-optimization/78496
28602 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
28603 code.
28604
28605 PR tree-optimization/78496
28606 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
28607 (simplify_stmt_using_ranges): Call it.
28608 (vrp_dom_walker::before_dom_children): Extract equivalences
28609 from an ASSERT_EXPR with an equality comparison against a
28610 constant.
28611
28612 2017-05-06 Jeff Law <law@redhat.com>
28613
28614 PR tree-optimization/78496
28615 * tree-vrp.c (simplify_assert_expr_using_ranges): Remove debugging
28616 code.
28617
28618 PR tree-optimization/78496
28619 * tree-vrp.c (simplify_assert_expr_using_ranges): New function.
28620 (simplify_stmt_using_ranges): Call it.
28621 (vrp_dom_walker::before_dom_children): Extract equivalences
28622 from an ASSERT_EXPR with an equality comparison against a
28623 constant.
28624
28625 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
28626
28627 * lra-constraints.c (lra_copy_reg_equiv): New function.
28628 (split_reg): Use it to copy equivalence information from the
28629 original register to the spill register.
28630
28631 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
28632
28633 PR rtl-optimization/75964
28634 * simplify-rtx.c (simplify_const_relational_operation): Remove
28635 invalid handling of comparisons of integer ABS.
28636
28637 2017-05-06 Uros Bizjak <ubizjak@gmail.com>
28638
28639 * config/i386/i386.c (ext_80387_constant_init): Do not explicitly
28640 initialize to zero.
28641 (init_regs): Remove declaration.
28642 (function_arg_advance_32): Initialize error_p as boolean variable.
28643
28644 2017-05-05 Nathan Sidwell <nathan@acm.org>
28645
28646 * store-motion.c (remove_reachable_equiv_notes): Reformat long
28647 lines. Use for (;;).
28648
28649 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28650
28651 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
28652 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
28653 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
28654 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
28655 VF=2 that require versioning.
28656
28657 2017-05-05 David Malcolm <dmalcolm@redhat.com>
28658
28659 * diagnostic.h (CARET_LINE_MARGIN): Convert from macro to const
28660 int.
28661
28662 2017-05-05 David Malcolm <dmalcolm@redhat.com>
28663
28664 * diagnostic.h (diagnostic_override_option_index): Convert from
28665 macro to inline function.
28666
28667 2017-05-05 David Malcolm <dmalcolm@redhat.com>
28668
28669 * diagnostic.c (last_module_changed_p): New function.
28670 (set_last_module): New function.
28671 (diagnostic_report_current_module): Convert macro usage to
28672 the above functions.
28673 * diagnostic.h (diagnostic_context::last_module): Strengthen
28674 from const line_map * to const line_map_ordinary *.
28675 (diagnostic_last_module_changed): Delete macro.
28676 (diagnostic_set_last_module): Delete macro.
28677
28678 2017-05-05 David Malcolm <dmalcolm@redhat.com>
28679
28680 * diagnostic.c (diagnostic_impl): Replace report_diagnostic
28681 with diagnostic_report_diagnostic.
28682 (diagnostic_n_impl_richloc): Likewise.
28683 * diagnostic.h (report_diagnostic): Delete macro.
28684 * rtl-error.c (diagnostic_for_asm): Replace report_diagnostic
28685 with diagnostic_report_diagnostic.
28686 * substring-locations.c (format_warning_va): Likewise.
28687
28688 2017-05-05 David Malcolm <dmalcolm@redhat.com>
28689
28690 * diagnostic.c (diagnostic_report_diagnostic): Eliminate
28691 save/restor of format_spec. Move option-printing code to...
28692 (print_option_information): ...this new function, and
28693 reimplement by simply printing to the pretty_printer,
28694 rather than appending to the format string.
28695
28696 2017-05-05 David Malcolm <dmalcolm@redhat.com>
28697
28698 * diagnostic.c (diagnostic_report_diagnostic): Split out pragma
28699 handling logic into...
28700 (update_effective_level_from_pragmas): ...this new function.
28701
28702 2017-05-04 Andrew Waterman <andrew@sifive.com>
28703
28704 * config/riscv/riscv.opt (mstrict-align): New option.
28705 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
28706 (SLOW_UNALIGNED_ACCESS): Define.
28707 (riscv_slow_unaligned_access): Declare.
28708 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
28709 field.
28710 (riscv_slow_unaligned_access): New variable.
28711 (rocket_tune_info): Set slow_unaligned_access to true.
28712 (optimize_size_tune_info): Set slow_unaligned_access to false.
28713 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
28714 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
28715 (riscv_option_override): Set riscv_slow_unaligned_access.
28716 * doc/invoke.texi: Add -mstrict-align to RISC-V.
28717
28718 2017-05-04 Kito Cheng <kito.cheng@gmail.com>
28719
28720 * config/riscv/riscv.md: Unify indentation.
28721
28722 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
28723
28724 PR target/79038
28725 PR target/79202
28726 PR target/79203
28727 * config/rs6000/rs6000.md (u code attribute): Add FIX and
28728 UNSIGNED_FIX.
28729 (extendsi<mode>2): Add support for doing sign extension via
28730 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
28731 don't have ISA 3.0 instructions.
28732 (extendsi<mode>2 splitter): Likewise.
28733 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
28734 generate the normal insns since SImode can now go in vector
28735 registers. Disallow the special UNSPECs needed for previous
28736 machines to hide SImode being used. Add new insns
28737 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
28738 (fix_trunc<mode>si2_stfiwx): Likewise.
28739 (fix_trunc<mode>si2_internal): Likewise.
28740 (fixuns_trunc<mode>si2): Likewise.
28741 (fixuns_trunc<mode>si2_stfiwx): Likewise.
28742 (fctiw<u>z_<mode>_smallint): Likewise.
28743 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
28744 of floating point to 32-bit integer from doing a direct move to
28745 the GPR registers to do a store.
28746 (fctiwz_<mode>): Break long line.
28747
28748 2017-05-05 Bin Cheng <bin.cheng@arm.com>
28749
28750 * Makefile.in (GTFILES): Add tree-ssa-loop-ivopts.c.
28751 * tree-ssa-loop-ivopts.c (compute_max_addr_offset): Delete.
28752 (addr_list, addr_offset_valid_p): New.
28753 (split_address_groups): Check offset validity with above function.
28754 (gt-tree-ssa-loop-ivopts.h): Include header file.
28755
28756 2017-05-05 Nathan Sidwell <nathan@acm.org>
28757
28758 * config.gcc (arm*-*-*): Add missing 'fi'.
28759
28760 2017-05-05 Steve Ellcey <sellcey@cavium.com>
28761
28762 * doc/invoke.texi (-fopt-info): Explicitly say order of options
28763 included in -fopt-info does not matter.
28764 * doc/optinfo.texi (-fopt-info): Fix description of default
28765 behavour. Explicitly say order of options included in -fopt-info
28766 does not matter.
28767
28768 2017-05-05 Thomas Preud'homme <thomas.preudhomme@arm.com>
28769
28770 * config.gcc: Allow combinations of aprofile and rmprofile values for
28771 --with-multilib-list.
28772 * config/arm/t-multilib: New file.
28773 * config/arm/t-aprofile: Remove initialization of MULTILIB_*
28774 variables. Remove setting of ISA and floating-point ABI in
28775 MULTILIB_OPTIONS and MULTILIB_DIRNAMES. Set architecture and FPU in
28776 MULTI_ARCH_OPTS_A and MULTI_ARCH_DIRS_A rather than MULTILIB_OPTIONS
28777 and MULTILIB_DIRNAMES respectively. Add comment to introduce all
28778 matches. Add architecture matches for marvel-pj4 and generic-armv7-a
28779 CPU options.
28780 * config/arm/t-rmprofile: Likewise except for the matches changes.
28781 * doc/install.texi (--with-multilib-list): Document the combination of
28782 aprofile and rmprofile values and warn about pitfalls in doing that.
28783
28784 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
28785
28786 * config/aarch64/aarch64.md (movsi_aarch64): Remove '*' from r=w.
28787 (movdi_aarch64): Likewise.
28788
28789 2017-05-05 Jakub Jelinek <jakub@redhat.com>
28790
28791 PR tree-optimization/80632
28792 * tree-switch-conversion.c (struct switch_conv_info): Add target_vop
28793 field.
28794 (build_arrays): Initialize it for virtual phis.
28795 (fix_phi_nodes): Use it for virtual phis.
28796
28797 PR tree-optimization/80558
28798 * tree-vrp.c (extract_range_from_binary_expr_1): Optimize
28799 [x, y] op z into [x op, y op z] for op & or | if conditions
28800 are met.
28801
28802 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
28803 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
28804
28805 PR target/71607
28806 * config/arm/arm.md (use_literal_pool): Remove.
28807 (64-bit immediate split): No longer takes cost into consideration
28808 if arm_disable_literal_pool is enabled.
28809 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
28810 used when arm_disable_literal_pool is enabled.
28811 (arm_max_const_double_inline_cost): Remove use of
28812 arm_disable_literal_pool.
28813 (push_minipool_fix): Add assert.
28814 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
28815 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
28816 (no_literal_pool_sf_immediate): New.
28817
28818 2017-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
28819
28820 PR tree-optimization/80613
28821 * tree-ssa-dce.c (propagate_necessity): Remove cases for
28822 BUILT_IN_STRDUP and BUILT_IN_STRNDUP.
28823
28824 2017-05-05 Richard Biener <rguenther@suse.de>
28825
28826 * tree-ssa-pre.c (get_or_alloc_expr_for): Simplify.
28827
28828 2017-05-05 Georg-Johann Lay <avr@gjlay.de>
28829
28830 * config/avr/avr.md [flag_strict_overflow]: Remove any occurence
28831 of this flag from insn conditions due to removal from r247495.
28832
28833 2017-05-05 Wilco Dijkstra <wdijkstr@arm.com>
28834
28835 * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr):
28836 New function.
28837 (arm_early_store_addr_dep_ptr): Likewise.
28838 * config/arm/aarch-common-protos.h
28839 (arm_early_load_addr_dep_ptr): Add prototype.
28840 (arm_early_store_addr_dep_ptr): Likewise.
28841 * config/arm/cortex-a53.md: Add new bypasses.
28842
28843 2017-05-05 Jakub Jelinek <jakub@redhat.com>
28844
28845 * tree.c (next_type_uid): Change type to unsigned.
28846 (type_hash_canon): Decrement back next_type_uid if
28847 freeing a type node with the highest TYPE_UID. For INTEGER_TYPEs
28848 also ggc_free TYPE_MIN_VALUE, TYPE_MAX_VALUE and TYPE_CACHED_VALUES
28849 if possible.
28850
28851 2017-05-04 Martin Sebor <msebor@redhat.com>
28852
28853 * builtins.c: Fix a trivial typo in a comment.
28854
28855 PR middle-end/79234
28856 * builtins.c (check_sizes): Adjust to handle reading past the end.
28857 Avoid printing excessive upper bound of ranges. Use %E to print
28858 tree nodes instead of converting them to %wu.
28859 (expand_builtin_memchr): New function.
28860 (compute_dest_size): Rename...
28861 (compute_objsize): ...to this.
28862 (expand_builtin_memcpy): Adjust.
28863 (expand_builtin_mempcpy): Adjust.
28864 (expand_builtin_strcat): Adjust.
28865 (expand_builtin_strcpy): Adjust.
28866 (check_strncat_sizes): Adjust.
28867 (expand_builtin_strncat): Adjust.
28868 (expand_builtin_strncpy): Adjust and simplify.
28869 (expand_builtin_memset): Adjust.
28870 (expand_builtin_bzero): Adjust.
28871 (expand_builtin_memcmp): Adjust.
28872 (expand_builtin): Handle memcmp.
28873 (maybe_emit_chk_warning): Check strncat just once.
28874
28875 2017-05-04 Martin Sebor <msebor@redhat.com>
28876
28877 PR preprocessor/79214
28878 PR middle-end/79222
28879 PR middle-end/79223
28880 * builtins.c (check_sizes): Add inlining context and issue
28881 warnings even when -Wno-system-headers is set.
28882 (check_strncat_sizes): Same.
28883 (expand_builtin_strncat): Same.
28884 (expand_builtin_memmove): New function.
28885 (expand_builtin_stpncpy): Same.
28886 (expand_builtin): Handle memmove and stpncpy.
28887
28888 2017-05-04 Bin Cheng <bin.cheng@arm.com>
28889
28890 * tree-ssa-loop-ivopts.c (struct cost_pair): Remove field inv_expr
28891 which is not used any more.
28892
28893 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
28894
28895 * config/aarch64/aarch64.c (generic_tunings): Update prefetch model.
28896
28897 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
28898
28899 * config/aarch64/aarch64.c (cortexa35_tunings): Set jump alignment to 4.
28900 (cortexa53_tunings): Likewise.
28901 (cortexa57_tunings): Likewise.
28902 (cortexa72_tunings): Likewise.
28903 (cortexa73_tunings): Likewise.
28904
28905 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
28906
28907 * config/aarch64/aarch64.c (generic_tunings): Set jump alignment to 4.
28908 Set loop alignment to 8.
28909
28910 2017-05-04 Martin Sebor <msebor@redhat.com>
28911
28912 PR translation/80280
28913 * builtins.c (expand_builtin_object_size): Add missing quoting to
28914 %D and like directives.
28915 * hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
28916 (hsa_type_for_tree_type): Same.
28917 (verify_function_arguments): Same.
28918 * symtab.c (symbol_table::change_decl_assembler_name): Same.
28919 * varasm.c (get_section): Same.
28920 (mark_weak): Same.
28921
28922 2017-05-04 Martin Sebor <msebor@redhat.com>
28923
28924 PR translation/80280
28925 * config/i386/i386.c (ix86_function_versions): Quote a %D directive.
28926
28927 2017-05-04 Wilco Dijkstra <wdijkstr@arm.com>
28928
28929 * config/aarch64/aarch64.c (generic_addrcost_table):
28930 Change HI/TI mode setting.
28931
28932 2017-05-04 Martin Jambor <mjambor@suse.cz>
28933
28934 PR tree-optimization/80622
28935 * tree-sra.c (comes_initialized_p): New function.
28936 (build_accesses_from_assign): Only set write lazily when
28937 comes_initialized_p is false.
28938 (analyze_access_subtree): Use comes_initialized_p.
28939 (propagate_subaccesses_across_link): Assert !comes_initialized_p
28940 instead of testing for PARM_DECL.
28941
28942 2017-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28943
28944 * config/aarch64/aarch64.md (prefetch); Adjust predicate and
28945 constraint on operand 0 to allow more general addressing modes.
28946 Adjust output template.
28947 * config/aarch64/aarch64.c (aarch64_address_valid_for_prefetch_p):
28948 New function.
28949 * config/aarch64/aarch64-protos.h
28950 (aarch64_address_valid_for_prefetch_p): Declare prototype.
28951 * config/aarch64/constraints.md (Dp): New address constraint.
28952 * config/aarch64/predicates.md (aarch64_prefetch_operand): New
28953 predicate.
28954
28955 2017-05-04 Jan Hubicka <hubicka@ucw.cz>
28956
28957 * ipa-cp.c (perform_estimation_of_a_value): Drop base_time parameter;
28958 update use of estimate_ipcp_clone_size_and_time.
28959 (estimate_local_effects): Update use of
28960 estimate_ipcp_clone_size_and_time and perform_estimation_of_a_value.
28961 * ipa-inline.h (estimate_ipcp_clone_size_and_time): Update prototype.
28962 * ipa-inline-analysis.c (estimate_ipcp_clone_size_and_time):
28963 Return nonspecialized time.
28964
28965 2017-05-04 Richard Biener <rguenther@suse.de>
28966
28967 * tree-ssa-alias.c (get_continuation_for_phi): Improve looking
28968 for the last VUSE which def dominates the PHI. Directly call
28969 maybe_skip_until.
28970 (get_continuation_for_phi_1): Remove.
28971
28972 2017-05-04 Richard Sandiford <richard.sandiford@linaro.org>
28973
28974 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): Add commentary
28975 to explain the use of truncating division. Cap the number of
28976 iterations to the maximum given by nb_iterations_upper_bound,
28977 if defined.
28978
28979 2017-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
28980
28981 * configure.ac (--enable-mingw-wildcard): Add new configurable feature.
28982 * configure: Regenerate.
28983 * config.in: Regenerate.
28984 * config/i386/driver-mingw32.c: new file.
28985 * config/i386/x-mingw32: Add rule to build driver-mingw32.o.
28986 * config.host: Link driver-mingw32.o on MinGW host.
28987 * doc/install.texi: Document new --enable-mingw-wildcard configure
28988 option.
28989
28990 2017-05-04 Marek Polacek <polacek@redhat.com>
28991
28992 PR tree-optimization/80612
28993 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
28994
28995 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
28996 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
28997
28998 * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT.
28999 (movt splitter): Likewise.
29000 * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2
29001 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check.
29002 (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else
29003 block for Thumb-1 with MOVT.
29004 (thumb2_legitimate_address_p): Move code block ...
29005 (can_avoid_literal_pool_for_label_p): ... into this new function.
29006 (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and
29007 literal pool.
29008 (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT
29009 * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for
29010 "M-profile targets with the MOVT instruction".
29011
29012 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
29013
29014 * config/arm/arm-builtins.c (arm_init_builtins): Rename
29015 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
29016 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
29017
29018 2017-05-04 Martin Liska <mliska@suse.cz>
29019
29020 * tree-vrp.c (simplify_cond_using_ranges_2): Remove unused
29021 variable cond_code.
29022
29023 2017-05-04 Richard Biener <rguenther@suse.de>
29024
29025 * tree.c (array_at_struct_end_p): Handle arrays at struct
29026 end with flexarrays more conservatively. Refactor and treat
29027 arrays of arrays or aggregates more strict. Fix
29028 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
29029 * tree.c (array_at_struct_end_p): Adjust prototype.
29030 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
29031 * gimple-fold.c (get_range_strlen): Likewise.
29032 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
29033
29034 2017-05-04 Richard Biener <rguenther@suse.de>
29035
29036 PR tree-optimization/31130
29037 * tree-vrp.c (needs_overflow_infinity): Remove as always returning
29038 false.
29039 (supports_overflow_infinity): Likewise.
29040 (is_negative_overflow_infinity): Likewise.
29041 (is_positive_overflow_infinity): Likewise.
29042 (is_overflow_infinity): Likewise.
29043 (stmt_overflow_infinity): Likewise.
29044 (overflow_infinity_range_p): Likewise.
29045 (usable_range_p): Remove as always returning true.
29046 (make_overflow_infinity): Remove.
29047 (negative_overflow_infinity): Likewise.
29048 (positive_overflow_infinity): Likewise.
29049 (avoid_overflow_infinity): Likewise.
29050 (set_value_range): Adjust accordingly.
29051 (set_value_range_to_nonnegative): Likewise, remove now unused
29052 overflow_infinity arg.
29053 (vrp_operand_equal_p): Adjust.
29054 (update_value_range): Likewise.
29055 (range_int_cst_singleton_p): Likewise.
29056 (operand_less_p): Likewise.
29057 (compare_values_warnv): Likewise.
29058 (extract_range_for_var_from_comparison_expr): Likewise.
29059 (vrp_int_const_binop): Likewise.
29060 (zero_nonzero_bits_from_vr): Likewise.
29061 (extract_range_from_multiplicative_op_1): Likewise.
29062 (extract_range_from_binary_expr_1): Likewise.
29063 (extract_range_from_unary_expr): Likewise.
29064 (extract_range_from_comparison): Likewise.
29065 (extract_range_basic): Likewise.
29066 (adjust_range_with_scev): Likewise.
29067 (compare_ranges): Likewise.
29068 (compare_range_with_value): Likewise.
29069 (dump_value_range): Likewise.
29070 (test_for_singularity): Likewise, remove strict_overflow_p parameter
29071 never used.
29072 (simplify_cond_using_ranges): Adjust.
29073
29074 2017-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
29075
29076 * brig-builtins.def: Added a builtin for class_f64.
29077 * builtin-types.def: Added a builtin type needed by class_f64.
29078
29079 2017-05-03 Jason Merrill <jason@redhat.com>
29080
29081 * timevar.def: Add TV_CONSTEXPR.
29082
29083 2017-05-03 David Malcolm <dmalcolm@redhat.com>
29084
29085 * common.opt (fdiagnostics-parseable-fixits): Fix typo.
29086
29087 2017-05-03 Martin Jambor <mjambor@suse.cz>
29088
29089 * ipa-prop.c (ipa_update_after_lto_read): Removed.
29090 * ipa-prop.h (ipa_update_after_lto_read): Remove declaration.
29091 * ipa-cp.c (ipcp_propagate_stage): Do not call
29092 ipa_update_after_lto_read.
29093 * ipa-inline.c (ipa_inline): Likewise.
29094
29095 2017-05-03 Martin Jambor <mjambor@suse.cz>
29096
29097 * ipa-prop.h (ipa_edge_args): Make a class. Mark with for_user GTY
29098 tag. Added a default constructor and a destructor.
29099 (ipa_edge_args_sum_t): New class;
29100 (ipa_edge_args_sum): Declare.
29101 (ipa_edge_args_vector): Remove declaration.
29102 (IPA_EDGE_REF): Use ipa_edge_args_sum.
29103 (ipa_free_edge_args_substructures): Remove declaration.
29104 (ipa_check_create_edge_args): Use ipa_edge_args_sum.
29105 (ipa_edge_args_info_available_for_edge_p): Likewise.
29106 * ipa-prop.c (ipa_edge_args_vector): Removed.
29107 (edge_removal_hook_holder): Likewise.
29108 (edge_duplication_hook_holder): Likewise.
29109 (ipa_edge_args_sum): New variable.
29110 (ipa_propagate_indirect_call_infos): Test ipa_edge_args_sum instead of
29111 ipa_edge_args_vector.
29112 (ipa_free_edge_args_substructures): Likewise.
29113 (ipa_free_all_edge_args): Free ipa_edge_args_sum instead of
29114 ipa_edge_args_vector.
29115 (ipa_edge_removal_hook): Turned into method
29116 ipa_edge_args_sum_t::remove.
29117 (ipa_edge_duplication_hook): Turned into method
29118 ipa_edge_args_sum_t::duplicate.
29119 (ipa_register_cgraph_hooks): Create ipa_edge_args_sum instead of
29120 registering edge hooks.
29121 (ipa_unregister_cgraph_hooks): Do not unregister edge hooks.
29122 * ipa-inline-analysis.c (estimate_function_body_sizes): Test
29123 ipa_edge_args_sum instead of ipa_edge_args_vector.
29124 * ipa-profile.c (ipa_profile): Likewise.
29125
29126 2017-05-03 Martin Jambor <mjambor@suse.cz>
29127
29128 * symbol-summary.h (function_summary): New method exists.
29129 (function_summary::symtab_removal): Deallocate through release.
29130 (call_summary): New class.
29131 (gt_ggc_mx): New overload.
29132 (gt_pch_nx): Likewise.
29133 (gt_pch_nx): Likewise.
29134
29135 2017-05-03 Jeff Law <law@redhat.com>
29136
29137 PR tree-optimization/78496
29138 * tree-vrp.c (simplify_cond_using_ranges_1): Renamed
29139 from simplify_cond_using_ranges. Split off code to walk
29140 backwards through casts into ...
29141 (simplify_cond_using_ranges_2): New function.
29142 (simplify_stmt_using_ranges): Call simplify_cond_using_ranges_1.
29143 (execute_vrp): After identifying jump threads, call
29144 simplify_cond_using_ranges_2.
29145
29146 2017-05-03 Jan Hubicka <hubicka@ucw.cz>
29147
29148 PR bootstrap/80609
29149 * ipa-inline.h (inline_summary): Add ctor.
29150 (create_ggc): Do not use ggc_cleared_alloc.
29151
29152 2017-05-03 Jeff Downs <heydowns@somuchpressure.net>
29153 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29154
29155 * gcc.c (handle_braces): Support escaping in switch matching
29156 text.
29157 * doc/invoke.texi (Spec Files): Document it.
29158 Remove superfluous @code markup in items.
29159
29160 2017-05-03 David Malcolm <dmalcolm@redhat.com>
29161
29162 * diagnostic-show-locus.c (struct column_range): New struct.
29163 (get_affected_columns): New function.
29164 (get_printed_columns): New function.
29165 (struct correction): New struct.
29166 (correction::ensure_capacity): New function.
29167 (correction::ensure_terminated): New function.
29168 (struct line_corrections): New struct.
29169 (line_corrections::~line_corrections): New dtor.
29170 (line_corrections::add_hint): New function.
29171 (layout::print_trailing_fixits): Reimplement in terms of the new
29172 classes.
29173 (selftest::test_overlapped_fixit_printing): New function.
29174 (selftest::diagnostic_show_locus_c_tests): Call it.
29175
29176 2017-05-03 Nathan Sidwell <nathan@acm.org>
29177
29178 Canonicalize canonical type hashing
29179 * tree.h (type_hash_canon_hash): Declare.
29180 * tree.c (type_hash_list, attribute_hash_list): Move into
29181 type_hash_canon_hash.
29182 (build_type_attribute_qual_variant): Break out hash code calc into
29183 type_hash_canon_hash.
29184 (type_hash_canon_hash): New. Generic type hash computation.
29185 (build_range_type_1, build_array_type_1, build_function_type,
29186 build_method_type_directly, build_offset_type, build_complex_type,
29187 make_vector_type): Call it.
29188
29189 2017-05-03 Richard Biener <rguenther@suse.de>
29190
29191 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
29192 When all DRs have unknown misaligned do not always peel
29193 when there is a store but apply the same costing model as if
29194 there were only loads.
29195
29196 2017-05-03 Richard Biener <rguenther@suse.de>
29197
29198 Revert
29199 PR tree-optimization/80492
29200 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
29201 compare_base_decls returning dont-know properly.
29202
29203 2017-05-03 Thomas Preud'homme <thomas.preudhomme@arm.com>
29204
29205 * config/arm/iterators.md (CCSI): New mode iterator.
29206 (arch): New mode attribute.
29207 * config/arm/sync.md (atomic_compare_and_swap<mode>_1): Rename into ...
29208 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): This and ...
29209 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): This. Use CCSI
29210 code iterator for success result mode.
29211 * config/arm/arm.c (arm_expand_compare_and_swap): Adapt code to use
29212 the corresponding new insn generators.
29213
29214 2017-05-03 Bin Cheng <bin.cheng@arm.com>
29215
29216 Revert r247509
29217 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29218 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
29219
29220 2017-05-03 Richard Sandiford <richard.sandiford@linaro.org>
29221
29222 * tree-data-ref.h (SUB_CONFLICTS_IN_A): Wrap SUB argument in brackets.
29223 (SUB_CONFLICTS_IN_B, SUB_LAST_CONFLICT, SUB_DISTANCE): Likewise.
29224 (DDR_A): Wrap DDR argument in brackets.
29225 (DDR_B, DDR_AFFINE_P, DDR_ARE_DEPENDENT, DDR_SUBSCRIPTS): Likewise.
29226 (DDR_LOOP_NEST, DDR_INNER_LOOP, DDR_SELF_REFERENCE): Likewise.
29227 (DDR_REVERSED_P): Likewise.
29228
29229 2017-05-03 Jakub Jelinek <jakub@redhat.com>
29230
29231 PR tree-optimization/79472
29232 * tree-switch-conversion.c (struct switch_conv_info): Add
29233 contiguous_range and default_case_nonstandard fields.
29234 (collect_switch_conv_info): Compute contiguous_range and
29235 default_case_nonstandard fields, don't clear final_bb if
29236 contiguous_range and only the default case doesn't have the required
29237 structure.
29238 (check_all_empty_except_final): Set default_case_nonstandard instead
29239 of failing if contiguous_range and the default case doesn't have empty
29240 block.
29241 (check_final_bb): Add SWTCH argument, don't fail if contiguous_range
29242 and only the default case doesn't have the required constants. Skip
29243 virtual phis.
29244 (gather_default_values): Skip virtual phis. Allow non-NULL CASE_LOW
29245 if default_case_nonstandard.
29246 (build_constructors): Build constant 1 just once. Assert that default
29247 values aren't inserted in between cases if contiguous_range. Skip
29248 virtual phis.
29249 (build_arrays): Skip virtual phis.
29250 (prune_bbs): Add DEFAULT_BB argument, don't remove that bb.
29251 (fix_phi_nodes): Don't add e2f phi arg if default_case_nonstandard.
29252 Handle virtual phis.
29253 (gen_inbound_check): Handle default_case_nonstandard case.
29254 (process_switch): Adjust check_final_bb caller. Call
29255 gather_default_values with the first non-default case instead of
29256 default case if default_case_nonstandard.
29257
29258 2017-05-02 Nathan Sidwell <nathan@acm.org>
29259
29260 * ggc-page.c (move_ptes_to_front): Replace unsigned >0 with i--
29261 check. Fix formatting.
29262
29263 2017-05-02 Jan Hubicka <hubicka@ucw.cz>
29264
29265 * ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
29266 errors when comparing specialized and unspecialized times.
29267
29268 2017-05-02 David Malcolm <dmalcolm@redhat.com>
29269
29270 * diagnostic-show-locus.c
29271 (layout::should_print_annotation_line_p): Make private.
29272 (layout::print_annotation_line): Make private.
29273 (layout::annotation_line_showed_range_p): Make private.
29274 (layout::show_ruler): Make private.
29275 (layout::print_source_line): Make private. Pass in line and
29276 line_width, rather than calling location_get_source_line. Drop
29277 returned value.
29278 (layout::print_leading_fixits): New method.
29279 (layout::print_any_fixits): Rename to...
29280 (layout::print_trailing_fixits): ...this, and make private.
29281 Don't print newline fixits.
29282 (diagnostic_show_locus): Move logic for printing one row into...
29283 (layout::print_line): ...this new function. Move the
29284 location_get_source_line call and error-handling from
29285 print_source_line to here. Call print_leading_fixits, and rename
29286 print_any_fixits to print_trailing_fixits.
29287 (selftest::test_fixit_insert_containing_newline): Update now that
29288 newlines are partially supported.
29289 (selftest::test_fixit_insert_containing_newline_2): New test.
29290 (selftest::test_fixit_replace_containing_newline): Update comments.
29291 (selftest::diagnostic_show_locus_c_tests): Call the new test.
29292 * edit-context.c (class added_line): New class.
29293 (class edited_line): Describe newline handling in comment.
29294 (edited_line::actually_edited_p): New method.
29295 (edited_line::print_content): Delete redundant decl.
29296 (edited_line::m_predecessors): New field.
29297 (edited_file::print_content): Call edited_line::print_content.
29298 (edited_file::print_diff): Update to support newlines.
29299 (edited_file::print_diff_hunk): Likewise.
29300 (edited_file::print_run_of_changed_lines): New function.
29301 (edited_file::print_diff_line): Convert to...
29302 (print_diff_line): ...this.
29303 (edited_file::get_effective_line_count): New function.
29304 (edited_line::edited_line): Initialize new field m_predecessors.
29305 (edited_line::~edited_line): Clean up m_predecessors.
29306 (edited_line::apply_fixit): Handle newlines.
29307 (edited_line::get_effective_line_count): New function.
29308 (edited_line::print_content): New function.
29309 (edited_line::print_diff_lines): New function.
29310 (selftest::test_applying_fixits_insert_containing_newline): New
29311 test.
29312 (selftest::test_applying_fixits_replace_containing_newline): New
29313 test.
29314 (selftest::insert_line): New function.
29315 (selftest::test_applying_fixits_multiple_lines): Add example of
29316 inserting a line.
29317 (selftest::edit_context_c_tests): Call the new tests.
29318
29319 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29320
29321 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Delete
29322 parameter cand. Update dump information.
29323 (get_computation_cost): Update uses.
29324
29325 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29326
29327 * tree-ssa-loop-ivopts.c (get_computation_aff_1): New.
29328 (get_computation_aff): Reorder parameters. Use get_computation_aff_1.
29329 (get_computation_at, rewrite_use_address): Update use of
29330 get_computation_aff.
29331
29332 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29333
29334 * tree-ssa-loop-ivopts.c (get_computation_at): Reorder parameters.
29335 (get_computation): Delete.
29336 (get_computation_cost): Implement like get_computation_cost_at.
29337 Use get_computation_at.
29338 (get_computation_cost_at): Delete.
29339 (rewrite_use_nonlinear_expr): Use get_computation_at.
29340 (rewrite_use_compare, remove_unused_ivs): Ditto.
29341
29342 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29343
29344 * tree-ssa-loop-ivopts.c (rewrite_use_address): Simple refactor.
29345
29346 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29347
29348 * tree-ssa-loop-ivopts.c (struct iv_ca): Rename n_regs to n_invs.
29349 (ivopts_global_cost_for_size): Rename parameter and update uses.
29350 (iv_ca_recount_cost): Update uses.
29351 (iv_ca_set_remove_invs, iv_ca_set_no_cp): Record invariants and
29352 candidates seperately in n_invs and n_cands.
29353 (iv_ca_set_add_invs, iv_ca_set_cp, iv_ca_new): Ditto.
29354
29355 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29356
29357 * tree-ssa-loop-ivopts.c (struct walk_tree_data): New.
29358 (find_inv_vars_cb): New.
29359 (find_depends): Renamed to ...
29360 (find_inv_vars): ... this.
29361 (add_candidate_1, force_var_cost): Call find_inv_vars.
29362 (split_address_cost, determine_group_iv_cost_cond): Ditto.
29363
29364 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29365
29366 * tree-ssa-loop-ivopts.c (struct cost_pair): Rename depends_on to
29367 inv_vars. Add inv_exprs.
29368 (struct iv_cand): Rename depends_on to inv_vars.
29369 (struct ivopts_data): Rename max_inv_id/n_invariant_uses to
29370 max_inv_var_id/n_inv_var_uses. Move max_inv_expr_id around.
29371 Refactor field used_inv_exprs from has_map to array n_inv_expr_uses.
29372 (dump_cand): Dump inv_vars.
29373 (tree_ssa_iv_optimize_init): Support inv_vars and inv_exprs.
29374 (record_invariant, find_depends, add_candidate_1): Ditto.
29375 (set_group_iv_cost, force_var_cost): Ditto.
29376 (split_address_cost, ptr_difference_cost, difference_cost): Ditto.
29377 (get_computation_cost_at, get_computation_cost): Ditto.
29378 (determine_group_iv_cost_generic): Ditto.
29379 (determine_group_iv_cost_address): Ditto.
29380 (determine_group_iv_cost_cond, autoinc_possible_for_pair): Ditto.
29381 (determine_group_iv_costs): Ditto.
29382 (iv_ca_recount_cost): Update call to ivopts_global_cost_for_size.
29383 (iv_ca_set_remove_invariants): Renamed to ...
29384 (iv_ca_set_remove_invs): ... this. Support inv_vars and inv_exprs.
29385 (iv_ca_set_no_cp): Use iv_ca_set_remove_invs.
29386 (iv_ca_set_add_invariants): Renamed to ...
29387 (iv_ca_set_add_invs): ... this. Support inv_vars and inv_exprs.
29388 (iv_ca_set_cp): Use iv_ca_set_add_invs.
29389 (iv_ca_has_deps): Support inv_vars and inv_exprs.
29390 (iv_ca_new, iv_ca_free, iv_ca_dump, free_loop_data): Ditto.
29391 (create_new_ivs): Remove useless dump.
29392
29393 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29394
29395 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Remove pseudo
29396 iv_cand code.
29397 (determine_group_iv_cost_cond, determine_iv_cost): Ditto.
29398 (iv_ca_set_no_cp, create_new_iv): Ditto.
29399
29400 2017-05-02 Bin Cheng <bin.cheng@arm.com>
29401
29402 * rtlanal.c (rtx_cost): Handle TRUNCATE between tieable modes.
29403
29404 2017-05-02 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
29405
29406 * tree.h (EXPR_CILK_SPAWN): Use macro TREE_CHECK2 instead of
29407 function tree_check2.
29408
29409 2017-05-02 Martin Liska <mliska@suse.cz>
29410
29411 * doc/gcov.texi: Add missing preposition.
29412 * gcov.c (function_info::function_info): Properly fill up
29413 all member variables.
29414
29415 2017-05-02 Tamar Christina <tamar.christina@arm.com>
29416
29417 * expr.c (expand_expr_real_2): Re-cost if previous costs are the same.
29418
29419 2017-05-02 Tamar Christina <tamar.christina@arm.com>
29420
29421 * simplify-rtx.c (simplify_binary_operation_1): Add LSHIFTRT case.
29422
29423 2017-05-02 Martin Liska <mliska@suse.cz>
29424
29425 PR lto/77954.
29426 * lto-streamer-in.c (lto_read_tree_1): Remove
29427 LTO_STREAMER_DEBUG.
29428 * lto-streamer.c (struct tree_hash_entry): Likewise.
29429 (struct tree_entry_hasher): Likewise.
29430 (tree_entry_hasher::hash): Likewise.
29431 (tree_entry_hasher::equal): Likewise.
29432 (lto_streamer_init): Likewise.
29433 (lto_orig_address_map): Likewise.
29434 (lto_orig_address_get): Likewise.
29435 (lto_orig_address_remove): Likewise.
29436 * lto-streamer.h: Likewise.
29437 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
29438 * tree-streamer-out.c (streamer_write_tree_header): Likewise.
29439
29440 2017-05-02 Sebastian Peryt <sebastian.peryt@intel.com>
29441
29442 * config/i386/avx512fintrin.h (_mm_mask_add_round_sd)
29443 (_mm_maskz_add_round_sd, _mm_mask_add_round_ss)
29444 (mm_maskz_add_round_ss, _mm_mask_sub_round_sd)
29445 (mm_maskz_sub_round_sd, _mm_mask_sub_round_ss)
29446 (mm_maskz_sub_round_ss, _mm_mask_add_sd)
29447 (mm_maskz_add_sd, _mm_mask_add_ss, _mm_maskz_add_ss)
29448 (mm_mask_sub_sd, _mm_maskz_sub_sd, _mm_mask_sub_ss)
29449 (mm_maskz_sub_ss): New intrinsics.
29450 * config/i386/i386-builtin-types.def (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
29451 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): New function type aliases.
29452 * config/i386/i386-builtin.def (__builtin_ia32_addsd_mask_round)
29453 (__builtin_ia32_addss_mask_round, __builtin_ia32_subsd_mask_round)
29454 (__builtin_ia32_subss_mask_round): New builtins.
29455 * config/i386/i386.c (V2DF_FTYPE_V2DF_V2DF_V2DF_UQI_INT)
29456 (V4SF_FTYPE_V4SF_V4SF_V4SF_UQI_INT): Handle new types.
29457 * config/i386/sse.md (<sse>_vm<plusminus_insn><mode>3<round_name>):
29458 Renamed to ...
29459 (<sse>_vm<plusminus_insn><mode>3<mask_name><round_name>): ... this.
29460 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_op3>%2, %1, %0|%0, %1, %<iptr>2<round_op3>}):
29461 Changed to ...
29462 (v<plusminus_mnemonic><ssescalarmodesuffix>\t{<round_mask_op3>%2, %1, %0<mask_operand3>|%0<mask_operand3>, %1, %<iptr>2<round_mask_op3>}):
29463 ... this.
29464
29465 2017-05-02 Martin Jambor <mjambor@suse.cz>
29466
29467 PR tree-optimization/78687
29468 * tree-sra.c (access): New field parent.
29469 (process_subtree_disqualification): New function.
29470 (disqualify_candidate): Call it.
29471 (build_accesses_from_assign): Reset write flag if creating an
29472 assighnment link.
29473 (build_access_subtree): Fill in parent field and also prpagate
29474 down grp_write flag.
29475 (create_artificial_child_access): New parameter set_grp_write, set
29476 grp_write to its value.
29477 (propagate_subaccesses_across_link): Also propagate grp_write flag
29478 values.
29479 (propagate_all_subaccesses): Push the closest parent back to work
29480 queue if add_access_to_work_queue returned true.
29481
29482 2017-05-02 Richard Biener <rguenther@suse.de>
29483
29484 * common.opt (fstrict-overflow): Alias negative to fwrapv.
29485 * doc/invoke.texi (fstrict-overflow): Remove all traces of
29486 -fstrict-overflow documentation.
29487 * tree.h (TYPE_OVERFLOW_UNDEFINED): Do not test flag_strict_overflow.
29488 (POINTER_TYPE_OVERFLOW_UNDEFINED): Test !flag_wrapv instead of
29489 flag_strict_overflow.
29490 * ipa-inline.c (can_inline_edge_p): Do not test flag_strict_overflow.
29491 * lto-opts.c (lto_write_options): Do not stream it.
29492 * lto-wrapper.c (merge_and_complain): Do not handle it.
29493 * opts.c (default_options_table): Do not set -fstrict-overflow.
29494 (finish_options): Likewise do not clear it when sanitizing.
29495 * simplify-rtx.c (simplify_const_relational_operation): Do not
29496 test flag_strict_overflow.
29497
29498 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
29499
29500 * config/alpha/alpha.md (*add<mode>3_ieee): Merge to add<mode>3
29501 using enabled attribute.
29502 (*sub<mode>3_ieee): Merge to sub<mode>3 using enabled attribute.
29503 (*mul<mode>3_ieee): Merge to mul<mode>3 using enabled attribute.
29504 (*div<mode>3_ieee): Merge to div<mode>3 using enabled attribute.
29505 (*sqrt<mode>2_ieee): Merge to sqrt<mode>2 using enabled attribute.
29506 (*fix_truncdfdi_ieee): Merge to *fix_truncdfdi2 using enabled attribute.
29507 (*fix_truncsfdi_ieee): Merge to *fix_truncsfdi2 using enabled attribute.
29508 (*floatdisf_ieee): Merge to floatdisf2 using enabled attribute.
29509 (*floatdidf_ieee): Merge to floatdidf2 using enabled attribute.
29510 (*truncdfsf2_ieee): Merge to truncdfsf2 using enabled attribute.
29511 (*cmpdf_ieee): Merge to *cmpdf_internal using enabled attribute.
29512
29513 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
29514
29515 * config/i386/i386.c (ix86_code_end): Use {FIRST,LAST}_INT_REG.
29516
29517 2017-05-02 Richard Biener <rguenther@suse.de>
29518
29519 PR tree-optimization/80591
29520 Revert
29521 2017-04-10 Richard Biener <rguenther@suse.de>
29522
29523 * tree-ssa-structalias.c (find_func_aliases): Properly handle
29524 asm inputs.
29525
29526 2017-05-02 Richard Biener <rguenther@suse.de>
29527
29528 PR tree-optimization/80549
29529 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
29530 (cleanup_tree_cfg_noloop): Create forwarders to known loop
29531 headers if they do not have a preheader.
29532
29533 2017-05-02 Martin Liska <mliska@suse.cz>
29534
29535 PR other/80589
29536 * common.opt: Fix typo.
29537 * doc/invoke.texi: Likewise.
29538
29539 2017-05-01 Jan Beulich <jbeulich@suse.com>
29540
29541 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
29542 swapping, add (x,x,m,x,n) alternative.
29543
29544 2017-05-01 Nathan Sidwell <nathan@acm.org>
29545
29546 * calls.c (combine_pending_stack_adjustment_and_call): Remove
29547 unnecessary unadjusted_alignment check.
29548
29549 2017-05-01 Xi Ruoyao <ryxi@stu.xidian.edu.cn>
29550
29551 PR c++/80038
29552 * cilk_common.c (expand_builtin_cilk_detach): Move pedigree
29553 operations here.
29554 * gimplify.c (gimplify_cilk_detach): New function.
29555 (gimplify_call_expr, gimplify_modify_expr): Call it as needed.
29556 * tree-core.h: Document EXPR_CILK_SPAWN.
29557 * tree.h (EXPR_CILK_SPAWN): Define.
29558
29559 2017-05-01 David Malcolm <dmalcolm@redhat.com>
29560
29561 * diagnostic-show-locus.c (layout::get_expanded_location): Rewrite
29562 to use new fixit_hint representation, using the "replace" logic.
29563 (get_line_span_for_fixit_hint): Likewise.
29564 (layout::print_any_fixits): Likewise.
29565 (selftest::test_one_liner_many_fixits): Rename to...
29566 (selftest::test_one_liner_many_fixits_1): ...this, and update
29567 comment and expected output to reflect that the multiple fix-it
29568 hints are now consolidated into one insertion.
29569 (selftest::test_one_liner_many_fixits_2): New test.
29570 (selftest::test_diagnostic_show_locus_one_liner): Update for
29571 above.
29572 (selftest::test_fixit_consolidation): Update for fix-it API
29573 change.
29574 * diagnostic.c (print_parseable_fixits): Likewise.
29575 * edit-context.c (edited_line::m_line_events): Convert from
29576 auto_vec <line_event *> to auto_vec <line_event>.
29577 (class line_event): Convert from abstract base class to a concrete
29578 class, taking over the role of replace_event.
29579 (class insert_event): Delete.
29580 (class replace_event): Rename to class line_event. Convert to
29581 half-open range.
29582 (edit_context::add_fixits): Reimplement.
29583 (edit_context::apply_insert): Delete.
29584 (edit_context::apply_replace): Rename to...
29585 (edit_context::apply_fixit): ...this. Convert to half-open range.
29586 (edited_file::apply_insert): Delete.
29587 (edited_file::apply_replace): Rename to...
29588 (edited_file::apply_fixit): ...this.
29589 (edited_line::~edited_line): Drop deletion of events.
29590 (edited_line::apply_insert): Delete.
29591 (edited_line::apply_replace): Rename to...
29592 (edited_line::apply_fixit): ...this. Convert to half-open range.
29593 Update for change to type of m_line_events.
29594 * edit-context.h (edit_context::apply_insert): Delete.
29595 (edit_context::apply_replace): Rename to...
29596 (edit_context::apply_fixit): ...this.
29597
29598 2017-05-01 Martin Sebor <msebor@redhat.com>
29599
29600 * gimple-ssa-sprintf.c (format_integer): Set knownrange when it's
29601 known.
29602
29603 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
29604
29605 PR target/68491
29606 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
29607 __get_cpuid_max returns 0.
29608 (__get_cpuid_count): Ditto.
29609
29610 2017-05-01 Eric Botcazou <ebotcazou@adacore.com>
29611
29612 * tree.c (substitute_in_expr) <tcc_vl_exp>: Also inline a call if the
29613 replacement expression is another instance of one of its arguments.
29614
29615 2017-05-01 Jakub Jelinek <jakub@redhat.com>
29616
29617 PR target/79430
29618 * rtlanal.c (reg_set_p): If reg is a stack_pointer_rtx, also
29619 check for stack push/pop autoinc.
29620 * config/i386/i386.c (ix86_agi_dependent): Return false
29621 if the only reason why modified_in_p returned true is that
29622 addr is SP based and set_insn is a push or pop.
29623
29624 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
29625
29626 * ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
29627 overflow check.
29628
29629 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
29630
29631 PR ipa/79224
29632 * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
29633 (account_size_time): Use two predicates - exec_pred and
29634 nonconst_pred_ptr.
29635 (evaluate_conditions_for_known_args): Compute both clause and
29636 nonspec_clause.
29637 (evaluate_properties_for_edge): Evaulate both clause and nonspec_clause.
29638 (inline_summary_t::duplicate): Update.
29639 (estimate_function_body_sizes): Caluculate exec and nonconst predicates
29640 separately.
29641 (compute_inline_parameters): Likewise.
29642 (estimate_edge_size_and_time): Update caluclation of time.
29643 (estimate_node_size_and_time): Compute both time and nonspecialized
29644 time.
29645 (estimate_ipcp_clone_size_and_time): Update.
29646 (inline_merge_summary): Update.
29647 (do_estimate_edge_time): Update.
29648 (do_estimate_edge_size): Update.
29649 (do_estimate_edge_hints): Update.
29650 (inline_read_section, inline_write_summary): Stream both new predicates.
29651 * ipa-inline.c (compute_uninlined_call_time): Take uninlined_call_time
29652 as argument.
29653 (compute_inlined_call_time): Cleanup.
29654 (big_speedup_p): Update.
29655 (edge_badness): Update.
29656 * ipa-inline.h (INLINE_TIME_SCALE): Remove.
29657 (size_time_entry): Replace predicate by exec_predicate and
29658 nonconst_predicate.
29659 (edge_growth_cache_entry): Cache both time nad nonspecialized time.
29660 (estimate_edge_time): Return also nonspec_time.
29661 (reset_edge_growth_cache): Update.
29662
29663 2017-04-29 Jakub Jelinek <jakub@redhat.com>
29664
29665 PR rtl-optimization/80491
29666 * ifcvt.c (noce_process_if_block): When looking for x setter
29667 with missing else_bb, don't check only the insn right before
29668 cond_earliest, but look for the last insn that x is modified in
29669 within the same bb.
29670
29671 PR rtl-optimization/80491
29672 * alias.c (memory_modified_in_insn_p): Return true for CALL_INSNs.
29673
29674 2017-04-29 Marc Glisse <marc.glisse@inria.fr>
29675
29676 PR tree-optimization/80487
29677 * tree-ssa-alias.c (stmt_kills_ref_p): Handle stpncpy and strncpy.
29678
29679 2017-04-29 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
29680
29681 PR tree-optimization/79697
29682 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Check if callee
29683 is BUILT_IN_STRDUP, BUILT_IN_STRNDUP, BUILT_IN_REALLOC.
29684 (propagate_necessity): Check if def_callee is BUILT_IN_STRDUP or
29685 BUILT_IN_STRNDUP.
29686 * gimple-fold.c (gimple_fold_builtin_realloc): New function.
29687 (gimple_fold_builtin): Call gimple_fold_builtin_realloc.
29688
29689 2017-04-28 Martin Sebor <msebor@redhat.com>
29690
29691 PR tree-optimization/80523
29692 * gimple-ssa-sprintf.c (target_to_host_charmap): New global variable.
29693 (init_target_to_host_charmap, target_to_host, target_strtol10): New
29694 functions.
29695 (maybe_warn, format_directive, parse_directive): Use new functions.
29696 (pass_sprintf_length::execute): Call init_target_to_host_charmap.
29697
29698 2017-04-28 Marc Glisse <marc.glisse@inria.fr>
29699
29700 * match.pd (X+Z OP Y+Z, X-Z OP Y-Z, Z-X OP Z-Y): New transformations.
29701
29702 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
29703
29704 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
29705 target_header_dir): Set correctly.
29706 * configure: Regenerated.
29707 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
29708 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
29709 instead of SYSTEM_HEADER_DIR.
29710
29711 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
29712
29713 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
29714 (estimate_local_effects): Likewise.
29715 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
29716 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
29717 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
29718 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
29719 do_estimate_edge_time, estimate_edge_time): Likewise.
29720 * ipa-inline-analysis.c (estimate_node_size_and_time,
29721 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
29722 (estimate_time_after_inlining): Remove.
29723
29724 2017-04-28 Martin Liska <mliska@suse.cz>
29725
29726 * doc/gcov.texi: Enhance documentation of gcov.
29727
29728 2017-04-28 Martin Liska <mliska@suse.cz>
29729
29730 * doc/gcov.texi: Sort options in alphabetic order.
29731 * doc/gcov-dump.texi: Likewise.
29732 * doc/gcov-tool.texi: Likewise.
29733 * gcov.c (print_usage): Likewise.
29734 * gcov-dump.c (print_usage): Likewise.
29735 * gcov-tool.c (print_merge_usage_message): Likewise.
29736 (print_rewrite_usage_message): Likewise.
29737 (print_overlap_usage_message): Likewise.
29738
29739 2017-04-28 Martin Liska <mliska@suse.cz>
29740
29741 PR gcov-profile/53915
29742 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
29743
29744 2017-04-28 Martin Liska <mliska@suse.cz>
29745
29746 PR gcov-profile/79891
29747 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
29748 is marked by compiler as living on a line.
29749 (get_cycles_count): Remove usage of the union.
29750 (output_intermediate_file): Likewise.
29751 (find_source): Fix GNU coding style.
29752 (accumulate_line_counts): Remove old non-all block mode.
29753 (output_lines): Remove usage of the union.
29754 * profile.c (output_location): Include all BBs, even if
29755 belonging to a same line (and file) as a previous BB.
29756
29757 2017-04-28 Martin Liska <mliska@suse.cz>
29758
29759 * gcov.c (process_args): Handle new argument 'w'.
29760 (read_graph_file): Assign ID to BBs.
29761 (output_branch_count): Display BB # if verbose flag is set.
29762 (output_lines): Likewise for arcs.
29763 (print_usage): Add '--verbose' option help.
29764 * doc/gcov.texi: Document --verbose (-w) option.
29765
29766 2017-04-28 Martin Liska <mliska@suse.cz>
29767
29768 * gcov.c (struct block_location_info): New struct.
29769 (process_file): Fill up the new structure.
29770 (read_graph_file): Replace usage of encoding by the newly added
29771 struct.
29772 (add_line_counts): Likewise.
29773 (accumulate_line_counts): Remove usage of the union.
29774 (function_info::function_info): New function.
29775 (function_info::~function_info): Likewise.
29776 (process_file): Call delete instead of release_function.
29777 (release_function): Release the function.
29778 (release_structures): Call delete instead of release_function.
29779 (solve_flow_graph): Replace usage of num_blocks.
29780 (find_exception_blocks): Likewise.
29781 (output_lines): Fix GNU coding style.
29782
29783 2017-04-28 Martin Liska <mliska@suse.cz>
29784
29785 PR driver/56469
29786 * coverage.c (coverage_remove_note_file): New function.
29787 * coverage.h: Declare the function.
29788 * toplev.c (finalize): Clean if an error has been seen.
29789
29790 2017-04-28 Martin Liska <mliska@suse.cz>
29791
29792 PR gcov-profile/80031
29793 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
29794 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
29795 * gcov.c (read_graph_file): Read just number of blocks.
29796 * profile.c (branch_prob): Do not stream 0 flags per a basic
29797 block.
29798
29799 2017-04-28 Martin Liska <mliska@suse.cz>
29800
29801 * gcov-dump.c (tag_*): Add new argument to declarations.
29802 (dump_gcov_file): Likewise.
29803 (tag_blocks): Add and use new argument depth.
29804 (tag_arcs): Likewise.
29805 (tag_lines): Likewise.
29806 (tag_counters): Likewise.
29807 (tag_summary): Likewise.
29808 (dump_working_sets): Use depth to do a proper indentation.
29809
29810 2017-04-28 Jakub Jelinek <jakub@redhat.com>
29811
29812 PR bootstrap/80531
29813 * cgraph.h (symtab_node::debug_symtab): No longer inline.
29814 * symtab.c (symtab_node::debug_symtab): Move definition here.
29815
29816 2017-04-28 Richard Biener <rguenther@suse.de>
29817
29818 * lto-streamer.h (LTO_major_version): Bump to 7.
29819
29820 2017-04-28 Richard Biener <rguenther@suse.de>
29821
29822 * tree-vrp.c (assert_info): New struct.
29823 (add_assert_info): New helper.
29824 (register_edge_assert_for_2): Refactor to add asserts to a vector
29825 of assert_info.
29826 (register_edge_assert_for_1): Likewise.
29827 (register_edge_assert_for): Likewise.
29828 (finish_register_edge_assert_for): New helper actually registering
29829 asserts where live on edge.
29830 (find_conditional_asserts): Adjust.
29831 (find_switch_asserts): Likewise.
29832 (evrp_dom_walker::try_find_new_range): Generalize.
29833 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
29834
29835 2017-04-27 Marek Polacek <polacek@redhat.com>
29836
29837 PR sanitizer/80349
29838 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
29839 arg10 and arg11 to itype.
29840
29841 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
29842
29843 * doc/extend.texi (Object Size Checking): Improve grammar.
29844
29845 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
29846
29847 PR target/80530
29848 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
29849 that the logic for permitting reciprocal estimates matches that
29850 in use_rsqrt_p.
29851
29852 2017-04-27 Jakub Jelinek <jakub@redhat.com>
29853
29854 PR c++/80534
29855 * tree.c (type_cache_hasher::equal): Only compare
29856 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
29857 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
29858 non-aggregate element types.
29859 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
29860 about the flag on ARRAY_TYPEs in the comment, formatting fix.
29861
29862 2017-04-27 Richard Biener <rguenther@suse.de>
29863
29864 PR middle-end/80533
29865 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
29866 stripping ARRAY_REFs from MEM_EXPR make sure we're not
29867 keeping a reference to a trailing array.
29868
29869 2017-04-27 Richard Biener <rguenther@suse.de>
29870
29871 PR middle-end/80539
29872 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
29873 being in loop-closed SSA form conservatively.
29874 (chrec_fold_multiply_poly_poly): Likewise.
29875
29876 2017-04-27 Tamar Christina <tamar.christina@arm.com>
29877
29878 PR middle-end/79665
29879 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
29880 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
29881
29882 2017-04-27 Jakub Jelinek <jakub@redhat.com>
29883
29884 PR target/77728
29885 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
29886 (aarch64_function_arg_alignment): Return unsigned int again, but still
29887 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
29888 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
29889 Don't emit -Wpsabi note.
29890 (aarch64_function_arg_boundary): Likewise.
29891 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
29892 caller.
29893
29894 2017-04-26 Nathan Sidwell <nathan@acm.org>
29895
29896 * tree.h (crc32_unsigned_n): Declare.
29897 (crc32_unsigned, crc32_unsigned): Make inline.
29898 * tree.c (crc32_unsigned_bits): Replace with ...
29899 (crc32_unsigned_n): ... this.
29900 (crc32_unsigned, crc32_byte): Remove.
29901 (crc32_string): Remove unnecessary braces.
29902
29903 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
29904
29905 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
29906 * ipa-inline-analysis.c (MAX_TIME): Remove.
29907 (account_size_time): Use sreal for time.
29908 (dump_inline_summary): Update.
29909 (estimate_function_body_sizes): Update.
29910 (estimate_edge_size_and_time): Update.
29911 (estimate_calls_size_and_time): Update.
29912 (estimate_node_size_and_time): Update.
29913 (inline_merge_summary): Update.
29914 (inline_update_overall_summary): Update.
29915 (estimate_time_after_inlining): Update.
29916 (inline_read_section): Update.
29917 (inline_write_summary): Update.
29918 * ipa-inline.c (compute_uninlined_call_time): Update.
29919 (compute_inlined_call_time): Update.
29920 (recursive_inlining): Update.
29921 (inline_small_functions): Update.
29922 (dump_overall_stats): Update.
29923 * ipa-inline.h: Include sreal.h.
29924 (size_time_entry): Turn time to sreal.
29925 (inline_summary): Turn self_time nad time to sreal.
29926
29927 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
29928
29929 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
29930 data-streamer.h
29931 (sreal::stream_out, sreal::stream_in): New.
29932 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
29933
29934 2017-04-25 Jakub Jelinek <jakub@redhat.com>
29935
29936 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
29937 environment.
29938
29939 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
29940
29941 PR target/70799
29942 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
29943 Handle ASHIFTRT.
29944 (dimode_scalar_chain::compute_convert_gain): Ditto.
29945 (dimode_scalar_chain::make_vector_copies): Ditto.
29946 (dimode_scalar_chain::convert_reg): Ditto.
29947 (dimode_scalar_chain::convert_insn): Ditto.
29948 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
29949 (VI248_AVX512BW_1): New mode iterator.
29950 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
29951 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
29952 mode iterator.
29953
29954 2017-04-25 Martin Sebor <msebor@redhat.com>
29955
29956 PR tree-optimization/80497
29957 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
29958 constants are representable in HOST_WIDE_INT.
29959 (parse_directive): Ditto.
29960
29961 2017-04-25 Martin Sebor <msebor@redhat.com>
29962
29963 PR bootstrap/80486
29964 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
29965 (new_zero_array): Adjust signature.
29966 (dom_info::dom_init): Used unsigned rather that size_t.
29967 (dom_info::dom_info): Same.
29968
29969 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
29970 Jakub Jelinek <jakub@redhat.com>
29971
29972 PR target/77728
29973 * config/arm/arm.c: Include gimple.h.
29974 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
29975 returns negative, increment ncrn only if it returned positive.
29976 (arm_needs_doubleword_align): Return int instead of bool,
29977 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
29978 members, but if there is any such non-FIELD_DECL
29979 > PARM_BOUNDARY aligned decl, return -1 instead of false.
29980 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
29981 returns negative, increment nregs only if it returned positive.
29982 (arm_setup_incoming_varargs): Likewise.
29983 (arm_function_arg_boundary): Emit -Wpsabi note if
29984 arm_needs_doubleword_align returns negative, return
29985 DOUBLEWORD_ALIGNMENT only if it returned positive.
29986
29987 2017-04-25 Marek Polacek <polacek@redhat.com>
29988
29989 PR sanitizer/80349
29990 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
29991 first argument to type.
29992
29993 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
29994
29995 PR target/80482
29996 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
29997 type checks to test for compatibility instead of equality.
29998
29999 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
30000 Jakub Jelinek <jakub@redhat.com>
30001
30002 PR target/77728
30003 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
30004 type.
30005 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
30006 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
30007 the alignment computation, but return their maximum in warn_alignment.
30008 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
30009 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
30010 is smaller.
30011 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
30012 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
30013 caller.
30014
30015 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30016
30017 * config/arc/simdext.md (dmpyh): Fix typo.
30018
30019 2017-04-25 Richard Biener <rguenther@suse.de>
30020
30021 PR tree-optimization/80492
30022 * alias.c (compare_base_decls): Handle registers with asm
30023 specification conservatively.
30024 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
30025 compare_base_decls returning dont-know properly.
30026
30027 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30028
30029 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
30030 (legitimate_offset_address_p): New function.
30031 (arc_legitimate_address_p): Use above function.
30032
30033 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30034
30035 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
30036
30037 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30038
30039 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
30040 ACCH registers whenever they are available.
30041
30042 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30043
30044 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
30045 double regs fix when not used.
30046
30047 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30048
30049 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
30050 core registers.
30051 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
30052 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
30053
30054 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30055
30056 * config/arc/arc.c (arc_output_addsi): Check for h-register class
30057 when emitting short ADD instructions.
30058
30059 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
30060
30061 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
30062 constraint.
30063 (cmpsi_cc_c_insn): Likewise.
30064 (cbranchsi4_scratch): Compute proper instruction length using
30065 compact_hreg_operand.
30066 * config/arc/predicates.md (compact_hreg_operand): New predicate.
30067
30068 2017-04-25 Richard Biener <rguenther@suse.de>
30069
30070 PR middle-end/80509
30071 * passes.c (pass_manager::pass_manager): Initialize
30072 m_name_to_pass_map.
30073
30074 2017-04-25 Richard Biener <rguenther@suse.de>
30075
30076 PR tree-optimization/79201
30077 * tree-ssa-sink.c (statement_sink_location): Handle calls.
30078
30079 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30080
30081 PR target/80464
30082 * config/s390/vector.md: Split MEM->GPR vector moves for
30083 non-s_operand addresses.
30084
30085 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30086
30087 PR target/79895
30088 * config/s390/predicates.md (reload_const_wide_int_operand): New
30089 predicate.
30090 * config/s390/s390.md ("movti"): Remove d/P alternative.
30091 ("movti_bigconst"): New pattern definition.
30092
30093 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
30094
30095 PR target/80080
30096 * s390-protos.h (s390_expand_cs_hqi): Removed.
30097 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
30098 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
30099 modes as well as CCZ1mode and CCZmode.
30100 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
30101 signature of s390_emit_compare_and_swap.
30102 (s390_expand_cs_hqi): Likewise, make static.
30103 (s390_expand_cs_tdsi): Generate an explicit compare before trying
30104 compare-and-swap, in some cases.
30105 (s390_expand_cs): Wrapper function.
30106 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
30107 atomic_exchange.
30108 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
30109 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
30110 patterns for small and large integers. Forbid symref memory operands.
30111 Move expander to s390.c. Require cc register.
30112 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
30113 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
30114 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
30115 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
30116 symref memory operands. Remove CC mode and call s390_match_ccmode
30117 instead.
30118 ("atomic_exchange<mode>"): Allow and implement all integer modes.
30119
30120 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
30121
30122 * config/s390/s390.md (define_peephole2): New peephole to help
30123 combining the load-and-test pattern with volatile memory.
30124
30125 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
30126
30127 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
30128 with CCZmode for TARGET_Z196.
30129
30130 2017-04-25 Jakub Jelinek <jakub@redhat.com>
30131
30132 PR rtl-optimization/80501
30133 * combine.c (make_compound_operation_int): Set subreg_code to SET
30134 even for AND with mask of the sign bit of mode.
30135
30136 PR rtl-optimization/80500
30137 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
30138 sum's initial value.
30139
30140 2017-04-25 Julian Brown <julian@codesourcery.com>
30141 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
30142
30143 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
30144
30145 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
30146
30147 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
30148
30149 2017-04-25 Julian Brown <julian@codesourcery.com>
30150 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
30151
30152 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
30153 (thunderx2t99_sha): New Reservation.
30154
30155 2017-04-25 Julian Brown <julian@codesourcery.com>
30156 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
30157
30158 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
30159 type for 1-element load.
30160
30161 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
30162
30163 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
30164
30165 2017-04-24 Martin Jambor <mjambor@suse.cz>
30166
30167 PR tree-optimization/80293
30168 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
30169 char arrays not totally scalarizable if it is false.
30170 (analyze_all_variable_accesses): Pass correct value in the new
30171 parameter. Add a statistics counter.
30172
30173 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
30174
30175 PR middle-end/79931
30176 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
30177
30178 2017-04-24 Richard Biener <rguenther@suse.de>
30179
30180 PR tree-optimization/80494
30181 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
30182 out for complex types.
30183
30184 2017-04-24 Richard Biener <rguenther@suse.de>
30185
30186 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
30187 * tree-ssa-sccvn.c (print_scc): Print SCC size.
30188 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
30189 (DFS): Adjust and never fail.
30190 (sccvn_dom_walker::fail): Remove.
30191 (sccvn_dom_walker::before_dom_children): Adjust.
30192 (run_scc_vn): Likewise and never fail.
30193 * tree-ssa-pre.c (pass_pre::execute): Adjust.
30194 (pass_fre::execute): Likewise.
30195
30196 2017-04-24 Richard Biener <rguenther@suse.de>
30197
30198 PR tree-optimization/79725
30199 * tree-ssa-sink.c (statement_sink_location): Return whether
30200 failure reason was zero uses. Move that check later.
30201 (sink_code_in_bb): Deal with zero uses by removing the stmt
30202 if possible.
30203
30204 2017-04-24 Richard Biener <rguenther@suse.de>
30205
30206 PR c++/2972
30207 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
30208 pointer-based references.
30209
30210 2017-04-24 Richard Biener <rguenther@suse.de>
30211
30212 PR bootstrap/79814
30213 * pass_manager.h (pass_manager::operator new): Remove.
30214 (pass_manager::operator delete): Likewise.
30215 * passes.c (pass_manager::operator new): Remove.
30216 (pass_manager::operator delete): Likewise.
30217 (pass_manager::pass_manager): Zero individual pass members.
30218
30219 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
30220
30221 PR target/70799
30222 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
30223 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
30224 Check "XEXP (src, 1)" operand here.
30225 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
30226 Check "XEXP (src, 1)" operand here.
30227 (dimode_scalar_chain::make_vector_copies): Detect count register
30228 of a shift instruction. Zero extend count register from QImode
30229 to DImode to satisfy vector shift pattern count operand predicate.
30230 Substitute vector shift count operand with a DImode copy.
30231 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
30232 vector register.
30233
30234 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
30235
30236 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
30237 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
30238 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
30239 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
30240 (UNSPEC_NOREX_MEM): Remove definition.
30241
30242 2017-04-21 Richard Biener <rguenther@suse.de>
30243
30244 PR tree-optimization/79547
30245 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
30246 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
30247 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
30248 without any constraints.
30249
30250 2017-04-21 Richard Biener <rguenther@suse.de>
30251
30252 PR tree-optimization/78847
30253 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
30254
30255 2017-04-21 Richard Biener <rguenther@suse.de>
30256
30257 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
30258 (build_distinct_type_copy): Likewise.
30259 (build_variant_type_copy): Likewise.
30260 * tree.c (build_qualified_type): Pass down mem-stat info.
30261 (build_distinct_type_copy): Likewise.
30262 (build_variant_type_copy): Likewise.
30263
30264 2017-04-21 Richard Biener <rguenther@suse.de>
30265
30266 PR tree-optimization/80237
30267 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
30268 defaulted to NULL.
30269 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
30270 for a simplified result.
30271
30272 2016-04-21 Richard Biener <rguenther@suse.de>
30273
30274 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
30275 sth as strict as a simple_iv but a chrec without symbols and an
30276 operand defined in the loop we are peeling (and not some subloop).
30277 (propagate_constants_for_unrolling): Propagate all constants.
30278
30279 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
30280
30281 PR target/79804
30282 * config/i386/i386.c (print_reg): Remove assert for disalowed
30283 regno values, call output_operand_lossage instead.
30284
30285 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
30286
30287 PR target/78090
30288 * config/i386/constraints.md (Yc): New register constraint.
30289 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
30290 Use Yc constraint for alternative 2 of operand 0. Remove
30291 preferred_for_speed attribute.
30292
30293 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
30294
30295 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
30296 lastprivate clauses in SIMT case.
30297
30298 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
30299
30300 * doc/invoke.texi (-Wextra-semi): Document new warning option.
30301
30302 2017-04-20 Richard Biener <rguenther@suse.de>
30303
30304 PR tree-optimization/57796
30305 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
30306 as N scalar stores.
30307 (vect_model_load_cost): Cost gathers as N scalar loads.
30308
30309 2017-04-20 Richard Biener <rguenther@suse.de>
30310
30311 * ggc-page.c (ggc_allocated_p): Rename to ...
30312 (safe_lookup_page_table_entry): ... this and return the lookup
30313 result.
30314 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
30315
30316 2017-04-20 Richard Biener <rguenther@suse.de>
30317
30318 PR tree-optimization/80453
30319 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
30320 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
30321 from the conditions.
30322 (vn_phi_eq): Pass them down.
30323 (vn_phi_lookup): Record them.
30324 (vn_phi_insert): Likewise.
30325
30326 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
30327
30328 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
30329 uninitialized variable warning to avoid buffer overrun.
30330
30331 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
30332
30333 PR other/71250
30334 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
30335 is suppressed for '{ 0 }' in C.
30336
30337 2017-04-20 Jakub Jelinek <jakub@redhat.com>
30338
30339 * BASE-VER: Set to 8.0.0.
30340
30341 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
30342
30343 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
30344 priority .init_array and .fini_array section with SECTION_NOTYPE
30345 flag.
30346
30347 2017-04-20 Jakub Jelinek <jakub@redhat.com>
30348
30349 PR middle-end/80423
30350 * tree.h (build_array_type): Add typeless_storage default argument.
30351 * tree.c (type_cache_hasher::equal): Also compare
30352 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
30353 (build_array_type): Add typeless_storage argument, set
30354 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
30355 recursive call.
30356 (build_nonshared_array_type): Adjust build_array_type_1 caller.
30357 (build_array_type): Likewise. Add typeless_storage argument.
30358
30359 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
30360 Jakub Jelinek <jakub@redhat.com>
30361
30362 PR tree-optimization/80426
30363 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
30364 operation on symbolic operands, also compute the overflow for the
30365 invariant part when the operation degenerates into a negation.
30366
30367 2017-04-19 Jakub Jelinek <jakub@redhat.com>
30368
30369 PR debug/80461
30370 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
30371 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
30372
30373 PR debug/80436
30374 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
30375
30376 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
30377
30378 PR target/80462
30379 * config/avr/avr.c (tree.h): Include it.
30380 (cgraph.h): Include it.
30381 (avr_encode_section_info): Don't warn for uninitialized progmem
30382 variable if it's just an alias.
30383
30384 2017-04-19 Richard Biener <rguenther@suse.de>
30385
30386 PR ipa/65972
30387 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
30388 when needed by AutoPGO.
30389
30390 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
30391
30392 PR lto/50345
30393 * doc/lto.texi: Remove an extra 'that'.
30394
30395 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
30396
30397 PR rtl-optimization/80429
30398 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
30399 are only used in debug insns.
30400
30401 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
30402 Vladimir Makarov <vmakarov@redhat.com>
30403
30404 * config/sparc/predicates.md (input_operand): Add comment. Return
30405 true for any memory operand when LRA is in progress.
30406 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
30407
30408 2017-04-18 Jeff Law <law@redhat.com>
30409
30410 PR target/74563
30411 * mips.md ({return,simple_return}_internal): Do not overwrite
30412 operands[0].
30413
30414 2017-04-18 Jakub Jelinek <jakub@redhat.com>
30415
30416 PR tree-optimization/80443
30417 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
30418 instead of adding 1, subtract -1 and similarly instead of subtracting
30419 1 add -1.
30420
30421 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
30422
30423 PR rtl-optimization/80357
30424 * haifa-sched.c (tmp_bitmap): New variable.
30425 (model_recompute): Handle duplicate use records.
30426 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
30427 (free_global_sched_pressure_data): Free it.
30428
30429 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
30430
30431 Revert:
30432 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
30433 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
30434 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
30435 instead of SYSTEM_HEADER_DIR.
30436
30437 2017-04-18 Jeff Law <law@redhat.com>
30438
30439 PR middle-end/80422
30440 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
30441 predecessors after walking up the insn chain.
30442
30443 2017-04-18 Jakub Jelinek <jakub@redhat.com>
30444
30445 PR debug/80263
30446 * dwarf2out.c (modified_type_die): Try harder not to emit internal
30447 sizetype type into debug info.
30448
30449 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
30450
30451 PR target/80099
30452 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
30453 unneeded test for TARGET_UPPER_REGS_SF.
30454 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
30455
30456 2017-04-18 Jakub Jelinek <jakub@redhat.com>
30457
30458 PR sanitizer/80444
30459 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
30460 instead of gsi_after_labels.
30461
30462 2017-04-18 Jeff Law <law@redhat.com>
30463
30464 * regcprop.c (maybe_mode_change): Avoid creating copies of the
30465 stack pointer.
30466
30467 Revert:
30468 2017-04-13 Jeff Law <law@redhat.com>
30469 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
30470 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
30471
30472 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
30473
30474 PR target/79453
30475 * config/avr/avr.c (intl.h): Include it.
30476 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
30477
30478 2017-04-18 Martin Liska <mliska@suse.cz>
30479
30480 PR gcov-profile/78783
30481 * gcov-tool.c (gcov_output_files): Validate that destination
30482 file is either removed by the tool or by a user.
30483
30484 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
30485 Guy Benyei <guybe@mellanox.com>
30486
30487 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
30488 block, and do not negate it, the stored id is already negative.
30489
30490 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
30491
30492 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
30493
30494 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
30495
30496 PR target/80098
30497 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
30498 masks of options that should be turned off if the VSX vector
30499 options are turned off.
30500 (OTHER_P8_VECTOR_MASKS): Likewise.
30501 (OTHER_VSX_VECTOR_MASKS): Likewise.
30502 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
30503 rs6000_disable_incompatible_switches to validate no type switches
30504 like -mvsx.
30505 (rs6000_incompatible_switch): New function to disallow turning on
30506 other vector options if -mno-vsx, -mno-power8-vector, or
30507 -mno-power9-vector are specified.
30508
30509 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
30510
30511 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
30512
30513 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
30514
30515 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
30516 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
30517 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
30518 (ARG_POINTER_CFA_OFFSET): Likewise.
30519
30520 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
30521
30522 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
30523 conditions to take advantage of various optimizations.
30524
30525 2017-04-13 Jeff Law <law@redhat.com>
30526
30527 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
30528 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
30529 (zero_extendsidi2_dext): Likewise.
30530
30531 2017-04-13 Jakub Jelinek <jakub@redhat.com>
30532
30533 PR sanitizer/80403
30534 * fold-const.c (fold_ternary_loc): Revert
30535 use op0 instead of fold_convert_loc (loc, type, arg0) part of
30536 2017-04-12 change.
30537
30538 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
30539
30540 PR rtl-optimization/80343
30541 * lra-remat.c (update_scratch_ops): Assign original hard reg to
30542 new scratch pseudo.
30543
30544 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
30545
30546 PR sanitizer/80414
30547 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
30548 to ubsan_encode_value.
30549
30550 2017-04-13 Jeff Law <law@redhat.com>
30551
30552 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
30553 appearing in DEBUG_INSNs.
30554
30555 2017-04-13 Martin Liska <mliska@suse.cz>
30556
30557 PR gcov-profile/80413
30558 * gcov-io.c (gcov_write_string): Copy to buffer just when
30559 allocated size is greater than zero.
30560
30561 2017-04-13 Jakub Jelinek <jakub@redhat.com>
30562
30563 PR debug/80321
30564 * dwarf2out.c (decls_for_scope): Ignore declarations of
30565 current_function_decl in BLOCK_NONLOCALIZED_VARS.
30566
30567 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
30568
30569 PR lto/69953
30570 * ipa-visibility.c (non_local_p): Fix typos.
30571 (localize_node): When localizing symbol in same comdat group,
30572 dissolve the group only when we know external symbols are going
30573 to be privatized.
30574 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
30575
30576 2017-04-12 Jakub Jelinek <jakub@redhat.com>
30577
30578 PR tree-optimization/79390
30579 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
30580 order does not result in usable sequence, retry with reversed operand
30581 order.
30582
30583 PR sanitizer/80403
30584 PR sanitizer/80404
30585 PR sanitizer/80405
30586 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
30587 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
30588 op0 instead of fold_convert_loc (loc, type, arg0).
30589
30590 2017-04-12 Jeff Law <law@redhat.com>
30591
30592 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
30593 has a delay slot in the generated code.
30594
30595 * config/cris/cris.md (cris_preferred_reload_class): Return
30596 GENNONACR_REGS rather than GENERAL_REGS.
30597
30598 2017-04-12 Jakub Jelinek <jakub@redhat.com>
30599
30600 PR c/80163
30601 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
30602 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
30603 signedness of the result type.
30604
30605 2017-04-12 Richard Biener <rguenther@suse.de>
30606 Jeff Law <law@redhat.com>
30607
30608 PR tree-optimization/80359
30609 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
30610 trim stores to TARGET_MEM_REFs.
30611
30612 2017-04-12 Richard Biener <rguenther@suse.de>
30613
30614 PR tree-optimization/79390
30615 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
30616 threading case even more.
30617
30618 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
30619
30620 PR target/80382
30621 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
30622 for quad_address_p for TImode, instead of just not indexed_address.
30623
30624 2017-04-12 Richard Biener <rguenther@suse.de>
30625 Bernd Edlinger <bernd.edlinger@hotmail.de>
30626
30627 PR middle-end/79671
30628 * alias.c (component_uses_parent_alias_set_from): Handle
30629 TYPE_TYPELESS_STORAGE.
30630 (get_alias_set): Likewise.
30631 * tree-core.h (tree_type_common): Add typeless_storage flag.
30632 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
30633 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
30634 for types containing members with TYPE_TYPELESS_STORAGE.
30635 (place_field): Likewise.
30636 (layout_type): Likewise for ARRAY_TYPE.
30637 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
30638 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
30639 TYPE_TYPELESS_STORAGE.
30640 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
30641
30642 2017-04-12 Jakub Jelinek <jakub@redhat.com>
30643
30644 PR sanitizer/80349
30645 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
30646 first argument to type.
30647
30648 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30649
30650 PR target/80376
30651 PR target/80315
30652 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
30653 CONST0_RTX (mode) rather than const0_rtx where appropriate.
30654 (rs6000_expand_binop_builtin): Likewise.
30655 (rs6000_expand_ternop_builtin): Likewise; also add missing
30656 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
30657 vshasigma built-ins.
30658 * doc/extend.texi: Document that vec_xxpermdi's third argument
30659 must be a constant.
30660
30661 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
30662
30663 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
30664 Use shift_const cost parameter when calculating gain of STV shifts.
30665
30666 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
30667
30668 PR rtl-optimization/70478
30669 * lra-constraints.c (process_alt_operands): Check memory for
30670 disfavoring memory insn operand.
30671
30672 2017-04-11 Jakub Jelinek <jakub@redhat.com>
30673
30674 PR middle-end/80100
30675 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
30676 left shift in unsigned HOST_WIDE_INT type.
30677
30678 PR rtl-optimization/80385
30679 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
30680 (not (neg X)) into (plus X -1) for complex or non-integral modes.
30681
30682 PR libgomp/80394
30683 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
30684 if they have any depend clauses.
30685
30686 2017-04-11 Martin Liska <mliska@suse.cz>
30687
30688 PR ipa/80212
30689 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
30690 * ipa-split.c (split_function): Create a local comdat symbol
30691 if caller is in a comdat group.
30692
30693 2017-04-11 Martin Liska <mliska@suse.cz>
30694
30695 PR ipa/80212
30696 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
30697 flags.
30698
30699 2017-04-11 Martin Sebor <msebor@redhat.com>
30700
30701 PR middle-end/80364
30702 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
30703 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
30704 for INTEGER_TYPE.
30705 (directive::set_width, directive::set_precision, format_character):
30706 Adjust.
30707 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
30708 INTEGER_TYPE.
30709
30710 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
30711
30712 PR target/80389
30713 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
30714 conflict, set target->arch_name instead of target->cpu_name.
30715
30716 2017-04-11 Richard Biener <rguenther@suse.de>
30717
30718 PR tree-optimization/80374
30719 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
30720 build_zero_cst, remove fold_convertible_p check again.
30721
30722 2017-04-11 Martin Liska <mliska@suse.cz>
30723
30724 PR sanitizer/70878
30725 * ubsan.c (instrument_object_size): Do not instrument register
30726 variables.
30727
30728 2017-04-11 Jakub Jelinek <jakub@redhat.com>
30729
30730 PR target/80381
30731 * config/i386/i386-builtin-types.def
30732 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
30733 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
30734 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
30735 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
30736 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
30737 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
30738 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
30739 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
30740 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
30741 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
30742 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
30743 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
30744 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
30745 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
30746 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
30747 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
30748 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
30749 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
30750 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
30751 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
30752 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
30753 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
30754 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
30755 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
30756 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
30757 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
30758 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
30759 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
30760 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
30761 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
30762 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
30763 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
30764 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
30765 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
30766 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
30767 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
30768 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
30769 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
30770 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
30771 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
30772 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
30773 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
30774 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
30775 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
30776 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
30777 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
30778 aliases.
30779 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
30780 flag to second_arg_count, handle 4 argument function type _COUNT
30781 aliases, handle second_arg_count on second argument rather than last.
30782
30783 2017-04-10 Jeff Law <law@redhat.com>
30784
30785 PR tree-optimization/80374
30786 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
30787 record anything if we can not convert integer_zero_node to the
30788 desired type.
30789
30790 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
30791
30792 PR target/80108
30793 * config/rs6000/rs6000.c (rs6000_option_override_internal):
30794 Enhance special handling given to the TARGET_P9_MINMAX option in
30795 relation to certain other options.
30796
30797 2017-04-10 Bin Cheng <bin.cheng@arm.com>
30798
30799 PR tree-optimization/80153
30800 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
30801 remove POINTER_PLUS_EXPR's base part directly, rather than through
30802 aff_tree.
30803
30804 2017-04-10 Richard Biener <rguenther@suse.de>
30805 Bin Cheng <bin.cheng@arm.com>
30806
30807 PR tree-optimization/80153
30808 * tree-affine.c (aff_combination_to_tree): Get base pointer from
30809 the first element of pointer type aff_tree. Build result expr in
30810 aff_tree's type.
30811 (add_elt_to_tree): Convert to type unconditionally. Remove other
30812 fold_convert calls.
30813 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
30814 (rewrite_use_nonlinear_expr): Check invariant using iv information.
30815
30816 2017-04-10 Richard Biener <rguenther@suse.de>
30817
30818 * tree-ssa-structalias.c (find_func_aliases): Properly handle
30819 asm inputs.
30820
30821 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
30822
30823 PR rtl-optimization/70478
30824 * lra-constraints.c (curr_small_class_check): New.
30825 (update_and_check_small_class_inputs): New.
30826 (process_alt_operands): Update curr_small_class_check. Disfavor
30827 alternative insn memory operands. Check available regs for small
30828 class operands.
30829
30830 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
30831
30832 PR target/80057
30833 * config/mips/mips.opt (-mvirt): Update description.
30834 * doc/invoke.texi (-mvirt): Likewise.
30835
30836 2017-04-10 Richard Biener <rguenther@suse.de>
30837
30838 PR middle-end/80362
30839 * fold-const.c (fold_binary_loc): Look at unstripped ops when
30840 looking for NEGATE_EXPR in -A / -B to A / B folding.
30841
30842 2017-04-10 Martin Liska <mliska@suse.cz>
30843
30844 PR gcov-profile/80224
30845 * gcov.c (print_usage): Fix usage string.
30846 (get_gcov_intermediate_filename): Remove.
30847 (output_gcov_file): Use both for normal and intermediate format.
30848 (generate_results): Do not initialize special file for
30849 intermediate format.
30850
30851 2017-04-10 Richard Biener <rguenther@suse.de>
30852
30853 PR tree-optimization/80304
30854 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
30855 for safelen.
30856
30857 2017-04-10 Nathan Sidwell <nathan@acm.org>
30858
30859 PR target/79905
30860 * config/rs6000/rs6000.c (rs6000_vector_type): New.
30861 (rs6000_init_builtins): Use it.
30862
30863 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
30864
30865 * config/arm/arm.md (<mrc>): Add mode to SET source.
30866 (<mrrc>): Likewise.
30867
30868 2017-04-10 Richard Biener <rguenther@suse.de>
30869
30870 PR middle-end/80344
30871 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
30872
30873 2017-04-10 Jakub Jelinek <jakub@redhat.com>
30874
30875 PR target/80324
30876 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
30877 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
30878 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
30879 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
30880 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
30881 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
30882 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
30883 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
30884 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
30885 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
30886 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
30887 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
30888 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
30889 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
30890 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
30891 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
30892 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
30893 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
30894 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
30895 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
30896 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
30897 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
30898 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
30899
30900 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
30901
30902 PR rtl-optimization/70478
30903 * lra-constraints.c: Reverse the last patch.
30904
30905 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
30906
30907 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
30908 Add comment for WCHAR_T.
30909
30910 2017-04-08 Martin Liska <mliska@suse.cz>
30911
30912 Revert:
30913 2017-04-07 Martin Liska <mliska@suse.cz>
30914
30915 PR ipa/80212
30916 * ipa-split.c (split_function): Add function part to a same comdat
30917 group.
30918
30919 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
30920
30921 PR target/80358
30922 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
30923
30924 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
30925
30926 * rs6000/rs6000.c (vec_load_pendulum): Rename...
30927 (vec_pairing): ...to this.
30928 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
30929 (rs6000_sched_init): Adjust for name change.
30930 (struct rs6000_sched_context): Likewise.
30931 (rs6000_init_sched_context): Likewise.
30932 (rs6000_set_sched_context): Likewise.
30933
30934 2017-04-07 Jakub Jelinek <jakub@redhat.com>
30935
30936 PR target/80322
30937 PR target/80323
30938 PR target/80325
30939 PR target/80326
30940 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
30941 intrinsics.
30942 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
30943 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
30944 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
30945
30946 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
30947
30948 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
30949
30950 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
30951
30952 PR rtl-optimization/70703
30953 * ira-color.c (update_conflict_hard_regno_costs): Use
30954 int64_t instead of HOST_WIDE_INT.
30955
30956 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
30957
30958 PR rtl-optimization/70478
30959 * lra-constraints.c (process_alt_operands): Disfavor alternative
30960 insn memory operands.
30961
30962 2017-04-07 Jeff Law <law@redhat.com>
30963
30964 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
30965 CALL and NOTE_INSN_CALL_ARG_LOCATION.
30966
30967 2017-04-07 Martin Liska <mliska@suse.cz>
30968
30969 PR target/79889
30970 * config/aarch64/aarch64.c (aarch64_process_target_attr):
30971 Show error message instead of an ICE.
30972
30973 2017-04-07 Martin Liska <mliska@suse.cz>
30974
30975 PR ipa/80212
30976 * ipa-split.c (split_function): Add function part to a same comdat
30977 group.
30978
30979 2017-04-07 Richard Biener <rguenther@suse.de>
30980
30981 PR middle-end/80341
30982 * tree.c (get_unwidened): Also handle ! for_type case for
30983 INTEGER_CSTs.
30984 * convert.c (do_narrow): Split out from ...
30985 (convert_to_integer_1): ... here. Do not pass final truncation
30986 type to get_unwidened for TRUNC_DIV_EXPR.
30987
30988 2017-04-07 Richard Biener <rguenther@suse.de>
30989
30990 * tree-affine.c (wide_int_ext_for_comb): Take type rather
30991 than aff_tree.
30992 (aff_combination_const): Adjust.
30993 (aff_combination_scale): Likewise.
30994 (aff_combination_add_elt): Likewise.
30995 (aff_combination_add_cst): Likewise.
30996 (aff_combination_convert): Likewise.
30997 (add_elt_to_tree): Likewise. Remove unused argument.
30998 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
30999
31000 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
31001
31002 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
31003 definition.
31004 * config/arm/arm.c (arm_default_short_enums): Use
31005 ARM_DEFAULT_SHORT_ENUMS.
31006 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
31007
31008 2017-04-06 Jakub Jelinek <jakub@redhat.com>
31009
31010 PR debug/80234
31011 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
31012 members with redundant out-of-class redeclaration.
31013
31014 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
31015
31016 PR target/80286
31017 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
31018 * config/i386/i386.md (*zero_extendsidi2):
31019 Add (?*x,*x) and (?*v,*v) alternatives.
31020
31021 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
31022
31023 PR target/79733
31024 * config/i386/i386.c (ix86_expand_builtin)
31025 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
31026 mode from insn data. Convert operands to insn operand mode.
31027 Copy operands that don't satisfy insn predicate to a register.
31028
31029 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
31030
31031 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
31032 Update comments.
31033
31034 2017-04-06 Richard Biener <rguenther@suse.de>
31035
31036 PR tree-optimization/80334
31037 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
31038 preserve alignment of accesses.
31039
31040 2017-04-06 Richard Biener <rguenther@suse.de>
31041
31042 PR tree-optimization/80262
31043 * tree-sra.c (build_ref_for_offset): Preserve address-space
31044 information.
31045 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
31046 Drop useless address-space information on MEM_REF offsets.
31047
31048 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
31049
31050 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
31051
31052 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
31053
31054 PR rtl-optimization/70703
31055 * ira-color.c (update_conflict_hard_regno_costs): Use
31056 HOST_WIDE_INT instead of long.
31057
31058 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
31059
31060 PR target/80298
31061 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
31062 not defined for x86_64 target. Add -mmmx target option when __SSE2__
31063 is not defined.
31064 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
31065 for x86_64 target. Handle -m3dnowa option.
31066
31067 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
31068
31069 PR rtl-optimization/70703
31070 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
31071 (update_conflict_hard_regno_costs): Use long instead of unsigned
31072 arithmetic for cost calculation.
31073
31074 2017-04-05 Jakub Jelinek <jakub@redhat.com>
31075 Bernd Edlinger <bernd.edlinger@hotmail.de>
31076
31077 PR sanitizer/80308
31078 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
31079 for big endian.
31080
31081 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
31082
31083 PR target/78002
31084 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
31085 ptr_mode with Pmode throughout.
31086 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
31087 into probe_stack_range and use DImode.
31088
31089 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
31090
31091 PR target/79890
31092 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
31093 call_eh_return is true.
31094
31095 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31096
31097 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
31098 Initialize last_match_fntype_index.
31099
31100 2017-04-05 Jakub Jelinek <jakub@redhat.com>
31101
31102 PR target/80310
31103 * tree-nvr.c: Include internal-fn.h.
31104 (pass_return_slot::execute): Ignore internal calls without
31105 direct optab.
31106
31107 2017-04-04 Jakub Jelinek <jakub@redhat.com>
31108 Richard Biener <rguenther@suse.de>
31109
31110 PR c++/80297
31111 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
31112 captures used multiple times, except for the last use.
31113 * generic-match-head.c: Include gimplify.h.
31114
31115 2017-04-04 Jakub Jelinek <jakub@redhat.com>
31116
31117 PR tree-optimization/79390
31118 * target.h (struct noce_if_info): Declare.
31119 * targhooks.h (default_noce_conversion_profitable_p): Declare.
31120 * target.def (noce_conversion_profitable_p): New target hook.
31121 * ifcvt.h (struct noce_if_info): New type, moved from ...
31122 * ifcvt.c (struct noce_if_info): ... here.
31123 (noce_conversion_profitable_p): Renamed to ...
31124 (default_noce_conversion_profitable_p): ... this. No longer
31125 static nor inline.
31126 (noce_try_store_flag_constants, noce_try_addcc,
31127 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
31128 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
31129 instead of noce_conversion_profitable_p.
31130 * config/i386/i386.c: Include ifcvt.h.
31131 (ix86_option_override_internal): Don't override
31132 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
31133 (ix86_noce_conversion_profitable_p): New function.
31134 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
31135 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
31136 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
31137 * doc/tm.texi: Regenerated.
31138
31139 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31140
31141 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
31142 correction.
31143
31144 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
31145
31146 PR target/80307
31147 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
31148 instructions for small multiply cores.
31149
31150 2017-04-04 Jeff Law <law@redhat.com>
31151
31152 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
31153 added member.
31154 (mips_expand_vec_perm_const): Initialize elements in orig_perm
31155 that are not set by the loop over the elements.
31156
31157 2017-04-04 Jakub Jelinek <jakub@redhat.com>
31158
31159 PR target/80286
31160 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
31161 int mode, convert_modes it to mode as unsigned, otherwise use
31162 lowpart_subreg to mode rather than SImode.
31163 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
31164 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
31165 Use DImode instead of SImode for the shift count operand.
31166 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
31167 Likewise.
31168
31169 2017-04-04 Richard Biener <rguenther@suse.de>
31170
31171 PR middle-end/80281
31172 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
31173 arithmetic done for the negate or the plus. Simplify.
31174 (A - (-B) -> A + B): Likewise.
31175 * fold-const.c (split_tree): Make sure to not negate pointers.
31176
31177 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
31178
31179 PR rtl-optimization/60818
31180 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
31181 a compare of comparisons with the thing compared if this results
31182 in a different machine mode.
31183
31184 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
31185
31186 * alias.c (base_alias_check): Fix typo in comment.
31187 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
31188 * cgraphunit.c (symbol_table::compile): Likewise.
31189 * collect2.c (maybe_run_lto_and_relink): Likewise.
31190 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
31191 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
31192 * config/avr/avr.c (avr_map_op_t): Likewise.
31193 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
31194 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
31195 * config/epiphany/epiphany.md (movcc): Likewise.
31196 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
31197 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
31198 Likewise.
31199 * config/mips/mips.c (mips_save_restore_reg): Likewise.
31200 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
31201 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
31202 * config/sh/sh.c (sh_rtx_costs): Likewise.
31203 * fold-const.c (fold_truth_andor): Likewise.
31204 * genautomata.c (collapse_flag): Likewise.
31205 * gengtype.h (struct type::u::s): Likewise.
31206 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
31207 * input.c (FORMAT_AMOUNT): Likewise.
31208 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
31209 (known_aggs_to_agg_replacement_list): Likewise.
31210 * ipa-inline-analysis.c: Likewise.
31211 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
31212 * ipa-polymorphic-call.c
31213 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
31214 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
31215 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
31216 Likewise.
31217 * modulo-sched.c (apply_reg_moves): Likewise.
31218 * omp-expand.c (build_omp_regions_1): Likewise.
31219 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
31220 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
31221 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
31222 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
31223 * value-prof.c: Likewise.
31224 * var-tracking.c (val_reset): Likewise.
31225
31226 2017-04-03 Richard Biener <rguenther@suse.de>
31227
31228 PR tree-optimization/80275
31229 * fold-const.c (split_address_to_core_and_offset): Handle
31230 POINTER_PLUS_EXPR.
31231
31232 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
31233
31234 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
31235 descriptors is at least equal to that of functions.
31236
31237 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
31238
31239 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
31240
31241 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
31242
31243 PR target/80250
31244 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
31245 (mov<IMOD4:mode>): New expander.
31246 (*mov<IMOD4:mode>_internal): New insn and split pattern.
31247
31248 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
31249
31250 PR rtl-optimization/79405
31251 * fwprop.c (propagations_left): New variable.
31252 (forward_propagate_into): Decrement it.
31253 (fwprop_init): Initialize it.
31254 (fw_prop): If the variable has reached zero, stop propagating.
31255 (fwprop_addr): Ditto.
31256
31257 2017-03-31 Jakub Jelinek <jakub@redhat.com>
31258
31259 PR debug/79255
31260 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
31261 a FUNCTION_DECL, pass it as decl instead of origin to
31262 process_scope_var.
31263
31264 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
31265
31266 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
31267 string.
31268
31269 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
31270
31271 PR target/80107
31272 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
31273 TARGET_VSX_SMALL_INTEGER.
31274
31275 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31276
31277 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
31278 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
31279
31280 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
31281
31282 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
31283 extraction from odd-numbered MSA register.
31284
31285 2017-03-31 Jakub Jelinek <jakub@redhat.com>
31286
31287 PR middle-end/80173
31288 * expmed.c (store_bit_field_1): Don't attempt to create
31289 a word subreg out of hard registers wider than word if they
31290 have HARD_REGNO_NREGS of 1 for their mode.
31291
31292 PR middle-end/80163
31293 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
31294 conversions to integer types wider than word and pointer.
31295
31296 PR debug/80025
31297 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
31298 (rtx_equal_for_cselib_p): Pass 0 to it.
31299 * cselib.c (cselib_hasher::equal): Likewise.
31300 (rtx_equal_for_cselib_1): Add depth argument. If depth
31301 is 128, don't look up VALUE locs and punt. Increment
31302 depth in recursive calls when walking VALUE locs.
31303
31304 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
31305
31306 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
31307 (make_gcov_file_name): Use the canonical path name for generating
31308 the MD5 value.
31309 (read_line): Fix handling of files with ascii null bytes.
31310
31311 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
31312
31313 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
31314 to initialise a vector register instead
31315 of using a const_int.
31316
31317 2017-03-30 Jakub Jelinek <jakub@redhat.com>
31318
31319 PR translation/80189
31320 * gimplify.c (omp_default_clause): Use %qs instead of %s in
31321 diagnostic messages.
31322
31323 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
31324
31325 PR target/80246
31326 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
31327 (dfp_diex_<mode>): Update mode of operand 1.
31328 * doc/extend.texi (dxex, dxexq): Document change to return type.
31329 (diex, diexq): Document change to argument type.
31330
31331 2017-03-30 Martin Jambor <mjambor@suse.cz>
31332
31333 PR ipa/77333
31334 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
31335 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
31336 it reflects the signature changes performed at the callee side.
31337 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
31338 to cgraph_build_function_type_skip_args.
31339 (build_function_decl_skip_args): Adjust call to the above function.
31340
31341 2017-03-30 Jakub Jelinek <jakub@redhat.com>
31342
31343 PR target/80206
31344 * config/i386/sse.md
31345 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
31346 register as dest whenever it is a MEM not rtx_equal_p to the
31347 corresponding dup operand, and when forcing into reg move the
31348 reg into the memory afterwards.
31349 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
31350 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
31351 for the force_reg mode.
31352 (avx512vl_vextractf128<mode>): Use register as dest either
31353 always when a MEM, or when it is a MEM not rtx_equal_p to the
31354 corresponding dup operand, or even not when it is a CONST_VECTOR
31355 depending on the mode and lo vs. hi.
31356 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
31357 parens.
31358 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
31359 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
31360 Likewise. Require that operands[2] is even.
31361 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
31362 Remove extraneous parens. Require that operands[2] is a multiple
31363 of 4.
31364 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
31365 operands[0] is a MEM if <mask_applied>, the predicates/constraints
31366 disallow memory then.
31367
31368 2017-03-30 Richard Biener <rguenther@suse.de>
31369
31370 PR tree-optimization/77498
31371 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
31372 to non-constants over backedges.
31373
31374 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
31375
31376 PR rtl-optimization/80233
31377 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
31378 as last_combined_insn. Do not test for BARRIER_P separately.
31379
31380 2017-03-29 Andreas Schwab <schwab@suse.de>
31381
31382 PR ada/80146
31383 * calls.c (prepare_call_address): Convert funexp to Pmode before
31384 copying to temp reg.
31385
31386 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31387
31388 PR tree-optimization/80158
31389 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
31390 Handle possible future case of more than one alternate
31391 interpretation.
31392 (replace_rhs_if_not_dup): Likewise.
31393 (replace_one_candidate): Likewise.
31394
31395 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
31396
31397 PR rtl-optimization/80193
31398 * ira.c (ira): Do not check allocation for LRA.
31399
31400 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
31401
31402 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
31403 (nvptx_output_simt_exit): Declare.
31404 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
31405 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
31406 (init_softstack_frame): Move initialization of crtl->is_leaf to...
31407 (nvptx_declare_function_name): ...here. Emit declaration of local
31408 memory space buffer for omp_simt_enter insn.
31409 (nvptx_output_unisimt_switch): New.
31410 (nvptx_output_softstack_switch): New.
31411 (nvptx_output_simt_enter): New.
31412 (nvptx_output_simt_exit): New.
31413 * config/nvptx/nvptx.h (struct machine_function): New fields
31414 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
31415 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
31416 (UNSPECV_SIMT_EXIT): Ditto.
31417 (omp_simt_enter_insn): New insn.
31418 (omp_simt_enter): New expansion.
31419 (omp_simt_exit): New insn.
31420 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
31421
31422 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
31423 (expand_GOMP_SIMT_ENTER_ALLOC): New.
31424 (expand_GOMP_SIMT_EXIT): New.
31425 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
31426 (GOMP_SIMT_ENTER_ALLOC): Ditto.
31427 (GOMP_SIMT_EXIT): Ditto.
31428 * target-insns.def (omp_simt_enter): New insn.
31429 (omp_simt_exit): Ditto.
31430 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
31431 simt_dlist.
31432 (lower_rec_simd_input_clauses): Implement SIMT privatization.
31433 (lower_rec_input_clauses): Likewise.
31434 (lower_lastprivate_clauses): Handle SIMT privatization.
31435
31436 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
31437 (ompdevlow_adjust_simt_enter): New.
31438 (find_simtpriv_var_op): New.
31439 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
31440 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
31441
31442 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
31443 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
31444 (copy_decl_for_dup_finish): Ditto.
31445
31446 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
31447
31448 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
31449
31450 PR target/53383
31451 * config/i386/i386.c (ix86_option_override_internal): Always
31452 allow -mpreferred-stack-boundary=3 for 64-bit targets.
31453
31454 2017-03-28 Bin Cheng <bin.cheng@arm.com>
31455
31456 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
31457
31458 2017-03-28 Bin Cheng <bin.cheng@arm.com>
31459
31460 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
31461 mark new edge's irreducible flag accordign to it.
31462 (vect_do_peeling): Check loop preheader edge's irreducible flag
31463 and pass it to function slpeel_add_loop_guard.
31464
31465 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
31466
31467 PR tree-optimization/80218
31468 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
31469 Update block frequencies and counts.
31470
31471 2017-03-28 Richard Biener <rguenther@suse.de>
31472
31473 PR tree-optimization/78644
31474 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
31475 of a simplification result we may not use it at all.
31476
31477 2017-03-28 Richard Biener <rguenther@suse.de>
31478
31479 PR ipa/80205
31480 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
31481 without arguments, generate default definition of a SSA name.
31482
31483 2017-03-28 Richard Biener <rguenther@suse.de>
31484
31485 PR middle-end/80222
31486 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
31487 TYPE_REF_CAN_ALIAS_ALL references.
31488 * fold-const.c (fold_indirect_ref_1): Likewise.
31489
31490 2017-03-28 Martin Liska <mliska@suse.cz>
31491
31492 PR ipa/80104
31493 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
31494 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
31495
31496 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
31497 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
31498
31499 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
31500 (EXTRA_SPECS): Define.
31501 (SUBTARGET_EXTRA_SPECS): Likewise.
31502 (SUBTARGET_CPP_SPEC): Likewise.
31503 * config/arc/elf.h (EXTRA_SPECS): Renamed to
31504 SUBTARGET_EXTRA_SPECS.
31505 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
31506
31507 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
31508
31509 * config/arc/simdext.md (vst64_insn): Update pattern.
31510 (vld32wh_insn): Likewise.
31511 (vld32wl_insn): Likewise.
31512 (vld64_insn): Likewise.
31513 (vld32_insn): Likewise.
31514
31515 2017-03-28 Marek Polacek <polacek@redhat.com>
31516
31517 PR sanitizer/80067
31518 * fold-const.c (fold_comparison): Use protected_set_expr_location
31519 instead of SET_EXPR_LOCATION.
31520
31521 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
31522
31523 * tree.c (add_expr): Avoid name lookup warning.
31524
31525 2017-03-27 Jeff Law <law@redhat.com>
31526
31527 PR tree-optimization/80216
31528 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
31529 function name. Limit recursion depth.
31530 (record_temporary_equivalences): Corresponding changes.
31531
31532 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
31533
31534 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
31535 covered first.
31536
31537 2017-03-27 Jakub Jelinek <jakub@redhat.com>
31538
31539 PR target/80102
31540 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
31541 notes.
31542 * cfgcleanup.c (reg_note_cfa_p): New array.
31543 (insns_have_identical_cfa_notes): New function.
31544 (old_insns_match_p): Don't cross-jump in between /f
31545 and non-/f instructions. If both i1 and i2 are frame related,
31546 verify all CFA notes, their order and content.
31547
31548 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
31549
31550 PR target/78543
31551 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
31552 HImode and SImode with zero extend to DImode to one insn.
31553 (bswap<mode>2_extenddi): Likewise.
31554 (bswapsi2_extenddi): Likewise.
31555 (bswaphi2_extendsi): Likewise.
31556 (bswaphi2): Combine bswap HImode and SImode into one insn.
31557 Separate memory insns from swapping register.
31558 (bswapsi2): Likewise.
31559 (bswap<mode>2): Likewise.
31560 (bswaphi2_internal): Delete, no longer used.
31561 (bswapsi2_internal): Likewise.
31562 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
31563 store, and gpr<-gpr swap insns.
31564 (bswap<mode>2_store): Likewise.
31565 (bswaphi2_reg): Register only splitter, combine with the splitter.
31566 (bswaphi2 splitter): Likewise.
31567 (bswapsi2_reg): Likewise.
31568 (bswapsi2 splitter): Likewise.
31569 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
31570 the insns into load, store, and register/register insns.
31571 (bswapdi2_ldbrx): Likewise.
31572 (bswapdi2_load): Likewise.
31573 (bswapdi2_store): Likewise.
31574 (bswapdi2_reg): Likewise.
31575
31576 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
31577
31578 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
31579 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
31580
31581 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
31582
31583 PR target/80103
31584 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
31585 add comments.
31586 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
31587 special handling for target option conflicts between dform
31588 options (-mpower9-dform, -mpower9-dform-vector,
31589 -mpower9-dform-scalar) and -mno-direct-move.
31590
31591 2017-03-27 Richard Biener <rguenther@suse.de>
31592
31593 PR tree-optimization/80181
31594 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
31595
31596 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
31597
31598 * config/arc/predicates.md (move_double_src_operand): Replace the
31599 call to move_double_src_operand with a call to address_operand.
31600
31601 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
31602
31603 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
31604 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
31605 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
31606
31607 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
31608
31609 * config/arc/predicates.md (long_immediate_loadstore_operand):
31610 Consider scaled addresses cases.
31611
31612 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
31613
31614 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
31615 restored when in interrupt.
31616 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
31617 doesn't have delay slot.
31618
31619 2017-03-27 Richard Biener <rguenther@suse.de>
31620
31621 PR ipa/79776
31622 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
31623 inlined thunk clones.
31624
31625 2017-03-27 Jakub Jelinek <jakub@redhat.com>
31626
31627 PR sanitizer/80168
31628 * asan.c (instrument_derefs): Copy over last operand from
31629 original COMPONENT_REF to the new COMPONENT_REF with
31630 DECL_BIT_FIELD_REPRESENTATIVE.
31631 * ubsan.c (instrument_object_size): Likewise.
31632
31633 2017-03-27 Richard Biener <rguenther@suse.de>
31634
31635 PR tree-optimization/80170
31636 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
31637 sure DR/SCEV didnt fold in constants we do not see when looking
31638 at the reference base alignment.
31639
31640 2017-03-27 Richard Biener <rguenther@suse.de>
31641
31642 PR middle-end/80171
31643 * gimple-fold.c (fold_ctor_reference): Properly guard against
31644 NULL return value from canonicalize_constructor_val.
31645
31646 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
31647
31648 PR target/80180
31649 * config/i386/i386.c (ix86_expand_builtin)
31650 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
31651 flags reg setting and flags reg using instructions.
31652 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
31653 clobbering instructions to zero extend op2.
31654
31655 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
31656
31657 * doc/install.texi (Configuration) <--with-aix-soname>:
31658 Update link to AIX ld.
31659
31660 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
31661
31662 PR rtl-optimization/80160
31663 PR rtl-optimization/80159
31664 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
31665 reg_alternate_class into account.
31666
31667 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
31668
31669 PR target/80148
31670 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
31671 to consider in curr_insn_transform.
31672
31673 2017-03-24 Jakub Jelinek <jakub@redhat.com>
31674
31675 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
31676 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
31677 and emit_mode_inner.
31678
31679 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31680
31681 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
31682 argument to the overloaded builtin variants. Use the new flag to
31683 deprecate certain builtin variants.
31684 * config/s390/s390-builtin-types.def: Add new builtin types.
31685 * config/s390/s390-builtins.h: Support new flags field for
31686 overloaded builtins.
31687 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
31688 (s390_macro_to_expand): Enable vector float data type.
31689 (s390_cpu_cpp_builtins_internal): Indicate support of the new
31690 builtins by incrementing the __VEC__ version number.
31691 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
31692 vec_xst.
31693 (s390_resolve_overloaded_builtin): Emit error messages depending
31694 on the builtin flags.
31695 * config/s390/s390.c (s390_expand_builtin): Support additional
31696 flags argument. Change error message to match the messages
31697 emitted in s390-c.c.
31698 * config/s390/s390.md: New UNSPEC_* constants.
31699 (op_type): Add new instruction types.
31700 * config/s390/vecintrin.h: Add new builtins and test data class
31701 constants.
31702 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
31703 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
31704 (VEC_INEXACT, VEC_NOINEXACT): New constants.
31705 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
31706 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
31707 ("vec_mergel<mode>"): V_HW -> VEC_HW.
31708
31709 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
31710 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
31711 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
31712 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
31713
31714 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
31715 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
31716 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
31717 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
31718
31719 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
31720 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
31721 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
31722 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
31723 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
31724 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
31725 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
31726
31727 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
31728 ("vec_scatter_element<V_HW_4:mode>_DI")
31729 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
31730 ("vec_fpint<mode>", "vflls")
31731 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
31732 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
31733 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
31734 ("*vec_cmphe<mode>_cc"): ... these.
31735
31736 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
31737 mode constant instead of magic value.
31738
31739 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31740
31741 * config/s390/s390.c (s390_expand_vec_compare): Support other
31742 vector floating point modes than just V2DF.
31743 (s390_expand_vcond): Likewise.
31744 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
31745 (s390_cannot_change_mode_class): Prevent mode changes between TF
31746 and V1TF in vector registers.
31747 * config/s390/s390.md (DF, SF): New mode attributes.
31748 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
31749 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
31750 SFmode support for VRs.
31751 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
31752 vector fp modes.
31753 (VFT, VF_HW): New mode iterators.
31754 (vw, sdx): New mode attributes.
31755 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
31756 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
31757 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
31758 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
31759 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
31760 also the new vector floating point modes. Renaming to ...
31761
31762 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
31763 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
31764 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
31765 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
31766 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
31767 ("vec_unordered<mode>"): ... these.
31768
31769 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
31770 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
31771 ("*vec_extendv2df"): New insn definitions.
31772
31773 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31774
31775 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
31776 ("mulditi3_2", "*muldi3_sign"): New patterns.
31777 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
31778 rename the pattern definition.
31779
31780 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31781
31782 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
31783 expander.
31784 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
31785
31786 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31787
31788 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
31789 instruction if possible.
31790 * config/s390/vector.md (vec_halfnumelts): New mode
31791 attribute.
31792 ("*vec_vllezlf<mode>"): New pattern.
31793
31794 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31795
31796 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
31797 ("popcountv4si2", "popcountv2di2"): Rename to ...
31798 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
31799 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
31800 condition.
31801 ("popcount<mode>2_vxe"): New pattern.
31802
31803 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31804
31805 * common/config/s390/s390-common.c (processor_flags_table): Add
31806 arch12.
31807 * config.gcc: Add arch12.
31808 * config/s390/driver-native.c (s390_host_detect_local_cpu):
31809 Default to arch12 for unknown CPU model numbers.
31810 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
31811 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
31812 PROCESSOR_max sanity check.
31813 * config/s390/s390-opts.h (enum processor_type): Add
31814 PROCESSOR_ARCH12.
31815 * config/s390/s390.c (processor_table): Add arch12.
31816 (s390_expand_builtin): Add check for B_VXE flag.
31817 (s390_issue_rate): Add PROCESSOR_ARCH12.
31818 (s390_get_sched_attrmask): Likewise.
31819 (s390_get_unit_mask): Likewise.
31820 (s390_sched_score): Enable z13 scheduling for arch12.
31821 (s390_sched_reorder): Likewise.
31822 (s390_sched_variable_issue): Likewise.
31823 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
31824 PF_VXE.
31825 (s390_tune_attr): Use z13 scheduling also for arch12.
31826 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
31827 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
31828 (TARGET_VXE_P): New macros.
31829 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
31830 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
31831 * config/s390/s390.opt: Add arch12 as processor_type.
31832
31833 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31834
31835 * config/s390/s390.md
31836 ("fixuns_truncdddi2", "fixuns_trunctddi2")
31837 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
31838 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
31839
31840 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
31841 Rename expanders to ...
31842
31843 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
31844 ("fixuns_truncdddi2_emu"): ... these.
31845
31846 ("fixuns_trunc<mode>si2_emu"): New expander.
31847
31848 ("*fixuns_truncdfdi2_z13"): Rename to ...
31849 ("*fixuns_truncdfdi2_vx"): ... this.
31850
31851 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31852
31853 * config/s390/2964.md: Remove the single element vector compare
31854 instructions which are no longer used.
31855 * config/s390/s390.c (s390_select_ccmode): Remove handling of
31856 vector CCmodes.
31857 (s390_canonicalize_comparison): Remove handling of DFmode
31858 compares.
31859 (s390_expand_vec_compare_scalar): Remove function.
31860 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
31861 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
31862 pattern.
31863 ("*cmp<mode>_ccs"): Add wfcdb instruction.
31864
31865 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31866
31867 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
31868 FP zero.
31869 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
31870 will anyway by matched by mov<mode>_64dfp.
31871
31872 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31873
31874 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
31875 vlef/vstef. Add missing operand to vleif.
31876
31877 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31878
31879 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
31880 pair for all vector types with 64 bit elements.
31881 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
31882 * config/s390/vector.md (V_HW_64): ... here.
31883 (V_128_NOSINGLE): New mode iterator.
31884 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
31885 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
31886 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
31887 ("*vec_load_pairv2di"): Change to ...
31888 ("*vec_load_pair<mode>"): ... this one.
31889
31890 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31891
31892 * config/s390/constraints.md: Add comments.
31893 (jKK): Reject element sizes > 8 bytes.
31894 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
31895 s_operands.
31896 * config/s390/s390.md: Add the s_operand checks formerly in
31897 s390_split_ok_p to various splitters where they are still
31898 required.
31899 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
31900 for 128 bit vectors. Plus two splitters.
31901
31902 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31903
31904 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
31905 the file.
31906
31907 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
31908
31909 PR target/79893
31910 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
31911 error if the boundary argument is not constant.
31912
31913 2017-03-24 Jakub Jelinek <jakub@redhat.com>
31914
31915 PR rtl-optimization/80112
31916 * loop-doloop.c (doloop_condition_get): Don't check condition
31917 if cmp isn't SET with IF_THEN_ELSE src.
31918
31919 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31920
31921 PR tree-optimization/80158
31922 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
31923 replacing a candidate statement, also replace it for the
31924 candidate's alternate interpretation.
31925 (replace_rhs_if_not_dup): Likewise.
31926 (replace_one_candidate): Likewise.
31927
31928 2017-03-24 Richard Biener <rguenther@suse.de>
31929
31930 PR tree-optimization/80167
31931 * graphite-isl-ast-to-gimple.c
31932 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
31933 properly.
31934 (translate_isl_ast_to_gimple::get_rename): Likewise.
31935
31936 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
31937
31938 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
31939 handling of certain combinations of target options, including the
31940 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
31941 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
31942
31943 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31944
31945 PR target/71436
31946 * config/arm/arm.md (*load_multiple): Add reload_completed to
31947 matching condition.
31948
31949 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
31950 Richard Biener <rguenth@suse.de>
31951
31952 PR tree-optimization/79908
31953 PR tree-optimization/80136
31954 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
31955 been cast away, gimplify_and_add suffices.
31956
31957 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
31958
31959 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
31960
31961 2017-03-23 Richard Biener <rguenther@suse.de>
31962
31963 PR tree-optimization/80032
31964 * gimplify.c (gimple_push_cleanup): Forced unconditional
31965 cleanups still have to go to the conditional_cleanups
31966 sequence.
31967
31968 2017-03-22 Jakub Jelinek <jakub@redhat.com>
31969
31970 PR tree-optimization/80072
31971 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
31972 to unsigned int.
31973 (next_operand_entry_id): Change type to unsigned int.
31974 (sort_by_operand_rank): Make sure to return the right return value
31975 even if unsigned fields are bigger than INT_MAX.
31976 (struct oecount): Change cnt and id type to unsigned int.
31977 (oecount_hasher::equal): Formatting fix.
31978 (oecount_cmp): Make sure to return the right return value
31979 even if unsigned fields are bigger than INT_MAX.
31980 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
31981
31982 PR c++/80129
31983 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
31984 TREE_READONLY on result if writing it more than once.
31985
31986 PR sanitizer/80110
31987 * doc/invoke.texi (-fsanitize=thread): Document that with
31988 -fnon-call-exceptions atomics are not able to throw
31989 exceptions.
31990
31991 PR sanitizer/80110
31992 * tsan.c: Include tree-eh.h.
31993 (instrument_builtin_call): Call maybe_clean_eh_stmt or
31994 maybe_clean_or_replace_eh_stmt where needed.
31995 (instrument_memory_accesses): Add cfg_changed argument.
31996 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
31997 if it returned true.
31998 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
31999
32000 PR rtl-optimization/63191
32001 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
32002 wrapper function, moved the whole old content into ...
32003 (ix86_delegitimize_address_1): ... this. New inline function.
32004 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
32005 true as last argument instead of ix86_delegitimize_address.
32006
32007 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
32008
32009 * config/aarch64/aarch64.c (generic_branch_cost): Copy
32010 cortexa57_branch_cost.
32011
32012 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
32013
32014 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
32015
32016 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
32017
32018 PR target/80123
32019 * doc/md.texi (Constraints): Document wA constraint.
32020 * config/rs6000/constraints.md (wA): New.
32021 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
32022 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
32023 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
32024 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
32025
32026 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
32027
32028 PR c++/80029
32029 * gimplify.c (is_oacc_declared): New function.
32030 (oacc_default_clause): Use it to set default flags for acc declared
32031 variables inside parallel regions.
32032 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
32033 declared variables.
32034 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
32035 declare attribute to any decl as necessary.
32036
32037 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
32038
32039 PR target/80082
32040 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
32041 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
32042 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
32043 (arm_arch_lpae): This.
32044 * config/arm/arm.c (arm_arch7ve): Rename into ...
32045 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
32046 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
32047 arm_arch_lpae.
32048
32049 2017-03-22 Martin Liska <mliska@suse.cz>
32050
32051 PR target/79906
32052 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
32053 error message instead of an ICE.
32054
32055 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32056
32057 * doc/extend.texi (6.11 Additional Floating Types): Revise.
32058
32059 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
32060
32061 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
32062 comments.
32063 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
32064 comments.
32065
32066 2017-03-21 Martin Sebor <msebor@redhat.com>
32067
32068 * doc/extend.texi: Use "cannot" instead of "can't."
32069 * doc/hostconfig.texi: Same.
32070 * doc/install.texi: Same.
32071 * doc/invoke.texi: Same.
32072 * doc/loop.texi: Same.
32073 * doc/md.texi: Same.
32074 * doc/objc.texi: Same.
32075 * doc/rtl.texi: Same.
32076 * doc/tm.texi: Same.
32077 * doc/tm.texi.in: Same.
32078 * doc/trouble.texi: Same.
32079
32080 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
32081
32082 PR debug/63238
32083 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
32084 (collect_checksum_attributes): Set it.
32085 (die_checksum_ordered): Use it.
32086
32087 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32088
32089 PR tree-optimization/79908
32090 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
32091 change: For a VA_ARG whose LHS has been cast away, use
32092 force_gimple_operand to construct the side effects.
32093
32094 2017-03-21 David Malcolm <dmalcolm@redhat.com>
32095
32096 PR translation/80001
32097 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
32098 more amenable to translation.
32099 (oacc_loop_auto_partitions): Likewise.
32100
32101 2017-03-21 Marek Polacek <polacek@redhat.com>
32102 Martin Sebor <msebor@redhat.com>
32103
32104 PR tree-optimization/80109
32105 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
32106 on INTEGRAL_TYPE_P.
32107
32108 2017-03-21 Jakub Jelinek <jakub@redhat.com>
32109 Segher Boessenkool <segher@kernel.crashing.org>
32110
32111 PR target/80125
32112 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
32113 check reg_used_between_p between insn and one of succ or succ2
32114 depending on if succ is artificial insn not inserted into insn
32115 stream.
32116
32117 2017-03-21 Martin Liska <mliska@suse.cz>
32118
32119 PR gcov-profile/80081
32120 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
32121 * doc/gcc.texi: Include gcov-dump stuff.
32122 * doc/gcov-dump.texi: New file.
32123
32124 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
32125
32126 PR rtl-optimization/79150
32127 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
32128 conditional jump, if the jump is the last insn of the loop.
32129
32130 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32131 Richard Biener <rguenth@suse.de>
32132
32133 PR tree-optimization/79908
32134 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
32135 been cast away, use force_gimple_operand to construct the side
32136 effects.
32137
32138 2017-03-21 Martin Liska <mliska@suse.cz>
32139
32140 PR libfortran/79956
32141 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
32142 to NULL.
32143
32144 2017-03-21 Brad Spengler <spender@grsecurity.net>
32145
32146 PR plugins/80094
32147 * plugin.c (htab_hash_plugin): New function.
32148 (add_new_plugin): Use it and adjust.
32149 (parse_plugin_arg_opt): Adjust.
32150 (init_one_plugin): Likewise.
32151
32152 2017-03-21 Richard Biener <rguenther@suse.de>
32153
32154 PR tree-optimization/80032
32155 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
32156 if set force the cleanup to happen unconditionally.
32157 (gimplify_target_expr): Push inserted clobbers with force_uncond
32158 to avoid them being removed by control-dependent DCE.
32159
32160 2017-03-21 Richard Biener <rguenther@suse.de>
32161
32162 PR tree-optimization/80122
32163 * tree-inline.c (copy_bb): Do not expans va-arg packs or
32164 va_arg_pack_len when the inlined call stmt requires pack
32165 expansion itself.
32166 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
32167
32168 2017-03-21 Jakub Jelinek <jakub@redhat.com>
32169
32170 PR sanitizer/78158
32171 * tsan.c (instrument_builtin_call): If the memory model argument
32172 is not a constant, assume it is valid.
32173
32174 PR c/67338
32175 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
32176 avoid UB.
32177
32178 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
32179
32180 PR rtl-optimization/79910
32181 * combine.c (can_combine_p): Do not allow combining an I0 or I1
32182 if its dest is used by an insn before I2 (other than the combined
32183 insns themselves, which are properly handled already).
32184
32185 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
32186
32187 Revert:
32188 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
32189
32190 * combine.c (record_used_regs): New static function.
32191 (try_combine): Handle situations where there is an additional
32192 instruction between I2 and I3 which needs to have a LOG_LINK
32193 updated.
32194
32195 Revert:
32196 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
32197
32198 * combine.c (try_combine): Delete redundant i1 test. Call
32199 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
32200
32201 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
32202
32203 PR target/80083
32204 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
32205 alternatives 13/14.
32206
32207 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32208
32209 PR tree-optimization/80054
32210 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
32211 the optimization if a PHI or any of its arguments is not dominated
32212 by the candidate's basis. Use gphi* rather than gimple* as
32213 appropriate.
32214 (replace_profitable_candidates): Clean up a gimple* variable that
32215 should be a gphi* variable.
32216
32217 2017-03-20 Martin Sebor <msebor@redhat.com>
32218
32219 PR c++/52477
32220 * doc/extend.texi (attribute constructor): Document present limitation.
32221
32222 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
32223
32224 PR target/79963
32225 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
32226 __POWER9_VECTOR__ #ifdef control, change template definition to
32227 use Power9-specific built-in function.
32228 (vec_any_eq): Likewise.
32229 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
32230 to control outcomes from this test.
32231 (vector_ae_<mode>p): For VEC_F modes, likewise.
32232
32233 2017-03-20 Ian Lance Taylor <iant@google.com>
32234
32235 * config/i386/i386.c (ix86_function_regparm): Save an extra
32236 register for -fsplit-stack with DECL_STATIC_CHAIN.
32237
32238 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
32239
32240 PR target/79912
32241 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
32242 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
32243
32244 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
32245
32246 * config/riscv/riscv.c (riscv_print_operand): Use "fence
32247 iorw,ow".
32248 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
32249 iorw,iorw".
32250
32251 2017-03-20 Marek Polacek <polacek@redhat.com>
32252
32253 PR sanitizer/80063
32254 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
32255
32256 2017-03-20 Richard Biener <rguenther@suse.de>
32257
32258 PR tree-optimization/80113
32259 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
32260 allocate extra SSA name for PHI def.
32261 (add_close_phis_to_outer_loops): Likewise.
32262 (add_close_phis_to_merge_points): Likewise.
32263 (copy_loop_close_phi_args): Likewise.
32264 (copy_cond_phi_nodes): Likewise.
32265
32266 2017-03-20 Martin Liska <mliska@suse.cz>
32267
32268 PR middle-end/79753
32269 * tree-chkp.c (chkp_build_returned_bound): Do not build
32270 returned bounds for a LHS that's not a BOUNDED_P type.
32271
32272 2017-03-20 Martin Liska <mliska@suse.cz>
32273
32274 PR target/79769
32275 PR target/79770
32276 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
32277 COMPLEX_CST and VECTOR_CST.
32278
32279 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32280
32281 PR target/78857
32282 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
32283 target operand. A new splitter adds the clobber statement in case
32284 the target operand is dead anyway.
32285
32286 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
32287
32288 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
32289 to age-old versions of binutils and glibc.
32290
32291 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
32292
32293 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
32294
32295 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
32296
32297 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
32298
32299 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
32300
32301 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
32302 requirement for binutils 2.13.
32303
32304 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
32305
32306 * combine.c (try_combine): Delete redundant i1 test. Call
32307 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
32308
32309 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
32310
32311 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
32312 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
32313 contents.
32314 <riscv64-*-elf>: Re-arrange section
32315 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
32316 <riscv32-*-linux>: Likewise.
32317 <riscv64-*-elf>: Likewise
32318 <riscv64-*-linux>: Likewise.
32319
32320 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
32321
32322 PR target/80052
32323 * aarch64.opt(verbose-cost-dump): Fix typo.
32324
32325 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
32326
32327 PR target/79951
32328 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
32329 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
32330
32331 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
32332
32333 * reload.c (find_reloads): When reloading a nonoffsettable address,
32334 use RELOAD_OTHER for it and its address reloads.
32335
32336 PR rtl-optimization/79910
32337 * combine.c (record_used_regs): New static function.
32338 (try_combine): Handle situations where there is an additional
32339 instruction between I2 and I3 which needs to have a LOG_LINK
32340 updated.
32341
32342 2017-03-17 Jeff Law <law@redhat.com>
32343
32344 PR tree-optimization/71437
32345 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
32346 conditional in the hash table first.
32347 (vrp_dom_walker::before_dom_children): Extract condition from
32348 ASSERT_EXPR. Record condition, its inverion and any implied
32349 conditions as well.
32350
32351 2017-03-17 Marek Polacek <polacek@redhat.com>
32352 Markus Trippelsdorf <markus@trippelsdorf.de>
32353
32354 PR tree-optimization/80079
32355 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
32356 m_stores_head.
32357
32358 2017-03-17 Richard Biener <rguenther@suse.de>
32359
32360 PR middle-end/80075
32361 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
32362 Properly verify the LHS before the RHS possibly claims to be
32363 handled.
32364 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
32365 do not throw.
32366
32367 2017-03-17 Martin Jambor <mjambor@suse.cz>
32368
32369 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
32370 (List of -O2 options): Likewise.
32371 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
32372 (-fipa-vrp) New.
32373
32374 2017-03-17 Tom de Vries <tom@codesourcery.com>
32375
32376 * gcov-dump.c (print_usage): Print bug_report_url.
32377
32378 2017-03-17 Richard Biener <rguenther@suse.de>
32379
32380 PR middle-end/80050
32381 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
32382 (parser::peek): Likewise.
32383
32384 2017-03-17 Richard Biener <rguenther@suse.de>
32385
32386 PR tree-optimization/80048
32387 * sese.c (free_sese_info): Properly release rename_map and
32388 copied_bb_map elements.
32389
32390 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
32391
32392 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
32393 Add linked-list forward and backlinks. Insert on
32394 construction, remove on destruction.
32395 (class pass_store_merging): Add m_stores_head field.
32396 (pass_store_merging::terminate_and_process_all_chains):
32397 Iterate over m_stores_head list.
32398 (pass_store_merging::terminate_all_aliasing_chains):
32399 Likewise.
32400 (pass_store_merging::execute): Check for debug stmts first.
32401 Push new chains onto the m_stores_head stack.
32402
32403 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
32404
32405 PR target/71294
32406 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
32407 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
32408 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
32409
32410 2017-03-16 Jeff Law <law@redhat.com>
32411
32412 PR tree-optimization/71437
32413 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
32414 member function. Implementation moved into after_dom_children
32415 member function and into the threader's thread_outgoing_edges
32416 function.
32417 (dom_opt_dom_walker::after_dom_children): Simplify by moving
32418 some code into new thread_outgoing_edges.
32419 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
32420 definition. Simplify marker handling (do it here). Assume we always
32421 have the available expression and the const/copies tables.
32422 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
32423 and tree-vrp.c
32424 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
32425 * tree-vrp.c (equiv_stack): No longer file scoped.
32426 (vrp_dom_walker): New class.
32427 (vrp_dom_walker::before_dom_children): New member function.
32428 (vrp_dom_walker::after_dom_children): Likewise.
32429 (identify_jump_threads): Setup domwalker. Use it rather than
32430 walking edges in a random order by hand. Simplify setup/finalization.
32431 (finalize_jump_threads): Remove.
32432 (vrp_finalize): Do not call identify_jump_threads here.
32433 (execute_vrp): Do it here instead and call thread_through_all_blocks
32434 here too.
32435
32436 PR tree-optimization/71437
32437 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
32438 callers changed.
32439 (simplify_stmt_for_jump_threading): Add basic_block argument. All
32440 callers changed.
32441 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
32442 (dom_opt_dom_walker::thread_across_edge): Remove
32443 handle_dominating_asserts argument. All callers changed.
32444 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
32445 changes. Remove calls to lhs_of_dominating_assert. Other
32446 uses of handle_dominating_asserts turn into unconditional code
32447 (simplify_control_stmt_condition_1): Likewise.
32448 (simplify_control_stmt_condition): Likewise.
32449 (thread_through_normal_block, thread_across_edge): Likewise.
32450 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
32451 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
32452 object if it is not an SSA_NAME.
32453 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
32454 before calling into the VRP specific simplifiers.
32455 (identify_jump_threads): Remove handle_dominating_asserts
32456 argument.
32457
32458 2017-03-16 Jakub Jelinek <jakub@redhat.com>
32459
32460 PR fortran/79886
32461 * tree-diagnostic.c (default_tree_printer): No longer static.
32462 * tree-diagnostic.h (default_tree_printer): New prototype.
32463
32464 2017-03-16 Tamar Christina <tamar.christina@arm.com>
32465
32466 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
32467 Change ins into fmov.
32468
32469 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32470
32471 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
32472 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
32473 Use h_con constraint for operand 1.
32474 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
32475 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
32476
32477 2017-03-15 Jeff Law <law@redhat.com>
32478
32479 PR tree-optimization/71437
32480 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
32481 (record_temporary_equivalences): Use it.
32482
32483 PR tree-optimization/71437
32484 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
32485 tree-ssa-scopedtables.
32486 (lookup_avail_expr, build_and_record_new_cond): Likewise.
32487 (record_conditions, record_cond, vuse_eq): Likewise.
32488 (record_edge_info): Adjust to API tweak of record_conditions.
32489 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
32490 (record_temporary_equivalences, optimize_stmt): Likewise.
32491 (eliminate_redundant_computations): Likewise.
32492 (record_equivalences_from_stmt): Likewise.
32493 * tree-ssa-scopedtables.c: Include options.h and params.h.
32494 (vuse_eq): New function, moved from tree-ssa-dom.c
32495 (build_and_record_new_cond): Likewise.
32496 (record_conditions): Likewise. Accept vector of conditions rather
32497 than edge_equivalence structure for first argument.
32498 for the first argument.
32499 (avail_exprs_stack::lookup_avail_expr): New member function, moved
32500 from tree-ssa-dom.c.
32501 (avail_exprs_stack::record_cond): Likewise.
32502 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
32503 from tree-ssa-dom.c.
32504 (avail_exprs_stack): Add new member functions lookup_avail_expr
32505 and record_cond.
32506 (record_conditions): Declare.
32507
32508 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
32509
32510 PR target/80017
32511 * lra-constraints.c (process_alt_operands): Increase reject for
32512 reloading an input/output operand.
32513
32514 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
32515
32516 PR target/79038
32517 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
32518 insns to convert from signed/unsigned char/short to IEEE 128-bit
32519 floating point.
32520 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
32521
32522 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
32523
32524 PR target/80019
32525 * config/i386/i386.c (ix86_vector_duplicate_value): Create
32526 subreg of inner mode for values already in registers.
32527
32528 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
32529
32530 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
32531 iteration reg is used after the loop.
32532
32533 2017-03-14 Martin Sebor <msebor@redhat.com>
32534
32535 PR tree-optimization/79800
32536 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
32537 precision in negative-positive range.
32538 (format_floating): Call non-const overload with adjusted precision.
32539
32540 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
32541
32542 PR target/79947
32543 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
32544 -mpowerpc-gfxopt.
32545
32546 2017-03-14 Martin Sebor <msebor@redhat.com>
32547
32548 PR middle-end/80020
32549 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
32550 * builtins.def (aligned_alloc): Use it.
32551
32552 PR c/79936
32553 * Makefile.in (GTFILES): Add calls.c.
32554 * calls.c: Include "gt-calls.h".
32555
32556 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
32557
32558 PR rtl-optimization/79728
32559 * regs.h (struct target_regs): New field
32560 x_contains_allocatable_regs_of_mode.
32561 (contains_allocatable_regs_of_mode): New macro.
32562 * reginfo.c (init_reg_sets_1): Initialize it, and change
32563 contains_reg_of_mode so it includes global regs as well.
32564 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
32565 rather than contains_regs_of_mode.
32566
32567 2017-03-14 Martin Liska <mliska@suse.cz>
32568
32569 * doc/invoke.texi: Document options that can't be combined with
32570 -fcheck-pointer-bounds.
32571
32572 2017-03-14 Martin Liska <mliska@suse.cz>
32573
32574 PR middle-end/79831
32575 * doc/invoke.texi (-Wchkp): Document the option.
32576
32577 2017-03-14 Martin Liska <mliska@suse.cz>
32578
32579 * Makefile.in: Install gcov-dump.
32580
32581 2017-03-14 Martin Liska <mliska@suse.cz>
32582
32583 * multiple_target.c (expand_target_clones): Bail out for
32584 an invalid attribute.
32585
32586 2017-03-14 Richard Biener <rguenther@suse.de>
32587
32588 * alias.c (struct alias_set_entry): Pack properly.
32589 * cfgloop.h (struct loop): Likewise.
32590 * cse.c (struct set): Likewise.
32591 * ipa-utils.c (struct searchc_env): Likewise.
32592 * loop-invariant.c (struct invariant): Likewise.
32593 * lra-remat.c (struct cand): Likewise.
32594 * recog.c (struct change_t): Likewise.
32595 * rtl.h (struct address_info): Likewise.
32596 * symbol-summary.h (function_summary): Likewise.
32597 * tree-loop-distribution.c (struct partition): Likewise.
32598 * tree-object-size.c (struct object_size_info): Likewise.
32599 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
32600 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
32601 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
32602 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
32603 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
32604 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
32605 (struct _stmt_vec_info): Likewise.
32606
32607 2017-03-14 Martin Liska <mliska@suse.cz>
32608
32609 PR target/79892
32610 * multiple_target.c (create_dispatcher_calls): Check that
32611 a target can create a function dispatcher.
32612
32613 2017-03-14 Martin Liska <mliska@suse.cz>
32614
32615 PR lto/66295
32616 * multiple_target.c (expand_target_clones): Drop local.local
32617 flag for default implementation.
32618
32619 2017-03-14 Richard Biener <rguenther@suse.de>
32620
32621 PR tree-optimization/80030
32622 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
32623
32624 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
32625
32626 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
32627 gcc_fallthrough() instead of __attribute__((fallthrough));
32628
32629 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
32630
32631 * doc/gcc.texi: Remove "up" link to (DIR).
32632 * doc/gccint.texi: Ditto.
32633
32634 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
32635
32636 * doc/install.texi (Specific) <avr>: Remove reference to
32637 binutils 2.13.
32638
32639 2017-03-13 Jeff Law <law@redhat.com>
32640
32641 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
32642 attribute rather than comments.
32643
32644 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
32645 match_scratch operand is highest.
32646
32647 2017-03-13 Martin Liska <mliska@suse.cz>
32648
32649 PR middle-end/78339
32650 * ipa-pure-const.c (warn_function_noreturn): If the declarations
32651 is a CHKP clone, use original declaration.
32652
32653 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
32654
32655 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
32656 (arc_conditional_register_usage): Use a different allocation order
32657 when optimizing for size.
32658 * common/config/arc/arc-common.c (arc_option_optimization_table):
32659 Section anchors default on when optimizing for size.
32660
32661 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
32662
32663 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
32664
32665 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
32666
32667 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
32668 * config/arc/arc.md (cpu_facility): Add cd variant.
32669 (*movqi_insn): Add code density variant.
32670 (*movhi_insn): Likewise.
32671 (*movqi_insn): Likewise.
32672 (*addsi3_mixed): Likewise.
32673 (subsi3_insn): Likewise.
32674
32675 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
32676
32677 * config/arc/arc.md (movsi_cond_exec): Update constraint.
32678
32679 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
32680
32681 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
32682 expressions with MINUS and UNARY ops.
32683
32684 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32685
32686 PR target/79911
32687 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
32688 Rename to...
32689 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
32690 between vec_select and vector argument.
32691 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
32692 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
32693 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
32694 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
32695 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
32696 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
32697
32698 2017-03-13 Richard Biener <rguenther@suse.de>
32699
32700 PR other/79991
32701 * params.def (vect-max-peeling-for-alignment): Fix typo.
32702
32703 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
32704
32705 * doc/install.texi (Specific) <mips-*-*>: Remove description of
32706 issue that only occurred with binutils below 2.18.
32707
32708 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
32709
32710 * doc/install.texi (Specific) <cris-axis-elf>: No longer
32711 refer to binutils 2.11/2.12 minimum.
32712
32713 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
32714
32715 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
32716 ftp.kernel.org and simplify binutils requirement.
32717
32718 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
32719
32720 * doc/invoke.texi (Warning Options): Fix spelling of link-time
32721 optimization.
32722 (Optimize Options): Ditto. Also remove redundancy.
32723
32724 2017-03-10 David Malcolm <dmalcolm@redhat.com>
32725
32726 PR translation/79848
32727 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
32728 "%qs".
32729 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
32730 to G_ to avoid double translation.
32731
32732 2017-03-10 David Malcolm <dmalcolm@redhat.com>
32733
32734 PR translation/79923
32735 * auto-profile.c (get_combined_location): Convert leading
32736 character of diagnostics to lower case and remove trailing period.
32737 (read_profile): Likewise for various diagnostics.
32738 * config/arm/arm.c (arm_option_override): Remove trailing period
32739 from various diagnostics.
32740 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
32741 (msp430_expand_delay_cycles): Likewise.
32742
32743 2017-03-10 David Malcolm <dmalcolm@redhat.com>
32744
32745 PR target/79925
32746 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
32747 full command-line argument, rather than just "str".
32748 (aarch64_validate_march): Likewise.
32749 (aarch64_validate_mtune): Likewise.
32750
32751 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
32752
32753 PR rtl-optimization/78911
32754 * lra-assigns.c (must_not_spill_p): New function.
32755 (spill_for): Use it.
32756
32757 2017-03-10 Jakub Jelinek <jakub@redhat.com>
32758
32759 PR tree-optimization/79981
32760 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
32761 ATOMIC_COMPARE_EXCHANGE ifn result.
32762 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
32763 IFN_ATOMIC_COMPARE_EXCHANGE.
32764
32765 2017-03-10 David Malcolm <dmalcolm@redhat.com>
32766
32767 PR driver/79875
32768 * opts.c (parse_sanitizer_options): Add missing question mark to
32769 "did you mean" message.
32770
32771 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32772
32773 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
32774 built-in.
32775 (VMULEUH_UNS): Likewise.
32776 (VMULOUB_UNS): Likewise.
32777 (VMULOUH_UNS): Likewise.
32778 * config/rs6000/rs6000.c (builtin_function_type): Remove
32779 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
32780
32781 2017-03-10 David Malcolm <dmalcolm@redhat.com>
32782
32783 PR bootstrap/79952
32784 * read-rtl-function.c (function_reader::read_rtx_operand): Update
32785 x with result of extra_parsing_for_operand_code_0.
32786 (function_reader::extra_parsing_for_operand_code_0): Convert
32787 return type from void to rtx, returning x. When reading
32788 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
32789 larger size containing struct block_symbol.
32790
32791 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
32792
32793 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
32794 -mfloat128-hardware without -m64.
32795
32796 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
32797
32798 PR target/79941
32799 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
32800 entries to the case statement that marks unsigned arguments to
32801 overloaded functions.
32802
32803 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
32804
32805 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
32806 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
32807
32808 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
32809
32810 PR target/79907
32811 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
32812 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
32813
32814 2017-03-10 Martin Liska <mliska@suse.cz>
32815
32816 PR target/65705
32817 PR target/69804
32818 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
32819 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
32820 FIELD != NULL.
32821
32822 2017-03-10 Olivier Hainque <hainque@adacore.com>
32823
32824 * tree-switch-conversion (array_value_type): Start by resetting
32825 candidate type to it's main variant.
32826
32827 2017-03-10 Jakub Jelinek <jakub@redhat.com>
32828
32829 PR rtl-optimization/79909
32830 * combine.c (try_combine): Use simplify_replace_rtx on individual
32831 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
32832 of the whole CALL_INSN_FUNCTION_USAGE.
32833
32834 PR tree-optimization/79972
32835 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
32836 get_range_info on SSA_NAMEs. Formatting fixes.
32837
32838 2017-03-10 Richard Biener <rguenther@suse.de>
32839 Jakub Jelinek <jakub@redhat.com>
32840
32841 PR tree-optimization/77975
32842 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
32843 edge to be constant.
32844 (get_val_for): For constant x return it. Formatting fix.
32845 (loop_niter_by_eval): Avoid pointless looping if the next iteration
32846 would use the same bases as the current one.
32847
32848 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
32849
32850 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
32851 instead of vec_select for V1TImode.
32852 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
32853 longer needed.
32854 (VSX_LE_128): Add V1TI to this mode iterator.
32855 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
32856 (*vsx_le_perm_store_<mode>): Likewise.
32857 (pre-reload splitter for VSX stores): Likewise.
32858 (post-reload splitter for VSX stores): Likewise.
32859 (*vsx_xxpermdi2_le_<mode>): Likewise.
32860 (*vsx_lxvd2x2_le_<mode>): Likewise.
32861 (*vsx_stxvd2x2_le_<mode>): Likewise.
32862
32863 2017-03-09 Michael Eager <eager@eagercon.com>
32864
32865 Correct failures with --enable-checking=yes,rtl.
32866
32867 * config/microblaze/microblaze.c (microblaze_expand_shift):
32868 Replace GET_CODE test with CONST_INT_P and INTVAL test with
32869 test for const0_rtx.
32870 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
32871 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
32872
32873 2017-03-09 Richard Biener <rguenther@suse.de>
32874
32875 PR tree-optimization/79977
32876 * graphite-scop-detection.c (scop_detection::merge_sese):
32877 Handle the case of extra exits to blocks dominating the entry.
32878
32879 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
32880
32881 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
32882 Document rdynamic.
32883
32884 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
32885
32886 PR rtl-optimization/79949
32887 * lra-constraints.c (process_alt_operands): Check memory when
32888 trying to predict a cycle. Print about the overall increase.
32889
32890 2017-03-09 Richard Biener <rguenther@suse.de>
32891
32892 PR middle-end/79971
32893 * gimple-expr.c (useless_type_conversion_p): Preserve
32894 TYPE_SATURATING for fixed-point types.
32895
32896 2017-03-09 Richard Biener <rguenther@suse.de>
32897
32898 PR ipa/79970
32899 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
32900 alignment of BLKmode params.
32901
32902 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32903
32904 PR target/79913
32905 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
32906 (VALL_NO_V2Q): Likewise.
32907 (VDQF_DF): Delete.
32908 * config/aarch64/aarch64-simd.md
32909 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
32910 iterator.
32911 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
32912 VALL_NO_V2Q mode iterator.
32913 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
32914
32915 2017-03-09 Martin Liska <mliska@suse.cz>
32916
32917 PR tree-optimization/79631
32918 * tree-chkp-opt.c (chkp_is_constant_addr): Call
32919 tree_int_cst_sign_bit just for INTEGER constants.
32920
32921 2017-03-09 Martin Liska <mliska@suse.cz>
32922
32923 PR target/65705
32924 PR target/69804
32925 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
32926 sanitizers.
32927
32928 2017-03-09 Marek Polacek <polacek@redhat.com>
32929
32930 PR c++/79672
32931 * tree.c (inchash::add_expr): Handle TREE_VEC.
32932
32933 2017-03-09 Martin Liska <mliska@suse.cz>
32934
32935 PR ipa/79764
32936 (chkp_narrow_size_and_offset): New function.
32937 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
32938 (void chkp_parse_bit_field_ref): New function.
32939 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
32940 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
32941
32942 2017-03-09 Martin Liska <mliska@suse.cz>
32943
32944 PR ipa/79761
32945 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
32946 (chkp_find_bounds_1): Remove gcc_unreachable.
32947
32948 2017-03-09 Jakub Jelinek <jakub@redhat.com>
32949
32950 PR sanitizer/79944
32951 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
32952 BUILT_IN_SYNC*, determine the access type from the size suffix and
32953 always build a MEM_REF with that type. Handle forgotten
32954 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
32955
32956 PR target/79932
32957 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
32958 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
32959 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
32960 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
32961 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
32962 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
32963 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
32964 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
32965 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
32966 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
32967 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
32968 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
32969 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
32970 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
32971 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
32972 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
32973 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
32974 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
32975 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
32976 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
32977 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
32978 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
32979 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
32980 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
32981 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
32982 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
32983 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
32984 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
32985 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
32986 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
32987 definitions outside of __OPTIMIZE__ guarded section.
32988
32989 PR target/79932
32990 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
32991 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
32992 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
32993 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
32994 guarded section.
32995
32996 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
32997
32998 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
32999 ("vfenez<mode>"): Add missing constraints.
33000
33001 2017-03-08 Martin Sebor <msebor@redhat.com>
33002
33003 PR target/79928
33004 * config/nds32/nds32.c (nds32_option_override):
33005 Fix misspelled diagnostic.
33006
33007 2017-03-08 Jakub Jelinek <jakub@redhat.com>
33008
33009 PR c/79940
33010 * gimplify.c (gimplify_omp_for): Replace index var in outer
33011 taskloop statement with an artificial variable and add
33012 OMP_CLAUSE_PRIVATE clause for it.
33013
33014 2017-03-08 Richard Biener <rguenther@suse.de>
33015
33016 PR tree-optimization/79955
33017 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
33018 for accesses that are completely outside of the variable.
33019
33020 2017-03-08 Andrew Haley <aph@redhat.com>
33021
33022 PR tree-optimization/79943
33023 * tree-ssa-loop-split.c (compute_new_first_bound): When
33024 calculating the new upper bound, (END-BEG) should be added, not
33025 subtracted.
33026
33027 2017-03-08 Jakub Jelinek <jakub@redhat.com>
33028
33029 * config/avr/avr.md (setmemhi): Make sure match_dup
33030 operand number comes before match_scratch.
33031
33032 2017-03-08 Richard Biener <rguenther@suse.de>
33033
33034 PR tree-optimization/79920
33035 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
33036 with ncopies == 1 to ...
33037 (vect_transform_slp_perm_load): ... here. Properly compute
33038 all element loads by iterating VF times over the group. Do
33039 not handle ncopies (computed in a broken way) in
33040 vect_create_mask_and_perm.
33041
33042 2017-03-08 Jakub Jelinek <jakub@redhat.com>
33043
33044 PR sanitizer/79904
33045 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
33046 is a uniform vector, use uniform_vector_p return value instead of
33047 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
33048
33049 2017-03-07 Marek Polacek <polacek@redhat.com>
33050
33051 PR middle-end/79809
33052 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
33053 (alloca_call_type): Likewise.
33054
33055 2017-03-07 Martin Liska <mliska@suse.cz>
33056
33057 * gcov.c (process_args): Put comment to correct location.
33058
33059 2017-03-07 Martin Liska <mliska@suse.cz>
33060
33061 PR middle-end/68270
33062 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
33063 Use array_at_struct_end_p instead of DECL_CHAIN (field).
33064 (chkp_narrow_bounds_for_field): Likewise.
33065 (chkp_parse_array_and_component_ref): Pass one more argument to
33066 call.
33067
33068 2017-03-07 Richard Biener <rguenther@suse.de>
33069
33070 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
33071 preheaders.
33072
33073 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
33074
33075 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
33076 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
33077
33078 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33079
33080 PR c/79855
33081 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
33082 to end of description.
33083 (PARAM_MAX_STORES_TO_MERGE): Likewise.
33084
33085 2017-03-07 Jakub Jelinek <jakub@redhat.com>
33086
33087 PR rtl-optimization/79901
33088 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
33089 ...
33090 (*avx512f_<code><mode>3<mask_name>): ... this.
33091 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
33092 iterator instead of VI8_AVX2_AVX512BW.
33093
33094 PR rtl-optimization/79901
33095 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
33096 min/max expander, expand it using expand_vec_cond_expr.
33097
33098 PR sanitizer/79897
33099 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
33100 temporary.
33101
33102 2017-03-06 Jakub Jelinek <jakub@redhat.com>
33103
33104 PR c++/79821
33105 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
33106 to void * for PCH reasons.
33107 * dwarf2out.c (output_loc_operands, output_die): Cast
33108 v.val_vec.array to unsigned char *.
33109
33110 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
33111
33112 PR target/77850
33113 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
33114 vector types.
33115
33116 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
33117
33118 PR rtl-optimization/79571
33119 * lra-constraints.c (process_alt_operands): Calculate static
33120 reject and subtract it from overall when only addresses will be
33121 reloaded.
33122
33123 2017-03-06 Julia Koval <julia.koval@intel.com>
33124
33125 PR target/79793
33126 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
33127 incoming stack boundary to 128 for 64-bit targets.
33128
33129 2017-03-06 Richard Biener <rguenther@suse.de>
33130
33131 PR tree-optimization/79894
33132 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
33133 to NULL after folding it.
33134
33135 2017-03-06 Richard Biener <rguenther@suse.de>
33136
33137 PR tree-optimization/79824
33138 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
33139 check disabling peeling for gaps.
33140
33141 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
33142
33143 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
33144 attributes): Document gettimeofday.
33145
33146 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
33147
33148 * config/s390/s390.c (s390_option_override_internal): Set
33149 PARAM_MIN_VECT_LOOP_BOUND
33150
33151 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
33152
33153 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
33154 * config/s390/s390.md: Likewise.
33155
33156 2017-03-06 Jakub Jelinek <jakub@redhat.com>
33157
33158 PR target/79812
33159 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
33160 (<avx2_avx512>_perm<mode>): Rename to ...
33161 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
33162 of VI8F_256_512.
33163 (<avx512>_perm<mode>_mask): Rename to ...
33164 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
33165 of VI8F_256_512.
33166 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
33167 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
33168 instead of VI8F_256_512.
33169 (avx512f_perm<mode>): New define_expand.
33170 (avx512f_perm<mode>_mask): Likewise.
33171 (avx512f_perm<mode>_1<mask_name>): New define_insn.
33172 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
33173
33174 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
33175
33176 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
33177 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
33178 if_then_else.
33179 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
33180
33181 2017-03-06 Martin Liska <mliska@suse.cz>
33182
33183 PR sanitize/79783
33184 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
33185 when having a SSA NAME w/o VAR_DECL assigned to it.
33186
33187 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
33188
33189 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
33190 msa_dpsub_<su>_d): Fix MODE for vec_select.
33191
33192 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
33193
33194 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
33195 argument.
33196 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
33197
33198 2017-03-06 Richard Biener <rguenther@suse.de>
33199
33200 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
33201 * plugin.c (register_plugin_info): Likewise.
33202 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
33203
33204 2017-03-05 Jakub Jelinek <jakub@redhat.com>
33205
33206 * config/i386/sse.md (sse_storehps, sse_storelps,
33207 avx_<castmode><avxsizesuffix>_<castmode>,
33208 avx512f_<castmode><avxsizesuffix>_<castmode>,
33209 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
33210 in condition that at least one operand is not a MEM.
33211
33212 2017-03-03 Jakub Jelinek <jakub@redhat.com>
33213
33214 PR middle-end/79805
33215 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
33216 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
33217 ECF_NOTHROW.
33218 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
33219 gimple_call_nothrow_p flag based on whether original builtin can throw.
33220 If it can, emit following stmts on the fallthrough edge.
33221 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
33222 don't create new bb if inserting just debug stmts on the edge, try to
33223 insert them on the fallthru bb or just reset debug stmts.
33224
33225 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
33226
33227 PR target/43763
33228 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
33229 restore recog_data (including the operand rtxes inside it) around
33230 the call to get_insn_template.
33231
33232 2017-03-03 Martin Sebor <msebor@redhat.com>
33233
33234 PR tree-optimization/79699
33235 * context.c (context::~context): Free MPFR caches to avoid
33236 a memory leak on program exit.
33237
33238 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33239
33240 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
33241 Use wide_int::ulow () instead of .elt (0).
33242
33243 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
33244
33245 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
33246 (*pushxf): Limit oF constraint to 32bit targets and add oC
33247 constraint for 64bit targets.
33248 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
33249 (*pushdf): Change rmF constraint to rmC.
33250
33251 2017-03-03 Martin Liska <mliska@suse.cz>
33252
33253 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
33254 Remove unused variable.
33255
33256 2017-03-03 Jakub Jelinek <jakub@redhat.com>
33257
33258 PR target/79807
33259 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
33260 is a memory operand, increase num_memory.
33261 (ix86_expand_args_builtin): Likewise.
33262
33263 2017-03-03 Jan Hubicka <jh@suse.cz>
33264
33265 PR lto/79760
33266 * ipa-devirt.c (maybe_record_node): Properly handle
33267 __cxa_pure_virtual visibility.
33268
33269 2017-03-03 Martin Liska <mliska@suse.cz>
33270
33271 PR tree-optimization/79803
33272 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
33273 assert.
33274 (pass_loop_prefetch::execute): Disabled optimization if an
33275 assumption about L1 cache size is not met.
33276
33277 2017-03-03 Martin Liska <mliska@suse.cz>
33278
33279 PR rtl-optimization/79574
33280 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
33281 (hash_scan_set): Likewise.
33282 (dump_hash_table): Likewise.
33283 (hoist_code): Likewise.
33284
33285 2017-03-03 Richard Biener <rguenther@suse.de>
33286
33287 * fixed-value.c (fixed_from_string): Restore use of elt (1)
33288 in place of uhigh ().
33289 (fixed_convert_from_real): Likewise.
33290
33291 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
33292
33293 PR target/79514
33294 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
33295
33296 2017-03-03 Richard Biener <rguenther@suse.de>
33297
33298 PR middle-end/79818
33299 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
33300 TYPE_OVERFLOW_UNDEFINED check.
33301
33302 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33303
33304 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
33305 numbers.
33306 (vector_ae_<mode>_p): Likewise.
33307 (vector_nez_<mode>_p): Likewise.
33308 (vector_ne_v2di_p): Likewise.
33309 (vector_ae_v2di_p): Likewise.
33310 (vector_ne_<mode>_p): Likewise.
33311 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
33312 numbers.
33313 (vsx_tsqrt<mode>2_fe): Likewise.
33314
33315 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
33316
33317 PR target/79514
33318 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
33319
33320 2017-03-02 Jakub Jelinek <jakub@redhat.com>
33321
33322 PR rtl-optimization/79780
33323 * cprop.c (one_cprop_pass): When second and further conditional trap
33324 in a single basic block is turned into an unconditional trap, turn it
33325 into a deleted note to avoid RTL verification failures.
33326
33327 2017-03-02 Richard Biener <rguenther@suse.de>
33328
33329 * fold-const.c (const_binop): Use ulow () instead of elt (0).
33330
33331 2017-03-02 Richard Biener <rguenther@suse.de>
33332
33333 PR tree-optimization/79345
33334 PR c++/42000
33335 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
33336 param and abort the walk, returning -1 if it is hit.
33337 (walk_aliased_vdefs): Take a limit param and pass it on.
33338 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
33339 defaulting to 0 and return a signed int.
33340 * tree-ssa-uninit.c (struct check_defs_data): New struct.
33341 (check_defs): New helper.
33342 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
33343 about uninitialized memory.
33344 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
33345 bogus uninitialized warning.
33346 (fixed_convert_from_real): Likewise.
33347
33348 2017-03-02 Bin Cheng <bin.cheng@arm.com>
33349
33350 PR tree-optimization/66768
33351 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
33352 iv_use if base object can't be determined.
33353
33354 2017-03-02 Jakub Jelinek <jakub@redhat.com>
33355
33356 PR tree-optimization/79345
33357 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
33358 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
33359 (get_pattern_stats): Initialize it.
33360 * genemit.c (gen_expand): Verify match_scratch numbers come after
33361 match_operand/match_dup numbers.
33362 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
33363 match_scratch numbers.
33364 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
33365 Likewise.
33366 * config/s390/s390.md (trunctdsd2): Likewise.
33367
33368 2017-03-02 Richard Biener <rguenther@suse.de>
33369
33370 * wide-int.h (wide_int_storage::operator=): Implement in terms
33371 of wi::copy.
33372
33373 2017-03-02 Richard Biener <rguenther@suse.de>
33374
33375 PR tree-optimization/79777
33376 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
33377 the to insert expression to sth existing.
33378
33379 2017-03-01 Martin Sebor <msebor@redhat.com>
33380
33381 PR middle-end/79692
33382 * gimple-ssa-sprintf.c
33383 (directive::known_width_and_precision): New function.
33384 (format_integer): Use it.
33385 (get_mpfr_format_length): Consider the full range of precision
33386 when computing %g output with the # flag. Set the likely byte
33387 count to 3 rather than 1 when precision is indeterminate.
33388 (format_floating): Correct the lower bound of precision.
33389
33390 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
33391
33392 * doc/invoke.texi: Document default code model for 64-bit Linux.
33393
33394 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
33395
33396 PR target/79752
33397 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
33398 udiv rather than div since input pattern is unsigned.
33399
33400 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
33401
33402 * config/i386/i386.c (print_reg): Warn for values of
33403 unsupported size in integer register.
33404
33405 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
33406
33407 PR target/79439
33408 * config/rs6000/predicates.md (current_file_function_operand): Do
33409 not allow self calls to be local if the function is replaceable.
33410
33411 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
33412
33413 PR target/79395
33414 * config/rs6000/altivec.h (vec_ctz and others): Change the
33415 preprocessor macro that controls conditional compilation from
33416 _ARCH_PWR9 to __POWER9_VECTOR__.
33417 (vec_all_ne): Change parameterization of __altivec_scalar_pred
33418 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
33419 control (instead of _ARCH_PWR9 control) so that template
33420 definition uses power9-specific function.
33421 (vec_any_eq): Likewise.
33422 (vec_all_ne): Change macro definition to use a power9-specific
33423 expansion under #ifdef __POWER9_VECTOR__ control (instead of
33424 _ARCH_PWR9 control).
33425 (vec_any_eq) Likewise.
33426 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
33427 expansion for CMPNEF to remove support for xvcmpnesp instruction.
33428 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
33429 support for xvcmpnedp instruction.
33430 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
33431 macro expansion so that Power9 implementation of vec_all_ne does
33432 not use the AltiVec predicate framework.
33433 (VCMPNEH_P): Likewise.
33434 (VCMPNEW_P): Likewise.
33435 (VCMPNED_P): Likewise.
33436 (VCMPNEFP_P): Likewise.
33437 (VCMPNEDP_P): Likewise.
33438 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
33439 implementation of vec_any_eq to not use AltiVec predicate
33440 framework.
33441 (VCMPAEH_P): Likewise.
33442 (VCMPAEW_P): Likewise.
33443 (VCMPAED_P): Likewise.
33444 (VCMPAEFP_P): Likewise.
33445 (VCMPAEDP_P): Likewise.
33446 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
33447 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
33448 not use the AltiVec predicate framework.
33449 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
33450 of vec_any_eq to not use AltiVec predicate framework.
33451 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
33452 support for predefined __POWER9_VECTOR__ macro to indicate that
33453 Power9 instruction selection is enabled.
33454 (altivec_overloaded_builtins): Remove extraneous
33455 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
33456 function argument types RS6000_BTI_bool_V16QI and
33457 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
33458 entry for overloaded function argument types RS6000_BTI_bool_V4SI
33459 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
33460 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
33461 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
33462 Power9 for implementations of vec_cmpne. Change the signature for
33463 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
33464 (representing vec_all_ne) to remove the previously described first
33465 argument of type RS6000_BTI_INTSI, as this was an artifact of
33466 reliance on the AltiVec predicate framework, which is no longer
33467 used in the implementation of these functions. Add
33468 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
33469 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
33470 since, unlike the AltiVec predicate framework implementation, we
33471 do not share function descriptors between vec_alle and vec_anyeq.
33472 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
33473 set of modes that receive special treatment even when
33474 TARGET_P9_VECTOR is true. The special treatment emits code that
33475 does not depend on Power9 instructions.
33476 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
33477 define_expand to not rely on AltiVec predicate framework.
33478 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
33479 function.
33480 (vector_ne_v2di_p): Change this define_expand to not rely on
33481 AltiVec predicate framework.
33482 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
33483 function.
33484 (vector_ne_<mode>_p): Change this define_expand to not rely on
33485 AltiVec predicate framework.
33486 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
33487 function.
33488 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
33489 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
33490 define_insn pattern.
33491 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
33492 define_insn pattern because the xvcmpne<VSs>. instruction is not
33493 supported.
33494 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
33495 instruction is not supported.
33496
33497 2017-03-01 Jakub Jelinek <jakub@redhat.com>
33498
33499 * config/nvptx/nvptx.c: Include intl.h.
33500
33501 2017-03-01 Martin Jambor <mjambor@suse.cz>
33502
33503 PR lto/78140
33504 * ipa-prop.h (ipa_bits): Removed field known.
33505 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
33506 to pointers. Adjusted their comments to warn about their sharing.
33507 (ipcp_transformation_summary): Change bits to a vector of pointers.
33508 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
33509 (ipa_get_ipa_bits_for_value): Declare.
33510 * tree-vrp.h (value_range): Mark as GTY((for_user)).
33511 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
33512 (ipa_bits_hash_table): Likewise.
33513 (ipa_vr_ggc_hash_traits): Likewise.
33514 (ipa_vr_hash_table): Likewise.
33515 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
33516 being pointers and vr_known being removed.
33517 (ipa_set_jf_unknown): Likewise.
33518 (ipa_get_ipa_bits_for_value): New function.
33519 (ipa_set_jfunc_bits): Likewise.
33520 (ipa_get_value_range): New overloaded functions.
33521 (ipa_set_jfunc_vr): Likewise.
33522 (ipa_compute_jump_functions_for_edge): Use the above functions to
33523 construct bits and vr parts of jump functions.
33524 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
33525 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
33526 exist.
33527 (ipcp_grow_transformations_if_necessary): Also allocate
33528 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
33529 exist.
33530 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
33531 them. Fix too long lines.
33532 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
33533 vr_known being removed.
33534 (ipa_read_jump_function): Use new setter functions to construct bits
33535 and vr parts of jump functions or set them to NULL.
33536 (write_ipcp_transformation_info): Adjust for bits being pointers.
33537 (read_ipcp_transformation_info): Likewise.
33538 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
33539 space.
33540 Include gt-ipa-prop.h.
33541 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
33542 being pointers.
33543 (ipcp_store_bits_results): Likewise.
33544 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
33545 Do not write to existing jump functions but use a temporary instead.
33546
33547 2017-03-01 Jakub Jelinek <jakub@redhat.com>
33548
33549 PR c++/79681
33550 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
33551 attempt to use its first operand as BIT_FIELD_REF base.
33552
33553 2017-03-01 Richard Biener <rguenther@suse.de>
33554
33555 PR middle-end/79721
33556 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
33557 interpolating formula in wrapping arithmetic.
33558 (chrec_apply): Convert chrec_evaluate return value to wanted type.
33559
33560 2017-03-01 Jakub Jelinek <jakub@redhat.com>
33561
33562 PR tree-optimization/79734
33563 * tree-vect-generic.c (expand_vector_condition): Optimize
33564 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
33565 Handle VEC_COND_EXPR where comparison has different inner width from
33566 type's inner width.
33567
33568 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
33569
33570 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
33571 markup, and similar issues. Remove @opindex entries for things
33572 that aren't options. Add missing -mmpy-option entries.
33573
33574 2017-02-28 Jakub Jelinek <jakub@redhat.com>
33575
33576 PR tree-optimization/79737
33577 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
33578 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
33579 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
33580 instead of byte_size. Formatting fix.
33581 (shift_bytes_in_array_right): Formatting fix.
33582
33583 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
33584
33585 PR target/79749
33586 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
33587 condition on optimize for the leaf function test.
33588
33589 2017-02-28 Martin Liska <mliska@suse.cz>
33590
33591 PR lto/79625
33592 * read-rtl-function.c (function_reader::handle_unknown_directive):
33593 Bail out when one uses -flto.
33594
33595 2017-02-28 Martin Liska <mliska@suse.cz>
33596
33597 * common.opt: Replace space with tabular for options of <number>
33598 type.
33599 * config/i386/i386.opt: Show <number> value for
33600 -mlarge-data-threshold.
33601 * opts.c (print_filtered_help): Do not display number in hexadecimal
33602 format.
33603
33604 2017-02-28 Martin Liska <mliska@suse.cz>
33605
33606 * common.opt: Fix --help=option -Q for options which are of
33607 an enum type.
33608
33609 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
33610
33611 * config/i386/i386.c (print_reg): Error out for values
33612 of 8-bit size in invalid integer register.
33613
33614 2017-02-28 Martin Sebor <msebor@redhat.com>
33615
33616 PR tree-optimization/79691
33617 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
33618
33619 2017-02-28 Jakub Jelinek <jakub@redhat.com>
33620
33621 PR target/79729
33622 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
33623 gcc_unreachable with output_operand_lossage.
33624
33625 2017-02-28 Richard Biener <rguenther@suse.de>
33626
33627 PR tree-optimization/79740
33628 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
33629 inserts.
33630 (visit_nary_op): Insert the nary into the hashtable if we
33631 pattern-matched sth.
33632 * tree-ssa-pre.c (eliminate_insert): Robustify.
33633
33634 2017-02-28 Richard Biener <rguenther@suse.de>
33635
33636 PR middle-end/79731
33637 * fold-const.c (decode_field_reference): Reject out-of-bound
33638 accesses.
33639
33640 2017-02-28 Jakub Jelinek <jakub@redhat.com>
33641
33642 * config/i386/i386.c: Include intl.h.
33643 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
33644 instead of just cond ? "..." : "...".
33645 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
33646 * coverage.c (read_counts_file): Likewise.
33647 * omp-offload.c: Include intl.h.
33648 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
33649 of just cond ? "..." : "...".
33650 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
33651 of just cond ? "..." : "...".
33652
33653 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
33654
33655 PR target/79742
33656 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
33657 entry, if present.
33658 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
33659 'tune for' CPU name.
33660 * config/arm/arm-cpu-data.h: Regenerated.
33661
33662 2017-02-28 Richard Biener <rguenther@suse.de>
33663
33664 PR tree-optimization/79732
33665 * tree-inline.c (expand_call_inline): Do not shadow var.
33666
33667 2017-02-28 Richard Biener <rguenther@suse.de>
33668
33669 PR tree-optimization/79723
33670 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
33671 address-space properly.
33672
33673 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
33674
33675 * doc/optinfo.texi (Optimization groups): Fix option used for
33676 OPTGROUP_ALL.
33677 * doc/invoke.texi (-fopt-info): Document "omp".
33678 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
33679 (OPTGROUP_ALL): Add OPTGROUP_OMP.
33680 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
33681 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
33682 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
33683
33684 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
33685 all users.
33686 * dumpfile.c (optgroup_options): Instead of "openmp", associate
33687 OPTGROUP_OMP with "omp".
33688
33689 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
33690
33691 PR target/79544
33692 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
33693 for arithmetic shift of unsigned V2DI.
33694
33695 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
33696
33697 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
33698 arc/linux.h headers.
33699 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
33700 (LINK_SPEC): Likewise.
33701 (ARC_TLS_EXTRA_START_SPEC): Likewise.
33702 (EXTRA_SPECS): Likewise.
33703 (STARTFILE_SPEC): Likewise.
33704 (ENDFILE_SPEC): Likewise.
33705 (LIB_SPEC): Likewise.
33706 (TARGET_SDATA_DEFAULT): Likewise.
33707 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
33708 (MULTILIB_DEFAULTS): Likewise.
33709 (DWARF2_UNWIND_INFO): Likewise.
33710 * config/arc/big.h: New file.
33711 * config/arc/elf.h: Likewise.
33712 * config/arc/linux.h: Likewise.
33713 * config/arc/t-uClibc: Remove.
33714
33715 2017-02-27 Bin Cheng <bin.cheng@arm.com>
33716
33717 PR tree-optimization/77536
33718 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
33719 (tree_transform_and_unroll_loop): Use above function to compute the
33720 estimated niter of unrolled loop and use it when scaling profile.
33721 Also use count info rather than frequency if it's non-zero.
33722 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
33723 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
33724 (vect_transform_loop): Call above function.
33725
33726 2017-02-27 Richard Biener <rguenther@suse.de>
33727
33728 PR tree-optimization/45397
33729 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
33730 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
33731 (visit_nary_op): Add pattern matching for CSEing sign-changed
33732 or truncated operations with wider ones.
33733
33734 2017-02-27 Richard Biener <rguenther@suse.de>
33735
33736 PR tree-optimization/79690
33737 * tree-vect-stmts.c (vectorizable_store): Use vector type
33738 built from the DR with address-space.
33739
33740 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
33741
33742 * doc/invoke.texi (Optimize Options): Refine the description
33743 of asan-use-after-return.
33744
33745 2017-02-25 Alan Modra <amodra@gmail.com>
33746
33747 PR rtl-optimization/79584
33748 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
33749 base, not ad->base_term, the reg within base. Remove assertion
33750 that ad->base == ad->base_term. Replace gen_int_mode using
33751 bogus mode with const0_rtx.
33752
33753 2017-02-25 Jakub Jelinek <jakub@redhat.com>
33754
33755 PR middle-end/79396
33756 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
33757 FMA_EXPR like tcc_binary or tcc_unary.
33758
33759 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
33760
33761 PR debug/77589
33762 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
33763 bitfield.
33764 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
33765 (output_loc_operands): Handle DW_OP_call_ref and
33766 DW_OP_GNU_variable_value.
33767 (struct variable_value_struct): New type.
33768 (struct variable_value_hasher): Likewise.
33769 (variable_value_hash): New variable.
33770 (string_types): Remove.
33771 (copy_loc_descr): New function.
33772 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
33773 (prepend_loc_descr_to_each): New function.
33774 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
33775 instead of add_loc_descr_to_each if the first argument is single
33776 location list and the second has multiple.
33777 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
33778 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
33779 when looking for variable value which doesn't have other location info.
33780 (loc_list_from_tree): Formatting fix.
33781 (gen_array_type_die): Simplify DW_AT_string_length handling.
33782 (adjust_string_types): Remove.
33783 (gen_subprogram_die): Don't call adjust_string_types nor test/set
33784 string_types. Call resolve_variable_values.
33785 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
33786 (resolve_addr_in_expr): Likewise. Add A argument.
33787 (copy_deref_exprloc): Remove deref argument. Adjust for the
33788 original expression being DW_OP_GNU_variable_value with optionally
33789 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
33790 optionally after it.
33791 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
33792 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
33793 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
33794 (variable_value_hasher::hash, variable_value_hasher::equal): New
33795 methods.
33796 (resolve_variable_value_in_expr, resolve_variable_value,
33797 resolve_variable_values, note_variable_value_in_expr,
33798 note_variable_value): New functions.
33799 (dwarf2out_early_finish): Call note_variable_value on all toplevel
33800 DIEs.
33801
33802 2017-02-24 Jakub Jelinek <jakub@redhat.com>
33803
33804 PR c/79677
33805 * opts.h (handle_generated_option): Add GENERATED_P argument.
33806 * opts-common.c (handle_option): Adjust function comment.
33807 (handle_generated_option): Add GENERATED_P argument, pass it to
33808 handle_option.
33809 (control_warning_option): Pass false to handle_generated_option
33810 GENERATED_P.
33811 * opts.c (maybe_default_option): Pass true to handle_generated_option
33812 GENERATED_P.
33813 * optc-gen.awk: Likewise.
33814
33815 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
33816
33817 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
33818 a REG, look at the REG it is a SUBREG of.
33819 (splitter for cmpeqsi_t): Ditto.
33820
33821 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
33822
33823 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
33824 the special USEs with the pattern of the insn, not the insn itself.
33825
33826 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
33827
33828 PR target/79473
33829 * doc/invoke.texi: Document -mload-store-pairs.
33830
33831 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
33832 Sandra Loosemore <sandra@codesourcery.com>
33833
33834 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
33835 argument isn't a CONST_INT.
33836 (nios2_alternate_compare_const): Assert op is a CONST_INT.
33837 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
33838 (nios2_validate_compare): Bypass alternate compare logic if *op2
33839 is not a CONST_INT.
33840 (ldstwm_operation_p): Return false if first_base is not a REG or
33841 if first_offset is not a CONST_INT.
33842
33843 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
33844
33845 * config/cris/cris.md: Use correct operand in a define_peephole2.
33846
33847 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
33848
33849 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
33850
33851 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
33852
33853 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
33854 this_insn if it is an INSN or JUMP_INSN.
33855 (force_offsettable): Look at base, not at addr.
33856 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
33857 on things that aren't necessarily CONST_INTs.
33858
33859 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
33860
33861 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
33862 -mfpmath=sse is the default also for x86-32 targets with SSE2
33863 instruction set when @option{-ffast-math} is enabled
33864
33865 2017-02-24 Jeff Law <law@redhat.com>
33866
33867 PR rtl-optimizatoin/79286
33868 * ira.c (update_equiv_regs): Drop may_trap_p exception to
33869 dominance test.
33870
33871 2017-02-24 Richard Biener <rguenther@suse.de>
33872
33873 PR tree-optimization/79389
33874 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
33875 debug insns.
33876
33877 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
33878
33879 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
33880 function comment to reflect reality.
33881 (loop_exits_before_overflow): Fix typo in function description.
33882
33883 2017-02-24 Richard Biener <rguenther@suse.de>
33884
33885 PR tree-optimization/79389
33886 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
33887 properly that a threading opportunity exists. Detect conditional
33888 copy/constant propagation opportunities.
33889
33890 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
33891
33892 * config/visium/visium.md (type): Add trap.
33893 (b): New mode attribute.
33894 (*btst): Rename into...
33895 (*btst<mode>): ...this and adjust.
33896 (*cbranchsi4_btst_insn): Rename into...
33897 (*cbranch<mode>4_btst_insn): ...this and adjust.
33898 (trap): New define_insn.
33899
33900 2017-02-23 Jakub Jelinek <jakub@redhat.com>
33901
33902 PR tree-optimization/79389
33903 * ifcvt.c (struct noce_if_info): Add rev_cond field.
33904 (noce_reversed_cond_code): New function.
33905 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
33906 reversed_comparison_code. Formatting fix.
33907 (noce_try_store_flag): Test rev_cond != NULL in addition to
33908 reversed_comparison_code.
33909 (noce_try_store_flag_constants): Likewise.
33910 (noce_try_store_flag_mask): Likewise.
33911 (noce_try_addcc): Use rev_cond if non-NULL instead of
33912 reversed_comparison_code.
33913 (noce_try_cmove_arith): Likewise. Formatting fixes.
33914 (noce_try_minmax, noce_try_abs): Clear rev_cond.
33915 (noce_find_if_block): Initialize rev_cond.
33916 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
33917 instead of false as last argument never attempt to reverse it
33918 afterwards.
33919
33920 2017-02-23 Bin Cheng <bin.cheng@arm.com>
33921
33922 PR tree-optimization/79663
33923 * tree-predcom.c (combine_chains): Process refs in reverse order
33924 only for ZERO length chains, and add explaining comment.
33925
33926 2017-02-23 Jeff Law <law@redhat.com>
33927
33928 PR tree-optimization/79578
33929 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
33930 in call to operand_equal_p.
33931
33932 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
33933
33934 PR target/71017
33935 * config/i386/cpuid.h: Fix another undefined behavior.
33936
33937 2017-02-23 Richard Biener <rguenther@suse.de>
33938
33939 PR tree-optimization/79683
33940 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
33941 vector types for data-refs.
33942
33943 2017-02-23 Martin Liska <mliska@suse.cz>
33944
33945 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
33946
33947 2017-02-23 Jakub Jelinek <jakub@redhat.com>
33948
33949 PR middle-end/79665
33950 * internal-fn.c (get_range_pos_neg): Moved to ...
33951 * tree.c (get_range_pos_neg): ... here. No longer static.
33952 * tree.h (get_range_pos_neg): New prototype.
33953 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
33954 are known to be in between 0 and signed maximum inclusive, try to
33955 expand both unsigned and signed divmod and use the cheaper one from
33956 those.
33957
33958 2017-02-22 Jeff Law <law@redhat.com>
33959
33960 PR tree-optimization/79578
33961 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
33962 to compare base operands.
33963
33964 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
33965
33966 PR target/79211
33967 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
33968 gpc_reg_operand instead of fpr_reg_operand.
33969
33970 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
33971
33972 * config/mips/mips.c (mips_return_in_memory): Force FP
33973 vector types to be returned in memory for o32 ABI.
33974
33975 2017-02-22 Jakub Jelinek <jakub@redhat.com>
33976
33977 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
33978 instead of DW_TAG_member for static data member declarations and don't
33979 set no_linkage_name for static inline data members.
33980 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
33981 to DW_TAG_member.
33982
33983 2017-02-22 Martin Liska <mliska@suse.cz>
33984
33985 * doc/invoke.texi: Replace inequality signs with square brackets
33986 for -Wnormalized.
33987
33988 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
33989
33990 PR target/78660
33991 * lra-constraints.c (simplify_operand_subreg): Handle
33992 WORD_REGISTER_OPERATIONS targets.
33993
33994 2017-02-22 Jakub Jelinek <jakub@redhat.com>
33995
33996 PR target/70465
33997 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
33998 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
33999 elimination by swapping fld*.
34000
34001 2017-02-22 Richard Biener <rguenther@suse.de>
34002
34003 PR tree-optimization/79673
34004 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
34005 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
34006 irrelevant address-space qualifiers and avoiding a
34007 ADDR_SPACE_CONVERT_EXPR from fold_convert.
34008
34009 2017-02-22 Richard Biener <rguenther@suse.de>
34010
34011 PR tree-optimization/79666
34012 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
34013 to not symbolically negate if that may introduce undefined
34014 overflow.
34015
34016 2017-02-22 Martin Liska <mliska@suse.cz>
34017
34018 PR lto/79587
34019 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
34020 * data-streamer-out.c (streamer_write_gcov_count_stream):
34021 Likewise.
34022 * value-prof.c (stream_out_histogram_value): Make assert more
34023 precise based on type of counter.
34024
34025 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
34026
34027 PR target/79593
34028 * config/i386/i386.md (standard_x87sse_constant_load splitter):
34029 Use nonimmediate_operand instead of memory_operand for operand 1.
34030 (float-extend standard_x87sse_constant_load splitter): Ditto.
34031
34032 2017-02-21 Jeff Law <law@redhat.com>
34033
34034 PR tree-optimization/79621
34035 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
34036 blocks with edges to themselves.
34037
34038 2017-02-21 Jakub Jelinek <jakub@redhat.com>
34039
34040 PR target/79633
34041 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
34042 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
34043 Use gimple_call_builtin_p.
34044
34045 PR target/79570
34046 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
34047 on temporarily removed DEBUG_INSNs.
34048
34049 PR tree-optimization/79649
34050 * tree-loop-distribution.c (classify_partition): Give up on
34051 non-generic address space loads/stores.
34052
34053 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
34054
34055 * doc/loop.texi (Loop manipulation): Remove nonexistent
34056 tree_ssa_loop_version from the documentation.
34057 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
34058
34059 2017-02-21 Jakub Jelinek <jakub@redhat.com>
34060
34061 PR target/79494
34062 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
34063 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
34064 * config/rs6000/rs6000.c: Include except.h.
34065 (rs6000_expand_split_stack_prologue): Call
34066 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
34067
34068 2017-02-21 Martin Jambor <mjambor@suse.cz>
34069
34070 PR lto/79579
34071 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
34072 have been analyzed.
34073
34074 2017-02-21 Martin Jambor <mjambor@suse.cz>
34075
34076 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
34077 for backward compatibility only.
34078 * doc/invoke.texi (Option Summary): Remove all references to
34079 -fipa-cp-alignment.
34080
34081 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
34082
34083 PR target/78660
34084 Revert:
34085 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
34086
34087 * lra-constraints.c (curr_insn_transform): Handle
34088 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
34089
34090 2017-02-21 Martin Liska <mliska@suse.cz>
34091
34092 * config/i386/i386.opt: Replace -masm-dialect with -masm.
34093
34094 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
34095
34096 PR translation/79638
34097 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
34098
34099 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
34100
34101 PR ada/67205
34102 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
34103 (arm_function_ok_for_sibcall): Return false for an indirect call by
34104 descriptor if all the argument registers are used.
34105 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
34106 alignment of the function.
34107
34108 2017-02-21 Jakub Jelinek <jakub@redhat.com>
34109
34110 PR tree-optimization/61441
34111 * simplify-rtx.c (simplify_const_unary_operation): For
34112 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
34113 the sNaN unmodified.
34114
34115 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
34116
34117 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
34118 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
34119 instead of SYSTEM_HEADER_DIR.
34120
34121 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
34122 Martin Liška <mliska@suse.cz>
34123
34124 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
34125 Fix typos and grammar, use active voice, and clarify.
34126
34127 2017-02-20 Marek Polacek <polacek@redhat.com>
34128
34129 PR middle-end/79537
34130 * gimplify.c (gimplify_expr): Handle unused *&&L;.
34131
34132 PR sanitizer/79558
34133 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
34134
34135 2017-02-20 Jakub Jelinek <jakub@redhat.com>
34136
34137 PR target/79568
34138 * config/i386/i386.c (ix86_expand_builtin): Handle
34139 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
34140 ix86_builtins_isa[fcode].isa as a requirement of those
34141 flags and any other flag in the bitmask.
34142 (ix86_init_mmx_sse_builtins): Use 0 instead of
34143 ~OPTION_MASK_ISA_64BIT as mask.
34144 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
34145 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
34146 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
34147 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
34148
34149 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
34150
34151 PR target/78012
34152 * lra-constraints.c (split_reg): Check requested split mode
34153 is supported by the register.
34154
34155 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
34156
34157 * lra-constraints.c (simplify_operand_subreg): Remove early
34158 return false.
34159
34160 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
34161
34162 PR target/78660
34163 * lra-constraints.c (curr_insn_transform): Tighten condition
34164 for converting SUBREG reloads from OP_OUT to OP_INOUT.
34165
34166 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
34167
34168 PR target/78660
34169 * lra-constraints.c (curr_insn_transform): Handle
34170 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
34171
34172 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
34173
34174 Revert:
34175 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
34176
34177 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
34178
34179 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
34180
34181 PR c++/69523
34182 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
34183 description.
34184
34185 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34186
34187 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
34188 for FMA_EXPR.
34189
34190 2017-02-18 Jakub Jelinek <jakub@redhat.com>
34191
34192 * final.c (last_columnnum, override_columnnum): New variables.
34193 (final_start_function): Set last_columnnum, pass it to begin_prologue
34194 hook and pass 0 to dwarf2out_begin_prologue.
34195 (final_scan_insn): Update override_columnnum. Pass last_columnnum
34196 to source_line debug hook.
34197 (notice_source_line): Compute last_columnnum and for debug_column_info
34198 return true on column changes.
34199 * debug.h (struct gcc_debug_hooks): Add column argument to
34200 source_line and begin_prologue hooks.
34201 (debug_nothing_int_charstar_int_bool): Remove prototype.
34202 (debug_nothing_int_int_charstar,
34203 debug_nothing_int_int_charstar_int_bool): New prototypes.
34204 (dwarf2out_begin_prologue): Add column argument.
34205 * debug.c (do_nothing_debug_hooks): Adjust source_line and
34206 begin_prologue hooks.
34207 (debug_nothing_int_charstar_int_bool): Remove.
34208 (debug_nothing_int_int_charstar,
34209 debug_nothing_int_int_charstar_int_bool): New functions.
34210 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
34211 through to dwarf2out_source_line.
34212 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
34213 (dwarf2out_source_line): Add column argument, emit it if requested.
34214 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
34215 arguments.
34216 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
34217 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
34218 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
34219 through to dwarf2out_begin_prologue.
34220 (vmsdbgout_source_line): Add column argument, pass it through to
34221 dwarf2out_source_line.
34222 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
34223 dbxout_source_line caller.
34224 (dbxout_source_line): Add column argument.
34225
34226 * common.opt (gno-column-info, gcolumn-info): New options.
34227 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
34228 (check_die): Also test for multiple DW_AT_decl_column attributes.
34229 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
34230 DW_AT_decl_column if requested.
34231 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
34232 if requested.
34233 (gen_variable_die): Likewise.
34234 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
34235 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
34236
34237 PR target/79569
34238 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
34239 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
34240 (ix86_handle_option): Handle OPT_m3dnowa.
34241 * doc/invoke.texi (-m3dnowa): Document.
34242 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
34243 -m3dnowa instead of -m3dnow -march=athlon.
34244
34245 PR target/79559
34246 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
34247 instead of gcc_assert for K, r and R code checks. Formatting fixes.
34248
34249 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
34250
34251 PR target/79261
34252 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
34253 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
34254 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
34255 generator for vsx_xxpermdi_<mode>_be.
34256 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
34257 force big-endian semantics.
34258 (vsx_xxpermdi_<mode>_be): New define_expand with same
34259 implementation as previous version of vsx_xxpermdi_<mode>.
34260
34261 2017-02-17 Jakub Jelinek <jakub@redhat.com>
34262
34263 PR tree-optimization/79327
34264 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
34265 variable, its initialization and use.
34266
34267 2017-02-17 Julia Koval <julia.koval@intel.com>
34268
34269 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
34270 (OPTION_MASK_ISA_PKU_UNSET): New.
34271 (ix86_handle_option): Handle -mrdpid.
34272 * config/i386/cpuid.h (bit_RDPID): New.
34273 * config/i386/driver-i386.c (host_detect_local_cpu):
34274 Detect RDPID feature.
34275 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
34276 * config/i386/i386-c.c (ix86_target_macros_internal):
34277 Handle RDPID flag.
34278 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
34279 (ix86_valid_target_attribute_inner_p): Add "rdpid".
34280 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
34281 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
34282 * config/i386/i386.md (define_insn "rdpid"): New.
34283 * config/i386/i386.opt Add -mrdpid.
34284 * config/i386/immintrin.h (_rdpid_u32): New.
34285
34286 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
34287
34288 PR rtl-optimization/79541
34289 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
34290 instead of transforming it into USE.
34291
34292 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
34293
34294 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
34295 If HONOR_SNANS (SFmode) force the input to a register.
34296 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
34297 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
34298 an frsp or similar insn.
34299
34300 2017-02-17 Martin Liska <mliska@suse.cz>
34301
34302 PR rtl-optimization/79577
34303 * params.def (selsched-max-sched-times): Increase minimum to 1.
34304
34305 2017-02-17 Martin Liska <mliska@suse.cz>
34306
34307 PR rtl-optimization/79574
34308 * gcse.c (want_to_gcse_p): Prevent integer overflow.
34309
34310 2017-02-17 Martin Liska <mliska@suse.cz>
34311
34312 PR tree-optimization/79529
34313 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
34314 ssa_defined_default_def_p to handle cases which are implicitly
34315 defined.
34316 * tree-ssa.c (ssa_defined_default_def_p): New function.
34317 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
34318 which are implicitly defined.
34319 * tree-ssa.h (ssa_defined_default_def_p): Declare.
34320
34321 2017-02-17 Richard Biener <rguenther@suse.de>
34322
34323 PR middle-end/79576
34324 * params.def (max-ssa-name-query-depth): Limit to 10.
34325
34326 2017-02-17 Richard Biener <rguenther@suse.de>
34327
34328 PR tree-optimization/79552
34329 * tree-ssa-structalias.c (visit_loadstore): Properly verify
34330 default defs.
34331
34332 2017-02-17 Richard Biener <rguenther@suse.de>
34333
34334 PR bootstrap/79567
34335 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
34336
34337 2017-02-17 Marek Polacek <polacek@redhat.com>
34338
34339 PR middle-end/79536
34340 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
34341 (fold_negate_expr): New wrapper.
34342
34343 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
34344
34345 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
34346 Correct terminology and de-emphasize pre-standard behavior.
34347
34348 2017-02-16 Alan Modra <amodra@gmail.com>
34349
34350 PR rtl-optimization/79286
34351 * ira.c (def_dominates_uses): New function.
34352 (update_equiv_regs): Don't create an equivalence for insns that
34353 may trap where the register def does not dominate the use.
34354
34355 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
34356
34357 PR rtl-optimization/78127
34358 * lra.c (lra): Call lra_eliminate before finish the loop after
34359 lra_constraint.
34360
34361 2017-02-16 Richard Biener <rguenther@suse.de>
34362
34363 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
34364 isl/isl_val.h.
34365 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
34366 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
34367 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
34368 (isl_val_int_from_wi): New function.
34369 (extract_affine_gmp): Rename to ...
34370 (extract_affine_wi): ... this, take a widest_int.
34371 (extract_affine_int): Just wrap extract_affine_wi.
34372 (add_param_constraints): Use isl_val_int_from_wi.
34373 (add_loop_constraints): Likewise, and extract_affine_wi.
34374
34375 2017-02-15 Jeff Law <law@redhat.com>
34376
34377 PR middle-end/79521
34378 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
34379 ira_init_register_move_cost_if_necessary.
34380
34381 2017-02-15 Martin Sebor <msebor@redhat.com>
34382
34383 PR middle-end/32003
34384 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
34385 removed in a prior commit.
34386
34387 2017-02-15 Bin Cheng <bin.cheng@arm.com>
34388
34389 PR tree-optimization/79347
34390 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
34391 counters during peeling.
34392
34393 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
34394
34395 * Makefile.in (site.exp): Remove "set ISLVER".
34396
34397 2017-02-15 Jakub Jelinek <jakub@redhat.com>
34398
34399 PR target/79487
34400 * real.c (real_from_integer): Call real_convert even for decimal.
34401
34402 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
34403
34404 PR target/79421
34405 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
34406
34407 2017-02-14 Andrew Pinski <apinski@cavium.com>
34408
34409 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
34410 cores and change the partno/implementer to be correct.
34411 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
34412 the 'B" as the implementer.
34413 * config/aarch64/aarch64-tune.md: Regenerate.
34414
34415 2017-02-14 Carl Love <cel@us.ibm.com>
34416
34417 * config/rs6000/rs6000.c: Add case statement entry to make the
34418 xvcvuxdsp built-in argument unsigned.
34419 * config/rs6000/vsx.md: Fix the source and return operand types so they
34420 match the instruction definitions from the ISA document. Fix typo
34421 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
34422 statement.
34423
34424 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
34425
34426 PR target/79282
34427 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
34428 member early_clobber_alts.
34429 * lra-lives.c (reg_early_clobber_p): New.
34430 (process_bb_lives): Use it.
34431 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
34432 (debug_operand_data): Initialize early_clobber_alts.
34433 (setup_operand_alternative): Set up early_clobber_alts.
34434 (collect_non_operand_hard_regs): Ditto. Pass early clobber
34435 alternatives to new_insn_reg.
34436 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
34437 it.
34438 (lra_update_insn_regno_info): Pass the new arg.
34439
34440 2017-02-14 Jakub Jelinek <jakub@redhat.com>
34441
34442 PR middle-end/79505
34443 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
34444 (new_oacc_loop_raw): Don't clear already cleared fields.
34445
34446 PR target/79481
34447 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
34448 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
34449 _mm512_prefetch_i64gather_ps): New inline functions and macros.
34450
34451 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
34452
34453 PR target/79495
34454 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
34455
34456 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
34457
34458 PR target/79498
34459 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
34460 the extra instruction to the right place to store 128-bit constant
34461 when needed.
34462
34463 2017-02-14 Martin Sebor <msebor@redhat.com>
34464
34465 PR middle-end/79448
34466 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
34467 warning for strings of unknown length.
34468
34469 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
34470
34471 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
34472
34473 2017-02-14 Jeff Law <law@redhat.com>
34474
34475 PR target/79404
34476 * ira-costs.c (scan_one_insn): Initialize register move costs
34477 for pseudos seen in USE/CLOBBER insns.
34478
34479 PR tree-optimization/79095
34480 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
34481 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
34482 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
34483 if the operands are known to be not equal, then the resulting range
34484 is ~[0,0].
34485 (intersect_ranges): If the new range is ~[0,0] and the old range is
34486 wide, then prefer ~[0,0].
34487 * tree-vrp.c (overflow_comparison_p_1): New function.
34488 (overflow_comparison_p): New function.
34489 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
34490 if NAME is used in an overflow test.
34491 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
34492 overflow check that can be expressed as an equality test, then adjust
34493 ops to be that equality test.
34494
34495 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
34496
34497 * config/s390/s390-builtin-types.def: Remove flags argument.
34498 * config/s390/s390.c (s390_init_builtins): Likewise.
34499
34500 2017-02-14 Martin Liska <mliska@suse.cz>
34501
34502 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
34503 vector. Fix trailing white spaces.
34504
34505 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
34506
34507 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
34508 HFmode.
34509
34510 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34511
34512 PR rtl-optimization/68664
34513 * config/arm/arm.c (arm_sched_can_speculate_insn):
34514 New function. Declare prototype.
34515 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
34516
34517 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34518
34519 PR rtl-optimization/68664
34520 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
34521 New function.
34522 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
34523
34524 2017-02-14 Amit Pawar <amit.pawar@amd.com>
34525
34526 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
34527 max skip bytes for function, loop and jump.
34528
34529 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34530
34531 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
34532 ABS_EXPR for gimple dump.
34533
34534 2017-02-14 Jakub Jelinek <jakub@redhat.com>
34535
34536 PR target/79462
34537 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
34538
34539 PR tree-optimization/79408
34540 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
34541 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
34542 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
34543 also if rhs1 is INTEGER_CST.
34544
34545 2017-02-14 Richard Biener <rguenther@suse.de>
34546
34547 PR middle-end/79432
34548 * tree-into-ssa.c (insert_phi_nodes): When the function can
34549 have abnormal edges rewrite SSA names with broken use-def
34550 dominance out of SSA and register them for PHI insertion.
34551
34552 2017-02-13 Martin Sebor <msebor@redhat.com>
34553
34554 PR middle-end/79496
34555 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
34556 clearing info.nowrite flag when snprintf size argument is a range.
34557
34558 2017-02-13 Jakub Jelinek <jakub@redhat.com>
34559
34560 * cprop.c (cprop_jump): Add missing space in string literal.
34561 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
34562 (get_constraint_for_component_ref): Likewise.
34563 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
34564 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
34565 * lra-constraints.c (process_alt_operands): Likewise.
34566 * ipa-inline.c (inline_small_functions): Likewise.
34567 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
34568 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
34569 * trans-mem.c (diagnose_tm_1_op): Likewise.
34570 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
34571 (grid_parallel_clauses_gridifiable): Likewise.
34572
34573 * config/nvptx/mkoffload.c (process): Add space in between
34574 , and %d.
34575
34576 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
34577 "MOD4_SSE_REGS" and "ALL_REGS".
34578
34579 * spellcheck.c (test_data): Add , in between "foo" and "food".
34580
34581 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
34582
34583 PR target/79449
34584 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
34585 boundary crossing check and subsequent code generation agree.
34586
34587 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34588
34589 * config/aarch64/aarch64.c (has_memory_op): Delete.
34590 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
34591 has_memory_op.
34592
34593 2017-02-13 Jakub Jelinek <jakub@redhat.com>
34594
34595 PR rtl-optimization/79388
34596 PR rtl-optimization/79450
34597 * combine.c (distribute_notes): When removing TEM_INSN for which
34598 corresponding dest has last value recorded, invalidate that last
34599 value.
34600
34601 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34602
34603 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
34604 of explicit '@'. Add missing assembly comment marker on branch costs
34605 printout.
34606
34607 2017-02-13 Nathan Sidwell <nathan@acm.org>
34608
34609 * gengtype-lex.l (<in_struct>): Add '/'.
34610
34611 2017-02-13 Martin Liska <mliska@suse.cz>
34612
34613 PR c/79471
34614 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
34615
34616 2017-02-13 Richard Biener <rguenther@suse.de>
34617
34618 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
34619 Remove.
34620 * configure: Re-generate.
34621 * config.in: Likewise.
34622 * graphite-dependences.c: Simplify as if
34623 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
34624 * graphite-isl-ast-to-gimple.c: Likewise.
34625 * graphite-optimize-isl.c: Likewise.
34626 * graphite-poly.c: Likewise.
34627 * graphite-sese-to-poly.c: Likewise.
34628 * graphite.h: Likewise.
34629 * toplev.c: Include isl/version.h and use isl_version () for
34630 printing the ISL version.
34631 * doc/install.texi: Update ISL requirement.
34632
34633 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
34634
34635 * doc/standards.texi (Standards): Update reference to
34636 Objective-C 2.0.
34637
34638 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
34639
34640 * doc/extend.texi (Named Address Spaces): sourceware.org now
34641 defaults to https.
34642 * doc/install.texi (Binaries): Ditto.
34643 (Specific): Ditto.
34644
34645 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
34646
34647 * doc/cpp.texi: Replace "stringify"/"stringification" with C
34648 standard terminology "stringize"/"stringizing" throughout.
34649 * doc/cppinternals.texi: Likewise.
34650
34651 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
34652
34653 * doc/extend.texi: Fix some spelling mistakes and typos.
34654 * doc/invoke.texi: Likewise.
34655
34656 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
34657
34658 PR ipa/79224
34659 * params.def (inline-min-speedup) Change from 10 to 8.
34660
34661 2017-02-11 Jakub Jelinek <jakub@redhat.com>
34662
34663 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
34664 4.5.
34665
34666 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
34667
34668 PR ipa/79224
34669 * ipa-inline-analysis.c (get_minimal_bb): New function.
34670 (record_modified): Use it.
34671 (remap_edge_change_prob): Handle also ancestor functions.
34672
34673 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
34674
34675 * doc/contrib.texi (Contributors): Remove broken link into
34676 the Mauve CVS repository.
34677
34678 2017-02-11 Jakub Jelinek <jakub@redhat.com>
34679
34680 PR middle-end/79454
34681 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
34682 result computation whenever lhs doesn't have vector mode, not
34683 just when it has BLKmode.
34684
34685 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
34686
34687 * doc/makefile.texi (profiledbootstrap): Refer to the
34688 installation instructions only in textual form.
34689
34690 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
34691
34692 PR target/79295
34693 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
34694
34695 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
34696
34697 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
34698 (Specific): Update mingw-w64 reference.
34699 (Binaries): Ditto.
34700 (Specific): Remove broken link to Renesas RX processor.
34701
34702 2017-02-10 Richard Biener <rguenther@suse.de>
34703
34704 * toplev.c (process_options): Do not mention obsolete graphite
34705 options when printing sorry message about missing graphite support.
34706 Mention -floop-nest-optimize.
34707
34708 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
34709
34710 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
34711 (vtst_p16): Likewise.
34712 (vtstq_p8): Likewise.
34713 (vtstq_p16): Likewise.
34714 (vtst_p64): New.
34715 (vtstq_p64): Likewise.
34716 * config/arm/arm_neon.h (vgetq_lane_p64): New.
34717 (vset_lane_p64): New.
34718 (vsetq_lane_p64): New.
34719
34720 2017-02-10 Jakub Jelinek <jakub@redhat.com>
34721
34722 PR tree-optimization/79411
34723 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
34724 stmt operands are SSA_NAMEs used in abnormal phis.
34725 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
34726 phis.
34727
34728 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
34729
34730 PR ipa/70795
34731 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
34732 flag if needed.
34733
34734 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
34735
34736 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
34737
34738 2017-02-09 Jakub Jelinek <jakub@redhat.com>
34739
34740 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
34741 to avoid warning.
34742
34743 PR c/79413
34744 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
34745 not arbitrary TREE_CONSTANT.
34746
34747 PR c/79431
34748 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
34749 "omp declare target link" attribute unless is_global_var.
34750 * omp-offload.c (find_link_var_op): Likewise.
34751
34752 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
34753 Chung-Lin Tang <cltang@codesourcery.com>
34754
34755 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
34756 OMP_CLAUSE_TILE.
34757 (gimplify_adjust_omp_clauses): Don't delete TILE.
34758 (gimplify_omp_for): Deal with TILE.
34759 * internal-fn.c (expand_GOACC_TILE): New function.
34760 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
34761 (GOACC_TILE): New.
34762 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
34763 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
34764 element fields.
34765 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
34766 avoid DIV for outermost collapse var.
34767 (expand_oacc_for): Insert tile element loop as needed. Adjust.
34768 Remove out of date comments, fix whitespace.
34769 * omp-general.c (omp_extract_for_data): Deal with tiling.
34770 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
34771 adjust OLF_DIM_BASE value.
34772 (struct omp_for_data): Add tiling field.
34773 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
34774 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
34775 for auto loops. Remove default auto determining, moved to
34776 oacc_loop_fixed_partitions.
34777 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
34778 stmts, add e_mask field.
34779 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
34780 (oacc_thread_numbers): Use oacc_dim_call.
34781 (oacc_xform_tile): New.
34782 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
34783 (finish_oacc_loop): Adjust for ifns vector.
34784 (oacc_loop_discover_walk): Append loop abstraction sites to list,
34785 add case for GOACC_TILE fns.
34786 (oacc_loop_xform_loop): Delete.
34787 (oacc_loop_process): Iterate over call list directly, and add
34788 handling for GOACC_TILE fns.
34789 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
34790 dump partitioning.
34791 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
34792 vector partitioning to outer loops. Assign 2 partitions to loops
34793 when available. Add TILE handling.
34794 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
34795 (execite_oacc_device_lower): Process GOACC_TILE fns,
34796 ignore unknown specs.
34797 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
34798 * tree.c (omp_clause_num_ops): Adjust TILE ops.
34799 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
34800
34801 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
34802
34803 * configure.ac (ACX_BUGURL): Update.
34804 * configure: Regenerate.
34805
34806 2017-02-09 Richard Biener <rguenther@suse.de>
34807
34808 PR tree-optimization/69823
34809 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
34810 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
34811
34812 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
34813
34814 * config/arc/arc-c.def: Add __NPS400__ definition.
34815 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
34816 (TARGET_NPS400): Define.
34817
34818 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
34819
34820 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
34821 file.
34822 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
34823 pointer, arch_info.
34824 (arc_cpu_types): Fill the arch_info field with a pointer into the
34825 arc_arch_types table.
34826 (arc_selected_cpu): Declare.
34827 * config/arc/arc.c (arc_selected_cpu): Make global.
34828 (arc_selected_arch): Delete.
34829 (arc_base_cpu): Delete.
34830 (arc_override_options): Remove references to deleted variables,
34831 update access to arch information.
34832 (ARC_OPT): Update access to arch information.
34833 (ARC_OPTX): Likewise.
34834 * config/arc/arc.h (arc_base_cpu): Remove declaration.
34835 (TARGET_ARC600): Update access to arch information.
34836 (TARGET_ARC601): Likewise.
34837 (TARGET_ARC700): Likewise.
34838 (TARGET_EM): Likewise.
34839 (TARGET_HS): Likewise.
34840 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
34841 information.
34842
34843 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
34844
34845 PR target/78604
34846 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
34847 condition/operands for integer GE/LE/GEU/LEU operations.
34848
34849 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
34850
34851 PR translation/79397
34852 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
34853 of AltiVec.
34854
34855 2017-02-08 Martin Jambor <mjambor@suse.cz>
34856
34857 PR ipa/79375
34858 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
34859 whether allocation happened.
34860 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
34861 nothing was allocated.
34862
34863 2017-02-08 Jakub Jelinek <jakub@redhat.com>
34864
34865 PR tree-optimization/79408
34866 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
34867 constant, but SSA_NAME with a known integer range, use the minimum
34868 of that range instead of op1 to determine if modulo can be replaced
34869 with its first operand.
34870
34871 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34872
34873 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
34874
34875 2017-02-08 Richard Biener <rguenther@suse.de>
34876
34877 PR tree-optimization/71824
34878 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
34879 Check all loops contained in the merged region.
34880
34881 2017-02-07 Andrew Pinski <apinski@cavium.com>
34882
34883 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
34884
34885 2017-02-07 Andrew Pinski <apinski@cavium.com>
34886
34887 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
34888 (thunderxt88): Likewise.
34889 (thunderxt81): Disable LSE and change v8.1 to v8.
34890 (thunderxt83): Likewise.
34891
34892 2017-02-07 Jakub Jelinek <jakub@redhat.com>
34893 Richard Biener <rguenther@suse.de>
34894
34895 PR middle-end/79399
34896 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
34897 type from int to size_t.
34898 * ira-costs.c (struct_costs_size): Change type from int to size_t.
34899
34900 2017-02-07 Jakub Jelinek <jakub@redhat.com>
34901
34902 PR rtl-optimization/79386
34903 * cprop.c (bypass_conditional_jumps): Initialize
34904 bypass_last_basic_block already before splitting bbs after
34905 unconditional traps...
34906 (bypass_conditional_jumps): ... rather than here.
34907
34908 PR target/79299
34909 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
34910 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
34911 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
34912 fix -masm=intel patterns.
34913
34914 2017-02-07 Richard Biener <rguenther@suse.de>
34915
34916 PR tree-optimization/79256
34917 PR middle-end/79278
34918 * builtins.c (get_object_alignment_2): Use min_align_of_type
34919 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
34920 and ADJUST_FIELD_ALIGN.
34921
34922 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
34923 type parameter.
34924 * doc/tm.texi: Regenerate.
34925 * stor-layout.c (layout_decl): Adjust.
34926 (update_alignment_for_field): Likewise.
34927 (place_field): Likewise.
34928 (min_align_of_type): Likewise.
34929 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
34930 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
34931 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
34932 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
34933 * config/frv/frv.c (frv_adjust_field_align): Likewise.
34934 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
34935 * config/i386/i386.c (x86_field_alignment): Likewise.
34936 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
34937 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
34938 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
34939 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
34940 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
34941 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
34942 Likewise.
34943
34944 Revert
34945 2017-01-30 Richard Biener <rguenther@suse.de>
34946
34947 PR tree-optimization/79256
34948 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
34949 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
34950 alignment on TYPE.
34951
34952 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
34953
34954 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
34955 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
34956 builtins to SImode and emit a zero-extend, if necessary.
34957
34958 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
34959
34960 * docs/invoke.texi (RISC-V Options): Alphabetize.
34961
34962 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
34963
34964 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
34965 options.
34966
34967 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
34968
34969 * config/riscv/riscv.c: New file.
34970 * common/config/riscv/riscv-common.c: Likewise.
34971 * config.gcc: Likewise.
34972 * config/riscv/constraints.md: Likewise.
34973 * config/riscv/elf.h: Likewise.
34974 * config/riscv/generic.md: Likewise.
34975 * config/riscv/linux.h: Likewise.
34976 * config/riscv/multilib-generator: Likewise.
34977 * config/riscv/peephole.md: Likewise.
34978 * config/riscv/pic.md: Likewise.
34979 * config/riscv/predicates.md: Likewise.
34980 * config/riscv/riscv-builtins.c: Likewise.
34981 * config/riscv/riscv-c.c: Likewise.
34982 * config/riscv/riscv-ftypes.def: Likewise.
34983 * config/riscv/riscv-modes.def: Likewise.
34984 * config/riscv/riscv-opts.h: Likewise.
34985 * config/riscv/riscv-protos.h: Likewise.
34986 * config/riscv/riscv.h: Likewise.
34987 * config/riscv/riscv.md: Likewise.
34988 * config/riscv/riscv.opt: Likewise.
34989 * config/riscv/sync.md: Likewise.
34990 * config/riscv/t-elf-multilib: Likewise.
34991 * config/riscv/t-linux: Likewise.
34992 * config/riscv/t-linux-multilib: Likewise.
34993 * config/riscv/t-riscv: Likewise.
34994 * configure.ac: Likewise.
34995 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
34996 Waterman as RISC-V maintainers.
34997 * doc/install.texi: Add RISC-V entries.
34998 * doc/invoke.texi: Add RISC-V options section.
34999 * doc/md.texi: Add RISC-V constraints section.
35000 * configure: Regenerated.
35001
35002 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
35003
35004 PR target/66144
35005 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
35006 false values to be constant vectors with all 0 or all 1 bits set.
35007 (vcondu<mode><mode>): Likewise.
35008 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
35009 predicate.
35010 (fpmask_comparison_operator): Update comment.
35011 (vecint_comparison_operator): New predicate.
35012 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
35013 vector conditionals when the true and false values are constant
35014 vectors with all 0 bits or all 1 bits set.
35015
35016 2017-02-06 Martin Sebor <msebor@redhat.com>
35017
35018 PR tree-optimization/79376
35019 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
35020
35021 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
35022
35023 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
35024 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
35025 to simplify split condition.
35026
35027 2017-02-06 Jakub Jelinek <jakub@redhat.com>
35028
35029 * omp-expand.c (oxpand_omp_atomic_fetch_op,
35030 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
35031 false.
35032
35033 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
35034
35035 PR rtl-optimization/68664
35036 * target.def (can_speculate_insn): New hook.
35037 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
35038 * doc/tm.texi: Regenerate.
35039 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
35040 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
35041 (rs6000_sched_can_speculate_insn): New function.
35042
35043 2017-02-06 Jakub Jelinek <jakub@redhat.com>
35044
35045 PR tree-optimization/79284
35046 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
35047 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
35048 vectorizable_mask_load_store, vectorizable_operation,
35049 vect_is_simple_cond, get_same_sized_vectype): Use it instead
35050 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
35051 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
35052 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
35053 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
35054 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
35055 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
35056 is_gimple_assign (stmt). Replace another such test with
35057 is_gimple_assign (stmt).
35058
35059 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
35060
35061 PR target/78883
35062 * config/avr/avr.c (rtl-iter.h): Include it.
35063 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
35064 (avr_legitimate_combined_insn): ...and implementation.
35065
35066 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
35067
35068 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
35069 * config/s390/s390.c (s390_const_operand_ok)
35070 (s390_canonicalize_comparison, s390_extract_part)
35071 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
35072 (s390_contiguous_bitmask_p, s390_rtx_costs)
35073 (legitimize_pic_address): Likewise.
35074 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
35075 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
35076 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
35077 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
35078 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
35079
35080 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
35081
35082 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
35083 REGNO($0) == REGNO($1).
35084
35085 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
35086
35087 * config/s390/linux.h(SIZE_TYPE): Add comment.
35088
35089 2017-02-06 Julian Brown <julian@codesourcery.com>
35090 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
35091 Virendra Pathak <virendra.pathak@broadcom.com>
35092
35093 * config/aarch64/aarch64-cores.def: Change the scheduler
35094 to Thunderx2t99.
35095 * config/aarch64/aarch64.md: Include thunderx2t99.md.
35096 * config/aarch64/thunderx2t99.md: New file.
35097
35098 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
35099
35100 * doc/standards.texi (Go Language): Update link to language
35101 standard.
35102
35103 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
35104
35105 * tree-eh.c (lower_resx): Sanitize profile.
35106 (cleanup_empty_eh_move_lp): Likewise.
35107
35108 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
35109
35110 PR tree-ssa/79347
35111 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
35112 ELSE_PROB.
35113 * cfgloopmanip.h (loop_version): Update prototype.
35114 * modulo-sched.c (sms_schedule): Update call of loop_version.
35115 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
35116 * tree-parloops.c (gen_parallel_loop): Likewise.
35117 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
35118 * tree-ssa-loop-split.c (split_loop): Likewise.
35119 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
35120 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
35121
35122 2017-02-05 Martin Liska <mliska@suse.cz>
35123
35124 PR bootstrap/78985
35125 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
35126 variable to NULL.
35127 (print_operand_address): Initialize a struct to zero.
35128
35129 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
35130
35131 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
35132 garbage collector only in textual form.
35133
35134 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
35135
35136 * doc/extend.texi (x86 specific memory model extensions for
35137 transactional memory): Simplify a phrase.
35138
35139 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
35140
35141 PR target/79353
35142 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
35143 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
35144 (atomic_storedi_1): Likewise.
35145
35146 2017-02-04 Jakub Jelinek <jakub@redhat.com>
35147
35148 PR tree-optimization/79338
35149 * tree-parloops.c (gather_scalar_reductions): Don't call
35150 vect_analyze_loop_form for loop->inner before destroying loop's
35151 loop_vinfo.
35152
35153 2017-02-03 Martin Sebor <msebor@redhat.com>
35154
35155 PR tree-optimization/79327
35156 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
35157 when precision has resulted in leading zeros.
35158 (format_integer): Adjust the likely counter to assume an unknown
35159 argument that may be zero is non-zero.
35160
35161 2017-02-03 Jason Merrill <jason@redhat.com>
35162
35163 PR c++/78689
35164 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
35165 avoid copying non-taken branch.
35166
35167 2017-02-03 Jakub Jelinek <jakub@redhat.com>
35168
35169 PR tree-optimization/79340
35170 * tree-vect-loop.c (vectorizable_reduction): Release
35171 vec_defs elements after safe_splicing them into other vectors.
35172 Formatting fixes.
35173
35174 PR tree-optimization/79327
35175 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
35176 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
35177 dirtype.
35178 (format_integer): Use wide_int_to_tree instead of build_int_cst
35179 + to_?hwi. If argmin is NULL, just set argmin and argmax to
35180 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
35181 of shortest and longest sequence.
35182
35183 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
35184
35185 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
35186 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
35187
35188 2017-02-03 Walter Lee <walt@tilera.com>
35189
35190 PR target/78862
35191 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
35192 after initial stackframe link reg save.
35193 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
35194
35195 2017-02-03 Jakub Jelinek <jakub@redhat.com>
35196
35197 PR target/79354
35198 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
35199 wu for stxssp alternative.
35200
35201 2017-02-03 Martin Sebor <msebor@redhat.com>
35202
35203 PR tree-optimization/79352
35204 * gimple-fold.c (get_range_strlen): Add argument.
35205 (get_range_strlen): Change return type to bool.
35206 (get_maxval_strlen): Pass in a dummy argument.
35207 * gimple-fold.h (get_range_strlen): Change return type to bool.
35208 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
35209 * tree.h (array_at_struct_end_p): Add argument.
35210 * tree.c (array_at_struct_end_p): Handle it.
35211
35212 2017-02-03 Martin Liska <mliska@suse.cz>
35213
35214 PR lto/66295
35215 * multiple_target.c (create_dispatcher_calls): Redirect edge
35216 from a caller of a dispatcher.
35217 (expand_target_clones): Make the clones local.
35218 (ipa_target_clone): Do both target clones and resolvers.
35219 (ipa_dispatcher_calls): Remove the pass.
35220 (pass_dispatcher_calls::gate): Likewise.
35221 (make_pass_dispatcher_calls): Likewise.
35222 * passes.def (pass_target_clone): Put as very first IPA early
35223 pass.
35224
35225 2017-02-03 Martin Liska <mliska@suse.cz>
35226
35227 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
35228 in case of a function with ifunc attribute.
35229
35230 2017-02-03 Martin Liska <mliska@suse.cz>
35231
35232 * cgraph.c (cgraph_node::dump): Dump function version info.
35233 * symtab.c (symtab_node::dump_base): Add missing new line.
35234
35235 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
35236
35237 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
35238 (ifcombine_ifandif): Use it.
35239
35240 2017-02-03 Martin Liska <mliska@suse.cz>
35241
35242 * doc/invoke.texi: Document default value for
35243 use-after-scope-direct-emission-threshold.
35244
35245 2017-02-03 Martin Liska <mliska@suse.cz>
35246
35247 PR tree-optimization/79339
35248 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
35249 (format_floating): Likewise.
35250
35251 2017-02-03 Martin Liska <mliska@suse.cz>
35252
35253 PR ipa/79337
35254 * ipa-prop.c (ipa_node_params_t::insert): Remove current
35255 implementation.
35256 (ipa_node_params_t::remove): Likewise.
35257 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
35258 initialization from removed ipa_node_params_t::insert.
35259 (ipa_node_params::~ipa_node_params): Move from removed
35260 ipa_node_params_t::release.
35261 * symbol-summary.h (symbol_summary::m_released): New member.
35262 Do not release a summary twice. Do not allow to call finalizer
35263 for types of a summary that live in GGC memory.
35264
35265 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
35266
35267 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
35268 cmp_branch fusion.
35269
35270 2017-02-02 Martin Sebor <msebor@redhat.com>
35271
35272 PR middle-end/79275
35273 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
35274 (format_string): Tighten up the range of output for non-constant
35275 strings and correct the expected range for wide non-constant strings.
35276
35277 2017-02-02 Martin Sebor <msebor@redhat.com>
35278
35279 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
35280
35281 PR middle-end/32003
35282 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
35283 index.
35284 (-fdump-tree-@var): Add to index and document how to come up
35285 with pass-specific option and dump file names.
35286 (-fdump-passes): Clarify where to look for output.
35287
35288 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
35289
35290 PR middle-end/77445
35291 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
35292 statistics of the analyzed path; allow threading for speed when
35293 any of BBs along the path are optimized for speed.
35294
35295 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
35296
35297 PR middle-end/78468
35298 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
35299 settings of the virtual registers.
35300
35301 Revert again
35302 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
35303
35304 * explow.c (get_dynamic_stack_size): Take known alignment of stack
35305 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
35306 needed.
35307
35308 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
35309
35310 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
35311 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
35312
35313 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
35314
35315 * config/s390/s390.md: Add missing comments with the expanded
35316 mnemonics.
35317 * config/s390/vector.md: Likewise.
35318 * config/s390/vx-builtins.md: Likewise.
35319
35320 2017-02-02 Jakub Jelinek <jakub@redhat.com>
35321
35322 PR target/79197
35323 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
35324 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
35325 conditions on a single line.
35326
35327 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
35328
35329 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
35330 __S390_VX__ to __VX__.
35331
35332 2017-02-01 Andrew Pinski <apinski@cavium.com>
35333
35334 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
35335 stmt_info to record_stmt_cost.
35336 (vect_get_known_peeling_cost): Pass stmt_info if known to
35337 record_stmt_cost.
35338 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
35339 cpu_vector_cost field into
35340 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
35341 field into vec_int_stmt_cost and vec_fp_stmt_cost.
35342 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
35343 splitting of scalar_stmt_cost and vec_stmt_cost.
35344 (thunderx_vector_cost): Likewise.
35345 (cortexa57_vector_cost): LIkewise.
35346 (exynosm1_vector_cost): Likewise.
35347 (xgene1_vector_cost): Likewise.
35348 (thunderx2t99_vector_cost): Improve after the splitting of the two
35349 fields.
35350 (aarch64_builtin_vectorization_cost): Update for the splitting of
35351 scalar_stmt_cost and vec_stmt_cost.
35352
35353 2017-02-01 Torvald Riegel <triegel@redhat.com>
35354 Richard Henderson <rth@redhat.com>
35355
35356 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
35357 conditional on existance of a fast atomic load.
35358 * optabs-query.c (can_atomic_load_p): New function.
35359 * optabs-query.h (can_atomic_load_p): Declare it.
35360 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
35361 no fast atomic load is available for the particular size of access.
35362 (expand_atomic_compare_and_swap): Likewise.
35363 (expand_atomic_load): Likewise.
35364 (expand_atomic_store): Likewise.
35365 (expand_atomic_fetch_op): Likewise.
35366 * testsuite/lib/target-supports.exp
35367 (check_effective_target_sync_int_128): Remove x86 because it provides
35368 no fast atomic load.
35369 (check_effective_target_sync_int_128_runtime): Likewise.
35370
35371 2017-02-01 Richard Biener <rguenther@suse.de>
35372
35373 * graphite.c: Include tree-vectorizer.h for find_loop_location.
35374 (graphite_transform_loops): Provide opt-info for optimized nests.
35375 * tree-parloop.c (parallelize_loops): Provide opt-info for
35376 parallelized loops.
35377
35378 2017-02-01 Richard Biener <rguenther@suse.de>
35379
35380 PR middle-end/79315
35381 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
35382 was not set before.
35383
35384 2017-02-01 Richard Biener <rguenther@suse.de>
35385
35386 PR tree-optimization/71824
35387 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
35388 Verify the loops are valid in the merged SESE region.
35389 (scop_detection::can_represent_loop_1): Check analyzing the
35390 evolution of the number of iterations in the region succeeds.
35391
35392 2017-01-31 Ian Lance Taylor <iant@golang.org>
35393
35394 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
35395 REG_ARGS_SIZE note to 32-bit push insns and call insn.
35396
35397 2017-01-31 David Malcolm <dmalcolm@redhat.com>
35398
35399 PR preprocessor/79210
35400 * input.c (get_substring_ranges_for_loc): Replace line_width
35401 assertion with error-handling.
35402
35403 2017-01-31 Richard Biener <rguenther@suse.de>
35404
35405 PR tree-optimization/77318
35406 * graphite-sese-to-poly.c (extract_affine): Fix assert.
35407 (create_pw_aff_from_tree): Take loop parameter.
35408 (add_condition_to_pbb): Pass loop of the condition to
35409 create_pw_aff_from_tree.
35410
35411 2017-01-31 Jakub Jelinek <jakub@redhat.com>
35412
35413 * config/s390/s390.c (s390_asan_shadow_offset): New function.
35414 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
35415
35416 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
35417
35418 PR target/78597
35419 PR target/79038
35420 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
35421 no longer used.
35422 (convert_int_to_float128): Likewise.
35423 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
35424 (convert_int_to_float128): Likewise.
35425 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
35426 (UNSPEC_IEEE128_CONVERT): Likewise.
35427 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
35428 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
35429 Use local variables for IBM extended format.
35430 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
35431 (fix_trunc<mode>si2_fprs): Likewise.
35432 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
35433 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
35434 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
35435 to know that we can now have integers of all sizes in vector
35436 registers.
35437 (fix<uns>_<mode>di2_hw): Likewise.
35438 (float<uns>_<mode>si2_hw): Likewise.
35439 (fix_<mode>si2_hw): Likewise.
35440 (fixuns_<mode>si2_hw): Likewise.
35441 (float<uns>_<mode>di2_hw): Likewise.
35442 (float_<mode>di2_hw): Likewise.
35443 (float_<mode>si2_hw): Likewise.
35444 (floatuns_<mode>di2_hw): Likewise.
35445 (floatuns_<mode>si2_hw): Likewise.
35446 (xscvqp<su>wz_<mode>): Delete, no longer used.
35447 (xscvqp<su>dz_<mode>): Likewise.
35448 (xscv<su>dqp_<mode>): Likewise.
35449 (ieee128_mfvsrd_64bit): Likewise.
35450 (ieee128_mfvsrd_32bit): Likewise.
35451 (ieee128_mfvsrwz): Likewise.
35452 (ieee128_mtvsrw): Likewise.
35453 (ieee128_mtvsrd_64bit): Likewise.
35454 (ieee128_mtvsrd_32bit): Likewise.
35455
35456 2017-01-31 Martin Liska <mliska@suse.cz>
35457
35458 PR ipa/79285
35459 * ipa-prop.c (ipa_free_all_node_params): Call release method
35460 instead of ~sumbol_summary to not to trigger double times
35461 dtor of hash_map.
35462
35463 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
35464
35465 PR tree-optimization/71691
35466 * bitmap.h (class auto_bitmap): New.
35467 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
35468 is_maybe_undefined instead of ssa_undefined_value_p.
35469
35470 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
35471
35472 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
35473 __S390_ARCH_LEVEL__ to __ARCH__.
35474
35475 2017-01-31 Jakub Jelinek <jakub@redhat.com>
35476
35477 PR tree-optimization/79267
35478 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
35479 if should_remove_lhs_p is true.
35480
35481 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
35482
35483 PR debug/63238
35484 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
35485 (add_alignment_attribute): New.
35486 (base_type_die): Add alignment attribute.
35487 (subrange_type_die): Likewise.
35488 (modified_type_die): Likewise.
35489 (gen_array_type_die): Likewise.
35490 (gen_descr_array_type_die: Likewise.
35491 (gen_enumeration_type_die): Likewise.
35492 (gen_subprogram_die): Likewise.
35493 (gen_variable_die): Likewise.
35494 (gen_field_die): Likewise.
35495 (gen_ptr_to_mbr_type_die): Likewise.
35496 (gen_struct_or_union_type_die): Likewise.
35497 (gen_subroutine_type_die): Likewise.
35498 (gen_typedef_die): Likewise.
35499 (base_type_cmp): Compare alignment attribute.
35500
35501 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
35502
35503 PR target/79170
35504 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
35505 (setb_unsigned) New pattern for setb with CCUNS.
35506 * config/rs6000/rs6000.c (expand_block_compare): Use a different
35507 subfc./subfe sequence to avoid overflow problems. Generate a
35508 shorter sequence with cmpld/setb for power9.
35509 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
35510 for generating subfc. instruction.
35511 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
35512 now uses this instruction.
35513
35514 2017-01-30 Ian Lance Taylor <iant@google.com>
35515
35516 PR debug/79289
35517 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
35518 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
35519
35520 2017-01-30 Martin Sebor <msebor@redhat.com>
35521
35522 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
35523 Move constant to the right of a relational operator.
35524 (get_mpfr_format_length, format_character, format_string): Ditto.
35525 (should_warn_p, maybe_warn): Same.
35526
35527 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
35528
35529 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
35530
35531 PR lto/79061
35532 * asan.c (get_translation_unit_decl): Remove function.
35533 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
35534
35535 2017-01-30 Martin Liska <mliska@suse.cz>
35536
35537 PR gcov-profile/79259
35538 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
35539 -fprofile-generate.
35540
35541 2017-01-30 Martin Liska <mliska@suse.cz>
35542
35543 PR bootstrap/78985
35544 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
35545 Initialize variables with NULL value.
35546
35547 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
35548
35549 PR target/79260
35550 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
35551 tm_p_file.
35552 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
35553
35554 2017-01-30 Richard Biener <rguenther@suse.de>
35555
35556 PR tree-optimization/79276
35557 * tree-vrp.c (process_assert_insertions): Properly adjust common
35558 when removing a duplicate.
35559
35560 2017-01-30 Richard Biener <rguenther@suse.de>
35561
35562 PR tree-optimization/79256
35563 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
35564 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
35565 alignment on TYPE.
35566 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
35567
35568 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
35569
35570 PR target/79240
35571 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
35572 ("*r<noxa>sbg_<mode>_sll_bitmask")
35573 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
35574 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
35575 Use contiguous_bitmask_nowrap_operand.
35576
35577 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
35578
35579 PR target/79268
35580 * config/rs6000/altivec.h (vec_xl): Revise #define.
35581 (vec_xst): Likewise.
35582
35583 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
35584
35585 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
35586
35587 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
35588
35589 PR rtl-optimization/79194
35590 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
35591 traps before call to bypass_conditional_jumps.
35592
35593 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
35594
35595 PR tree-optimization/71374
35596 * lra-constraints.c (check_conflict_input_operands): New.
35597 (match_reload): Use it.
35598
35599 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
35600
35601 PR target/79131
35602 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
35603 account to calculate conflict_set.
35604
35605 2017-01-27 Bin Cheng <bin.cheng@arm.com>
35606
35607 PR rtl-optimization/78559
35608 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
35609 other_insn in combine.
35610
35611 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
35612
35613 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
35614 uint16_type_node for BT_UINT16.
35615
35616 2017-01-27 David Malcolm <dmalcolm@redhat.com>
35617
35618 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
35619 "RTL Tests" to menu.
35620 (GIMPLE Tests): New node.
35621 (RTL Tests): New node.
35622
35623 2017-01-27 Richard Biener <rguenther@suse.de>
35624
35625 PR tree-optimization/79245
35626 * tree-loop-distribution.c (distribute_loop): Apply cost
35627 modeling also to detected patterns.
35628
35629 2017-01-27 Richard Biener <rguenther@suse.de>
35630
35631 PR tree-optimization/71433
35632 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
35633 (compare_assert_loc): New function.
35634 (process_assert_insertions): Sort and optimize assert locations
35635 to remove duplicates and push down identical assertions on
35636 edges to their destination block.
35637
35638 2017-01-27 Richard Biener <rguenther@suse.de>
35639
35640 PR tree-optimization/79244
35641 * tree-vrp.c (remove_range_assertions): Forcefully propagate
35642 out SSA names even if abnormal.
35643
35644 2017-01-27 Jakub Jelinek <jakub@redhat.com>
35645
35646 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
35647 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
35648 instead of MPFR_RNDN.
35649
35650 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
35651
35652 PR target/79239
35653 * arm.c (arm_option_override): Don't call build_target_option_node
35654 until after doing all option overrides.
35655 (arm_valid_target_attribute_tree): Likewise.
35656
35657 2017-01-27 Martin Liska <mliska@suse.cz>
35658
35659 * doc/invoke.texi (-fprofile-arcs): Document profiling support
35660 for {cd}tors and C++ {cd}tors.
35661
35662 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
35663
35664 * config/s390/s390.md ("*setmem_long_and")
35665 ("*setmem_long_and_31z"): Use zero_extend instead of and.
35666
35667 2017-01-26 Martin Sebor <msebor@redhat.com>
35668
35669 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
35670 of precision.
35671
35672 2017-01-26 Martin Sebor <msebor@redhat.com>
35673
35674 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
35675 HAVE_DFmode before using XFmode or DFmode.
35676 (parse_directive): Avoid using the z length modifier to avoid
35677 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
35678
35679 PR middle-end/78703
35680 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
35681 to accept adjustment as an array.
35682 (get_int_range): New function.
35683 (struct directive): Make width and prec arrays.
35684 (directive::set_width, directive::set_precision): Call get_int_range.
35685 (format_integer, format_floating): Handle width and precision ranges.
35686 (format_string, parse_directive): Same.
35687
35688 2017-01-26 Jakub Jelinek <jakub@redhat.com>
35689
35690 PR debug/79129
35691 * dwarf2out.c (generate_skeleton_bottom_up): For children with
35692 comdat_type_p set, just clone them, but keep the children in the
35693 original DIE.
35694
35695 PR debug/78835
35696 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
35697 which have direct callers with -fvar-tracking-assignments enabled
35698 in the current TU.
35699 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
35700 inside of type units.
35701
35702 2017-01-26 Martin Sebor <msebor@redhat.com>
35703
35704 PR middle-end/78703
35705 * gimple-ssa-sprintf.c (struct result_range): Add likely and
35706 unlikely counters.
35707 (struct format_result): Replace number_chars, number_chars_min,
35708 and number_chars_max with a single member of struct result_range.
35709 Remove bounded.
35710 (format_result::operator+=): Adjust.
35711 (struct fmtresult): Remove bounded. Handle likely and unlikely
35712 counters.
35713 (fmtresult::adjust_for_width_or_precision): New function.
35714 (fmtresult:type_max_digits): New function.
35715 (bytes_remaining): Handle likely and unlikely counters.
35716 (min_bytes_remaining): Remove.
35717 (format_percent): Simplify.
35718 (format_integer, format_floating): Set likely and unlikely counters.
35719 (get_string_length, format_character, format_string): Same.
35720 (format_plain, should_warn_p): New function.
35721 (maybe_warn): Call should_warn_p. Update diagnostic messages
35722 and handle those for all directives, including plain strings.
35723 (format_directive): Handle likely and unlikely counters.
35724 Remove unnecessary quoting from diagnostics. Add an informational
35725 note.
35726 (add_bytes): Remove.
35727 (pass_sprintf_length::compute_format_length): Simplify.
35728 (try_substitute_return_value): Handle likely and unlikely counters.
35729
35730 2017-01-26 Carl Love <cel@us.ibm.com>
35731
35732 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
35733 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
35734
35735 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
35736
35737 PR target/79131
35738 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
35739 endianess for subregs into account.
35740 * lra-constraints.c (lra_constraints): Do risky transformations
35741 always on the first iteration.
35742 * lra-lives.c (check_pseudos_live_through_calls): Add arg
35743 last_call_used_reg_set.
35744 (process_bb_lives): Define and use last_call_used_reg_set.
35745 * lra.c (lra): Always continue after lra_constraints on the first
35746 iteration.
35747
35748 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
35749
35750 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
35751 constant.
35752 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
35753
35754 2017-01-26 Jakub Jelinek <jakub@redhat.com>
35755
35756 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
35757 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
35758 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
35759 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
35760 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
35761 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
35762 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
35763 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
35764 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
35765
35766 2017-01-26 Marek Polacek <polacek@redhat.com>
35767
35768 PR c/79199
35769 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
35770 for the third operand.
35771
35772 2017-01-26 Jakub Jelinek <jakub@redhat.com>
35773
35774 PR middle-end/79236
35775 * omp-low.c (struct omp_context): Add simt_stmt field.
35776 (scan_omp_for): Return omp_context *.
35777 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
35778 context to the _simt_ SIMD stmt.
35779 (lower_omp_for): For combined SIMD with sibling _simt_
35780 SIMD, make sure to use the same decls in _looptemp_
35781 clauses as in the sibling.
35782
35783 2017-01-26 David Sherwood <david.sherwood@arm.com>
35784
35785 PR middle-end/79212
35786 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
35787 all contexts.
35788
35789 2017-01-26 Jakub Jelinek <jakub@redhat.com>
35790
35791 PR target/70465
35792 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
35793 emit fld b; fld a; if possible.
35794
35795 * brig-builtins.def: Update copyright years.
35796 * config/arm/arm_acle_builtins.def: Update copyright years.
35797
35798 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
35799
35800 PR target/79179
35801 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
35802 constraint instead of o for the stxsd instruction.
35803
35804 2017-01-25 Carl Love <cel@us.ibm.com>
35805
35806 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
35807 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
35808
35809 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
35810
35811 * doc/invoke.texi (C++ Dialect Options): Fix typo.
35812
35813 2017-01-25 Richard Biener <rguenther@suse.de>
35814
35815 PR tree-optimization/69264
35816 * target.def (vector_alignment_reachable): Improve documentation.
35817 * doc/tm.texi: Regenerate.
35818 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
35819 and add a comment.
35820 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
35821 earlier changes with respect to TYPE_USER_ALIGN.
35822 (vector_alignment_reachable_p): Likewise. Improve dumping.
35823
35824 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35825
35826 PR target/79145
35827 * config/arm/arm.md (xordi3): Force constant operand into a register
35828 for TARGET_IWMMXT.
35829
35830 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35831
35832 * doc/invoke.texi (-fstore-merging): Correct default optimization
35833 levels at which it is enabled.
35834 (-O): Move -fstore-merging from list to...
35835 (-O2): ... Here.
35836
35837 2017-01-25 Richard Biener <rguenther@suse.de>
35838
35839 PR debug/78363
35840 * omp-expand.c: Include debug.h.
35841 (expand_omp_taskreg): Make sure to generate early debug before
35842 outlining anything from a function.
35843 (expand_omp_target): Likewise.
35844 (grid_expand_target_grid_body): Likewise.
35845
35846 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
35847
35848 PR lto/79061
35849 * asan.c (get_translation_unit_decl): New function.
35850 (asan_add_global): Extract modules file name from globals
35851 TRANSLATION_UNIT_DECL name.
35852
35853 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
35854
35855 PR target/77439
35856 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
35857 for long calls with APCS frame and VFP.
35858
35859 2017-01-24 David Malcolm <dmalcolm@redhat.com>
35860
35861 * cfg.c (original_copy_tables_initialized_p): New function.
35862 * cfg.h (original_copy_tables_initialized_p): New decl.
35863 * cfgrtl.c (relink_block_chain): Guard the call to
35864 free_original_copy_tables with a call to
35865 original_copy_tables_initialized_p.
35866 * cgraph.h (symtab_node::native_rtl_p): New decl.
35867 * cgraphunit.c (symtab_node::native_rtl_p): New function.
35868 (symtab_node::needed_p): Don't assert for early assembly output
35869 for __RTL functions.
35870 (cgraph_node::finalize_function): Set "force_output" for __RTL
35871 functions.
35872 (cgraph_node::analyze): Bail out early for __RTL functions.
35873 (analyze_functions): Update assertion to support __RTL functions.
35874 (cgraph_node::expand): Bail out early for __RTL functions.
35875 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
35876 __RTL functions.
35877 * function.h (struct function): Update comment for field
35878 "pass_startwith".
35879 * gimple-expr.c: Include "tree-pass.h".
35880 (gimple_has_body_p): Return false for __RTL functions.
35881 * Makefile.in (OBJS): Add run-rtl-passes.o.
35882 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
35883 accessor.
35884 (gcc::pass_manager::get_clean_slate): New accessor.
35885 * passes.c: Include "insn-addr.h".
35886 (should_skip_pass_p): Add logging. Update logic for running
35887 "expand" to be compatible with both __GIMPLE and __RTL. Guard
35888 property-provider override so it is only done for gimple passes.
35889 Don't skip dfinit.
35890 (skip_pass): New function.
35891 (execute_one_pass): Call skip_pass when skipping passes.
35892 * read-md.c (md_reader::read_char): Support filtering
35893 the input to a subset of line numbers.
35894 (md_reader::md_reader): Initialize fields
35895 m_first_line and m_last_line.
35896 (md_reader::read_file_fragment): New function.
35897 * read-md.h (md_reader::read_file_fragment): New decl.
35898 (md_reader::m_first_line): New field.
35899 (md_reader::m_last_line): New field.
35900 * read-rtl-function.c (function_reader::create_function): Only
35901 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
35902 curr_properties. Set DECL_INITIAL to a dummy block.
35903 (read_rtl_function_body_from_file_range): New function.
35904 * read-rtl-function.h (read_rtl_function_body_from_file_range):
35905 New decl.
35906 * run-rtl-passes.c: New file.
35907 * run-rtl-passes.h: New file.
35908
35909 2017-01-24 Jeff Law <law@redhat.com>
35910
35911 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
35912 buffer size.
35913
35914 2017-01-24 Bin Cheng <bin.cheng@arm.com>
35915
35916 PR tree-optimization/79159
35917 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
35918 (record_nonwrapping_iv): Improve boundary using above function if no
35919 value range information.
35920
35921 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
35922 Martin Jambor <mjambor@suse.cz>
35923
35924 * brig-builtins.def: New file.
35925 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
35926 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
35927 (DEF_HSAIL_SAT_BUILTIN): Likewise.
35928 (DEF_HSAIL_INTR_BUILTIN): Likewise.
35929 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
35930 * builtin-types.def (BT_INT8): New.
35931 (BT_INT16): Likewise.
35932 (BT_UINT8): Likewise.
35933 (BT_UINT16): Likewise.
35934 (BT_FN_ULONG): Likewise.
35935 (BT_FN_UINT_INT): Likewise.
35936 (BT_FN_UINT_ULONG): Likewise.
35937 (BT_FN_UINT_LONG): Likewise.
35938 (BT_FN_UINT_PTR): Likewise.
35939 (BT_FN_ULONG_PTR): Likewise.
35940 (BT_FN_INT8_FLOAT): Likewise.
35941 (BT_FN_INT16_FLOAT): Likewise.
35942 (BT_FN_UINT32_FLOAT): Likewise.
35943 (BT_FN_UINT16_FLOAT): Likewise.
35944 (BT_FN_UINT8_FLOAT): Likewise.
35945 (BT_FN_UINT64_FLOAT): Likewise.
35946 (BT_FN_UINT16_UINT32): Likewise.
35947 (BT_FN_UINT32_UINT16): Likewise.
35948 (BT_FN_UINT16_UINT16_UINT16): Likewise.
35949 (BT_FN_INT_PTR_INT): Likewise.
35950 (BT_FN_UINT_PTR_UINT): Likewise.
35951 (BT_FN_LONG_PTR_LONG): Likewise.
35952 (BT_FN_ULONG_PTR_ULONG): Likewise.
35953 (BT_FN_VOID_UINT64_UINT64): Likewise.
35954 (BT_FN_UINT8_UINT8_UINT8): Likewise.
35955 (BT_FN_INT8_INT8_INT8): Likewise.
35956 (BT_FN_INT16_INT16_INT16): Likewise.
35957 (BT_FN_INT_INT_INT): Likewise.
35958 (BT_FN_UINT_FLOAT_UINT): Likewise.
35959 (BT_FN_FLOAT_UINT_UINT): Likewise.
35960 (BT_FN_ULONG_UINT_UINT): Likewise.
35961 (BT_FN_ULONG_UINT_PTR): Likewise.
35962 (BT_FN_ULONG_ULONG_ULONG): Likewise.
35963 (BT_FN_UINT_UINT_UINT): Likewise.
35964 (BT_FN_VOID_UINT_PTR): Likewise.
35965 (BT_FN_UINT_UINT_PTR: Likewise.
35966 (BT_FN_UINT32_UINT64_PTR): Likewise.
35967 (BT_FN_INT_INT_UINT_UINT): Likewise.
35968 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
35969 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
35970 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
35971 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
35972 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
35973 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
35974 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
35975 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
35976 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
35977 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
35978 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
35979 * doc/frontends.texi: List BRIG FE.
35980 * doc/install.texi (Testing): Add BRIG tesring requirements.
35981 * doc/invoke.texi (Overall Options): Mention BRIG.
35982 * doc/standards.texi (Standards): Doucment BRIG HSA version.
35983
35984 2017-01-24 Richard Biener <rguenther@suse.de>
35985
35986 PR translation/79208
35987 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
35988
35989 2017-01-24 Martin Jambor <mjambor@suse.cz>
35990
35991 PR bootstrap/79198
35992 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
35993 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
35994 and known_contexts.
35995
35996 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
35997
35998 PR middle-end/79123
35999 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
36000 casts from signed to unsigned really don't have a range.
36001
36002 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
36003
36004 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
36005 GMP_RNDx for compatiblity.
36006
36007 2017-01-24 Martin Liska <mliska@suse.cz>
36008
36009 PR bootstrap/79132
36010 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
36011 that would prevent us to call alloca with -1 as argument.
36012
36013 2017-01-24 Jakub Jelinek <jakub@redhat.com>
36014
36015 * dwarf2out.c (output_compilation_unit_header, output_file_names):
36016 Avoid -Wformat-security warning.
36017
36018 2017-01-23 Andrew Pinski <apinski@cavium.com>
36019
36020 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
36021 cost table.
36022
36023 2017-01-23 Martin Sebor <msebor@redhat.com>
36024
36025 PR middle-end/78703
36026 * gimple-ssa-sprintf.c (warn_level): New global.
36027 (format_integer): Use it here and throughout the rest of the file.
36028 Use the same switch to compute sign as base.
36029 (maybe_warn): New function.
36030 (format_directive): Factor out warnings into maybe_warn.
36031 Add debugging output. Use warn_level.
36032 (add_bytes): Use warn_level.
36033 (pass_sprintf_length::compute_format_length): Add debugging output.
36034 (try_substitute_return_value): Same.
36035 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
36036
36037 PR middle-end/78703
36038 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
36039 (struct fmtresult, format_integer, format_floating): Adjust.
36040 (fmtresult::fmtresult): Set max correctly in two argument ctor.
36041 (get_string_length, format_string,format_directive): Same.
36042 (pass_sprintf_length::compute_format_length): Same.
36043 (try_substitute_return_value): Simplify slightly.
36044
36045 PR middle-end/78703
36046 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
36047 (fmtresult::operator+=): Outlined.
36048 (struct fmtresult): Add ctors.
36049 (struct conversion_spec): Rename...
36050 (struct directive): ...to this. Add and remove data members.
36051 (directive::set_width, directive::set_precision): New functions.
36052 (format_percent): Use fmtresult ctor.
36053 (get_width_and_precision): Remove.
36054 (format_integer): Make naming changes. Avoid computing width and
36055 precision.
36056 (format_floating): Same. Adjust indentation.
36057 (format_character, format_none): New functions.
36058 (format_string): Moved character handling to format_character.
36059 (format_directive): Remove arguments, change return type.
36060 (parse_directive): New function.
36061 (pass_sprintf_length::compute_format_length): Move directive
36062 parsing to parse_directive.
36063
36064 2017-01-23 Jakub Jelinek <jakub@redhat.com>
36065
36066 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
36067 (assign_assembler_name_if_needed): ... this.
36068 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
36069 (assign_assembler_name_if_needed): ... this.
36070 (free_lang_data_in_cgraph): Adjust callers.
36071 * cgraphunit.c (cgraph_node::analyze): Likewise.
36072 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
36073 Likewise.
36074
36075 2017-01-23 Richard Biener <rguenther@suse.de>
36076
36077 PR tree-optimization/79088
36078 PR tree-optimization/79188
36079 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
36080 resetting loop bounds after last path deletion. Reset loop
36081 bounds of the target loop, make code match the comments.
36082 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
36083 Make sure loops need no fixups.
36084
36085 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
36086
36087 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
36088 exponent support with double type for first argument.
36089 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
36090 type returned by __builtin_vec_extract_sig,
36091 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
36092 functions from "vector int" to "vector unsigned int" or from
36093 "vector long long int" to "vector unsigned long long int".
36094 Changed type returned by __builtin_vec_extract_exp,
36095 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
36096 functions from "vector int" to "vector unsigned int" or from
36097 "vector long long int" to "vector unsigned long long int".
36098 Changed return type of __builtin_vec_test_data_class,
36099 __builtin_vec_test_data_class_sp, and
36100 __builtin_vec_test_data_class_dp from "vector int" to
36101 "vector bool int" or from "vector long long int" to "vector bool
36102 long long int" and changed second argument type from "unsigned
36103 int" to "int". Added new overloaded function forms "vector float
36104 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
36105 "vector float __builtin_vec_insert_exp_sp (vector float, vector
36106 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
36107 double, vector unsigned long long int)" and "vector double
36108 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
36109 long int)". Changed return type of
36110 __builtin_scalar_test_data_class and
36111 __builtin_scalar_test_data_class_sp and
36112 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
36113 int" and changed second argument from "unsigned int" to "int".
36114 Changed type returned by __builtin_scalar_test_neg,
36115 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
36116 from "int" to "bool int". Added new overloaded function form
36117 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
36118 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
36119 exponent double-precision with floating point first argument.
36120 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
36121 documentation of scalar_test_data_class, scalar_test_neg,
36122 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
36123 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
36124 vec_test_data_class built-in functions to reflect refinements in
36125 their type signatures.
36126
36127 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
36128
36129 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
36130 size of buf.
36131 (aarch64_elf_asm_destructor): Likewise.
36132
36133 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
36134
36135 PR rtl-optimization/78634
36136 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
36137 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
36138 * ifcvt.c (noce_try_cmove): Add missing cost check.
36139
36140 PR rtl-optimization/71724
36141 * combine.c (if_then_else_cond): Look for situations where it is
36142 beneficial to undo the work of one of the recursive calls.
36143
36144 2017-01-23 Bin Cheng <bin.cheng@arm.com>
36145
36146 PR tree-optimization/70754
36147 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
36148 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
36149 combined stmt before it if not NULL.
36150 (combine_chains): Process refs reversely and compute dominance point
36151 for root ref.
36152
36153 2017-01-23 Martin Liska <mliska@suse.cz>
36154
36155 PR tree-optimization/79196
36156 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
36157 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
36158 instead of memcmp.
36159 (strlen_optimize_stmt): Call the renamed function.
36160
36161 2017-01-23 Michael Matz <matz@suse.de>
36162
36163 PR tree-optimization/78384
36164 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
36165
36166 2017-01-23 Richard Biener <rguenther@suse.de>
36167
36168 PR tree-optimization/79186
36169 * tree-vrp.c (register_new_assert_for): Make sure we've seen
36170 both incoming edges before moving an assert.
36171
36172 2017-01-23 Martin Jambor <mjambor@suse.cz>
36173
36174 * ipa-prop.c (load_from_param_1): Removed.
36175 (load_from_unmodified_param): Bits from load_from_param_1 put back
36176 here.
36177 (load_from_param): Removed.
36178 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
36179 with stmt. Reverted back to use of load_from_unmodified_param.
36180
36181 2017-01-23 Martin Jambor <mjambor@suse.cz>
36182
36183 PR ipa/79108
36184 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
36185 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
36186 field a pointer to garbage collected vector, mark lattices and
36187 ipcp_orig_node with GTY((skip)).
36188 (ipa_get_param_count): Adjust to descriptors being a pointer.
36189 (ipa_get_param): Likewise.
36190 (ipa_get_type): Likewise.
36191 (ipa_get_param_move_cost): Likewise.
36192 (ipa_set_param_used): Likewise.
36193 (ipa_get_controlled_uses): Likewise.
36194 (ipa_set_controlled_uses): Likewise.
36195 (ipa_is_param_used): Likewise.
36196 (ipa_node_params_t): Move into garbage collector. New methods insert
36197 and remove.
36198 (ipa_node_params_sum): Annotate wth GTY(()).
36199 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
36200 garbage collected.
36201 (ipa_load_from_parm_agg): Adjust declaration.
36202 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
36203 * ipa-profile.c (ipa_profile): Likewise.
36204 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
36205 (ipa_populate_param_decls): Make descriptors parameter garbage
36206 collected.
36207 (ipa_dump_param): Adjust to descriptors being a pointer.
36208 (ipa_alloc_node_params): Likewise.
36209 (ipa_initialize_node_params): Likewise.
36210 (load_from_param_1): Make descriptors parameter garbage collected.
36211 (load_from_unmodified_param): Likewise.
36212 (load_from_param): Likewise.
36213 (ipa_load_from_parm_agg): Likewise.
36214 (ipa_node_params::~ipa_node_params): Removed.
36215 (ipa_free_all_node_params): Remove call to delete operator.
36216 (ipa_node_params_t::insert): New.
36217 (ipa_node_params_t::remove): Likewise.
36218 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
36219 copy known_csts and known_contexts vectors.
36220 (ipa_read_node_info): Adjust to descriptors being a pointer.
36221 (ipcp_modif_dom_walker): Make m_descriptors field garbage
36222 collected.
36223 (ipcp_transform_function): Make descriptors variable garbage
36224 collected.
36225
36226 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
36227
36228 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
36229 * config/i386/avx512dqintrin.h: Ditto.
36230 * config/i386/avx512fintrin.h: Ditto.
36231 * config/i386/i386.c: Handle new builtins.
36232 * config/i386/i386-builtin.def: Add new builtins.
36233 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
36234 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
36235
36236 2017-01-23 Jakub Jelinek <jakub@redhat.com>
36237 Martin Liska <mliska@suse.cz>
36238
36239 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
36240 * asan.c (asan_expand_poison_ifn): Support stores and use
36241 appropriate ASAN report function.
36242 * internal-fn.c (expand_ASAN_POISON_USE): New function.
36243 * internal-fn.def (ASAN_POISON_USE): Declare.
36244 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
36245 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
36246 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
36247 ASAN_POISON calls w/o LHS.
36248 * tree-ssa.c (execute_update_addresses_taken): Create clobber
36249 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
36250 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
36251 * gimplify.c (asan_poison_variables): Add attribute
36252 use_after_scope_memory to variables that really needs to live
36253 in memory.
36254 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
36255 having the attribute.
36256
36257 2017-01-23 Martin Liska <mliska@suse.cz>
36258
36259 * asan.c (create_asan_shadow_var): New function.
36260 (asan_expand_poison_ifn): Likewise.
36261 * asan.h (asan_expand_poison_ifn): New declaration.
36262 * internal-fn.c (expand_ASAN_POISON): Likewise.
36263 * internal-fn.def (ASAN_POISON): New builtin.
36264 * sanopt.c (pass_sanopt::execute): Expand
36265 asan_expand_poison_ifn.
36266 * tree-inline.c (copy_decl_for_dup_finish): Make function
36267 external.
36268 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
36269 * tree-ssa.c (is_asan_mark_p): New function.
36270 (execute_update_addresses_taken): Rewrite local variables
36271 (identified just by use-after-scope as addressable) into SSA.
36272
36273 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
36274
36275 * doc/install.texi (Specific): opensource.apple.com uses https
36276 now. Remove trailing slash.
36277
36278 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
36279
36280 * README.Portability: Remove note on an Irix compatibility issue.
36281
36282 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
36283
36284 * gcov.c (INCLUDE_ALGORITHM): Define.
36285 (INCLUDE_VECTOR): Define.
36286 No longer include <vector> and <algorithm> directly.
36287
36288 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
36289
36290 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
36291 to https.
36292 * doc/invoke.texi (Code Gen Options): Ditto.
36293
36294 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
36295
36296 PR lto/78407
36297 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
36298
36299 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
36300
36301 rtl-optimization/79125
36302 * cprop.c (local_cprop_pass): Handle cases where we make an
36303 unconditional trap.
36304
36305 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
36306
36307 PR target/61729
36308 PR target/77850
36309 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
36310 read from, for big endian.
36311
36312 2017-01-20 Jiong Wang <jiong.wang@arm.com>
36313
36314 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
36315 register pauth builtins for LP64 only.
36316
36317 2017-01-20 Marek Polacek <polacek@redhat.com>
36318
36319 PR c/79152
36320 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
36321 non-case labels.
36322
36323 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
36324
36325 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
36326 of safelen status.
36327 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
36328 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
36329 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
36330
36331 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36332
36333 PR target/71270
36334 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
36335 in big-endian mode when they are not a single duplicated value.
36336
36337 2017-01-20 Richard Biener <rguenther@suse.de>
36338
36339 * BASE-VER: Bump to 7.0.1.
36340
36341 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
36342
36343 * omp-low.c (omplow_simd_context): New struct. Use it...
36344 (lower_rec_simd_input_clauses): ...here and...
36345 (lower_rec_input_clauses): ...here to hold common data. Adjust all
36346 references to idx, lane, max_vf, is_simt.
36347
36348 2017-01-20 Graham Markall <graham.markall@embecosm.com>
36349
36350 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
36351 mcpu=nps400.
36352
36353 2017-01-20 Martin Jambor <mjambor@suse.cz>
36354
36355 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
36356 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
36357 gt-hsa-common.h.
36358 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
36359 (GTFILES): Rename hsa.c to hsa-common.c.
36360 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
36361 * hsa-dump.c: Likewise.
36362 * hsa-gen.c: Likewise.
36363 * hsa-regalloc.c: Likewise.
36364 * ipa-hsa.c: Likewise.
36365 * omp-expand.c: Likewise.
36366 * omp-low.c: Likewise.
36367 * toplev.c: Likewise.
36368
36369 2017-01-20 Marek Polacek <polacek@redhat.com>
36370
36371 PR c/64279
36372 * doc/invoke.texi: Document -Wduplicated-branches.
36373 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
36374 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
36375 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
36376 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
36377 return 0 only when not OEP_LEXICOGRAPHIC.
36378 (fold_build_cleanup_point_expr): Use the expression
36379 location when building CLEANUP_POINT_EXPR.
36380 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
36381 * tree.c (add_expr): Handle error_mark_node.
36382
36383 2017-01-20 Martin Liska <mliska@suse.cz>
36384
36385 PR lto/69188
36386 * tree-profile.c (init_ic_make_global_vars): Do not call
36387 finalize_decl.
36388 (gimple_init_gcov_profiler): Likewise.
36389
36390 2017-01-20 Martin Liska <mliska@suse.cz>
36391
36392 PR ipa/71190
36393 * cgraph.h (maybe_create_reference): Remove argument and
36394 update comment.
36395 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
36396 argument.
36397 * ipa-cp.c (create_specialized_node): Likewise.
36398 * symtab.c (symtab_node::maybe_create_reference): Handle
36399 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
36400
36401 2017-01-20 Martin Liska <mliska@suse.cz>
36402
36403 * read-rtl-function.c (function_reader::create_function): Use
36404 build_decl instread of build_decl_stat.
36405
36406 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
36407
36408 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
36409 * config/i386/avx512dqintrin.h: Ditto.
36410 * config/i386/avx512fintrin.h: Ditto.
36411 * config/i386/i386-builtin-types.def: Add new types.
36412 * config/i386/i386.c: Handle new types.
36413 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
36414 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
36415 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
36416 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
36417 (__builtin_ia32_kshiftridi): New.
36418 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
36419
36420 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
36421
36422 PR target/78875
36423 PR target/79140
36424 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
36425 define to rs6000_init_stack_protect_guard.
36426 (rs6000_init_stack_protect_guard): New function.
36427
36428 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
36429 Yunqiang Su <yunqiang.su@imgtec.com>
36430
36431 * config.gcc (supported_defaults): Add madd4.
36432 (with_madd4): Add validation.
36433 (all_defaults): Add madd4.
36434 * config/mips/mips.opt (mmadd4): New option.
36435 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
36436 mmadd4.
36437 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
36438 __mips_no_madd4.
36439 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
36440 (ISA_HAS_FUSED_MADD4): Likewise.
36441 * doc/invoke.texi (-mmadd4): Document the new option.
36442 * doc/install.texi (--with-madd4): Document the new option.
36443
36444 2017-01-19 Jiong Wang <jiong.wang@arm.com>
36445
36446 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
36447 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
36448 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
36449 (aarch64_init_pauth_hint_builtins): New.
36450 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
36451 (aarch64_expand_builtin): Expand new builtins.
36452
36453 2017-01-19 Jiong Wang <jiong.wang@arm.com>
36454
36455 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
36456 * combine-stack-adj.c (no_unhandled_cfa): Handle
36457 REG_CFA_TOGGLE_RA_MANGLE.
36458 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
36459 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
36460 info for return address signing.
36461 (aarch64_expand_epilogue): Likewise.
36462
36463 2017-01-19 Jiong Wang <jiong.wang@arm.com>
36464
36465 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
36466 * config/aarch64/aarch64-protos.h
36467 (aarch64_return_address_signing_enabled): New declaration.
36468 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
36469 New function.
36470 (aarch64_expand_prologue): Sign return address before it's pushed onto
36471 stack.
36472 (aarch64_expand_epilogue): Authenticate return address fetched from
36473 stack.
36474 (aarch64_override_options): Sanity check for ILP32 and ISA level.
36475 (aarch64_attributes): New function attributes for "sign-return-address".
36476 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
36477 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
36478 ("*do_return"): Generate combined instructions according to key index.
36479 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
36480 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
36481 iterators.
36482 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
36483 * config/aarch64/aarch64.opt (msign-return-address=): New.
36484 * doc/extend.texi (AArch64 Function Attributes): Documents
36485 "sign-return-address=".
36486 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
36487
36488 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
36489
36490 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
36491 overall option summary.
36492
36493 2017-01-19 Jiong Wang <jiong.wang@arm.com>
36494
36495 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
36496 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
36497 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
36498 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
36499
36500 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
36501
36502 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
36503 -mpower9-minmax by default for -mcpu=power9.
36504 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
36505 128-bit floating point.
36506
36507 2017-01-20 Alan Modra <amodra@gmail.com>
36508
36509 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
36510 optimizing for size.
36511
36512 2017-01-20 Alan Modra <amodra@gmail.com>
36513
36514 PR target/79144
36515 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
36516 for strcmp and strncmp from corresponding builtin decl.
36517
36518 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
36519
36520 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
36521 instead of i386/rtems-64.h.
36522 * config/i386/rtems-64.h: Remove.
36523
36524 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
36525
36526 PR target/78478
36527 Revert:
36528 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
36529
36530 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
36531
36532 2017-01-19 Tamar Christina <tamar.christina@arm.com>
36533
36534 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
36535 Change int to HOST_WIDE_INT.
36536 * config/aarch64/aarch64-protos.h
36537 (aarch64_simd_gen_const_vector_dup): Likewise.
36538 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
36539
36540 2017-01-19 David Malcolm <dmalcolm@redhat.com>
36541
36542 * langhooks-def.h (lhd_type_for_size): New decl.
36543 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
36544 * langhooks.c (lhd_type_for_size): New function, taken from
36545 lto_type_for_size.
36546
36547 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
36548
36549 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
36550 define_bypass for CR latency.
36551 (power9-cracked-alu): Update bypass latency and remove power9-branch.
36552 (power9-alu2): Add define_bypass for CR latency.
36553 (power9-cmp): New.
36554 (power9-mul): Update insn latency.
36555 (power9-mul-compare): Update insn latency, bypass latency and remove
36556 power9-branch.
36557
36558 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
36559
36560 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
36561 Delete.
36562 * config/aarch64/aarch64.md
36563 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
36564 aarch64_nopcrelative_literal_loads.
36565 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
36566
36567 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
36568
36569 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
36570 TARGET_LOONGSON_3A.
36571 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
36572
36573 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
36574
36575 PR target/78176
36576 * config.gcc (supported_defaults): Add lxc1-sxc1.
36577 (with_lxc1_sxc1): Add validation.
36578 (all_defaults): Add lxc1-sxc1.
36579 * config/mips/mips.opt (mlxc1-sxc1): New option.
36580 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
36581 mlxc1-sxc1.
36582 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
36583 __mips_no_lxc1_sxc1.
36584 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
36585 * doc/invoke.texi (-mlxc1-sxc1): Document the new option.
36586 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
36587
36588 2017-01-19 Richard Biener <rguenther@suse.de>
36589
36590 PR tree-optimization/72488
36591 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
36592 sure to restore SSA info.
36593 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
36594
36595 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
36596
36597 PR rtl-optimization/79121
36598 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
36599 of the inner type when shifting an extended value.
36600
36601 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
36602
36603 PR lto/78407
36604 * symtab.c (symtab_node::equal_address_to): Fix comparing of
36605 interposable aliases.
36606
36607 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
36608
36609 PR target/78516
36610 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
36611 Use the evmergelohi instruction.
36612 (mov_si<mode>_e500_subreg4_2_le): Likewise.
36613 (mov_sitf_e500_subreg8_2_be): Likewise.
36614 (mov_sitf_e500_subreg12_2_le): Likewise.
36615 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
36616 (mov_si<mode>_e500_subreg4_2_be): Likewise.
36617 (mov_sitf_e500_subreg8_2_le): Likewise.
36618 (mov_sitf_e500_subreg12_2_be): Likewise.
36619
36620 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36621
36622 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
36623 attribute from vecsimple to vecperm.
36624 (altivec_vbpermq2): Likewise.
36625
36626 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36627
36628 PR target/79040
36629 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
36630
36631 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
36632 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
36633 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
36634 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
36635 case where N arg is SIZE_MAX.
36636 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
36637 (cmpstrsi): Add pattern.
36638
36639 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
36640
36641 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
36642 __builtin_vec_revb builtins.
36643 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
36644 built-in functions to support generation of the ISA 3.0 XXBR<x>
36645 vector byte reverse instructions.
36646 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
36647 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
36648 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
36649 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
36650 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
36651 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
36652 (P9V_BUILTIN_VEC_REVB): Likewise.
36653 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
36654 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
36655 (p9_xxbrq_v16qi): Likewise.
36656 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
36657 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
36658 (p9_xxbrh_v8hi): Likewise.
36659 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
36660 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
36661 vec_revb built-in functions.
36662
36663 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
36664
36665 PR rtl-optimization/78952
36666 * config/i386/i386.md (any_extract): New code iterator.
36667 (*insvqi_2): Use any_extract for source operand.
36668 (*insvqi_3): Use any_shiftrt for source operand.
36669
36670 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
36671
36672 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
36673 New function.
36674 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
36675
36676 2017-01-18 Matthias Klose <doko@ubuntu.com>
36677
36678 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
36679
36680 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36681
36682 * config/rs6000/altivec.h (vec_bperm): Change #define.
36683 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
36684 (altivec_vbpermq2): New define_insn.
36685 (altivec_vbpermd): Likewise.
36686 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
36687 function interface.
36688 (VBPERMD): Likewise.
36689 (VBPERM): New polymorphic function interface.
36690 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
36691 Add entries for P9V_BUILTIN_VEC_VBPERM.
36692 * doc/extend.texi: Add interfaces for vec_bperm.
36693
36694 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
36695
36696 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
36697 first letter of error messages.
36698 (s390_resolve_overloaded_builtin): Likewise.
36699 * config/s390/s390.c (s390_expand_builtin): Likewise.
36700 (s390_invalid_arg_for_unprototyped_fn): Likewise.
36701 (s390_valid_target_attribute_inner_p): Likewise.
36702 * config/s390/s390.md ("tabort"): Likewise.
36703
36704 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
36705
36706 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
36707 (ISA_AVOID_DIV_HILO): New macro.
36708 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
36709 (ISA_HAS_DDIV): Likewise.
36710
36711 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
36712
36713 * doc/invoke.texi (fabi-version): Correct number of occurrences.
36714
36715 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
36716
36717 * doc/invoke.texi (fabi-version): Spelling fix.
36718
36719 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
36720
36721 PR c++/70182
36722 * doc/invoke.texi (fabi-version): Mention mangling fix for
36723 operator names.
36724
36725 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
36726
36727 PR c++/77489
36728 * doc/invoke.texi (fabi-version): Document discriminator mangling.
36729
36730 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
36731
36732 PR target/78875
36733 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
36734 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
36735 the new options.
36736 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
36737 flexible settings.
36738 (stack_protect_test): Ditto.
36739 * config/rs6000/rs6000.opt (mstack-protector-guard=,
36740 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
36741 options.
36742 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
36743 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
36744 -mstack-protector-guard-offset=.
36745 (RS/6000 and PowerPC Options): Ditto.
36746
36747 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
36748
36749 * config/i386/i386.h (MASK_CLASS_P): New define.
36750 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
36751 there are no registers from different register sets also when
36752 mask registers are used. Update function comment.
36753 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
36754 to (*k/*r) and (*k/*km) alternatives.
36755
36756 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
36757
36758 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
36759 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
36760 (EH_RETURN_HANDLER_RTX): New define.
36761 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
36762 Force frame pointer in EH return functions.
36763 (aarch64_expand_epilogue): Add barrier for eh_return.
36764 (aarch64_final_eh_return_addr): Remove.
36765 (aarch64_eh_return_handler_rtx): New function.
36766 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
36767 Remove.
36768 (aarch64_eh_return_handler_rtx): New prototype.
36769
36770 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
36771
36772 * config/rs6000/altivec.h (vec_rlmi): New #define.
36773 (vec_vrlnm): Likewise.
36774 (vec_rlnm): Likewise.
36775 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
36776 (UNSPEC_VRLNM): Likewise.
36777 (VIlong): New mode iterator.
36778 (altivec_vrl<VI_char>mi): New define_insn.
36779 (altivec_vrl<VI_char>nm): Likewise.
36780 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
36781 function entry.
36782 (VRLDNM): Likewise.
36783 (RLNM): New polymorphic function entry.
36784 (VRLWMI): New monomorphic function entry.
36785 (VRLDMI): Likewise.
36786 (RLMI): New polymorphic function entry.
36787 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
36788 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
36789 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
36790 vec_vrlnm.
36791
36792 2017-01-17 Jakub Jelinek <jakub@redhat.com>
36793
36794 PR debug/78839
36795 * dwarf2out.c (field_byte_offset): Restore the
36796 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
36797 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
36798 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
36799 of build2 + fold.
36800
36801 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
36802
36803 PR ada/67205
36804 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
36805
36806 2017-01-17 Jakub Jelinek <jakub@redhat.com>
36807
36808 PR debug/71669
36809 * dwarf2out.c (add_data_member_location_attribute): For constant
36810 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
36811 instead of DW_AT_data_member_location, DW_AT_bit_offset and
36812 DW_AT_byte_size attributes.
36813
36814 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
36815
36816 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
36817 after forcing to constant memory when the code model is medium.
36818
36819 2017-01-17 Julia Koval <julia.koval@intel.com>
36820
36821 PR target/76731
36822 * config/i386/avx512fintrin.h
36823 (_mm512_i32gather_ps): Change __addr type to void const*.
36824 (_mm512_mask_i32gather_ps): Ditto.
36825 (_mm512_i32gather_pd): Ditto.
36826 (_mm512_mask_i32gather_pd): Ditto.
36827 (_mm512_i64gather_ps): Ditto.
36828 (_mm512_mask_i64gather_ps): Ditto.
36829 (_mm512_i64gather_pd): Ditto.
36830 (_mm512_mask_i64gather_pd): Ditto.
36831 (_mm512_i32gather_epi32): Ditto.
36832 (_mm512_mask_i32gather_epi32): Ditto.
36833 (_mm512_i32gather_epi64): Ditto.
36834 (_mm512_mask_i32gather_epi64): Ditto.
36835 (_mm512_i64gather_epi32): Ditto.
36836 (_mm512_mask_i64gather_epi32): Ditto.
36837 (_mm512_i64gather_epi64): Ditto.
36838 (_mm512_mask_i64gather_epi64): Ditto.
36839 (_mm512_i32scatter_ps): Change __addr type to void*.
36840 (_mm512_mask_i32scatter_ps): Ditto.
36841 (_mm512_i32scatter_pd): Ditto.
36842 (_mm512_mask_i32scatter_pd): Ditto.
36843 (_mm512_i64scatter_ps): Ditto.
36844 (_mm512_mask_i64scatter_ps): Ditto.
36845 (_mm512_i64scatter_pd): Ditto.
36846 (_mm512_mask_i64scatter_pd): Ditto.
36847 (_mm512_i32scatter_epi32): Ditto.
36848 (_mm512_mask_i32scatter_epi32): Ditto.
36849 (_mm512_i32scatter_epi64): Ditto.
36850 (_mm512_mask_i32scatter_epi64): Ditto.
36851 (_mm512_i64scatter_epi32): Ditto.
36852 (_mm512_mask_i64scatter_epi32): Ditto.
36853 (_mm512_i64scatter_epi64): Ditto.
36854 (_mm512_mask_i64scatter_epi64): Ditto.
36855 * config/i386/avx512pfintrin.h
36856 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
36857 (_mm512_mask_prefetch_i32gather_ps): Ditto.
36858 (_mm512_mask_prefetch_i64gather_pd): Ditto.
36859 (_mm512_mask_prefetch_i64gather_ps): Ditto.
36860 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
36861 (_mm512_prefetch_i32scatter_ps): Ditto.
36862 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
36863 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
36864 (_mm512_prefetch_i64scatter_pd): Ditto.
36865 (_mm512_prefetch_i64scatter_ps): Ditto.
36866 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
36867 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
36868 * config/i386/avx512vlintrin.h
36869 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
36870 (_mm_mmask_i32gather_ps): Ditto.
36871 (_mm256_mmask_i32gather_pd): Ditto.
36872 (_mm_mmask_i32gather_pd): Ditto.
36873 (_mm256_mmask_i64gather_ps): Ditto.
36874 (_mm_mmask_i64gather_ps): Ditto.
36875 (_mm256_mmask_i64gather_pd): Ditto.
36876 (_mm_mmask_i64gather_pd): Ditto.
36877 (_mm256_mmask_i32gather_epi32): Ditto.
36878 (_mm_mmask_i32gather_epi32): Ditto.
36879 (_mm256_mmask_i32gather_epi64): Ditto.
36880 (_mm_mmask_i32gather_epi64): Ditto.
36881 (_mm256_mmask_i64gather_epi32): Ditto.
36882 (_mm_mmask_i64gather_epi32): Ditto.
36883 (_mm256_mmask_i64gather_epi64): Ditto.
36884 (_mm_mmask_i64gather_epi64): Ditto.
36885 (_mm256_i32scatter_ps): Change __addr type to void*.
36886 (_mm256_mask_i32scatter_ps): Ditto.
36887 (_mm_i32scatter_ps): Ditto.
36888 (_mm_mask_i32scatter_ps): Ditto.
36889 (_mm256_i32scatter_pd): Ditto.
36890 (_mm256_mask_i32scatter_pd): Ditto.
36891 (_mm_i32scatter_pd): Ditto.
36892 (_mm_mask_i32scatter_pd): Ditto.
36893 (_mm256_i64scatter_ps): Ditto.
36894 (_mm256_mask_i64scatter_ps): Ditto.
36895 (_mm_i64scatter_ps): Ditto.
36896 (_mm_mask_i64scatter_ps): Ditto.
36897 (_mm256_i64scatter_pd): Ditto.
36898 (_mm256_mask_i64scatter_pd): Ditto.
36899 (_mm_i64scatter_pd): Ditto.
36900 (_mm_mask_i64scatter_pd): Ditto.
36901 (_mm256_i32scatter_epi32): Ditto.
36902 (_mm256_mask_i32scatter_epi32): Ditto.
36903 (_mm_i32scatter_epi32): Ditto.
36904 (_mm_mask_i32scatter_epi32): Ditto.
36905 (_mm256_i32scatter_epi64): Ditto.
36906 (_mm256_mask_i32scatter_epi64): Ditto.
36907 (_mm_i32scatter_epi64): Ditto.
36908 (_mm_mask_i32scatter_epi64): Ditto.
36909 (_mm256_i64scatter_epi32): Ditto.
36910 (_mm256_mask_i64scatter_epi32): Ditto.
36911 (_mm_i64scatter_epi32): Ditto.
36912 (_mm_mask_i64scatter_epi32): Ditto.
36913 (_mm256_i64scatter_epi64): Ditto.
36914 (_mm256_mask_i64scatter_epi64): Ditto.
36915 (_mm_i64scatter_epi64): Ditto.
36916 (_mm_mask_i64scatter_epi64): Ditto.
36917 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
36918 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
36919 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
36920 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
36921 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
36922 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
36923 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
36924 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
36925 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
36926 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
36927 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
36928 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
36929 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
36930 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
36931 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
36932 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
36933 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
36934 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
36935 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
36936 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
36937 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
36938 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
36939 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
36940 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
36941 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
36942 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
36943 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
36944 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
36945 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
36946 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
36947 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
36948 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
36949 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
36950 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
36951 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
36952 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
36953 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
36954 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
36955 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
36956 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
36957 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
36958 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
36959 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
36960 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
36961 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
36962 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
36963 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
36964 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
36965 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
36966 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
36967 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
36968 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
36969 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
36970 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
36971 definitions accordingly.
36972
36973 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
36974 Kuan-Lin Chen <kuanlinchentw@gmail.com>
36975
36976 PR target/79079
36977 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
36978 gen_lowpart.
36979
36980 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
36981
36982 PR target/79058
36983 * ira-conflicts.c (ira_build_conflicts): Update total conflict
36984 hard regs for inner regno.
36985
36986 2017-01-17 Martin Liska <mliska@suse.cz>
36987
36988 PR ipa/71207
36989 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
36990 assumption and add comment.
36991
36992 2017-01-17 Nathan Sidwell <nathan@acm.org>
36993
36994 * ipa-visibility.c (localize_node): New function, broken out of ...
36995 (function_and_variable_visibility): ... here. Call it.
36996
36997 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
36998
36999 PR middle-end/77445
37000 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
37001 correctly set frequency of oudgoing edge.
37002 (duplicate_thread_path): Fix profile updating.
37003
37004 2017-01-17 Jakub Jelinek <jakub@redhat.com>
37005
37006 PR other/79046
37007 * configure.ac: Add GCC_BASE_VER.
37008 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
37009 version from BASE-VER file.
37010 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
37011 (gcc.o): Depend on $(BASEVER).
37012 * common.opt (dumpfullversion): New option.
37013 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
37014 * doc/invoke.texi: Document -dumpfullversion.
37015 * doc/install.texi: Document --with-gcc-major-version-only.
37016 * configure: Regenerated.
37017
37018 2017-01-17 Richard Biener <rguenther@suse.de>
37019
37020 PR tree-optimization/71433
37021 * tree-vrp.c (register_new_assert_for): Merge same asserts
37022 on all incoming edges.
37023 (process_assert_insertions_for): Handle insertions at the
37024 beginning of BBs.
37025
37026 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
37027
37028 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
37029 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
37030
37031 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
37032
37033 PR target/78633
37034 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
37035 RTL sharing.
37036
37037 2017-01-17 Alan Modra <amodra@gmail.com>
37038
37039 PR target/79066
37040 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
37041 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
37042 symbolic stack limit when pic.
37043
37044 2017-01-16 Martin Sebor <msebor@redhat.com>
37045
37046 PR tree-optimization/78608
37047 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
37048
37049 2017-01-16 Jeff Law <law@redhat.com>
37050
37051 Revert:
37052 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
37053 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
37054 for several include directories that may be relative to sysroot.
37055 * config/i386/x-mingw32 (gplus_includedir): Define.
37056 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
37057 (native_system_includedir): Likewise.
37058 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
37059 override if TARGET_SYSTEM_ROOT is defined.
37060 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
37061
37062 PR tree-optimization/79090
37063 PR tree-optimization/33562
37064 PR tree-optimization/61912
37065 PR tree-optimization/77485
37066 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
37067 and computed trims into the dump file.
37068
37069 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
37070
37071 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
37072
37073 2017-01-16 Jakub Jelinek <jakub@redhat.com>
37074
37075 PR c/79089
37076 * gimplify.c (gimplify_init_constructor): If want_value and
37077 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
37078 fix.
37079
37080 PR target/79080
37081 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
37082 sequence. Formatting fixes.
37083 (doloop_optimize): Formatting fixes.
37084
37085 PR driver/49726
37086 * gcc.c (debug_level_greater_than_spec_func): New function.
37087 (static_spec_functions): Add debug-level-gt spec function.
37088 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
37089 !g0.
37090 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
37091 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
37092 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
37093 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
37094 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
37095 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
37096
37097 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
37098
37099 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
37100 QImode fixups to general and mask registers only.
37101
37102 2017-01-16 Carl Love <cel@us.ibm.com>
37103
37104 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
37105 for built-in functions
37106 vector signed char vec_nabs (vector signed char)
37107 vector signed short vec_nabs (vector signed short)
37108 vector signed int vec_nabs (vector signed int)
37109 vector signed long long vec_nabs (vector signed long long)
37110 vector float vec_nabs (vector float)
37111 vector double vec_nabs (vector double)
37112 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
37113 and NABS overload.
37114 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
37115 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
37116 * doc/extend.texi: Update the documentation file for the new built-in
37117 functions.
37118
37119 2017-01-16 Martin Sebor <msebor@redhat.com>
37120
37121 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
37122 message.
37123
37124 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37125
37126 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
37127 UNSPEC_VSX__XXSPLTD to require special splat handling.
37128
37129 2017-01-16 David Malcolm <dmalcolm@redhat.com>
37130
37131 PR bootstrap/78616
37132 * system.h: Poison strndup.
37133
37134 2017-01-16 Alan Modra <amodra@gmail.com>
37135
37136 PR target/79098
37137 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
37138 use a switch.
37139
37140 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
37141
37142 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
37143
37144 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
37145
37146 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
37147 call recog here. Assert that INSN_CODE (insn) is non-negative.
37148
37149 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
37150
37151 PR target/72749
37152 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
37153 fallthrough.
37154 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
37155 in the currently scheduled RTL fragment.
37156
37157 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
37158
37159 PR rtl-optimization/78751
37160 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
37161 give up.
37162
37163 2017-01-14 Jeff Law <law@redhat.com>
37164
37165 PR tree-optimization/79090
37166 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
37167 variable length stores.
37168 (compute_trims): Delete dead assignment to *trim_tail.
37169 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
37170 zero length.
37171
37172 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
37173
37174 PR rtl-optimization/78626
37175 PR rtl-optimization/78727
37176 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
37177 of a block, and split such blocks after everything else is finished.
37178
37179 2017-01-14 Alan Modra <amodra@gmail.com>
37180
37181 PR target/72749
37182 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
37183 target legitimate_combined_insn.
37184 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
37185 (rs6000_legitimate_combined_insn): New function.
37186 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
37187 all uses.
37188 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
37189 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
37190 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
37191
37192 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
37193
37194 * doc/frontends.texi (G++ and GCC): Remove references to Java.
37195
37196 2017-01-13 Jeff Law <law@redhat.com>
37197
37198 PR tree-optimization/33562
37199 PR tree-optimization/61912
37200 PR tree-optimization/77485
37201 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
37202 a statement.
37203 (delete_dead_assignment): Likewise.
37204 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
37205 statement to delete_dead_call and delete_dead_assignment.
37206
37207 2017-01-13 David Malcolm <dmalcolm@redhat.com>
37208
37209 PR c/78304
37210 * substring-locations.c (format_warning_va): Strengthen case 1 so
37211 that both endpoints of the substring must be within the format
37212 range for just the substring to be printed.
37213
37214 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
37215
37216 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
37217 * config/i386/i386.c (ix86_target_string): Add missing options
37218 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
37219 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
37220 flags_other and ix86_target_other to flags2_other. Display unknown
37221 isa2 options.
37222 (ix86_valid_target_attribute_inner_p): Add missing options and
37223 reorder options by implied ISAs, as in ix86_target_string.
37224
37225 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
37226
37227 * hash-table.h (hash_table::too_empty_p): New function.
37228 (hash_table::expand): Use it.
37229 (hash_table::traverse): Likewise.
37230 (hash_table::empty_slot): Use sizeof (value_type) instead of
37231 sizeof (PTR) to convert bytes to elements. Shrink the table
37232 if the current size is excessive for the current number of
37233 elements.
37234
37235 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
37236
37237 * ira-costs.c (record_reg_classes): Break from the inner loop
37238 early once alt_fail is known to be true. Update outer loop
37239 handling accordingly.
37240
37241 2017-01-13 Jeff Law <law@redhat.com>
37242
37243 * tree-ssa-dse.c (decrement_count): New function.
37244 (increment_start_addr, maybe_trim_memstar_call): Likewise.
37245 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
37246 when we know the partially dead statement is a mem* function.
37247
37248 PR tree-optimization/61912
37249 PR tree-optimization/77485
37250 * tree-ssa-dse.c: Include expr.h.
37251 (maybe_trim_constructor_store): New function.
37252 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
37253
37254 PR tree-optimization/33562
37255 PR tree-optimization/61912
37256 PR tree-optimization/77485
37257 * doc/invoke.texi: Document new dse-max-object-size param.
37258 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
37259 * tree-ssa-dse.c: Include params.h.
37260 (dse_store_status): New enum.
37261 (initialize_ao_ref_for_dse): New, partially extracted from
37262 dse_optimize_stmt.
37263 (valid_ao_ref_for_dse, normalize_ref): New.
37264 (setup_live_bytes_from_ref, compute_trims): Likewise.
37265 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
37266 (maybe_trim_partially_dead_store): Likewise.
37267 (maybe_trim_complex_store): Likewise.
37268 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
37269 Track what bytes live from the original store. Return tri-state
37270 for dead, partially dead or live.
37271 (dse_dom_walker): Add constructor, destructor and new private members.
37272 (delete_dead_call, delete_dead_assignment): New extracted from
37273 dse_optimize_stmt.
37274 (dse_optimize_stmt): Make a member of dse_dom_walker.
37275 Use initialize_ao_ref_for_dse.
37276
37277 PR tree-optimization/33562
37278 PR tree-optimization/61912
37279 PR tree-optimization/77485
37280 * sbitmap.h (bitmap_count_bits): Prototype.
37281 (bitmap_clear_range, bitmap_set_range): Likewise.
37282 * sbitmap.c (bitmap_clear_range): New function.
37283 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
37284
37285 2017-01-13 Martin Liska <mliska@suse.cz>
37286
37287 PR ipa/79043
37288 * function.c (set_cfun): Add new argument force.
37289 * function.h (set_cfun): Likewise.
37290 * ipa-inline-transform.c (inline_call): Use the function when
37291 strict alising from is dropped for function we inline to.
37292
37293 2017-01-13 Richard Biener <rguenther@suse.de>
37294
37295 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
37296 for dumping GIMPLE INTEGER_CSTs.
37297
37298 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
37299
37300 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
37301 to 201112L since C++17.
37302
37303 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
37304
37305 PR sanitizer/78887
37306 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
37307 if -fsanitize=kernel-address is present.
37308
37309 2017-01-13 Richard Biener <rguenther@suse.de>
37310
37311 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
37312 as _Literal ( type ) number in case usual suffixes do not
37313 preserve all information.
37314
37315 2017-01-13 Richard Biener <rguenther@suse.de>
37316
37317 PR tree-optimization/77283
37318 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
37319 and ssa-iterators.h.
37320 (is_feasible_trace): Implement a cost model based on joiner
37321 PHI node uses.
37322
37323 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
37324
37325 PR target/79004
37326 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
37327 char or short to __float128/_Float128 directly.
37328
37329 2017-01-12 Martin Sebor <msebor@redhat.com>
37330
37331 to -Wformat-overflow.
37332 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
37333 (min_bytes_remaining): Same.
37334 (get_string_length): Same.
37335 (format_string): Same.
37336 (format_directive): Same.
37337 (add_bytes): Same.
37338 (pass_sprintf_length::handle_gimple_call): Same.
37339
37340 2017-01-12 Jakub Jelinek <jakub@redhat.com>
37341
37342 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
37343 info.nowrite calls with no lhs that can't throw. Return bool
37344 whether gsi_remove has been called or not.
37345 (pass_sprintf_length::handle_gimple_call): Return bool whether
37346 try_substitute_return_value called gsi_remove. Formatting fix.
37347 (pass_sprintf_length::execute): Don't use gsi_remove if
37348 handle_gimple_call returned true.
37349
37350 PR bootstrap/79069
37351 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
37352 be removed due to side-effects, don't remove following barrier nor
37353 turn the successor edge into fallthru edge.
37354
37355 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
37356
37357 PR target/79044
37358 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
37359 element-reversing loads and stores as not swappable.
37360
37361 2017-01-12 Nathan Sidwell <nathan@acm.org>
37362 Nicolai Stange <nicstange@gmail.com>
37363
37364 * combine.c (try_combine): Don't ignore result of overlap checking
37365 loop. Combine overlap & asm check into single loop.
37366
37367 2017-01-12 Richard Biener <rguenther@suse.de>
37368
37369 * tree-pretty-print.c (dump_generic_node): Provide -gimple
37370 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
37371
37372 2017-01-12 Richard Biener <rguenther@suse.de>
37373
37374 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
37375 and TS_TARGET_OPTION directly derive from TS_BASE.
37376 * tree-core.h (tree_optimization_option): Derive from tree_base.
37377 (tree_target_option): Likewise.
37378
37379 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
37380
37381 * config/i386/i386.c (memory_address_length): Increase len
37382 only when rip_relative_addr_p returns false.
37383
37384 2017-01-11 Julia Koval <julia.koval@intel.com>
37385
37386 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
37387 (OPTION_MASK_ISA_SGX_SET): New.
37388 (ix86_handle_option): Handle OPT_msgx.
37389 * config.gcc: Added sgxintrin.h.
37390 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
37391 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
37392 * config/i386/i386.c (ix86_target_string): Add -msgx.
37393 (PTA_SGX): New.
37394 (ix86_option_override_internal): Handle new options.
37395 (ix86_valid_target_attribute_inner_p): Add sgx.
37396 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
37397 * config/i386/i386.opt: Add msgx.
37398 * config/i386/sgxintrin.h: New file.
37399 * config/i386/x86intrin.h: Add sgxintrin.h.
37400
37401 2017-01-11 Jakub Jelinek <jakub@redhat.com>
37402
37403 PR c++/71537
37404 * fold-const.c (maybe_nonzero_address): Return 1 for function
37405 local objects.
37406 (tree_single_nonzero_warnv_p): Don't handle function local objects
37407 here.
37408
37409 PR c++/72813
37410 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
37411 of c-header.
37412
37413 2017-01-11 David Malcolm <dmalcolm@redhat.com>
37414
37415 PR driver/78877
37416 * opts.c: Include "spellcheck.h"
37417 (struct string_fragment): New struct.
37418 (struct edit_distance_traits<const string_fragment &>): New
37419 struct.
37420 (get_closest_sanitizer_option): New function.
37421 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
37422
37423 2017-01-11 Jakub Jelinek <jakub@redhat.com>
37424
37425 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
37426 by 12.
37427 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
37428 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
37429 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
37430 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
37431 for initial die_offset if dwarf_split_debug_info.
37432 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
37433 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
37434 fields.
37435 (output_skeleton_debug_sections): Formatting fix. Use
37436 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
37437 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
37438
37439 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
37440
37441 * config/arm/cortex-a53.md: Add bypasses for
37442 cortex_a53_r2f_cvt.
37443 (cortex_a53_r2f): Only use for transfers.
37444 (cortex_a53_f2r): Likewise.
37445 (cortex_a53_r2f_cvt): Add reservation for conversions.
37446 (cortex_a53_f2r_cvt): Likewise.
37447
37448 2017-01-11 Tamar Christina <tamar.christina@arm.com>
37449
37450 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
37451 to all inlined functions, change static to extern.
37452
37453 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
37454
37455 PR target/78253
37456 * config/arm/arm.c (legitimize_pic_address): Handle reference to
37457 weak symbol.
37458 (arm_assemble_integer): Likewise.
37459
37460 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
37461
37462 * config.gcc: Use new awk script to check CPU, FPU and architecture
37463 parameters for --with-... options.
37464 * config/arm/parsecpu.awk: New file
37465 * config/arm/arm-cpus.in: New file.
37466 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
37467 files.
37468 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
37469 files.
37470 * config/arm/t-arm: Update dependency rules.
37471 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
37472 of processing .def files.
37473 * config/arm/genopt.sh: Deleted.
37474 * config/arm/gentune.sh: Deleted.
37475 * config/arm/arm-cores.def: Deleted.
37476 * config/arm/arm-arches.def: Deleted.
37477 * config/arm/arm-fpus.def: Deleted.
37478 * config/arm/arm-tune.md: Regenerated.
37479 * config/arm/arm-tables.opt: Regenerated.
37480 * config/arm/arm-cpu.h: New generated file.
37481 * config/arm/arm-cpu-data.h: New generated file.
37482 * config/arm/arm-cpu-cdata.h: New generated file.
37483
37484 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
37485
37486 PR lto/79042
37487 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
37488 bit.
37489 (input_varpool_node): Unpack dynamically_initialized bit.
37490
37491 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
37492
37493 PR rtl-optimization/79032
37494 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
37495 the alignment of the adjusted memory reference against that of MODE,
37496 instead of the alignment of the original memory reference.
37497
37498 2017-01-11 Martin Jambor <mjambor@suse.cz>
37499
37500 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
37501 test.
37502 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
37503 decorated functions.
37504
37505 2017-01-11 Richard Biener <rguenther@suse.de>
37506
37507 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
37508 set range/nonnull info for PHI results. Do not set it on
37509 stmts marked for removal.
37510
37511 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
37512
37513 * expr.c (store_field): In the bitfield case, fetch the return value
37514 from the registers before applying a single big-endian adjustment.
37515 Always do a final load for a BLKmode value not larger than a word.
37516
37517 2017-01-10 David Malcolm <dmalcolm@redhat.com>
37518
37519 PR c++/77949
37520 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
37521 that we correctly handle column numbers greater than
37522 LINE_MAP_MAX_COLUMN_NUMBER.
37523
37524 2017-01-10 Martin Sebor <msebor@redhat.com>
37525
37526 PR middle-end/78245
37527 * gimple-ssa-sprintf.c (get_destination_size): Call
37528 {init,fini}object_sizes.
37529 * tree-object-size.c (addr_object_size): Adjust.
37530 (pass_through_call): Adjust.
37531 (pass_object_sizes::execute): Adjust.
37532 * tree-object-size.h (fini_object_sizes): Declare.
37533
37534 2017-01-10 Martin Sebor <msebor@redhat.com>
37535
37536 PR tree-optimization/78775
37537 * builtins.c (get_size_range): Move...
37538 * calls.c: ...to here.
37539 (alloc_max_size): Accept zero argument.
37540 (operand_signed_p): Remove.
37541 (maybe_warn_alloc_args_overflow): Call get_size_range.
37542 * calls.h (get_size_range): Declare.
37543
37544 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
37545
37546 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
37547 from TI's devices.csv file as of September 2016.
37548 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
37549
37550 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
37551
37552 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
37553 * doc/invoke.texi: Likewise.
37554 * doc/md.texi: Likewise.
37555 * doc/objc.texi: Likewise.
37556
37557 2017-01-10 Joshua Conner <joshconner@google.com>
37558
37559 * config/arm/fuchsia-elf.h: New file.
37560 * config/fuchsia.h: New file.
37561 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
37562 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
37563 targets.
37564 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
37565
37566 2016-01-10 Richard Biener <rguenther@suse.de>
37567
37568 PR tree-optimization/79034
37569 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
37570 Propagate out degenerate PHIs in the joiner.
37571
37572 2017-01-10 Martin Liska <mliska@suse.cz>
37573
37574 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
37575 (sort_congruence_classes_by_decl_uid): Likewise.
37576 (sort_congruence_class_groups_by_decl_uid): Likewise.
37577 (sem_item_optimizer::merge_classes): Sort class, groups in these
37578 classes and members in the groups by DECL_UID of declarations.
37579 This would make merge operations stable.
37580
37581 2017-01-10 Martin Liska <mliska@suse.cz>
37582
37583 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
37584 usage of m_classes_vec.
37585 (sem_item_optimizer::~sem_item_optimizer): Likewise.
37586 (sem_item_optimizer::get_group_by_hash): Likewise.
37587 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
37588 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
37589 (sem_item_optimizer::verify_classes): Likewise.
37590 (sem_item_optimizer::process_cong_reduction): Likewise.
37591 (sem_item_optimizer::dump_cong_classes): Likewise.
37592 (sem_item_optimizer::merge_classes): Likewise.
37593 * ipa-icf.h (congruence_class_hash): Rename from
37594 congruence_class_group_hash. Remove declaration of m_classes_vec.
37595
37596 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
37597
37598 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
37599 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
37600 * config.gcc: Add avx512vpopcntdqintrin.h.
37601 * config/i386/avx512vpopcntdqintrin.h: New.
37602 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
37603 * config/i386/i386-builtin-types.def: Add new types.
37604 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
37605 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
37606 __builtin_ia32_vpopcountq_v8di_mask): New.
37607 * config/i386/i386-c.c (ix86_target_macros_internal): Define
37608 __AVX512VPOPCNTDQ__.
37609 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
37610 (PTA_AVX512VPOPCNTDQ): Define.
37611 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
37612 TARGET_AVX512VPOPCNTDQ_P): Define.
37613 * config/i386/i386.opt: Add mavx512vpopcntdq.
37614 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
37615 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
37616
37617 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
37618
37619 PR middle-end/77484
37620 * predict.def (PRED_CALL): Set to 67.
37621
37622 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
37623
37624 * expr.c (store_field): In the bitfield case, if the value comes from
37625 a function call and is of an aggregate type returned in registers, do
37626 not modify the field mode; extract the value in all cases if the mode
37627 is BLKmode and the size is not larger than a word.
37628
37629 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
37630
37631 PR target/71017
37632 * config/i386/cpuid.h: Fix undefined behavior.
37633
37634 2017-01-04 Jeff Law <law@redhat.com>
37635
37636 PR tree-optimization/79007
37637 PR tree-optimization/67955
37638 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
37639 conservative for pt.null when flag_non_call_exceptions is on.
37640
37641 2017-01-09 Jakub Jelinek <jakub@redhat.com>
37642
37643 PR translation/79019
37644 PR translation/79020
37645 * params.def (PARAM_INLINE_MIN_SPEEDUP,
37646 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
37647 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
37648 in descriptions.
37649 * config/avr/avr.opt (maccumulate-args): Likewise.
37650 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
37651 * common.opt (freport-bug): Likewise.
37652 * cif-code.def (CIF_FINAL_ERROR): Likewise.
37653 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
37654 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
37655 translatable string.
37656 * config/i386/i386.c (function_value_32): Likewise.
37657 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
37658 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
37659 Likewise.
37660 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
37661 * common/config/msp430/msp430-common.c (msp430_handle_option):
37662 Likewise.
37663 * symtab.c (symtab_node::verify_base): Likewise.
37664 * opts.c (set_debug_level): Likewise.
37665 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
37666 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
37667 missing whitespace to translatable strings.
37668 * config/avr/avr.md (bswapsi2): Fix typo in comment.
37669 * config/sh/superh.h: Likewise.
37670 * config/i386/xopintrin.h: Likewise.
37671 * config/i386/znver1.md: Likewise.
37672 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
37673 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
37674 * double-int.h (struct double_int): Likewise.
37675 * double-int.c (div_and_round_double): Likewise.
37676 * wide-int.cc: Likewise.
37677 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
37678 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
37679 * cfgcleanup.c (crossjumps_occured): Renamed to ...
37680 (crossjumps_occurred): ... this.
37681 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
37682 Adjust all uses.
37683
37684 PR tree-optimization/78899
37685 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
37686 returning bool return struct loop *, NULL for failure and the new
37687 loop on success.
37688 (versionable_outer_loop_p): Don't version outer loop if it has
37689 dont_vectorized bit set.
37690 (tree_if_conversion): When versioning outer loop, ensure
37691 tree_if_conversion is performed also on the inner loop of the
37692 non-vectorizable outer loop copy.
37693 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
37694 LOOP_VECTORIZED in inner loop of the scalar outer loop and
37695 prevent vectorization of it.
37696 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
37697 the outer loop vectorization of the non-scalar version is attempted
37698 before vectorization of the inner loop in scalar version. If
37699 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
37700 vectorization of its inner loop.
37701 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
37702 has 2 inner loops, rename also on edges from bb whose single pred
37703 is outer_loop->header. Fix typo in function comment.
37704
37705 2017-01-09 Martin Sebor <msebor@redhat.com>
37706
37707 PR bootstrap/79033
37708 * asan.c (asan_emit_stack_protection): Increase local buffer size
37709 to avoid snprintf truncation warning.
37710
37711 2017-01-09 Andrew Pinski <apinski@cavium.com>
37712
37713 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
37714 to reference thunderx2t99 for the tuning structure
37715 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
37716 Rename to ...
37717 (thunderx2t99_extra_costs): This.
37718 * config/aarch64/aarch64-tune.md: Regenerate.
37719 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
37720 (vulcan_addrcost_table): This.
37721 (vulcan_regmove_cost): Rename to ...
37722 (thunderx2t99_regmove_cost): This.
37723 (vulcan_vector_cost): Rename to ...
37724 (thunderx2t99_vector_cost): this.
37725 (vulcan_branch_cost): Rename to ...
37726 (thunderx2t99_branch_cost): This.
37727 (vulcan_tunings): Rename to ...
37728 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
37729 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
37730
37731 2017-01-09 Martin Jambor <mjambor@suse.cz>
37732
37733 PR ipa/78365
37734 PR ipa/78599
37735 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
37736 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
37737 (propagate_vr_accross_jump_function): Use the above function for all
37738 value range computations for pass-through jump functions and type
37739 converasion from explicit value range values.
37740 (ipcp_propagate_stage): Do not attempt to deduce types of formal
37741 parameters from TYPE_ARG_TYPES.
37742 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
37743 (ipa_write_node_info): Stream type of the actual argument.
37744 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
37745
37746 2017-01-09 Martin Liska <mliska@suse.cz>
37747
37748 PR pch/78970
37749 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
37750 (lookup_compiler): Do not show error message with have_E.
37751
37752 2017-01-09 Jakub Jelinek <jakub@redhat.com>
37753
37754 PR tree-optimization/78938
37755 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
37756 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
37757 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
37758 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
37759 fixes.
37760
37761 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
37762
37763 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
37764 is const0_rtx.
37765
37766 2017-01-09 Richard Biener <rguenther@suse.de>
37767
37768 PR tree-optimization/78997
37769 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
37770 name condition properly.
37771
37772 2017-01-09 Richard Biener <rguenther@suse.de>
37773
37774 PR debug/79000
37775 * dwarf2out.c (is_cxx): New overload with context.
37776 (is_naming_typedef_decl): Use it.
37777
37778 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
37779
37780 * invoke.texi (Option Summary): Correct spacing in option lists
37781 and add line breaks to fix over-long lines.
37782
37783 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
37784
37785 PR middle-end/17660
37786
37787 * extend.texi (Common Variable Attributes): Add xref to GCC
37788 Internals manual to explain mode attribute keywords.
37789
37790 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
37791
37792 PR other/16519
37793 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
37794 and Preprocessor Options.
37795 (Options for Linking): Document -pthread here....
37796 (RS/6000 and PowerPC Options): ...not here.
37797 (Solaris 2 Options): ...or here.
37798 * doc/cppopts.texi: Document -pthread.
37799
37800 2017-01-08 Martin Sebor <msebor@redhat.com>
37801
37802 PR middle-end/77708
37803 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
37804 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
37805 New member functions.
37806 (format_directive): Used them.
37807 (add_bytes): Same.
37808 (pass_sprintf_length::handle_gimple_call): Same.
37809 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
37810 to avoid truncation for any argument.
37811 (extract_affine_mul): Same.
37812 * tree.c (get_file_function_name): Same.
37813
37814 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
37815
37816 PR middle-end/77484
37817 * predict.def (PRED_INDIR_CALL): Set to 86.
37818
37819 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
37820
37821 PR preprocessor/54124
37822 * doc/cppopts.texi: Reformat -d subtable to list the full name
37823 of the options. Add cross-reference to the docs for the general
37824 compiler -d options.
37825 * doc/invoke.texi (Developer Options): Add cross-reference to the
37826 preprocessor-specific -d option documentation.
37827
37828 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
37829
37830 PR preprocessor/13498
37831 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
37832 redudant material, and reflect new command-line options.
37833 (System Headers): Likewise.
37834
37835 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
37836
37837 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
37838 -isystem, and -idirafter. Copy-edit.
37839 * doc/cppopts.texi: Copy-edit. Remove contradiction about
37840 default for -ftrack-macro-expansion. Delete obsolete and
37841 badly-formatted implementation details about -fdebug-cpp output.
37842 * doc/cppwarnopts.texi: Copy-edit.
37843
37844 2017-01-07 David Malcolm <dmalcolm@redhat.com>
37845
37846 PR c++/72803
37847 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
37848 that the transition from a max line width >= 1<<10 to narrower
37849 lines works correctly.
37850
37851 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
37852
37853 * doc/options.texi (PerFunction): New.
37854 * opt-functions.awk (switch_flags): Map both Optimization and
37855 PerFunction to CL_OPTIMIZATION.
37856 * opth-gen.awk: Test for PerFunction flag along with
37857 Optimization.
37858 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
37859 it only when the latter is present. Skip those that don't in
37860 the hash function generator.
37861 * common.opt (fvar-tracking): Mark as PerFunction instead of
37862 Optimization.
37863 (fvar-tracking-assignments): Likewise.
37864 (fvar-tracking-assignments-toggle): Likewise.
37865 (fvar-tracking-uninit): Likewise.
37866
37867 2017-01-07 Jakub Jelinek <jakub@redhat.com>
37868
37869 PR translation/79018
37870 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
37871 the and store.
37872
37873 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
37874
37875 PR target/57583
37876 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
37877 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
37878 TARGET_LONG_JUMP_TABLE_OFFSETS.
37879 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
37880 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
37881 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
37882 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
37883 * config/m68k/m68k.md (tablejump expander): Likewise.
37884 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
37885 TARGET_LONG_JUMP_TABLE_OFFSETS.
37886 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
37887 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
37888
37889 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
37890 David Holsgrove <david.holsgrove@xilinx.com>
37891
37892 * common/config/microblaze/microblaze-common.c
37893 (TARGET_EXCEPT_UNWIND_INFO): Remove.
37894 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
37895 New prototype.
37896 * config/microblaze/microblaze.c (microblaze_must_save_register)
37897 (microblaze_expand_epilogue, microblaze_return_addr): Handle
37898 calls_eh_return.
37899 (microblaze_eh_return): New function.
37900 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
37901 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
37902 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
37903 * config/microblaze/microblaze.md (eh_return): New pattern.
37904
37905 2017-01-06 Jakub Jelinek <jakub@redhat.com>
37906
37907 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
37908 GCC_DIAGNOSTIC_STRINGIFY): Define.
37909
37910 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
37911
37912 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
37913
37914 * config/arm/arm.md (<mcrr>): New.
37915 (<mrrc>): New.
37916 * config/arm/arm.c (arm_arch5te): New.
37917 (arm_option_override): Set arm_arch5te.
37918 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
37919 and mrrc2.
37920 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
37921 (arm_mcrr_qualifiers): ... this. New.
37922 (MRRC_QUALIFIERS): Define to...
37923 (arm_mrrc_qualifiers): ... this. New.
37924 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
37925 __arm_mrrc2): New.
37926 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
37927 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
37928 (MRRCI, mrrc, MRRC): New.
37929 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
37930 VUNSPEC_MRRC2): New.
37931
37932 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
37933
37934 * config/arm/arm.md (<mcr>): New.
37935 (<mrc>): New.
37936 * config/arm/arm.c (arm_coproc_builtin_available): Add
37937 support for mcr, mrc, mcr2 and mrc2.
37938 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
37939 (arm_mcr_qualifiers): ... this. New.
37940 (MRC_QUALIFIERS): Define to ...
37941 (arm_mrc_qualifiers): ... this. New.
37942 (MCR_QUALIFIERS): Define to ...
37943 (arm_mcr_qualifiers): ... this. New.
37944 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
37945 __arm_mrc2): New.
37946 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
37947 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
37948 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
37949 VUNSPEC_MRC2): New.
37950
37951 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
37952
37953 * config/arm/arm.md (*ldc): New.
37954 (*stc): New.
37955 (<ldc>): New.
37956 (<stc>): New.
37957 * config/arm/arm.c (arm_coproc_builtin_available): Add
37958 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
37959 (arm_coproc_ldc_stc_legitimate_address): New.
37960 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
37961 'qualifier_const_pointer'.
37962 (LDC_QUALIFIERS): Define to...
37963 (arm_ldc_qualifiers): ... this. New.
37964 (STC_QUALIFIERS): Define to...
37965 (arm_stc_qualifiers): ... this. New.
37966 * config/arm/arm-protos.h
37967 (arm_coproc_ldc_stc_legitimate_address): New.
37968 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
37969 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
37970 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
37971 stc2, stcl, stc2l): New.
37972 * config/arm/constraints.md (Uz): New.
37973 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
37974 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
37975 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
37976 VUNSPEC_STC2L): New.
37977
37978 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
37979
37980 * config/arm/arm.md (<cdp>): New.
37981 * config/arm/arm.c (neon_const_bounds): Rename this ...
37982 (arm_const_bounds): ... this.
37983 (arm_coproc_builtin_available): New.
37984 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
37985 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
37986 (CDP_QUALIFIERS): Define to...
37987 (arm_cdp_qualifiers): ... this. New.
37988 (void_UP): Define.
37989 (arm_expand_builtin_args): Add case for 6 arguments.
37990 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
37991 (arm_const_bounds): ... this.
37992 (arm_coproc_builtin_available): New.
37993 * config/arm/arm_acle.h (__arm_cdp): New.
37994 (__arm_cdp2): New.
37995 * config/arm/arm_acle_builtins.def (cdp): New.
37996 (cdp2): New.
37997 * config/arm/iterators.md (CDPI,CDP,cdp): New.
37998 * config/arm/neon.md: Rename all 'neon_const_bounds' to
37999 'arm_const_bounds'.
38000 * config/arm/types.md (coproc): New.
38001 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
38002 * doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
38003 * doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
38004 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
38005
38006 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
38007
38008 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
38009 (UBINOP_QUALIFIERS): New.
38010 (si_UP): Define.
38011 (acle_builtin_data): New. Change comment.
38012 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
38013 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
38014 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
38015 arm_acle_builtins.def.
38016 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
38017 (arm_init_acle_builtins): New.
38018 (CRC32_BUILTIN): Remove.
38019 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
38020 crc32cb, crc32ch and crc32cw.
38021 (arm_init_crc32_builtins): Remove.
38022 (arm_init_builtins): Use arm_init_acle_builtins rather
38023 than arm_init_crc32_builtins.
38024 (arm_expand_acle_builtin): New.
38025 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
38026 * config/arm/arm_acle_builtins.def: New.
38027
38028 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
38029
38030 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
38031 (arm_builtin_datum): ... this.
38032 (arm_init_neon_builtin): Rename to ...
38033 (arm_init_builtin): ... this. Add a new parameters PREFIX
38034 and USE_SIG_IN_NAME.
38035 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
38036 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
38037 'arm_builtin_datum'.
38038 (arm_init_vfp_builtins): Likewise.
38039 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
38040 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
38041 (arm_expand_neon_args): Rename to ...
38042 (arm_expand_builtin_args): ... this. Rename builtin_arg
38043 enum values and differentiate between ARG_BUILTIN_MEMORY
38044 and ARG_BUILTIN_NEON_MEMORY.
38045 (arm_expand_neon_builtin_1): Rename to ...
38046 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
38047 values, arm_expand_builtin_args and add bool parameter NEON.
38048 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
38049 (arm_expand_vfp_builtin): Likewise.
38050 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
38051
38052 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
38053
38054 PR middle-end/77484
38055 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
38056 * predict.c (tree_estimate_probability_bb): Reverse direction of
38057 polymorphic call predictor.
38058
38059 2017-01-06 David Malcolm <dmalcolm@redhat.com>
38060
38061 * passes.c (execute_one_pass): Split out pass-skipping logic into...
38062 (determine_pass_name_match): ...this new function and...
38063 (should_skip_pass_p): ...this new function.
38064
38065 2017-01-06 Nathan Sidwell <nathan@acm.org>
38066
38067 * ipa-visibility.c (function_and_variable_visibility): Reformat
38068 comments and long lines. Remove extrneous if.
38069 * symtab.c (symtab_node::make_decl_local): Fix code format.
38070 (symtab_node::set_section_for_node): Fix comment typo.
38071
38072 2017-01-06 Martin Liska <mliska@suse.cz>
38073
38074 PR bootstrap/79003
38075 * lra-constraints.c: Rename invariant to lra_invariant.
38076 * predict.c (set_even_probabilities): Initialize e to NULL.
38077
38078 2017-01-05 Martin Sebor <msebor@redhat.com>
38079
38080 PR tree-optimization/78910
38081 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
38082 (format_integer): Correct off-by-one error in the handling
38083 of precision with negative numbers in signed conversions..
38084
38085 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
38086
38087 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
38088
38089 2017-01-05 Jakub Jelinek <jakub@redhat.com>
38090
38091 PR tree-optimization/71016
38092 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
38093 factor_out_conditional_conversion. Formatting fix.
38094 (factor_out_conditional_conversion): Add cond_stmt argument.
38095 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
38096 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
38097 Formatting fix.
38098
38099 2017-01-05 David Malcolm <dmalcolm@redhat.com>
38100
38101 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
38102 read-rtl-function.o, and selftest-rtl.o.
38103 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
38104 (selftest::aarch64_test_loading_full_dump): New function.
38105 (selftest::aarch64_run_selftests): New function.
38106 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
38107 selftest::aarch64_run_selftests.
38108 * config/i386/i386.c
38109 (selftest::ix86_test_loading_dump_fragment_1): New function.
38110 (selftest::ix86_test_loading_call_insn): New function.
38111 (selftest::ix86_test_loading_full_dump): New function.
38112 (selftest::ix86_test_loading_unspec): New function.
38113 (selftest::ix86_run_selftests): Call the new functions.
38114 * emit-rtl.c (maybe_set_max_label_num): New function.
38115 * emit-rtl.h (maybe_set_max_label_num): New decl.
38116 * function.c (instantiate_decls): Guard call to
38117 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
38118 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
38119 "static".
38120 * gensupport.c (gen_reader::gen_reader): Pass "false"
38121 for new "compact" param of rtx_reader.
38122 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
38123 rather than an empty string for NULL strings.
38124 * read-md.c: Potentially include config.h rather than bconfig.h.
38125 Wrap include of errors.h with #ifdef GENERATOR_FILE.
38126 (have_error): New global, copied from errors.c.
38127 (md_reader::read_name): Rename to...
38128 (md_reader::read_name_1): ...this, adding "out_loc" param,
38129 and converting "missing name or number" to returning false, rather
38130 than failing.
38131 (md_reader::read_name): Reimplement in terms of read_name_1.
38132 (md_reader::read_name_or_nil): New function.
38133 (md_reader::read_string): Handle "(nil)" by returning NULL.
38134 (md_reader::md_reader): Add new param "compact".
38135 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
38136 (md_reader::read_file): New method.
38137 * read-md.h (md_reader::md_reader): Add new param "compact".
38138 (md_reader::read_file): New method.
38139 (md_reader::is_compact): New accessor.
38140 (md_reader::read_name): Convert return type from void to file_location.
38141 (md_reader::read_name_or_nil): New decl.
38142 (md_reader::read_name_1): New decl.
38143 (md_reader::m_compact): New field.
38144 (noop_reader::noop_reader): Pass "false" for new "compact" param
38145 of rtx_reader.
38146 (rtx_reader::rtx_reader): Add new "compact" param.
38147 (rtx_reader::read_rtx_operand): Make virtual and convert return
38148 type from void to rtx.
38149 (rtx_reader::read_until): New decl.
38150 (rtx_reader::handle_any_trailing_information): New virtual function.
38151 (rtx_reader::postprocess): New virtual function.
38152 (rtx_reader::finalize_string): New virtual function.
38153 (rtx_reader::m_in_call_function_usage): New field.
38154 (rtx_reader::m_reuse_rtx_by_id): New field.
38155 * read-rtl-function.c: New file.
38156 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
38157 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
38158 (selftest::verify_three_block_rtl_cfg): New decl.
38159 * read-rtl-function.h: New file.
38160 * read-rtl.c: Potentially include config.h rather than bconfig.h.
38161 For host, include function.h, memmodel.h, and emit-rtl.h.
38162 (one_time_initialization): New function.
38163 (struct compact_insn_name): New struct.
38164 (compact_insn_names): New array.
38165 (find_code): Handle insn codes in compact dumps.
38166 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
38167 (bind_subst_iter_and_attr): Likewise.
38168 (add_condition_to_string): Likewise.
38169 (add_condition_to_rtx): Likewise.
38170 (apply_attribute_uses): Likewise.
38171 (add_current_iterators): Likewise.
38172 (apply_iterators): Likewise.
38173 (initialize_iterators): Guard usage of apply_subst_iterator with
38174 #ifdef GENERATOR_FILE.
38175 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
38176 (md_reader::read_mapping): Likewise.
38177 (add_define_attr_for_define_subst): Likewise.
38178 (add_define_subst_attr): Likewise.
38179 (read_subst_mapping): Likewise.
38180 (check_code_iterator): Likewise.
38181 (rtx_reader::read_rtx): Likewise. Move one-time initialization
38182 logic to...
38183 (one_time_initialization): New function.
38184 (rtx_reader::read_until): New method.
38185 (read_flags): New function.
38186 (parse_reg_note_name): New function.
38187 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
38188 Handle reuse_rtx ids.
38189 Wrap iterator lookup within #ifdef GENERATOR_FILE.
38190 Add parsing support for RTL dumps, mirroring the special-cases in
38191 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
38192 values, and calling handle_any_trailing_information.
38193 (rtx_reader::read_rtx_operand): Convert return type from void
38194 to rtx, returning return_rtx. Handle case 'e'. Call
38195 finalize_string on XSTR and XTMPL fields.
38196 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
38197 "(nil)" values were omitted. Call the postprocess vfunc on the
38198 return_rtx.
38199 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
38200 class ctor. Initialize m_in_call_function_usage. Call
38201 one_time_initialization.
38202 * rtl-tests.c (selftest::test_uncond_jump): Call
38203 set_new_first_and_last_insn.
38204 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
38205 * selftest-rtl.c: New file.
38206 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
38207 (selftest::get_insn_by_uid): New decl.
38208 * selftest-run-tests.c (selftest::run_tests): Call
38209 read_rtl_function_c_tests.
38210 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
38211 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
38212 dumps.
38213
38214 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
38215
38216 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
38217 operands in a special way. Assert that pos+len <= mode precision.
38218
38219 2017-01-05 Jakub Jelinek <jakub@redhat.com>
38220
38221 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
38222 3 argument Alias with unlimited for the negative form.
38223 (fno-vect-cost-model): Removed.
38224
38225 2017-01-05 Martin Liska <mliska@suse.cz>
38226
38227 * hsa-gen.c (gen_hsa_divmod): New function.
38228 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
38229
38230 2017-01-05 Martin Liska <mliska@suse.cz>
38231
38232 PR pch/78970
38233 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
38234 header.
38235
38236 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
38237
38238 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
38239 small constant length operands.
38240
38241 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
38242
38243 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
38244 between loop iterations.
38245
38246 2017-01-05 Martin Liska <mliska@suse.cz>
38247
38248 PR sanitizer/78815
38249 * gimplify.c (gimplify_decl_expr): Compare to
38250 asan_poisoned_variables instread of checking flags.
38251 (gimplify_target_expr): Likewise.
38252 (gimplify_expr): Likewise.
38253 (gimplify_function_tree): Conditionally initialize
38254 asan_poisoned_variables.
38255
38256 2017-01-04 Jeff Law <law@redhat.com>
38257
38258 PR tree-optimizatin/78812
38259 * rtl.h (contains_mem_rtx_p): Prototype.
38260 * ifcvt.c (containts_mem_rtx_p): Move from here to...
38261 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
38262 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
38263 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
38264 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
38265
38266 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
38267
38268 * input.c (assert_char_at_range): Default-initialize actual_range.
38269
38270 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
38271
38272 * df-scan.c (df_ref_create_structure): Make regno unsigned,
38273 to match the caller.
38274
38275 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
38276
38277 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
38278 insns after final jump in test to emit dummy move.
38279
38280 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
38281
38282 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
38283 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
38284
38285 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
38286
38287 * multiple_target.c (create_dispatcher_calls): Init e_next.
38288 * tree-ssa-loop-split.c (split_loop): Init border.
38289 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
38290 scalar_type.
38291
38292 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
38293
38294 PR target/71977
38295 PR target/70568
38296 PR target/78823
38297 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
38298 (altivec_register_operand): Do not return true if the operand
38299 contains a SUBREG mixing SImode and SFmode.
38300 (vsx_register_operand): Likewise.
38301 (vsx_reg_sfsubreg_ok): New predicate.
38302 (vfloat_operand): Do not return true if the operand contains a
38303 SUBREG mixing SImode and SFmode.
38304 (vint_operand): Likewise.
38305 (vlogical_operand): Likewise.
38306 (gpc_reg_operand): Likewise.
38307 (int_reg_operand): Likewise.
38308 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
38309 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
38310 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
38311 SImode and SFmode.
38312 (rs6000_emit_move_si_sf_subreg): New helper function.
38313 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
38314 fixup SUBREGs involving SImode and SFmode.
38315 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
38316 numbers for the new peephole2 optimization.
38317 (peephole2 for SFmode unions): New peephole2 to optimize cases in
38318 the GLIBC math library that do AND/IOR/XOR operations on single
38319 precision floating point.
38320 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
38321 target macros to say whether we need to avoid SUBREGs mixing
38322 SImode and SFmode.
38323 (TARGET_ALLOW_SF_SUBREG): Likewise.
38324 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
38325 (UNSPEC_SI_FROM_SF): Likewise.
38326 (iorxor): Change spacing.
38327 (and_ior_xor): New iterator for AND, IOR, and XOR.
38328 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
38329 (movdi_from_sf_zero_ext): Likewise.
38330 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
38331 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
38332 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
38333 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
38334 (fms<mode>4): Likewise.
38335 (fnma<mode>4): Likewise.
38336 (fnms<mode>4): Likewise.
38337 (nfma<mode>4): Likewise.
38338 (nfms<mode>4): Likewise.
38339
38340 2017-01-04 Marek Polacek <polacek@redhat.com>
38341
38342 PR c++/64767
38343 * doc/invoke.texi: Document -Wpointer-compare.
38344
38345 2017-01-04 Jakub Jelinek <jakub@redhat.com>
38346
38347 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
38348 RejectNegative.
38349
38350 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
38351 descriptions for -gdwarf-5 and emit them as uleb128 instead of
38352 2-byte data.
38353
38354 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
38355
38356 PR target/78056
38357 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
38358 documentation of the powerpc_popcntb_ok attribute.
38359 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
38360 code to issue warning messages if a requested CPU configuration is
38361 not supported by the binary (assembler and loader) toolchain.
38362 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
38363 made to define a built-in function that has been disabled.
38364 (paired_init_builtins): Add assertion to prevent ICE if attempt is
38365 made to define a built-in function that has been disabled.
38366 (altivec_init_builtins): Add comment explaining why definition
38367 of the DST built-in functions is not preceded by an assertion
38368 check. Add assertions to prevent ICE if attempts are made to
38369 define an altivec predicate or an abs* built-in function that has
38370 been disabled.
38371 (htm_init_builtins): Add comment explaining why definition of the
38372 htm built-in functions is not preceded by an assertion check.
38373
38374 2017-01-04 Jeff Law <law@redhat.com>
38375
38376 PR tree-optimizatin/67955
38377 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
38378 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
38379 the points-to solution does not include pt_null. Use DECL_PT_UID
38380 unconditionally.
38381
38382 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
38383
38384 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
38385 Use gen_int_mode instead of gen_lopwart for const_int operands.
38386
38387 2017-01-04 Jakub Jelinek <jakub@redhat.com>
38388
38389 PR tree-optimization/71563
38390 * match.pd: Simplify X << Y into X if Y is known to be 0 or
38391 out of range value - has low bits known to be zero.
38392
38393 2017-01-04 Alan Modra <amodra@gmail.com>
38394
38395 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
38396 * configure: Regenerate.
38397 * config.in: Regenerate.
38398
38399 2017-01-04 Jakub Jelinek <jakub@redhat.com>
38400
38401 PR bootstrap/77569
38402 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
38403 a substring of the message, but strcmp with the whole message. Ifdef
38404 ENABLE_NLS, translate the message first using dgettext.
38405
38406 2017-01-03 Jeff Law <law@redhat.com>
38407
38408 PR tree-optimizatin/78856
38409 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
38410 (mark_threaded_blocks): Remove code to truncate thread paths that
38411 cross multiple loop headers. Instead invalidate the cached loop
38412 iteration information and handle case of a thread path walking
38413 into an irreducible region.
38414
38415 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
38416
38417 PR target/78900
38418 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
38419 assertions. Add support for doing the signbit if the IEEE 128-bit
38420 floating point value is in a GPR.
38421 * config/rs6000/rs6000.md (Fsignbit): Delete.
38422 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
38423 Update the length attribute if the value is in a GPR.
38424 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
38425 the sign or zero extension instruction, since the value is always 0/1.
38426 (signbit<mode>2_dm2): Delete using <Fsignbit>.
38427
38428 PR target/78953
38429 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
38430 extracting SImode to a GPR register so that we can generate a
38431 store, limit the vector to be in a traditional Altivec register
38432 for the vextuwrx instruction.
38433
38434 2017-01-03 Ian Lance Taylor <iant@google.com>
38435
38436 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
38437
38438 2017-01-03 Martin Sebor <msebor@redhat.com>
38439
38440 PR tree-optimization/78696
38441 * gimple-ssa-sprintf.c (format_floating): Correct handling of
38442 precision. Use MPFR for %f for greater fidelity. Correct handling
38443 of %g.
38444 (pass_sprintf_length::compute_format_length): Set width and precision
38445 specified by asrerisk to void_node for vararg functions.
38446 (try_substitute_return_value): Adjust dump output.
38447
38448 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
38449
38450 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
38451
38452 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
38453
38454 * doc/invoke.texi (SPARC options): Document -mlra as the default.
38455 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
38456 -mlra/-mno-lra was passed to the compiler.
38457
38458 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
38459
38460 PR rtl-optimization/65618
38461 * emit-rtl.c (try_split): Move initialization of "before" and
38462 "after" to just before the call to emit_insn_after_setloc.
38463
38464 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
38465
38466 * doc/md.texi (Standard Names): Remove reference to Java frontend.
38467
38468 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
38469
38470 * dwarf2out.c (gen_enumeration_type_die): When
38471 -gno-strict-dwarf, add a DW_AT_encoding attribute.
38472
38473 2017-01-03 Jakub Jelinek <jakub@redhat.com>
38474
38475 PR tree-optimization/78965
38476 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
38477 Change first argument from const call_info & to call_info &. For %n
38478 set info.nowrite to false.
38479
38480 PR middle-end/78901
38481 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
38482 possibly throwing calls.
38483
38484 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
38485 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
38486 and fns handling, rather than in a separate case SSA_NAME.
38487
38488 2017-01-02 Jeff Law <law@redhat.com>
38489
38490 * config/darwin-driver.c (darwin_driver_init): Const-correctness
38491 fixes for first_period and second_period variables.
38492
38493 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
38494
38495 PR target/78967
38496 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
38497 (*insvqi_1): New insn pattern.
38498 (*insvqi_1_mem_rex64): Ditto.
38499 (*insvqi_2): Ditto.
38500 (*insvqi_3): Rename from *insvqi.
38501
38502 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
38503
38504 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
38505
38506 * doc/cfg.texi (Edges): Remove reference to Java.
38507 (Maintaining the CFG): Ditto.
38508
38509 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
38510
38511 PR middle-end/77674
38512 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
38513 transparent aliases.
38514
38515 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
38516
38517 PR middle-end/77484
38518 * predict.def (PRED_CALL): Update hitrate.
38519 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
38520 * predict.c (tree_estimate_probability_bb): Split CALL predictor
38521 into direct/indirect/polymorphic variants.
38522
38523 2017-01-01 Jakub Jelinek <jakub@redhat.com>
38524
38525 Update copyright years.
38526
38527 * gcc.c (process_command): Update copyright notice dates.
38528 * gcov-dump.c (print_version): Ditto.
38529 * gcov.c (print_version): Ditto.
38530 * gcov-tool.c (print_version): Ditto.
38531 * gengtype.c (create_file): Ditto.
38532 * doc/cpp.texi: Bump @copying's copyright year.
38533 * doc/cppinternals.texi: Ditto.
38534 * doc/gcc.texi: Ditto.
38535 * doc/gccint.texi: Ditto.
38536 * doc/gcov.texi: Ditto.
38537 * doc/install.texi: Ditto.
38538 * doc/invoke.texi: Ditto.
38539 \f
38540 Copyright (C) 2017 Free Software Foundation, Inc.
38541
38542 Copying and distribution of this file, with or without modification,
38543 are permitted in any medium without royalty provided the copyright
38544 notice and this notice are preserved.