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