1 2017-04-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
3 * configure.ac (SYSTEM_HEADER_DIR, BUILD_SYSTEM_HEADER_DIR,
4 target_header_dir): Set correctly.
5 * configure: Regenerated.
6 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
7 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8 instead of SYSTEM_HEADER_DIR.
10 2017-04-28 Jan Hubicka <hubicka@ucw.cz>
12 * ipa-cp.c (perform_estimation_of_a_value): Turn time to sreal.
13 (estimate_local_effects): Likewise.
14 * ipa-inline.c (compute_inlined_call_time, want_inline_small_function_p,
15 edge_badness, inline_small_functions, dump_overall_stats): LIkewise.
16 * ipa-inline.h (edge_growth_cache_entry, estimate_time_after_inlining,
17 estimate_ipcp_clone_size_and_time, do_estimate_edge_time,
18 do_estimate_edge_time, estimate_edge_time): Likewise.
19 * ipa-inline-analysis.c (estimate_node_size_and_time,
20 estimate_ipcp_clone_size_and_time, do_estimate_edge_time): Likewise.
21 (estimate_time_after_inlining): Remove.
23 2017-04-28 Martin Liska <mliska@suse.cz>
25 * doc/gcov.texi: Enhance documentation of gcov.
27 2017-04-28 Martin Liska <mliska@suse.cz>
29 * doc/gcov.texi: Sort options in alphabetic order.
30 * doc/gcov-dump.texi: Likewise.
31 * doc/gcov-tool.texi: Likewise.
32 * gcov.c (print_usage): Likewise.
33 * gcov-dump.c (print_usage): Likewise.
34 * gcov-tool.c (print_merge_usage_message): Likewise.
35 (print_rewrite_usage_message): Likewise.
36 (print_overlap_usage_message): Likewise.
38 2017-04-28 Martin Liska <mliska@suse.cz>
41 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
43 2017-04-28 Martin Liska <mliska@suse.cz>
46 * gcov.c (add_line_counts): Assign BBs to lines just if the BB
47 is marked by compiler as living on a line.
48 (get_cycles_count): Remove usage of the union.
49 (output_intermediate_file): Likewise.
50 (find_source): Fix GNU coding style.
51 (accumulate_line_counts): Remove old non-all block mode.
52 (output_lines): Remove usage of the union.
53 * profile.c (output_location): Include all BBs, even if
54 belonging to a same line (and file) as a previous BB.
56 2017-04-28 Martin Liska <mliska@suse.cz>
58 * gcov.c (process_args): Handle new argument 'w'.
59 (read_graph_file): Assign ID to BBs.
60 (output_branch_count): Display BB # if verbose flag is set.
61 (output_lines): Likewise for arcs.
62 (print_usage): Add '--verbose' option help.
63 * doc/gcov.texi: Document --verbose (-w) option.
65 2017-04-28 Martin Liska <mliska@suse.cz>
67 * gcov.c (struct block_location_info): New struct.
68 (process_file): Fill up the new structure.
69 (read_graph_file): Replace usage of encoding by the newly added
71 (add_line_counts): Likewise.
72 (accumulate_line_counts): Remove usage of the union.
73 (function_info::function_info): New function.
74 (function_info::~function_info): Likewise.
75 (process_file): Call delete instead of release_function.
76 (release_function): Release the function.
77 (release_structures): Call delete instead of release_function.
78 (solve_flow_graph): Replace usage of num_blocks.
79 (find_exception_blocks): Likewise.
80 (output_lines): Fix GNU coding style.
82 2017-04-28 Martin Liska <mliska@suse.cz>
85 * coverage.c (coverage_remove_note_file): New function.
86 * coverage.h: Declare the function.
87 * toplev.c (finalize): Clean if an error has been seen.
89 2017-04-28 Martin Liska <mliska@suse.cz>
92 * gcov-dump.c (tag_blocks): Just print number of basic blocks.
93 * gcov-io.h (GCOV_TAG_BLOCKS_NUM): Remove unused macro.
94 * gcov.c (read_graph_file): Read just number of blocks.
95 * profile.c (branch_prob): Do not stream 0 flags per a basic
98 2017-04-28 Martin Liska <mliska@suse.cz>
100 * gcov-dump.c (tag_*): Add new argument to declarations.
101 (dump_gcov_file): Likewise.
102 (tag_blocks): Add and use new argument depth.
103 (tag_arcs): Likewise.
104 (tag_lines): Likewise.
105 (tag_counters): Likewise.
106 (tag_summary): Likewise.
107 (dump_working_sets): Use depth to do a proper indentation.
109 2017-04-28 Jakub Jelinek <jakub@redhat.com>
112 * cgraph.h (symtab_node::debug_symtab): No longer inline.
113 * symtab.c (symtab_node::debug_symtab): Move definition here.
115 2017-04-28 Richard Biener <rguenther@suse.de>
117 * lto-streamer.h (LTO_major_version): Bump to 7.
119 2017-04-28 Richard Biener <rguenther@suse.de>
121 * tree-vrp.c (assert_info): New struct.
122 (add_assert_info): New helper.
123 (register_edge_assert_for_2): Refactor to add asserts to a vector
125 (register_edge_assert_for_1): Likewise.
126 (register_edge_assert_for): Likewise.
127 (finish_register_edge_assert_for): New helper actually registering
128 asserts where live on edge.
129 (find_conditional_asserts): Adjust.
130 (find_switch_asserts): Likewise.
131 (evrp_dom_walker::try_find_new_range): Generalize.
132 (evrp_dom_walker::before_dom_children): Use register_edge_assert_for.
134 2017-04-27 Marek Polacek <polacek@redhat.com>
137 * fold-const.c (fold_binary_loc) <case EQ_EXPR, NE_EXPR>: Convert
138 arg10 and arg11 to itype.
140 2017-04-27 Jonathan Wakely <jwakely@redhat.com>
142 * doc/extend.texi (Object Size Checking): Improve grammar.
144 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
147 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
148 that the logic for permitting reciprocal estimates matches that
151 2017-04-27 Jakub Jelinek <jakub@redhat.com>
154 * tree.c (type_cache_hasher::equal): Only compare
155 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
156 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
157 non-aggregate element types.
158 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
159 about the flag on ARRAY_TYPEs in the comment, formatting fix.
161 2017-04-27 Richard Biener <rguenther@suse.de>
164 * emit-rtl.c (set_mem_attributes_minus_bitpos): When
165 stripping ARRAY_REFs from MEM_EXPR make sure we're not
166 keeping a reference to a trailing array.
168 2017-04-27 Richard Biener <rguenther@suse.de>
171 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
172 being in loop-closed SSA form conservatively.
173 (chrec_fold_multiply_poly_poly): Likewise.
175 2017-04-27 Tamar Christina <tamar.christina@arm.com>
178 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
179 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
181 2017-04-27 Jakub Jelinek <jakub@redhat.com>
184 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
185 (aarch64_function_arg_alignment): Return unsigned int again, but still
186 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
187 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
188 Don't emit -Wpsabi note.
189 (aarch64_function_arg_boundary): Likewise.
190 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
193 2017-04-26 Nathan Sidwell <nathan@acm.org>
195 * tree.h (crc32_unsigned_n): Declare.
196 (crc32_unsigned, crc32_unsigned): Make inline.
197 * tree.c (crc32_unsigned_bits): Replace with ...
198 (crc32_unsigned_n): ... this.
199 (crc32_unsigned, crc32_byte): Remove.
200 (crc32_string): Remove unnecessary braces.
202 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
204 * ipa-cp.c (estimate_local_effects): Convert sreal to int.
205 * ipa-inline-analysis.c (MAX_TIME): Remove.
206 (account_size_time): Use sreal for time.
207 (dump_inline_summary): Update.
208 (estimate_function_body_sizes): Update.
209 (estimate_edge_size_and_time): Update.
210 (estimate_calls_size_and_time): Update.
211 (estimate_node_size_and_time): Update.
212 (inline_merge_summary): Update.
213 (inline_update_overall_summary): Update.
214 (estimate_time_after_inlining): Update.
215 (inline_read_section): Update.
216 (inline_write_summary): Update.
217 * ipa-inline.c (compute_uninlined_call_time): Update.
218 (compute_inlined_call_time): Update.
219 (recursive_inlining): Update.
220 (inline_small_functions): Update.
221 (dump_overall_stats): Update.
222 * ipa-inline.h: Include sreal.h.
223 (size_time_entry): Turn time to sreal.
224 (inline_summary): Turn self_time nad time to sreal.
226 2017-04-25 Jan Hubicka <hubicka@ucw.cz>
228 * sreal.c: Include backend.h, tree.h, gimple.h, cgraph.h and
230 (sreal::stream_out, sreal::stream_in): New.
231 * sreal.h (sreal::stream_out, sreal::stream_in): Declare.
233 2017-04-25 Jakub Jelinek <jakub@redhat.com>
235 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
238 2017-04-25 Uros Bizjak <ubizjak@gmail.com>
241 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
243 (dimode_scalar_chain::compute_convert_gain): Ditto.
244 (dimode_scalar_chain::make_vector_copies): Ditto.
245 (dimode_scalar_chain::convert_reg): Ditto.
246 (dimode_scalar_chain::convert_insn): Ditto.
247 * config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
248 (VI248_AVX512BW_1): New mode iterator.
249 (<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
250 <mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
253 2017-04-25 Martin Sebor <msebor@redhat.com>
255 PR tree-optimization/80497
256 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
257 constants are representable in HOST_WIDE_INT.
258 (parse_directive): Ditto.
260 2017-04-25 Martin Sebor <msebor@redhat.com>
263 * dominance.c (dom_info::m_n_basic_blocks): Change type to unsigned.
264 (new_zero_array): Adjust signature.
265 (dom_info::dom_init): Used unsigned rather that size_t.
266 (dom_info::dom_info): Same.
268 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
269 Jakub Jelinek <jakub@redhat.com>
272 * config/arm/arm.c: Include gimple.h.
273 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
274 returns negative, increment ncrn only if it returned positive.
275 (arm_needs_doubleword_align): Return int instead of bool,
276 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
277 members, but if there is any such non-FIELD_DECL
278 > PARM_BOUNDARY aligned decl, return -1 instead of false.
279 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
280 returns negative, increment nregs only if it returned positive.
281 (arm_setup_incoming_varargs): Likewise.
282 (arm_function_arg_boundary): Emit -Wpsabi note if
283 arm_needs_doubleword_align returns negative, return
284 DOUBLEWORD_ALIGNMENT only if it returned positive.
286 2017-04-25 Marek Polacek <polacek@redhat.com>
289 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
290 first argument to type.
292 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
295 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
296 type checks to test for compatibility instead of equality.
298 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
299 Jakub Jelinek <jakub@redhat.com>
302 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
304 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
305 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
306 the alignment computation, but return their maximum in warn_alignment.
307 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
308 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
310 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
311 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
314 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
316 * config/arc/simdext.md (dmpyh): Fix typo.
318 2017-04-25 Richard Biener <rguenther@suse.de>
320 PR tree-optimization/80492
321 * alias.c (compare_base_decls): Handle registers with asm
322 specification conservatively.
323 * tree-ssa-alias.c (decl_refs_may_alias_p): Handle
324 compare_base_decls returning dont-know properly.
326 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
328 * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro.
329 (legitimate_offset_address_p): New function.
330 (arc_legitimate_address_p): Use above function.
332 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
334 * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls.
336 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
338 * config/arc/arc.c (arc_conditional_register_usage): Use ACCL,
339 ACCH registers whenever they are available.
341 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
343 * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1
344 double regs fix when not used.
346 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
348 * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension
350 (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise.
351 (REG_OK_FOR_BASE_P_NONSTRICT): Likewise.
353 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
355 * config/arc/arc.c (arc_output_addsi): Check for h-register class
356 when emitting short ADD instructions.
358 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com>
360 * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register
362 (cmpsi_cc_c_insn): Likewise.
363 (cbranchsi4_scratch): Compute proper instruction length using
364 compact_hreg_operand.
365 * config/arc/predicates.md (compact_hreg_operand): New predicate.
367 2017-04-25 Richard Biener <rguenther@suse.de>
370 * passes.c (pass_manager::pass_manager): Initialize
373 2017-04-25 Richard Biener <rguenther@suse.de>
375 PR tree-optimization/79201
376 * tree-ssa-sink.c (statement_sink_location): Handle calls.
378 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
381 * config/s390/vector.md: Split MEM->GPR vector moves for
382 non-s_operand addresses.
384 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
387 * config/s390/predicates.md (reload_const_wide_int_operand): New
389 * config/s390/s390.md ("movti"): Remove d/P alternative.
390 ("movti_bigconst"): New pattern definition.
392 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
395 * s390-protos.h (s390_expand_cs_hqi): Removed.
396 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
397 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
398 modes as well as CCZ1mode and CCZmode.
399 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
400 signature of s390_emit_compare_and_swap.
401 (s390_expand_cs_hqi): Likewise, make static.
402 (s390_expand_cs_tdsi): Generate an explicit compare before trying
403 compare-and-swap, in some cases.
404 (s390_expand_cs): Wrapper function.
405 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
407 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
408 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
409 patterns for small and large integers. Forbid symref memory operands.
410 Move expander to s390.c. Require cc register.
411 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
412 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
413 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
414 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
415 symref memory operands. Remove CC mode and call s390_match_ccmode
417 ("atomic_exchange<mode>"): Allow and implement all integer modes.
419 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
421 * config/s390/s390.md (define_peephole2): New peephole to help
422 combining the load-and-test pattern with volatile memory.
424 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
426 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
427 with CCZmode for TARGET_Z196.
429 2017-04-25 Jakub Jelinek <jakub@redhat.com>
431 PR rtl-optimization/80501
432 * combine.c (make_compound_operation_int): Set subreg_code to SET
433 even for AND with mask of the sign bit of mode.
435 PR rtl-optimization/80500
436 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
439 2017-04-25 Julian Brown <julian@codesourcery.com>
440 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
442 * config/aarch64/thunderx2t99.md (thunderx2t99_crc): New Reservation.
444 2017-04-25 Marc Glisse <marc.glisse@inria.fr>
446 * fold-const.c (tree_single_nonzero_warnv_p): Handle SSA_NAME.
448 2017-04-25 Julian Brown <julian@codesourcery.com>
449 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
451 * config/aarch64/thunderx2t99.md (thunderx2t99_aes): New Reservation.
452 (thunderx2t99_sha): New Reservation.
454 2017-04-25 Julian Brown <julian@codesourcery.com>
455 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
457 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Fix
458 type for 1-element load.
460 2017-04-24 Marc Glisse <marc.glisse@inria.fr>
462 * match.pd (X/[ex]C CMP Y/[ex]C): New transformation.
464 2017-04-24 Martin Jambor <mjambor@suse.cz>
466 PR tree-optimization/80293
467 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
468 char arrays not totally scalarizable if it is false.
469 (analyze_all_variable_accesses): Pass correct value in the new
470 parameter. Add a statistics counter.
472 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
475 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
477 2017-04-24 Richard Biener <rguenther@suse.de>
479 PR tree-optimization/80494
480 * tree-scalar-evolution.c (analyze_scalar_evolution_1): Bail
481 out for complex types.
483 2017-04-24 Richard Biener <rguenther@suse.de>
485 * tree-ssa-sccvn.h (run_scc_vn): Adjust prototype.
486 * tree-ssa-sccvn.c (print_scc): Print SCC size.
487 (extract_and_process_scc_for_name): Never fail but drop SCC to varying.
488 (DFS): Adjust and never fail.
489 (sccvn_dom_walker::fail): Remove.
490 (sccvn_dom_walker::before_dom_children): Adjust.
491 (run_scc_vn): Likewise and never fail.
492 * tree-ssa-pre.c (pass_pre::execute): Adjust.
493 (pass_fre::execute): Likewise.
495 2017-04-24 Richard Biener <rguenther@suse.de>
497 PR tree-optimization/79725
498 * tree-ssa-sink.c (statement_sink_location): Return whether
499 failure reason was zero uses. Move that check later.
500 (sink_code_in_bb): Deal with zero uses by removing the stmt
503 2017-04-24 Richard Biener <rguenther@suse.de>
506 * tree-ssa-uninit.c (warn_uninitialized_vars): Handle some
507 pointer-based references.
509 2017-04-24 Richard Biener <rguenther@suse.de>
512 * pass_manager.h (pass_manager::operator new): Remove.
513 (pass_manager::operator delete): Likewise.
514 * passes.c (pass_manager::operator new): Remove.
515 (pass_manager::operator delete): Likewise.
516 (pass_manager::pass_manager): Zero individual pass members.
518 2017-04-23 Uros Bizjak <ubizjak@gmail.com>
521 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p)
522 <case ASHIFT, case LSHIFTRT>: Also consider variable shifts.
523 Check "XEXP (src, 1)" operand here.
524 <case PLUS, case MINUS, case IOR, case XOR, case AND>:
525 Check "XEXP (src, 1)" operand here.
526 (dimode_scalar_chain::make_vector_copies): Detect count register
527 of a shift instruction. Zero extend count register from QImode
528 to DImode to satisfy vector shift pattern count operand predicate.
529 Substitute vector shift count operand with a DImode copy.
530 (dimode_scalar_chain::convert_reg): Ditto, zero-extend from
533 2017-04-21 Uros Bizjak <ubizjak@gmail.com>
535 * config/i386/i386.md (*extzvqi_mem_rex64): Move above *extzv<mode>.
536 Remove UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
537 (*insvqi_1_mem_rex64): Move above insv<mode>_1. Remove
538 UNSPEC_NOREX_MEM tag. Update corresponding peephole2 pattern.
539 (UNSPEC_NOREX_MEM): Remove definition.
541 2017-04-21 Richard Biener <rguenther@suse.de>
543 PR tree-optimization/79547
544 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
545 Handle strlen, strcmp, strncmp, strcasecmp, strncasecmp, memcmp,
546 bcmp, strspn, strcspn, __builtin_object_size and __builtin_constant_p
547 without any constraints.
549 2017-04-21 Richard Biener <rguenther@suse.de>
551 PR tree-optimization/78847
552 * fold-const.c (split_tree): Handle POINTER_PLUS_EXPR.
554 2017-04-21 Richard Biener <rguenther@suse.de>
556 * tree.h (build_qualified_type): Annotate with CXX_MEM_STAT_INFO.
557 (build_distinct_type_copy): Likewise.
558 (build_variant_type_copy): Likewise.
559 * tree.c (build_qualified_type): Pass down mem-stat info.
560 (build_distinct_type_copy): Likewise.
561 (build_variant_type_copy): Likewise.
563 2017-04-21 Richard Biener <rguenther@suse.de>
565 PR tree-optimization/80237
566 * tree-ssa-pre.c (find_leader_in_sets): Add third set argument,
568 (phi_translate_1): Also allow a leader in AVAIL_OUT of pred
569 for a simplified result.
571 2016-04-21 Richard Biener <rguenther@suse.de>
573 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Do not require
574 sth as strict as a simple_iv but a chrec without symbols and an
575 operand defined in the loop we are peeling (and not some subloop).
576 (propagate_constants_for_unrolling): Propagate all constants.
578 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
581 * config/i386/i386.c (print_reg): Remove assert for disalowed
582 regno values, call output_operand_lossage instead.
584 2017-04-20 Uros Bizjak <ubizjak@gmail.com>
587 * config/i386/constraints.md (Yc): New register constraint.
588 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed):
589 Use Yc constraint for alternative 2 of operand 0. Remove
590 preferred_for_speed attribute.
592 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
594 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear and
595 lastprivate clauses in SIMT case.
597 2017-04-20 Volker Reichelt <v.reichelt@netcologne.de>
599 * doc/invoke.texi (-Wextra-semi): Document new warning option.
601 2017-04-20 Richard Biener <rguenther@suse.de>
603 PR tree-optimization/57796
604 * tree-vect-stmts.c (vect_model_store_cost): Cost scatters
606 (vect_model_load_cost): Cost gathers as N scalar loads.
608 2017-04-20 Richard Biener <rguenther@suse.de>
610 * ggc-page.c (ggc_allocated_p): Rename to ...
611 (safe_lookup_page_table_entry): ... this and return the lookup
613 (gt_ggc_m_S): Use safe_lookup_page_table_entry.
615 2017-04-20 Richard Biener <rguenther@suse.de>
617 PR tree-optimization/80453
618 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
619 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
621 (vn_phi_eq): Pass them down.
622 (vn_phi_lookup): Record them.
623 (vn_phi_insert): Likewise.
625 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
627 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
628 uninitialized variable warning to avoid buffer overrun.
630 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
633 * doc/invoke.texi (-Wmissing-field-initializers): Mention that warning
634 is suppressed for '{ 0 }' in C.
636 2017-04-20 Jakub Jelinek <jakub@redhat.com>
638 * BASE-VER: Set to 8.0.0.
640 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
642 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
643 priority .init_array and .fini_array section with SECTION_NOTYPE
646 2017-04-20 Jakub Jelinek <jakub@redhat.com>
649 * tree.h (build_array_type): Add typeless_storage default argument.
650 * tree.c (type_cache_hasher::equal): Also compare
651 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
652 (build_array_type): Add typeless_storage argument, set
653 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
655 (build_nonshared_array_type): Adjust build_array_type_1 caller.
656 (build_array_type): Likewise. Add typeless_storage argument.
658 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
659 Jakub Jelinek <jakub@redhat.com>
661 PR tree-optimization/80426
662 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
663 operation on symbolic operands, also compute the overflow for the
664 invariant part when the operation degenerates into a negation.
666 2017-04-19 Jakub Jelinek <jakub@redhat.com>
669 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
670 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
673 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
675 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
678 * config/avr/avr.c (tree.h): Include it.
679 (cgraph.h): Include it.
680 (avr_encode_section_info): Don't warn for uninitialized progmem
681 variable if it's just an alias.
683 2017-04-19 Richard Biener <rguenther@suse.de>
686 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
687 when needed by AutoPGO.
689 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
692 * doc/lto.texi: Remove an extra 'that'.
694 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
696 PR rtl-optimization/80429
697 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
698 are only used in debug insns.
700 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
701 Vladimir Makarov <vmakarov@redhat.com>
703 * config/sparc/predicates.md (input_operand): Add comment. Return
704 true for any memory operand when LRA is in progress.
705 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
707 2017-04-18 Jeff Law <law@redhat.com>
710 * mips.md ({return,simple_return}_internal): Do not overwrite
713 2017-04-18 Jakub Jelinek <jakub@redhat.com>
715 PR tree-optimization/80443
716 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
717 instead of adding 1, subtract -1 and similarly instead of subtracting
720 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
722 PR rtl-optimization/80357
723 * haifa-sched.c (tmp_bitmap): New variable.
724 (model_recompute): Handle duplicate use records.
725 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
726 (free_global_sched_pressure_data): Free it.
728 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
731 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
732 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
733 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
734 instead of SYSTEM_HEADER_DIR.
736 2017-04-18 Jeff Law <law@redhat.com>
739 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
740 predecessors after walking up the insn chain.
742 2017-04-18 Jakub Jelinek <jakub@redhat.com>
745 * dwarf2out.c (modified_type_die): Try harder not to emit internal
746 sizetype type into debug info.
748 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
751 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
752 unneeded test for TARGET_UPPER_REGS_SF.
753 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
755 2017-04-18 Jakub Jelinek <jakub@redhat.com>
758 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
759 instead of gsi_after_labels.
761 2017-04-18 Jeff Law <law@redhat.com>
763 * regcprop.c (maybe_mode_change): Avoid creating copies of the
767 2017-04-13 Jeff Law <law@redhat.com>
768 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
769 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
771 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
774 * config/avr/avr.c (intl.h): Include it.
775 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
777 2017-04-18 Martin Liska <mliska@suse.cz>
779 PR gcov-profile/78783
780 * gcov-tool.c (gcov_output_files): Validate that destination
781 file is either removed by the tool or by a user.
783 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
784 Guy Benyei <guybe@mellanox.com>
786 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
787 block, and do not negate it, the stored id is already negative.
789 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
791 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
793 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
796 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
797 masks of options that should be turned off if the VSX vector
798 options are turned off.
799 (OTHER_P8_VECTOR_MASKS): Likewise.
800 (OTHER_VSX_VECTOR_MASKS): Likewise.
801 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
802 rs6000_disable_incompatible_switches to validate no type switches
804 (rs6000_incompatible_switch): New function to disallow turning on
805 other vector options if -mno-vsx, -mno-power8-vector, or
806 -mno-power9-vector are specified.
808 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
810 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
812 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
814 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
815 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
816 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
817 (ARG_POINTER_CFA_OFFSET): Likewise.
819 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
821 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
822 conditions to take advantage of various optimizations.
824 2017-04-13 Jeff Law <law@redhat.com>
826 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
827 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
828 (zero_extendsidi2_dext): Likewise.
830 2017-04-13 Jakub Jelinek <jakub@redhat.com>
833 * fold-const.c (fold_ternary_loc): Revert
834 use op0 instead of fold_convert_loc (loc, type, arg0) part of
837 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
839 PR rtl-optimization/80343
840 * lra-remat.c (update_scratch_ops): Assign original hard reg to
843 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
846 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
847 to ubsan_encode_value.
849 2017-04-13 Jeff Law <law@redhat.com>
851 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
852 appearing in DEBUG_INSNs.
854 2017-04-13 Martin Liska <mliska@suse.cz>
856 PR gcov-profile/80413
857 * gcov-io.c (gcov_write_string): Copy to buffer just when
858 allocated size is greater than zero.
860 2017-04-13 Jakub Jelinek <jakub@redhat.com>
863 * dwarf2out.c (decls_for_scope): Ignore declarations of
864 current_function_decl in BLOCK_NONLOCALIZED_VARS.
866 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
869 * ipa-visibility.c (non_local_p): Fix typos.
870 (localize_node): When localizing symbol in same comdat group,
871 dissolve the group only when we know external symbols are going
873 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
875 2017-04-12 Jakub Jelinek <jakub@redhat.com>
877 PR tree-optimization/79390
878 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
879 order does not result in usable sequence, retry with reversed operand
885 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
886 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
887 op0 instead of fold_convert_loc (loc, type, arg0).
889 2017-04-12 Jeff Law <law@redhat.com>
891 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
892 has a delay slot in the generated code.
894 * config/cris/cris.md (cris_preferred_reload_class): Return
895 GENNONACR_REGS rather than GENERAL_REGS.
897 2017-04-12 Jakub Jelinek <jakub@redhat.com>
900 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
901 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
902 signedness of the result type.
904 2017-04-12 Richard Biener <rguenther@suse.de>
905 Jeff Law <law@redhat.com>
907 PR tree-optimization/80359
908 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
909 trim stores to TARGET_MEM_REFs.
911 2017-04-12 Richard Biener <rguenther@suse.de>
913 PR tree-optimization/79390
914 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
915 threading case even more.
917 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
920 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
921 for quad_address_p for TImode, instead of just not indexed_address.
923 2017-04-12 Richard Biener <rguenther@suse.de>
924 Bernd Edlinger <bernd.edlinger@hotmail.de>
927 * alias.c (component_uses_parent_alias_set_from): Handle
928 TYPE_TYPELESS_STORAGE.
929 (get_alias_set): Likewise.
930 * tree-core.h (tree_type_common): Add typeless_storage flag.
931 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
932 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
933 for types containing members with TYPE_TYPELESS_STORAGE.
934 (place_field): Likewise.
935 (layout_type): Likewise for ARRAY_TYPE.
936 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
937 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
938 TYPE_TYPELESS_STORAGE.
939 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
941 2017-04-12 Jakub Jelinek <jakub@redhat.com>
944 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
945 first argument to type.
947 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
951 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
952 CONST0_RTX (mode) rather than const0_rtx where appropriate.
953 (rs6000_expand_binop_builtin): Likewise.
954 (rs6000_expand_ternop_builtin): Likewise; also add missing
955 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
957 * doc/extend.texi: Document that vec_xxpermdi's third argument
960 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
962 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
963 Use shift_const cost parameter when calculating gain of STV shifts.
965 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
967 PR rtl-optimization/70478
968 * lra-constraints.c (process_alt_operands): Check memory for
969 disfavoring memory insn operand.
971 2017-04-11 Jakub Jelinek <jakub@redhat.com>
974 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
975 left shift in unsigned HOST_WIDE_INT type.
977 PR rtl-optimization/80385
978 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
979 (not (neg X)) into (plus X -1) for complex or non-integral modes.
982 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
983 if they have any depend clauses.
985 2017-04-11 Martin Liska <mliska@suse.cz>
988 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
989 * ipa-split.c (split_function): Create a local comdat symbol
990 if caller is in a comdat group.
992 2017-04-11 Martin Liska <mliska@suse.cz>
995 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
998 2017-04-11 Martin Sebor <msebor@redhat.com>
1001 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
1002 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
1004 (directive::set_width, directive::set_precision, format_character):
1006 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
1009 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
1012 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
1013 conflict, set target->arch_name instead of target->cpu_name.
1015 2017-04-11 Richard Biener <rguenther@suse.de>
1017 PR tree-optimization/80374
1018 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
1019 build_zero_cst, remove fold_convertible_p check again.
1021 2017-04-11 Martin Liska <mliska@suse.cz>
1024 * ubsan.c (instrument_object_size): Do not instrument register
1027 2017-04-11 Jakub Jelinek <jakub@redhat.com>
1030 * config/i386/i386-builtin-types.def
1031 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
1032 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
1033 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
1034 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
1035 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
1036 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
1037 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
1038 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
1039 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
1040 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
1041 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
1042 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
1043 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
1044 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
1045 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
1046 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
1047 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
1048 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
1049 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
1050 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
1051 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
1052 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
1053 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
1054 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
1055 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
1056 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
1057 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
1058 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
1059 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
1060 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
1061 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
1062 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
1063 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
1064 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
1065 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
1066 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
1067 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
1068 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
1069 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
1070 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
1071 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
1072 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
1073 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
1074 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
1075 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
1076 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
1078 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
1079 flag to second_arg_count, handle 4 argument function type _COUNT
1080 aliases, handle second_arg_count on second argument rather than last.
1082 2017-04-10 Jeff Law <law@redhat.com>
1084 PR tree-optimization/80374
1085 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
1086 record anything if we can not convert integer_zero_node to the
1089 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
1092 * config/rs6000/rs6000.c (rs6000_option_override_internal):
1093 Enhance special handling given to the TARGET_P9_MINMAX option in
1094 relation to certain other options.
1096 2017-04-10 Bin Cheng <bin.cheng@arm.com>
1098 PR tree-optimization/80153
1099 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
1100 remove POINTER_PLUS_EXPR's base part directly, rather than through
1103 2017-04-10 Richard Biener <rguenther@suse.de>
1104 Bin Cheng <bin.cheng@arm.com>
1106 PR tree-optimization/80153
1107 * tree-affine.c (aff_combination_to_tree): Get base pointer from
1108 the first element of pointer type aff_tree. Build result expr in
1110 (add_elt_to_tree): Convert to type unconditionally. Remove other
1112 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
1113 (rewrite_use_nonlinear_expr): Check invariant using iv information.
1115 2017-04-10 Richard Biener <rguenther@suse.de>
1117 * tree-ssa-structalias.c (find_func_aliases): Properly handle
1120 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
1122 PR rtl-optimization/70478
1123 * lra-constraints.c (curr_small_class_check): New.
1124 (update_and_check_small_class_inputs): New.
1125 (process_alt_operands): Update curr_small_class_check. Disfavor
1126 alternative insn memory operands. Check available regs for small
1129 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
1132 * config/mips/mips.opt (-mvirt): Update description.
1133 * doc/invoke.texi (-mvirt): Likewise.
1135 2017-04-10 Richard Biener <rguenther@suse.de>
1138 * fold-const.c (fold_binary_loc): Look at unstripped ops when
1139 looking for NEGATE_EXPR in -A / -B to A / B folding.
1141 2017-04-10 Martin Liska <mliska@suse.cz>
1143 PR gcov-profile/80224
1144 * gcov.c (print_usage): Fix usage string.
1145 (get_gcov_intermediate_filename): Remove.
1146 (output_gcov_file): Use both for normal and intermediate format.
1147 (generate_results): Do not initialize special file for
1148 intermediate format.
1150 2017-04-10 Richard Biener <rguenther@suse.de>
1152 PR tree-optimization/80304
1153 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
1156 2017-04-10 Nathan Sidwell <nathan@acm.org>
1159 * config/rs6000/rs6000.c (rs6000_vector_type): New.
1160 (rs6000_init_builtins): Use it.
1162 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1164 * config/arm/arm.md (<mrc>): Add mode to SET source.
1167 2017-04-10 Richard Biener <rguenther@suse.de>
1170 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
1172 2017-04-10 Jakub Jelinek <jakub@redhat.com>
1175 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
1176 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
1177 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
1178 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
1179 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
1180 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
1181 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
1182 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
1183 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
1184 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
1185 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
1186 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
1187 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
1188 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
1189 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
1190 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
1191 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
1192 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
1193 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
1194 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
1195 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
1196 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
1197 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
1199 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
1201 PR rtl-optimization/70478
1202 * lra-constraints.c: Reverse the last patch.
1204 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
1206 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
1207 Add comment for WCHAR_T.
1209 2017-04-08 Martin Liska <mliska@suse.cz>
1212 2017-04-07 Martin Liska <mliska@suse.cz>
1215 * ipa-split.c (split_function): Add function part to a same comdat
1218 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1221 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
1223 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
1225 * rs6000/rs6000.c (vec_load_pendulum): Rename...
1226 (vec_pairing): ...to this.
1227 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
1228 (rs6000_sched_init): Adjust for name change.
1229 (struct rs6000_sched_context): Likewise.
1230 (rs6000_init_sched_context): Likewise.
1231 (rs6000_set_sched_context): Likewise.
1233 2017-04-07 Jakub Jelinek <jakub@redhat.com>
1239 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
1241 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
1242 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
1243 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
1245 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
1247 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
1249 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
1251 PR rtl-optimization/70703
1252 * ira-color.c (update_conflict_hard_regno_costs): Use
1253 int64_t instead of HOST_WIDE_INT.
1255 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
1257 PR rtl-optimization/70478
1258 * lra-constraints.c (process_alt_operands): Disfavor alternative
1259 insn memory operands.
1261 2017-04-07 Jeff Law <law@redhat.com>
1263 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
1264 CALL and NOTE_INSN_CALL_ARG_LOCATION.
1266 2017-04-07 Martin Liska <mliska@suse.cz>
1269 * config/aarch64/aarch64.c (aarch64_process_target_attr):
1270 Show error message instead of an ICE.
1272 2017-04-07 Martin Liska <mliska@suse.cz>
1275 * ipa-split.c (split_function): Add function part to a same comdat
1278 2017-04-07 Richard Biener <rguenther@suse.de>
1281 * tree.c (get_unwidened): Also handle ! for_type case for
1283 * convert.c (do_narrow): Split out from ...
1284 (convert_to_integer_1): ... here. Do not pass final truncation
1285 type to get_unwidened for TRUNC_DIV_EXPR.
1287 2017-04-07 Richard Biener <rguenther@suse.de>
1289 * tree-affine.c (wide_int_ext_for_comb): Take type rather
1291 (aff_combination_const): Adjust.
1292 (aff_combination_scale): Likewise.
1293 (aff_combination_add_elt): Likewise.
1294 (aff_combination_add_cst): Likewise.
1295 (aff_combination_convert): Likewise.
1296 (add_elt_to_tree): Likewise. Remove unused argument.
1297 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
1299 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
1301 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
1303 * config/arm/arm.c (arm_default_short_enums): Use
1304 ARM_DEFAULT_SHORT_ENUMS.
1305 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
1307 2017-04-06 Jakub Jelinek <jakub@redhat.com>
1310 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
1311 members with redundant out-of-class redeclaration.
1313 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
1316 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
1317 * config/i386/i386.md (*zero_extendsidi2):
1318 Add (?*x,*x) and (?*v,*v) alternatives.
1320 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
1323 * config/i386/i386.c (ix86_expand_builtin)
1324 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
1325 mode from insn data. Convert operands to insn operand mode.
1326 Copy operands that don't satisfy insn predicate to a register.
1328 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
1330 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
1333 2017-04-06 Richard Biener <rguenther@suse.de>
1335 PR tree-optimization/80334
1336 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
1337 preserve alignment of accesses.
1339 2017-04-06 Richard Biener <rguenther@suse.de>
1341 PR tree-optimization/80262
1342 * tree-sra.c (build_ref_for_offset): Preserve address-space
1344 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
1345 Drop useless address-space information on MEM_REF offsets.
1347 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
1349 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
1351 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
1353 PR rtl-optimization/70703
1354 * ira-color.c (update_conflict_hard_regno_costs): Use
1355 HOST_WIDE_INT instead of long.
1357 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
1360 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
1361 not defined for x86_64 target. Add -mmmx target option when __SSE2__
1363 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
1364 for x86_64 target. Handle -m3dnowa option.
1366 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
1368 PR rtl-optimization/70703
1369 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
1370 (update_conflict_hard_regno_costs): Use long instead of unsigned
1371 arithmetic for cost calculation.
1373 2017-04-05 Jakub Jelinek <jakub@redhat.com>
1374 Bernd Edlinger <bernd.edlinger@hotmail.de>
1377 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
1380 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
1383 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
1384 ptr_mode with Pmode throughout.
1385 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
1386 into probe_stack_range and use DImode.
1388 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
1391 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
1392 call_eh_return is true.
1394 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1396 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
1397 Initialize last_match_fntype_index.
1399 2017-04-05 Jakub Jelinek <jakub@redhat.com>
1402 * tree-nvr.c: Include internal-fn.h.
1403 (pass_return_slot::execute): Ignore internal calls without
1406 2017-04-04 Jakub Jelinek <jakub@redhat.com>
1407 Richard Biener <rguenther@suse.de>
1410 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
1411 captures used multiple times, except for the last use.
1412 * generic-match-head.c: Include gimplify.h.
1414 2017-04-04 Jakub Jelinek <jakub@redhat.com>
1416 PR tree-optimization/79390
1417 * target.h (struct noce_if_info): Declare.
1418 * targhooks.h (default_noce_conversion_profitable_p): Declare.
1419 * target.def (noce_conversion_profitable_p): New target hook.
1420 * ifcvt.h (struct noce_if_info): New type, moved from ...
1421 * ifcvt.c (struct noce_if_info): ... here.
1422 (noce_conversion_profitable_p): Renamed to ...
1423 (default_noce_conversion_profitable_p): ... this. No longer
1425 (noce_try_store_flag_constants, noce_try_addcc,
1426 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
1427 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
1428 instead of noce_conversion_profitable_p.
1429 * config/i386/i386.c: Include ifcvt.h.
1430 (ix86_option_override_internal): Don't override
1431 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
1432 (ix86_noce_conversion_profitable_p): New function.
1433 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
1434 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
1435 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
1436 * doc/tm.texi: Regenerated.
1438 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1440 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
1443 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
1446 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
1447 instructions for small multiply cores.
1449 2017-04-04 Jeff Law <law@redhat.com>
1451 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
1453 (mips_expand_vec_perm_const): Initialize elements in orig_perm
1454 that are not set by the loop over the elements.
1456 2017-04-04 Jakub Jelinek <jakub@redhat.com>
1459 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
1460 int mode, convert_modes it to mode as unsigned, otherwise use
1461 lowpart_subreg to mode rather than SImode.
1462 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
1463 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
1464 Use DImode instead of SImode for the shift count operand.
1465 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
1468 2017-04-04 Richard Biener <rguenther@suse.de>
1471 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
1472 arithmetic done for the negate or the plus. Simplify.
1473 (A - (-B) -> A + B): Likewise.
1474 * fold-const.c (split_tree): Make sure to not negate pointers.
1476 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
1478 PR rtl-optimization/60818
1479 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
1480 a compare of comparisons with the thing compared if this results
1481 in a different machine mode.
1483 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
1485 * alias.c (base_alias_check): Fix typo in comment.
1486 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
1487 * cgraphunit.c (symbol_table::compile): Likewise.
1488 * collect2.c (maybe_run_lto_and_relink): Likewise.
1489 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
1490 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
1491 * config/avr/avr.c (avr_map_op_t): Likewise.
1492 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
1493 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
1494 * config/epiphany/epiphany.md (movcc): Likewise.
1495 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
1496 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
1498 * config/mips/mips.c (mips_save_restore_reg): Likewise.
1499 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
1500 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
1501 * config/sh/sh.c (sh_rtx_costs): Likewise.
1502 * fold-const.c (fold_truth_andor): Likewise.
1503 * genautomata.c (collapse_flag): Likewise.
1504 * gengtype.h (struct type::u::s): Likewise.
1505 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
1506 * input.c (FORMAT_AMOUNT): Likewise.
1507 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
1508 (known_aggs_to_agg_replacement_list): Likewise.
1509 * ipa-inline-analysis.c: Likewise.
1510 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
1511 * ipa-polymorphic-call.c
1512 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
1513 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
1514 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
1516 * modulo-sched.c (apply_reg_moves): Likewise.
1517 * omp-expand.c (build_omp_regions_1): Likewise.
1518 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
1519 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
1520 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
1521 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
1522 * value-prof.c: Likewise.
1523 * var-tracking.c (val_reset): Likewise.
1525 2017-04-03 Richard Biener <rguenther@suse.de>
1527 PR tree-optimization/80275
1528 * fold-const.c (split_address_to_core_and_offset): Handle
1531 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
1533 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
1534 descriptors is at least equal to that of functions.
1536 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
1538 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
1540 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
1543 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
1544 (mov<IMOD4:mode>): New expander.
1545 (*mov<IMOD4:mode>_internal): New insn and split pattern.
1547 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
1549 PR rtl-optimization/79405
1550 * fwprop.c (propagations_left): New variable.
1551 (forward_propagate_into): Decrement it.
1552 (fwprop_init): Initialize it.
1553 (fw_prop): If the variable has reached zero, stop propagating.
1554 (fwprop_addr): Ditto.
1556 2017-03-31 Jakub Jelinek <jakub@redhat.com>
1559 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
1560 a FUNCTION_DECL, pass it as decl instead of origin to
1563 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
1565 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
1568 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
1571 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
1572 TARGET_VSX_SMALL_INTEGER.
1574 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1576 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
1577 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
1579 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
1581 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
1582 extraction from odd-numbered MSA register.
1584 2017-03-31 Jakub Jelinek <jakub@redhat.com>
1587 * expmed.c (store_bit_field_1): Don't attempt to create
1588 a word subreg out of hard registers wider than word if they
1589 have HARD_REGNO_NREGS of 1 for their mode.
1592 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
1593 conversions to integer types wider than word and pointer.
1596 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
1597 (rtx_equal_for_cselib_p): Pass 0 to it.
1598 * cselib.c (cselib_hasher::equal): Likewise.
1599 (rtx_equal_for_cselib_1): Add depth argument. If depth
1600 is 128, don't look up VALUE locs and punt. Increment
1601 depth in recursive calls when walking VALUE locs.
1603 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
1605 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
1606 (make_gcov_file_name): Use the canonical path name for generating
1608 (read_line): Fix handling of files with ascii null bytes.
1610 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
1612 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
1613 to initialise a vector register instead
1614 of using a const_int.
1616 2017-03-30 Jakub Jelinek <jakub@redhat.com>
1618 PR translation/80189
1619 * gimplify.c (omp_default_clause): Use %qs instead of %s in
1620 diagnostic messages.
1622 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
1625 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
1626 (dfp_diex_<mode>): Update mode of operand 1.
1627 * doc/extend.texi (dxex, dxexq): Document change to return type.
1628 (diex, diexq): Document change to argument type.
1630 2017-03-30 Martin Jambor <mjambor@suse.cz>
1633 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
1634 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
1635 it reflects the signature changes performed at the callee side.
1636 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
1637 to cgraph_build_function_type_skip_args.
1638 (build_function_decl_skip_args): Adjust call to the above function.
1640 2017-03-30 Jakub Jelinek <jakub@redhat.com>
1643 * config/i386/sse.md
1644 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
1645 register as dest whenever it is a MEM not rtx_equal_p to the
1646 corresponding dup operand, and when forcing into reg move the
1647 reg into the memory afterwards.
1648 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
1649 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
1650 for the force_reg mode.
1651 (avx512vl_vextractf128<mode>): Use register as dest either
1652 always when a MEM, or when it is a MEM not rtx_equal_p to the
1653 corresponding dup operand, or even not when it is a CONST_VECTOR
1654 depending on the mode and lo vs. hi.
1655 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
1657 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
1658 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
1659 Likewise. Require that operands[2] is even.
1660 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
1661 Remove extraneous parens. Require that operands[2] is a multiple
1663 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
1664 operands[0] is a MEM if <mask_applied>, the predicates/constraints
1665 disallow memory then.
1667 2017-03-30 Richard Biener <rguenther@suse.de>
1669 PR tree-optimization/77498
1670 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
1671 to non-constants over backedges.
1673 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
1675 PR rtl-optimization/80233
1676 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
1677 as last_combined_insn. Do not test for BARRIER_P separately.
1679 2017-03-29 Andreas Schwab <schwab@suse.de>
1682 * calls.c (prepare_call_address): Convert funexp to Pmode before
1683 copying to temp reg.
1685 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1687 PR tree-optimization/80158
1688 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
1689 Handle possible future case of more than one alternate
1691 (replace_rhs_if_not_dup): Likewise.
1692 (replace_one_candidate): Likewise.
1694 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
1696 PR rtl-optimization/80193
1697 * ira.c (ira): Do not check allocation for LRA.
1699 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
1701 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
1702 (nvptx_output_simt_exit): Declare.
1703 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
1704 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
1705 (init_softstack_frame): Move initialization of crtl->is_leaf to...
1706 (nvptx_declare_function_name): ...here. Emit declaration of local
1707 memory space buffer for omp_simt_enter insn.
1708 (nvptx_output_unisimt_switch): New.
1709 (nvptx_output_softstack_switch): New.
1710 (nvptx_output_simt_enter): New.
1711 (nvptx_output_simt_exit): New.
1712 * config/nvptx/nvptx.h (struct machine_function): New fields
1713 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
1714 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
1715 (UNSPECV_SIMT_EXIT): Ditto.
1716 (omp_simt_enter_insn): New insn.
1717 (omp_simt_enter): New expansion.
1718 (omp_simt_exit): New insn.
1719 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
1721 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
1722 (expand_GOMP_SIMT_ENTER_ALLOC): New.
1723 (expand_GOMP_SIMT_EXIT): New.
1724 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
1725 (GOMP_SIMT_ENTER_ALLOC): Ditto.
1726 (GOMP_SIMT_EXIT): Ditto.
1727 * target-insns.def (omp_simt_enter): New insn.
1728 (omp_simt_exit): Ditto.
1729 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
1731 (lower_rec_simd_input_clauses): Implement SIMT privatization.
1732 (lower_rec_input_clauses): Likewise.
1733 (lower_lastprivate_clauses): Handle SIMT privatization.
1735 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
1736 (ompdevlow_adjust_simt_enter): New.
1737 (find_simtpriv_var_op): New.
1738 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
1739 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
1741 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
1742 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
1743 (copy_decl_for_dup_finish): Ditto.
1745 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
1747 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
1750 * config/i386/i386.c (ix86_option_override_internal): Always
1751 allow -mpreferred-stack-boundary=3 for 64-bit targets.
1753 2017-03-28 Bin Cheng <bin.cheng@arm.com>
1755 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
1757 2017-03-28 Bin Cheng <bin.cheng@arm.com>
1759 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
1760 mark new edge's irreducible flag accordign to it.
1761 (vect_do_peeling): Check loop preheader edge's irreducible flag
1762 and pass it to function slpeel_add_loop_guard.
1764 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
1766 PR tree-optimization/80218
1767 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
1768 Update block frequencies and counts.
1770 2017-03-28 Richard Biener <rguenther@suse.de>
1772 PR tree-optimization/78644
1773 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
1774 of a simplification result we may not use it at all.
1776 2017-03-28 Richard Biener <rguenther@suse.de>
1779 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
1780 without arguments, generate default definition of a SSA name.
1782 2017-03-28 Richard Biener <rguenther@suse.de>
1785 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
1786 TYPE_REF_CAN_ALIAS_ALL references.
1787 * fold-const.c (fold_indirect_ref_1): Likewise.
1789 2017-03-28 Martin Liska <mliska@suse.cz>
1792 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
1793 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
1795 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
1796 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
1798 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
1799 (EXTRA_SPECS): Define.
1800 (SUBTARGET_EXTRA_SPECS): Likewise.
1801 (SUBTARGET_CPP_SPEC): Likewise.
1802 * config/arc/elf.h (EXTRA_SPECS): Renamed to
1803 SUBTARGET_EXTRA_SPECS.
1804 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
1806 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
1808 * config/arc/simdext.md (vst64_insn): Update pattern.
1809 (vld32wh_insn): Likewise.
1810 (vld32wl_insn): Likewise.
1811 (vld64_insn): Likewise.
1812 (vld32_insn): Likewise.
1814 2017-03-28 Marek Polacek <polacek@redhat.com>
1817 * fold-const.c (fold_comparison): Use protected_set_expr_location
1818 instead of SET_EXPR_LOCATION.
1820 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
1822 * tree.c (add_expr): Avoid name lookup warning.
1824 2017-03-27 Jeff Law <law@redhat.com>
1826 PR tree-optimization/80216
1827 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
1828 function name. Limit recursion depth.
1829 (record_temporary_equivalences): Corresponding changes.
1831 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
1833 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
1836 2017-03-27 Jakub Jelinek <jakub@redhat.com>
1839 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
1841 * cfgcleanup.c (reg_note_cfa_p): New array.
1842 (insns_have_identical_cfa_notes): New function.
1843 (old_insns_match_p): Don't cross-jump in between /f
1844 and non-/f instructions. If both i1 and i2 are frame related,
1845 verify all CFA notes, their order and content.
1847 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
1850 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
1851 HImode and SImode with zero extend to DImode to one insn.
1852 (bswap<mode>2_extenddi): Likewise.
1853 (bswapsi2_extenddi): Likewise.
1854 (bswaphi2_extendsi): Likewise.
1855 (bswaphi2): Combine bswap HImode and SImode into one insn.
1856 Separate memory insns from swapping register.
1857 (bswapsi2): Likewise.
1858 (bswap<mode>2): Likewise.
1859 (bswaphi2_internal): Delete, no longer used.
1860 (bswapsi2_internal): Likewise.
1861 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
1862 store, and gpr<-gpr swap insns.
1863 (bswap<mode>2_store): Likewise.
1864 (bswaphi2_reg): Register only splitter, combine with the splitter.
1865 (bswaphi2 splitter): Likewise.
1866 (bswapsi2_reg): Likewise.
1867 (bswapsi2 splitter): Likewise.
1868 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
1869 the insns into load, store, and register/register insns.
1870 (bswapdi2_ldbrx): Likewise.
1871 (bswapdi2_load): Likewise.
1872 (bswapdi2_store): Likewise.
1873 (bswapdi2_reg): Likewise.
1875 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
1877 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
1878 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
1880 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
1883 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
1885 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
1886 special handling for target option conflicts between dform
1887 options (-mpower9-dform, -mpower9-dform-vector,
1888 -mpower9-dform-scalar) and -mno-direct-move.
1890 2017-03-27 Richard Biener <rguenther@suse.de>
1892 PR tree-optimization/80181
1893 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
1895 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
1897 * config/arc/predicates.md (move_double_src_operand): Replace the
1898 call to move_double_src_operand with a call to address_operand.
1900 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
1902 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
1903 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
1904 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
1906 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
1908 * config/arc/predicates.md (long_immediate_loadstore_operand):
1909 Consider scaled addresses cases.
1911 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
1913 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
1914 restored when in interrupt.
1915 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
1916 doesn't have delay slot.
1918 2017-03-27 Richard Biener <rguenther@suse.de>
1921 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
1922 inlined thunk clones.
1924 2017-03-27 Jakub Jelinek <jakub@redhat.com>
1927 * asan.c (instrument_derefs): Copy over last operand from
1928 original COMPONENT_REF to the new COMPONENT_REF with
1929 DECL_BIT_FIELD_REPRESENTATIVE.
1930 * ubsan.c (instrument_object_size): Likewise.
1932 2017-03-27 Richard Biener <rguenther@suse.de>
1934 PR tree-optimization/80170
1935 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
1936 sure DR/SCEV didnt fold in constants we do not see when looking
1937 at the reference base alignment.
1939 2017-03-27 Richard Biener <rguenther@suse.de>
1942 * gimple-fold.c (fold_ctor_reference): Properly guard against
1943 NULL return value from canonicalize_constructor_val.
1945 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
1948 * config/i386/i386.c (ix86_expand_builtin)
1949 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
1950 flags reg setting and flags reg using instructions.
1951 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
1952 clobbering instructions to zero extend op2.
1954 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
1956 * doc/install.texi (Configuration) <--with-aix-soname>:
1957 Update link to AIX ld.
1959 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
1961 PR rtl-optimization/80160
1962 PR rtl-optimization/80159
1963 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
1964 reg_alternate_class into account.
1966 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
1969 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
1970 to consider in curr_insn_transform.
1972 2017-03-24 Jakub Jelinek <jakub@redhat.com>
1974 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
1975 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
1976 and emit_mode_inner.
1978 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1980 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
1981 argument to the overloaded builtin variants. Use the new flag to
1982 deprecate certain builtin variants.
1983 * config/s390/s390-builtin-types.def: Add new builtin types.
1984 * config/s390/s390-builtins.h: Support new flags field for
1985 overloaded builtins.
1986 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
1987 (s390_macro_to_expand): Enable vector float data type.
1988 (s390_cpu_cpp_builtins_internal): Indicate support of the new
1989 builtins by incrementing the __VEC__ version number.
1990 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
1992 (s390_resolve_overloaded_builtin): Emit error messages depending
1993 on the builtin flags.
1994 * config/s390/s390.c (s390_expand_builtin): Support additional
1995 flags argument. Change error message to match the messages
1996 emitted in s390-c.c.
1997 * config/s390/s390.md: New UNSPEC_* constants.
1998 (op_type): Add new instruction types.
1999 * config/s390/vecintrin.h: Add new builtins and test data class
2001 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
2002 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
2003 (VEC_INEXACT, VEC_NOINEXACT): New constants.
2004 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
2005 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
2006 ("vec_mergel<mode>"): V_HW -> VEC_HW.
2008 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
2009 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
2010 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
2011 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
2013 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
2014 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
2015 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
2016 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
2018 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
2019 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
2020 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
2021 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
2022 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
2023 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
2024 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
2026 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
2027 ("vec_scatter_element<V_HW_4:mode>_DI")
2028 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
2029 ("vec_fpint<mode>", "vflls")
2030 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
2031 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
2032 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
2033 ("*vec_cmphe<mode>_cc"): ... these.
2035 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
2036 mode constant instead of magic value.
2038 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2040 * config/s390/s390.c (s390_expand_vec_compare): Support other
2041 vector floating point modes than just V2DF.
2042 (s390_expand_vcond): Likewise.
2043 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
2044 (s390_cannot_change_mode_class): Prevent mode changes between TF
2045 and V1TF in vector registers.
2046 * config/s390/s390.md (DF, SF): New mode attributes.
2047 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
2048 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
2049 SFmode support for VRs.
2050 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
2052 (VFT, VF_HW): New mode iterators.
2053 (vw, sdx): New mode attributes.
2054 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
2055 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
2056 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
2057 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
2058 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
2059 also the new vector floating point modes. Renaming to ...
2061 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
2062 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
2063 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
2064 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
2065 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
2066 ("vec_unordered<mode>"): ... these.
2068 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
2069 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
2070 ("*vec_extendv2df"): New insn definitions.
2072 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2074 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
2075 ("mulditi3_2", "*muldi3_sign"): New patterns.
2076 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
2077 rename the pattern definition.
2079 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2081 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
2083 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
2085 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2087 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
2088 instruction if possible.
2089 * config/s390/vector.md (vec_halfnumelts): New mode
2091 ("*vec_vllezlf<mode>"): New pattern.
2093 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2095 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
2096 ("popcountv4si2", "popcountv2di2"): Rename to ...
2097 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
2098 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
2100 ("popcount<mode>2_vxe"): New pattern.
2102 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2104 * common/config/s390/s390-common.c (processor_flags_table): Add
2106 * config.gcc: Add arch12.
2107 * config/s390/driver-native.c (s390_host_detect_local_cpu):
2108 Default to arch12 for unknown CPU model numbers.
2109 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
2110 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
2111 PROCESSOR_max sanity check.
2112 * config/s390/s390-opts.h (enum processor_type): Add
2114 * config/s390/s390.c (processor_table): Add arch12.
2115 (s390_expand_builtin): Add check for B_VXE flag.
2116 (s390_issue_rate): Add PROCESSOR_ARCH12.
2117 (s390_get_sched_attrmask): Likewise.
2118 (s390_get_unit_mask): Likewise.
2119 (s390_sched_score): Enable z13 scheduling for arch12.
2120 (s390_sched_reorder): Likewise.
2121 (s390_sched_variable_issue): Likewise.
2122 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
2124 (s390_tune_attr): Use z13 scheduling also for arch12.
2125 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
2126 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
2127 (TARGET_VXE_P): New macros.
2128 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
2129 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
2130 * config/s390/s390.opt: Add arch12 as processor_type.
2132 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2134 * config/s390/s390.md
2135 ("fixuns_truncdddi2", "fixuns_trunctddi2")
2136 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
2137 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
2139 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
2140 Rename expanders to ...
2142 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
2143 ("fixuns_truncdddi2_emu"): ... these.
2145 ("fixuns_trunc<mode>si2_emu"): New expander.
2147 ("*fixuns_truncdfdi2_z13"): Rename to ...
2148 ("*fixuns_truncdfdi2_vx"): ... this.
2150 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2152 * config/s390/2964.md: Remove the single element vector compare
2153 instructions which are no longer used.
2154 * config/s390/s390.c (s390_select_ccmode): Remove handling of
2156 (s390_canonicalize_comparison): Remove handling of DFmode
2158 (s390_expand_vec_compare_scalar): Remove function.
2159 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
2160 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
2162 ("*cmp<mode>_ccs"): Add wfcdb instruction.
2164 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2166 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
2168 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
2169 will anyway by matched by mov<mode>_64dfp.
2171 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2173 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
2174 vlef/vstef. Add missing operand to vleif.
2176 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2178 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
2179 pair for all vector types with 64 bit elements.
2180 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
2181 * config/s390/vector.md (V_HW_64): ... here.
2182 (V_128_NOSINGLE): New mode iterator.
2183 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
2184 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
2185 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
2186 ("*vec_load_pairv2di"): Change to ...
2187 ("*vec_load_pair<mode>"): ... this one.
2189 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2191 * config/s390/constraints.md: Add comments.
2192 (jKK): Reject element sizes > 8 bytes.
2193 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
2195 * config/s390/s390.md: Add the s_operand checks formerly in
2196 s390_split_ok_p to various splitters where they are still
2198 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
2199 for 128 bit vectors. Plus two splitters.
2201 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2203 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
2206 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2209 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
2210 error if the boundary argument is not constant.
2212 2017-03-24 Jakub Jelinek <jakub@redhat.com>
2214 PR rtl-optimization/80112
2215 * loop-doloop.c (doloop_condition_get): Don't check condition
2216 if cmp isn't SET with IF_THEN_ELSE src.
2218 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2220 PR tree-optimization/80158
2221 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
2222 replacing a candidate statement, also replace it for the
2223 candidate's alternate interpretation.
2224 (replace_rhs_if_not_dup): Likewise.
2225 (replace_one_candidate): Likewise.
2227 2017-03-24 Richard Biener <rguenther@suse.de>
2229 PR tree-optimization/80167
2230 * graphite-isl-ast-to-gimple.c
2231 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
2233 (translate_isl_ast_to_gimple::get_rename): Likewise.
2235 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
2237 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
2238 handling of certain combinations of target options, including the
2239 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
2240 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
2242 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2245 * config/arm/arm.md (*load_multiple): Add reload_completed to
2248 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2249 Richard Biener <rguenth@suse.de>
2251 PR tree-optimization/79908
2252 PR tree-optimization/80136
2253 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
2254 been cast away, gimplify_and_add suffices.
2256 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
2258 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
2260 2017-03-23 Richard Biener <rguenther@suse.de>
2262 PR tree-optimization/80032
2263 * gimplify.c (gimple_push_cleanup): Forced unconditional
2264 cleanups still have to go to the conditional_cleanups
2267 2017-03-22 Jakub Jelinek <jakub@redhat.com>
2269 PR tree-optimization/80072
2270 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
2272 (next_operand_entry_id): Change type to unsigned int.
2273 (sort_by_operand_rank): Make sure to return the right return value
2274 even if unsigned fields are bigger than INT_MAX.
2275 (struct oecount): Change cnt and id type to unsigned int.
2276 (oecount_hasher::equal): Formatting fix.
2277 (oecount_cmp): Make sure to return the right return value
2278 even if unsigned fields are bigger than INT_MAX.
2279 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
2282 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
2283 TREE_READONLY on result if writing it more than once.
2286 * doc/invoke.texi (-fsanitize=thread): Document that with
2287 -fnon-call-exceptions atomics are not able to throw
2291 * tsan.c: Include tree-eh.h.
2292 (instrument_builtin_call): Call maybe_clean_eh_stmt or
2293 maybe_clean_or_replace_eh_stmt where needed.
2294 (instrument_memory_accesses): Add cfg_changed argument.
2295 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
2296 if it returned true.
2297 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
2299 PR rtl-optimization/63191
2300 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
2301 wrapper function, moved the whole old content into ...
2302 (ix86_delegitimize_address_1): ... this. New inline function.
2303 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
2304 true as last argument instead of ix86_delegitimize_address.
2306 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
2308 * config/aarch64/aarch64.c (generic_branch_cost): Copy
2309 cortexa57_branch_cost.
2311 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
2313 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
2315 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2318 * doc/md.texi (Constraints): Document wA constraint.
2319 * config/rs6000/constraints.md (wA): New.
2320 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
2321 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
2322 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
2323 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
2325 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
2328 * gimplify.c (is_oacc_declared): New function.
2329 (oacc_default_clause): Use it to set default flags for acc declared
2330 variables inside parallel regions.
2331 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
2333 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
2334 declare attribute to any decl as necessary.
2336 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
2339 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
2340 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
2341 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
2342 (arm_arch_lpae): This.
2343 * config/arm/arm.c (arm_arch7ve): Rename into ...
2344 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
2345 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
2348 2017-03-22 Martin Liska <mliska@suse.cz>
2351 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
2352 error message instead of an ICE.
2354 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2356 * doc/extend.texi (6.11 Additional Floating Types): Revise.
2358 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
2360 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
2362 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
2365 2017-03-21 Martin Sebor <msebor@redhat.com>
2367 * doc/extend.texi: Use "cannot" instead of "can't."
2368 * doc/hostconfig.texi: Same.
2369 * doc/install.texi: Same.
2370 * doc/invoke.texi: Same.
2371 * doc/loop.texi: Same.
2372 * doc/md.texi: Same.
2373 * doc/objc.texi: Same.
2374 * doc/rtl.texi: Same.
2375 * doc/tm.texi: Same.
2376 * doc/tm.texi.in: Same.
2377 * doc/trouble.texi: Same.
2379 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
2382 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
2383 (collect_checksum_attributes): Set it.
2384 (die_checksum_ordered): Use it.
2386 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2388 PR tree-optimization/79908
2389 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
2390 change: For a VA_ARG whose LHS has been cast away, use
2391 force_gimple_operand to construct the side effects.
2393 2017-03-21 David Malcolm <dmalcolm@redhat.com>
2395 PR translation/80001
2396 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
2397 more amenable to translation.
2398 (oacc_loop_auto_partitions): Likewise.
2400 2017-03-21 Marek Polacek <polacek@redhat.com>
2401 Martin Sebor <msebor@redhat.com>
2403 PR tree-optimization/80109
2404 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
2407 2017-03-21 Jakub Jelinek <jakub@redhat.com>
2408 Segher Boessenkool <segher@kernel.crashing.org>
2411 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
2412 check reg_used_between_p between insn and one of succ or succ2
2413 depending on if succ is artificial insn not inserted into insn
2416 2017-03-21 Martin Liska <mliska@suse.cz>
2418 PR gcov-profile/80081
2419 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
2420 * doc/gcc.texi: Include gcov-dump stuff.
2421 * doc/gcov-dump.texi: New file.
2423 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
2425 PR rtl-optimization/79150
2426 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
2427 conditional jump, if the jump is the last insn of the loop.
2429 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2430 Richard Biener <rguenth@suse.de>
2432 PR tree-optimization/79908
2433 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
2434 been cast away, use force_gimple_operand to construct the side
2437 2017-03-21 Martin Liska <mliska@suse.cz>
2440 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
2443 2017-03-21 Brad Spengler <spender@grsecurity.net>
2446 * plugin.c (htab_hash_plugin): New function.
2447 (add_new_plugin): Use it and adjust.
2448 (parse_plugin_arg_opt): Adjust.
2449 (init_one_plugin): Likewise.
2451 2017-03-21 Richard Biener <rguenther@suse.de>
2453 PR tree-optimization/80032
2454 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
2455 if set force the cleanup to happen unconditionally.
2456 (gimplify_target_expr): Push inserted clobbers with force_uncond
2457 to avoid them being removed by control-dependent DCE.
2459 2017-03-21 Richard Biener <rguenther@suse.de>
2461 PR tree-optimization/80122
2462 * tree-inline.c (copy_bb): Do not expans va-arg packs or
2463 va_arg_pack_len when the inlined call stmt requires pack
2465 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
2467 2017-03-21 Jakub Jelinek <jakub@redhat.com>
2470 * tsan.c (instrument_builtin_call): If the memory model argument
2471 is not a constant, assume it is valid.
2474 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
2477 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
2479 PR rtl-optimization/79910
2480 * combine.c (can_combine_p): Do not allow combining an I0 or I1
2481 if its dest is used by an insn before I2 (other than the combined
2482 insns themselves, which are properly handled already).
2484 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
2487 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
2489 * combine.c (record_used_regs): New static function.
2490 (try_combine): Handle situations where there is an additional
2491 instruction between I2 and I3 which needs to have a LOG_LINK
2495 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
2497 * combine.c (try_combine): Delete redundant i1 test. Call
2498 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
2500 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
2503 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
2506 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2508 PR tree-optimization/80054
2509 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
2510 the optimization if a PHI or any of its arguments is not dominated
2511 by the candidate's basis. Use gphi* rather than gimple* as
2513 (replace_profitable_candidates): Clean up a gimple* variable that
2514 should be a gphi* variable.
2516 2017-03-20 Martin Sebor <msebor@redhat.com>
2519 * doc/extend.texi (attribute constructor): Document present limitation.
2521 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
2524 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
2525 __POWER9_VECTOR__ #ifdef control, change template definition to
2526 use Power9-specific built-in function.
2527 (vec_any_eq): Likewise.
2528 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
2529 to control outcomes from this test.
2530 (vector_ae_<mode>p): For VEC_F modes, likewise.
2532 2017-03-20 Ian Lance Taylor <iant@google.com>
2534 * config/i386/i386.c (ix86_function_regparm): Save an extra
2535 register for -fsplit-stack with DECL_STATIC_CHAIN.
2537 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
2540 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
2541 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
2543 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
2545 * config/riscv/riscv.c (riscv_print_operand): Use "fence
2547 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
2550 2017-03-20 Marek Polacek <polacek@redhat.com>
2553 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
2555 2017-03-20 Richard Biener <rguenther@suse.de>
2557 PR tree-optimization/80113
2558 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
2559 allocate extra SSA name for PHI def.
2560 (add_close_phis_to_outer_loops): Likewise.
2561 (add_close_phis_to_merge_points): Likewise.
2562 (copy_loop_close_phi_args): Likewise.
2563 (copy_cond_phi_nodes): Likewise.
2565 2017-03-20 Martin Liska <mliska@suse.cz>
2568 * tree-chkp.c (chkp_build_returned_bound): Do not build
2569 returned bounds for a LHS that's not a BOUNDED_P type.
2571 2017-03-20 Martin Liska <mliska@suse.cz>
2575 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
2576 COMPLEX_CST and VECTOR_CST.
2578 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2581 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
2582 target operand. A new splitter adds the clobber statement in case
2583 the target operand is dead anyway.
2585 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
2587 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
2588 to age-old versions of binutils and glibc.
2590 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
2592 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
2594 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
2596 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
2598 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
2600 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
2601 requirement for binutils 2.13.
2603 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
2605 * combine.c (try_combine): Delete redundant i1 test. Call
2606 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
2608 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
2610 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
2611 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
2613 <riscv64-*-elf>: Re-arrange section
2614 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
2615 <riscv32-*-linux>: Likewise.
2616 <riscv64-*-elf>: Likewise
2617 <riscv64-*-linux>: Likewise.
2619 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
2622 * aarch64.opt(verbose-cost-dump): Fix typo.
2624 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
2627 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
2628 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
2630 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
2632 * reload.c (find_reloads): When reloading a nonoffsettable address,
2633 use RELOAD_OTHER for it and its address reloads.
2635 PR rtl-optimization/79910
2636 * combine.c (record_used_regs): New static function.
2637 (try_combine): Handle situations where there is an additional
2638 instruction between I2 and I3 which needs to have a LOG_LINK
2641 2017-03-17 Jeff Law <law@redhat.com>
2643 PR tree-optimization/71437
2644 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
2645 conditional in the hash table first.
2646 (vrp_dom_walker::before_dom_children): Extract condition from
2647 ASSERT_EXPR. Record condition, its inverion and any implied
2650 2017-03-17 Marek Polacek <polacek@redhat.com>
2651 Markus Trippelsdorf <markus@trippelsdorf.de>
2653 PR tree-optimization/80079
2654 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
2657 2017-03-17 Richard Biener <rguenther@suse.de>
2660 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
2661 Properly verify the LHS before the RHS possibly claims to be
2663 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
2666 2017-03-17 Martin Jambor <mjambor@suse.cz>
2668 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
2669 (List of -O2 options): Likewise.
2670 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
2673 2017-03-17 Tom de Vries <tom@codesourcery.com>
2675 * gcov-dump.c (print_usage): Print bug_report_url.
2677 2017-03-17 Richard Biener <rguenther@suse.de>
2680 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
2681 (parser::peek): Likewise.
2683 2017-03-17 Richard Biener <rguenther@suse.de>
2685 PR tree-optimization/80048
2686 * sese.c (free_sese_info): Properly release rename_map and
2687 copied_bb_map elements.
2689 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
2691 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
2692 Add linked-list forward and backlinks. Insert on
2693 construction, remove on destruction.
2694 (class pass_store_merging): Add m_stores_head field.
2695 (pass_store_merging::terminate_and_process_all_chains):
2696 Iterate over m_stores_head list.
2697 (pass_store_merging::terminate_all_aliasing_chains):
2699 (pass_store_merging::execute): Check for debug stmts first.
2700 Push new chains onto the m_stores_head stack.
2702 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
2705 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
2706 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
2707 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
2709 2017-03-16 Jeff Law <law@redhat.com>
2711 PR tree-optimization/71437
2712 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
2713 member function. Implementation moved into after_dom_children
2714 member function and into the threader's thread_outgoing_edges
2716 (dom_opt_dom_walker::after_dom_children): Simplify by moving
2717 some code into new thread_outgoing_edges.
2718 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
2719 definition. Simplify marker handling (do it here). Assume we always
2720 have the available expression and the const/copies tables.
2721 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
2723 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
2724 * tree-vrp.c (equiv_stack): No longer file scoped.
2725 (vrp_dom_walker): New class.
2726 (vrp_dom_walker::before_dom_children): New member function.
2727 (vrp_dom_walker::after_dom_children): Likewise.
2728 (identify_jump_threads): Setup domwalker. Use it rather than
2729 walking edges in a random order by hand. Simplify setup/finalization.
2730 (finalize_jump_threads): Remove.
2731 (vrp_finalize): Do not call identify_jump_threads here.
2732 (execute_vrp): Do it here instead and call thread_through_all_blocks
2735 PR tree-optimization/71437
2736 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
2738 (simplify_stmt_for_jump_threading): Add basic_block argument. All
2740 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
2741 (dom_opt_dom_walker::thread_across_edge): Remove
2742 handle_dominating_asserts argument. All callers changed.
2743 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
2744 changes. Remove calls to lhs_of_dominating_assert. Other
2745 uses of handle_dominating_asserts turn into unconditional code
2746 (simplify_control_stmt_condition_1): Likewise.
2747 (simplify_control_stmt_condition): Likewise.
2748 (thread_through_normal_block, thread_across_edge): Likewise.
2749 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
2750 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
2751 object if it is not an SSA_NAME.
2752 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
2753 before calling into the VRP specific simplifiers.
2754 (identify_jump_threads): Remove handle_dominating_asserts
2757 2017-03-16 Jakub Jelinek <jakub@redhat.com>
2760 * tree-diagnostic.c (default_tree_printer): No longer static.
2761 * tree-diagnostic.h (default_tree_printer): New prototype.
2763 2017-03-16 Tamar Christina <tamar.christina@arm.com>
2765 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
2766 Change ins into fmov.
2768 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2770 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
2771 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
2772 Use h_con constraint for operand 1.
2773 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
2774 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
2776 2017-03-15 Jeff Law <law@redhat.com>
2778 PR tree-optimization/71437
2779 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
2780 (record_temporary_equivalences): Use it.
2782 PR tree-optimization/71437
2783 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
2784 tree-ssa-scopedtables.
2785 (lookup_avail_expr, build_and_record_new_cond): Likewise.
2786 (record_conditions, record_cond, vuse_eq): Likewise.
2787 (record_edge_info): Adjust to API tweak of record_conditions.
2788 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
2789 (record_temporary_equivalences, optimize_stmt): Likewise.
2790 (eliminate_redundant_computations): Likewise.
2791 (record_equivalences_from_stmt): Likewise.
2792 * tree-ssa-scopedtables.c: Include options.h and params.h.
2793 (vuse_eq): New function, moved from tree-ssa-dom.c
2794 (build_and_record_new_cond): Likewise.
2795 (record_conditions): Likewise. Accept vector of conditions rather
2796 than edge_equivalence structure for first argument.
2797 for the first argument.
2798 (avail_exprs_stack::lookup_avail_expr): New member function, moved
2799 from tree-ssa-dom.c.
2800 (avail_exprs_stack::record_cond): Likewise.
2801 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
2802 from tree-ssa-dom.c.
2803 (avail_exprs_stack): Add new member functions lookup_avail_expr
2805 (record_conditions): Declare.
2807 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
2810 * lra-constraints.c (process_alt_operands): Increase reject for
2811 reloading an input/output operand.
2813 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
2816 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
2817 insns to convert from signed/unsigned char/short to IEEE 128-bit
2819 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
2821 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
2824 * config/i386/i386.c (ix86_vector_duplicate_value): Create
2825 subreg of inner mode for values already in registers.
2827 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
2829 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
2830 iteration reg is used after the loop.
2832 2017-03-14 Martin Sebor <msebor@redhat.com>
2834 PR tree-optimization/79800
2835 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
2836 precision in negative-positive range.
2837 (format_floating): Call non-const overload with adjusted precision.
2839 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
2842 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
2845 2017-03-14 Martin Sebor <msebor@redhat.com>
2848 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
2849 * builtins.def (aligned_alloc): Use it.
2852 * Makefile.in (GTFILES): Add calls.c.
2853 * calls.c: Include "gt-calls.h".
2855 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
2857 PR rtl-optimization/79728
2858 * regs.h (struct target_regs): New field
2859 x_contains_allocatable_regs_of_mode.
2860 (contains_allocatable_regs_of_mode): New macro.
2861 * reginfo.c (init_reg_sets_1): Initialize it, and change
2862 contains_reg_of_mode so it includes global regs as well.
2863 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
2864 rather than contains_regs_of_mode.
2866 2017-03-14 Martin Liska <mliska@suse.cz>
2868 * doc/invoke.texi: Document options that can't be combined with
2869 -fcheck-pointer-bounds.
2871 2017-03-14 Martin Liska <mliska@suse.cz>
2874 * doc/invoke.texi (-Wchkp): Document the option.
2876 2017-03-14 Martin Liska <mliska@suse.cz>
2878 * Makefile.in: Install gcov-dump.
2880 2017-03-14 Martin Liska <mliska@suse.cz>
2882 * multiple_target.c (expand_target_clones): Bail out for
2883 an invalid attribute.
2885 2017-03-14 Richard Biener <rguenther@suse.de>
2887 * alias.c (struct alias_set_entry): Pack properly.
2888 * cfgloop.h (struct loop): Likewise.
2889 * cse.c (struct set): Likewise.
2890 * ipa-utils.c (struct searchc_env): Likewise.
2891 * loop-invariant.c (struct invariant): Likewise.
2892 * lra-remat.c (struct cand): Likewise.
2893 * recog.c (struct change_t): Likewise.
2894 * rtl.h (struct address_info): Likewise.
2895 * symbol-summary.h (function_summary): Likewise.
2896 * tree-loop-distribution.c (struct partition): Likewise.
2897 * tree-object-size.c (struct object_size_info): Likewise.
2898 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
2899 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
2900 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
2901 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
2902 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
2903 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
2904 (struct _stmt_vec_info): Likewise.
2906 2017-03-14 Martin Liska <mliska@suse.cz>
2909 * multiple_target.c (create_dispatcher_calls): Check that
2910 a target can create a function dispatcher.
2912 2017-03-14 Martin Liska <mliska@suse.cz>
2915 * multiple_target.c (expand_target_clones): Drop local.local
2916 flag for default implementation.
2918 2017-03-14 Richard Biener <rguenther@suse.de>
2920 PR tree-optimization/80030
2921 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
2923 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
2925 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
2926 gcc_fallthrough() instead of __attribute__((fallthrough));
2928 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
2930 * doc/gcc.texi: Remove "up" link to (DIR).
2931 * doc/gccint.texi: Ditto.
2933 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
2935 * doc/install.texi (Specific) <avr>: Remove reference to
2938 2017-03-13 Jeff Law <law@redhat.com>
2940 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
2941 attribute rather than comments.
2943 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
2944 match_scratch operand is highest.
2946 2017-03-13 Martin Liska <mliska@suse.cz>
2949 * ipa-pure-const.c (warn_function_noreturn): If the declarations
2950 is a CHKP clone, use original declaration.
2952 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
2954 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
2955 (arc_conditional_register_usage): Use a different allocation order
2956 when optimizing for size.
2957 * common/config/arc/arc-common.c (arc_option_optimization_table):
2958 Section anchors default on when optimizing for size.
2960 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
2962 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
2964 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
2966 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
2967 * config/arc/arc.md (cpu_facility): Add cd variant.
2968 (*movqi_insn): Add code density variant.
2969 (*movhi_insn): Likewise.
2970 (*movqi_insn): Likewise.
2971 (*addsi3_mixed): Likewise.
2972 (subsi3_insn): Likewise.
2974 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
2976 * config/arc/arc.md (movsi_cond_exec): Update constraint.
2978 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
2980 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
2981 expressions with MINUS and UNARY ops.
2983 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2986 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
2988 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
2989 between vec_select and vector argument.
2990 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
2991 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
2992 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
2993 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
2994 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
2995 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
2997 2017-03-13 Richard Biener <rguenther@suse.de>
3000 * params.def (vect-max-peeling-for-alignment): Fix typo.
3002 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3004 * doc/install.texi (Specific) <mips-*-*>: Remove description of
3005 issue that only occurred with binutils below 2.18.
3007 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3009 * doc/install.texi (Specific) <cris-axis-elf>: No longer
3010 refer to binutils 2.11/2.12 minimum.
3012 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3014 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
3015 ftp.kernel.org and simplify binutils requirement.
3017 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
3019 * doc/invoke.texi (Warning Options): Fix spelling of link-time
3021 (Optimize Options): Ditto. Also remove redundancy.
3023 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3025 PR translation/79848
3026 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
3028 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
3029 to G_ to avoid double translation.
3031 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3033 PR translation/79923
3034 * auto-profile.c (get_combined_location): Convert leading
3035 character of diagnostics to lower case and remove trailing period.
3036 (read_profile): Likewise for various diagnostics.
3037 * config/arm/arm.c (arm_option_override): Remove trailing period
3038 from various diagnostics.
3039 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
3040 (msp430_expand_delay_cycles): Likewise.
3042 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3045 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
3046 full command-line argument, rather than just "str".
3047 (aarch64_validate_march): Likewise.
3048 (aarch64_validate_mtune): Likewise.
3050 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
3052 PR rtl-optimization/78911
3053 * lra-assigns.c (must_not_spill_p): New function.
3054 (spill_for): Use it.
3056 2017-03-10 Jakub Jelinek <jakub@redhat.com>
3058 PR tree-optimization/79981
3059 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
3060 ATOMIC_COMPARE_EXCHANGE ifn result.
3061 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
3062 IFN_ATOMIC_COMPARE_EXCHANGE.
3064 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3067 * opts.c (parse_sanitizer_options): Add missing question mark to
3068 "did you mean" message.
3070 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3072 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
3074 (VMULEUH_UNS): Likewise.
3075 (VMULOUB_UNS): Likewise.
3076 (VMULOUH_UNS): Likewise.
3077 * config/rs6000/rs6000.c (builtin_function_type): Remove
3078 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
3080 2017-03-10 David Malcolm <dmalcolm@redhat.com>
3083 * read-rtl-function.c (function_reader::read_rtx_operand): Update
3084 x with result of extra_parsing_for_operand_code_0.
3085 (function_reader::extra_parsing_for_operand_code_0): Convert
3086 return type from void to rtx, returning x. When reading
3087 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
3088 larger size containing struct block_symbol.
3090 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
3092 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
3093 -mfloat128-hardware without -m64.
3095 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
3098 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
3099 entries to the case statement that marks unsigned arguments to
3100 overloaded functions.
3102 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
3104 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
3105 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
3107 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
3110 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
3111 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
3113 2017-03-10 Martin Liska <mliska@suse.cz>
3117 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
3118 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
3121 2017-03-10 Olivier Hainque <hainque@adacore.com>
3123 * tree-switch-conversion (array_value_type): Start by resetting
3124 candidate type to it's main variant.
3126 2017-03-10 Jakub Jelinek <jakub@redhat.com>
3128 PR rtl-optimization/79909
3129 * combine.c (try_combine): Use simplify_replace_rtx on individual
3130 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
3131 of the whole CALL_INSN_FUNCTION_USAGE.
3133 PR tree-optimization/79972
3134 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
3135 get_range_info on SSA_NAMEs. Formatting fixes.
3137 2017-03-10 Richard Biener <rguenther@suse.de>
3138 Jakub Jelinek <jakub@redhat.com>
3140 PR tree-optimization/77975
3141 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
3142 edge to be constant.
3143 (get_val_for): For constant x return it. Formatting fix.
3144 (loop_niter_by_eval): Avoid pointless looping if the next iteration
3145 would use the same bases as the current one.
3147 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3149 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
3150 instead of vec_select for V1TImode.
3151 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
3153 (VSX_LE_128): Add V1TI to this mode iterator.
3154 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
3155 (*vsx_le_perm_store_<mode>): Likewise.
3156 (pre-reload splitter for VSX stores): Likewise.
3157 (post-reload splitter for VSX stores): Likewise.
3158 (*vsx_xxpermdi2_le_<mode>): Likewise.
3159 (*vsx_lxvd2x2_le_<mode>): Likewise.
3160 (*vsx_stxvd2x2_le_<mode>): Likewise.
3162 2017-03-09 Michael Eager <eager@eagercon.com>
3164 Correct failures with --enable-checking=yes,rtl.
3166 * config/microblaze/microblaze.c (microblaze_expand_shift):
3167 Replace GET_CODE test with CONST_INT_P and INTVAL test with
3168 test for const0_rtx.
3169 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
3170 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
3172 2017-03-09 Richard Biener <rguenther@suse.de>
3174 PR tree-optimization/79977
3175 * graphite-scop-detection.c (scop_detection::merge_sese):
3176 Handle the case of extra exits to blocks dominating the entry.
3178 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
3180 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
3183 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
3185 PR rtl-optimization/79949
3186 * lra-constraints.c (process_alt_operands): Check memory when
3187 trying to predict a cycle. Print about the overall increase.
3189 2017-03-09 Richard Biener <rguenther@suse.de>
3192 * gimple-expr.c (useless_type_conversion_p): Preserve
3193 TYPE_SATURATING for fixed-point types.
3195 2017-03-09 Richard Biener <rguenther@suse.de>
3198 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
3199 alignment of BLKmode params.
3201 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3204 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
3205 (VALL_NO_V2Q): Likewise.
3207 * config/aarch64/aarch64-simd.md
3208 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
3210 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
3211 VALL_NO_V2Q mode iterator.
3212 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
3214 2017-03-09 Martin Liska <mliska@suse.cz>
3216 PR tree-optimization/79631
3217 * tree-chkp-opt.c (chkp_is_constant_addr): Call
3218 tree_int_cst_sign_bit just for INTEGER constants.
3220 2017-03-09 Martin Liska <mliska@suse.cz>
3224 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
3227 2017-03-09 Marek Polacek <polacek@redhat.com>
3230 * tree.c (inchash::add_expr): Handle TREE_VEC.
3232 2017-03-09 Martin Liska <mliska@suse.cz>
3235 (chkp_narrow_size_and_offset): New function.
3236 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
3237 (void chkp_parse_bit_field_ref): New function.
3238 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
3239 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
3241 2017-03-09 Martin Liska <mliska@suse.cz>
3244 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
3245 (chkp_find_bounds_1): Remove gcc_unreachable.
3247 2017-03-09 Jakub Jelinek <jakub@redhat.com>
3250 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
3251 BUILT_IN_SYNC*, determine the access type from the size suffix and
3252 always build a MEM_REF with that type. Handle forgotten
3253 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
3256 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
3257 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
3258 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
3259 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
3260 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
3261 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
3262 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
3263 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
3264 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
3265 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
3266 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
3267 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
3268 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
3269 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
3270 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
3271 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
3272 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
3273 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
3274 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
3275 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
3276 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
3277 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
3278 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
3279 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
3280 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
3281 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
3282 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
3283 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
3284 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
3285 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
3286 definitions outside of __OPTIMIZE__ guarded section.
3289 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
3290 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
3291 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
3292 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
3295 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3297 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
3298 ("vfenez<mode>"): Add missing constraints.
3300 2017-03-08 Martin Sebor <msebor@redhat.com>
3303 * config/nds32/nds32.c (nds32_option_override):
3304 Fix misspelled diagnostic.
3306 2017-03-08 Jakub Jelinek <jakub@redhat.com>
3309 * gimplify.c (gimplify_omp_for): Replace index var in outer
3310 taskloop statement with an artificial variable and add
3311 OMP_CLAUSE_PRIVATE clause for it.
3313 2017-03-08 Richard Biener <rguenther@suse.de>
3315 PR tree-optimization/79955
3316 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
3317 for accesses that are completely outside of the variable.
3319 2017-03-08 Andrew Haley <aph@redhat.com>
3321 PR tree-optimization/79943
3322 * tree-ssa-loop-split.c (compute_new_first_bound): When
3323 calculating the new upper bound, (END-BEG) should be added, not
3326 2017-03-08 Jakub Jelinek <jakub@redhat.com>
3328 * config/avr/avr.md (setmemhi): Make sure match_dup
3329 operand number comes before match_scratch.
3331 2017-03-08 Richard Biener <rguenther@suse.de>
3333 PR tree-optimization/79920
3334 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
3335 with ncopies == 1 to ...
3336 (vect_transform_slp_perm_load): ... here. Properly compute
3337 all element loads by iterating VF times over the group. Do
3338 not handle ncopies (computed in a broken way) in
3339 vect_create_mask_and_perm.
3341 2017-03-08 Jakub Jelinek <jakub@redhat.com>
3344 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
3345 is a uniform vector, use uniform_vector_p return value instead of
3346 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
3348 2017-03-07 Marek Polacek <polacek@redhat.com>
3351 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
3352 (alloca_call_type): Likewise.
3354 2017-03-07 Martin Liska <mliska@suse.cz>
3356 * gcov.c (process_args): Put comment to correct location.
3358 2017-03-07 Martin Liska <mliska@suse.cz>
3361 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
3362 Use array_at_struct_end_p instead of DECL_CHAIN (field).
3363 (chkp_narrow_bounds_for_field): Likewise.
3364 (chkp_parse_array_and_component_ref): Pass one more argument to
3367 2017-03-07 Richard Biener <rguenther@suse.de>
3369 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
3372 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
3374 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
3375 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
3377 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3380 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
3381 to end of description.
3382 (PARAM_MAX_STORES_TO_MERGE): Likewise.
3384 2017-03-07 Jakub Jelinek <jakub@redhat.com>
3386 PR rtl-optimization/79901
3387 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
3389 (*avx512f_<code><mode>3<mask_name>): ... this.
3390 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
3391 iterator instead of VI8_AVX2_AVX512BW.
3393 PR rtl-optimization/79901
3394 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
3395 min/max expander, expand it using expand_vec_cond_expr.
3398 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
3401 2017-03-06 Jakub Jelinek <jakub@redhat.com>
3404 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
3405 to void * for PCH reasons.
3406 * dwarf2out.c (output_loc_operands, output_die): Cast
3407 v.val_vec.array to unsigned char *.
3409 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
3412 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
3415 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
3417 PR rtl-optimization/79571
3418 * lra-constraints.c (process_alt_operands): Calculate static
3419 reject and subtract it from overall when only addresses will be
3422 2017-03-06 Julia Koval <julia.koval@intel.com>
3425 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
3426 incoming stack boundary to 128 for 64-bit targets.
3428 2017-03-06 Richard Biener <rguenther@suse.de>
3430 PR tree-optimization/79894
3431 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
3432 to NULL after folding it.
3434 2017-03-06 Richard Biener <rguenther@suse.de>
3436 PR tree-optimization/79824
3437 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
3438 check disabling peeling for gaps.
3440 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
3442 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
3443 attributes): Document gettimeofday.
3445 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
3447 * config/s390/s390.c (s390_option_override_internal): Set
3448 PARAM_MIN_VECT_LOOP_BOUND
3450 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
3452 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
3453 * config/s390/s390.md: Likewise.
3455 2017-03-06 Jakub Jelinek <jakub@redhat.com>
3458 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
3459 (<avx2_avx512>_perm<mode>): Rename to ...
3460 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
3462 (<avx512>_perm<mode>_mask): Rename to ...
3463 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
3465 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
3466 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
3467 instead of VI8F_256_512.
3468 (avx512f_perm<mode>): New define_expand.
3469 (avx512f_perm<mode>_mask): Likewise.
3470 (avx512f_perm<mode>_1<mask_name>): New define_insn.
3471 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
3473 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
3475 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
3476 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
3478 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
3480 2017-03-06 Martin Liska <mliska@suse.cz>
3483 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
3484 when having a SSA NAME w/o VAR_DECL assigned to it.
3486 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
3488 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
3489 msa_dpsub_<su>_d): Fix MODE for vec_select.
3491 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
3493 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
3495 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
3497 2017-03-06 Richard Biener <rguenther@suse.de>
3499 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
3500 * plugin.c (register_plugin_info): Likewise.
3501 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
3503 2017-03-05 Jakub Jelinek <jakub@redhat.com>
3505 * config/i386/sse.md (sse_storehps, sse_storelps,
3506 avx_<castmode><avxsizesuffix>_<castmode>,
3507 avx512f_<castmode><avxsizesuffix>_<castmode>,
3508 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
3509 in condition that at least one operand is not a MEM.
3511 2017-03-03 Jakub Jelinek <jakub@redhat.com>
3514 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
3515 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
3517 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
3518 gimple_call_nothrow_p flag based on whether original builtin can throw.
3519 If it can, emit following stmts on the fallthrough edge.
3520 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
3521 don't create new bb if inserting just debug stmts on the edge, try to
3522 insert them on the fallthru bb or just reset debug stmts.
3524 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
3527 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
3528 restore recog_data (including the operand rtxes inside it) around
3529 the call to get_insn_template.
3531 2017-03-03 Martin Sebor <msebor@redhat.com>
3533 PR tree-optimization/79699
3534 * context.c (context::~context): Free MPFR caches to avoid
3535 a memory leak on program exit.
3537 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3539 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
3540 Use wide_int::ulow () instead of .elt (0).
3542 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
3544 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
3545 (*pushxf): Limit oF constraint to 32bit targets and add oC
3546 constraint for 64bit targets.
3547 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
3548 (*pushdf): Change rmF constraint to rmC.
3550 2017-03-03 Martin Liska <mliska@suse.cz>
3552 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
3553 Remove unused variable.
3555 2017-03-03 Jakub Jelinek <jakub@redhat.com>
3558 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
3559 is a memory operand, increase num_memory.
3560 (ix86_expand_args_builtin): Likewise.
3562 2017-03-03 Jan Hubicka <jh@suse.cz>
3565 * ipa-devirt.c (maybe_record_node): Properly handle
3566 __cxa_pure_virtual visibility.
3568 2017-03-03 Martin Liska <mliska@suse.cz>
3570 PR tree-optimization/79803
3571 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
3573 (pass_loop_prefetch::execute): Disabled optimization if an
3574 assumption about L1 cache size is not met.
3576 2017-03-03 Martin Liska <mliska@suse.cz>
3578 PR rtl-optimization/79574
3579 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
3580 (hash_scan_set): Likewise.
3581 (dump_hash_table): Likewise.
3582 (hoist_code): Likewise.
3584 2017-03-03 Richard Biener <rguenther@suse.de>
3586 * fixed-value.c (fixed_from_string): Restore use of elt (1)
3587 in place of uhigh ().
3588 (fixed_convert_from_real): Likewise.
3590 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
3593 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
3595 2017-03-03 Richard Biener <rguenther@suse.de>
3598 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
3599 TYPE_OVERFLOW_UNDEFINED check.
3601 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3603 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
3605 (vector_ae_<mode>_p): Likewise.
3606 (vector_nez_<mode>_p): Likewise.
3607 (vector_ne_v2di_p): Likewise.
3608 (vector_ae_v2di_p): Likewise.
3609 (vector_ne_<mode>_p): Likewise.
3610 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
3612 (vsx_tsqrt<mode>2_fe): Likewise.
3614 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
3617 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
3619 2017-03-02 Jakub Jelinek <jakub@redhat.com>
3621 PR rtl-optimization/79780
3622 * cprop.c (one_cprop_pass): When second and further conditional trap
3623 in a single basic block is turned into an unconditional trap, turn it
3624 into a deleted note to avoid RTL verification failures.
3626 2017-03-02 Richard Biener <rguenther@suse.de>
3628 * fold-const.c (const_binop): Use ulow () instead of elt (0).
3630 2017-03-02 Richard Biener <rguenther@suse.de>
3632 PR tree-optimization/79345
3634 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
3635 param and abort the walk, returning -1 if it is hit.
3636 (walk_aliased_vdefs): Take a limit param and pass it on.
3637 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
3638 defaulting to 0 and return a signed int.
3639 * tree-ssa-uninit.c (struct check_defs_data): New struct.
3640 (check_defs): New helper.
3641 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
3642 about uninitialized memory.
3643 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
3644 bogus uninitialized warning.
3645 (fixed_convert_from_real): Likewise.
3647 2017-03-02 Bin Cheng <bin.cheng@arm.com>
3649 PR tree-optimization/66768
3650 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
3651 iv_use if base object can't be determined.
3653 2017-03-02 Jakub Jelinek <jakub@redhat.com>
3655 PR tree-optimization/79345
3656 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
3657 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
3658 (get_pattern_stats): Initialize it.
3659 * genemit.c (gen_expand): Verify match_scratch numbers come after
3660 match_operand/match_dup numbers.
3661 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
3662 match_scratch numbers.
3663 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
3665 * config/s390/s390.md (trunctdsd2): Likewise.
3667 2017-03-02 Richard Biener <rguenther@suse.de>
3669 * wide-int.h (wide_int_storage::operator=): Implement in terms
3672 2017-03-02 Richard Biener <rguenther@suse.de>
3674 PR tree-optimization/79777
3675 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
3676 the to insert expression to sth existing.
3678 2017-03-01 Martin Sebor <msebor@redhat.com>
3681 * gimple-ssa-sprintf.c
3682 (directive::known_width_and_precision): New function.
3683 (format_integer): Use it.
3684 (get_mpfr_format_length): Consider the full range of precision
3685 when computing %g output with the # flag. Set the likely byte
3686 count to 3 rather than 1 when precision is indeterminate.
3687 (format_floating): Correct the lower bound of precision.
3689 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3691 * doc/invoke.texi: Document default code model for 64-bit Linux.
3693 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
3696 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
3697 udiv rather than div since input pattern is unsigned.
3699 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
3701 * config/i386/i386.c (print_reg): Warn for values of
3702 unsupported size in integer register.
3704 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
3707 * config/rs6000/predicates.md (current_file_function_operand): Do
3708 not allow self calls to be local if the function is replaceable.
3710 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
3713 * config/rs6000/altivec.h (vec_ctz and others): Change the
3714 preprocessor macro that controls conditional compilation from
3715 _ARCH_PWR9 to __POWER9_VECTOR__.
3716 (vec_all_ne): Change parameterization of __altivec_scalar_pred
3717 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
3718 control (instead of _ARCH_PWR9 control) so that template
3719 definition uses power9-specific function.
3720 (vec_any_eq): Likewise.
3721 (vec_all_ne): Change macro definition to use a power9-specific
3722 expansion under #ifdef __POWER9_VECTOR__ control (instead of
3723 _ARCH_PWR9 control).
3724 (vec_any_eq) Likewise.
3725 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
3726 expansion for CMPNEF to remove support for xvcmpnesp instruction.
3727 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
3728 support for xvcmpnedp instruction.
3729 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
3730 macro expansion so that Power9 implementation of vec_all_ne does
3731 not use the AltiVec predicate framework.
3732 (VCMPNEH_P): Likewise.
3733 (VCMPNEW_P): Likewise.
3734 (VCMPNED_P): Likewise.
3735 (VCMPNEFP_P): Likewise.
3736 (VCMPNEDP_P): Likewise.
3737 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
3738 implementation of vec_any_eq to not use AltiVec predicate
3740 (VCMPAEH_P): Likewise.
3741 (VCMPAEW_P): Likewise.
3742 (VCMPAED_P): Likewise.
3743 (VCMPAEFP_P): Likewise.
3744 (VCMPAEDP_P): Likewise.
3745 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
3746 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
3747 not use the AltiVec predicate framework.
3748 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
3749 of vec_any_eq to not use AltiVec predicate framework.
3750 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
3751 support for predefined __POWER9_VECTOR__ macro to indicate that
3752 Power9 instruction selection is enabled.
3753 (altivec_overloaded_builtins): Remove extraneous
3754 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
3755 function argument types RS6000_BTI_bool_V16QI and
3756 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
3757 entry for overloaded function argument types RS6000_BTI_bool_V4SI
3758 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
3759 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
3760 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
3761 Power9 for implementations of vec_cmpne. Change the signature for
3762 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
3763 (representing vec_all_ne) to remove the previously described first
3764 argument of type RS6000_BTI_INTSI, as this was an artifact of
3765 reliance on the AltiVec predicate framework, which is no longer
3766 used in the implementation of these functions. Add
3767 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
3768 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
3769 since, unlike the AltiVec predicate framework implementation, we
3770 do not share function descriptors between vec_alle and vec_anyeq.
3771 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
3772 set of modes that receive special treatment even when
3773 TARGET_P9_VECTOR is true. The special treatment emits code that
3774 does not depend on Power9 instructions.
3775 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
3776 define_expand to not rely on AltiVec predicate framework.
3777 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
3779 (vector_ne_v2di_p): Change this define_expand to not rely on
3780 AltiVec predicate framework.
3781 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
3783 (vector_ne_<mode>_p): Change this define_expand to not rely on
3784 AltiVec predicate framework.
3785 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
3787 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
3788 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
3789 define_insn pattern.
3790 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
3791 define_insn pattern because the xvcmpne<VSs>. instruction is not
3793 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
3794 instruction is not supported.
3796 2017-03-01 Jakub Jelinek <jakub@redhat.com>
3798 * config/nvptx/nvptx.c: Include intl.h.
3800 2017-03-01 Martin Jambor <mjambor@suse.cz>
3803 * ipa-prop.h (ipa_bits): Removed field known.
3804 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
3805 to pointers. Adjusted their comments to warn about their sharing.
3806 (ipcp_transformation_summary): Change bits to a vector of pointers.
3807 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
3808 (ipa_get_ipa_bits_for_value): Declare.
3809 * tree-vrp.h (value_range): Mark as GTY((for_user)).
3810 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
3811 (ipa_bits_hash_table): Likewise.
3812 (ipa_vr_ggc_hash_traits): Likewise.
3813 (ipa_vr_hash_table): Likewise.
3814 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
3815 being pointers and vr_known being removed.
3816 (ipa_set_jf_unknown): Likewise.
3817 (ipa_get_ipa_bits_for_value): New function.
3818 (ipa_set_jfunc_bits): Likewise.
3819 (ipa_get_value_range): New overloaded functions.
3820 (ipa_set_jfunc_vr): Likewise.
3821 (ipa_compute_jump_functions_for_edge): Use the above functions to
3822 construct bits and vr parts of jump functions.
3823 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
3824 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
3826 (ipcp_grow_transformations_if_necessary): Also allocate
3827 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
3829 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
3830 them. Fix too long lines.
3831 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
3832 vr_known being removed.
3833 (ipa_read_jump_function): Use new setter functions to construct bits
3834 and vr parts of jump functions or set them to NULL.
3835 (write_ipcp_transformation_info): Adjust for bits being pointers.
3836 (read_ipcp_transformation_info): Likewise.
3837 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
3839 Include gt-ipa-prop.h.
3840 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
3842 (ipcp_store_bits_results): Likewise.
3843 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
3844 Do not write to existing jump functions but use a temporary instead.
3846 2017-03-01 Jakub Jelinek <jakub@redhat.com>
3849 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
3850 attempt to use its first operand as BIT_FIELD_REF base.
3852 2017-03-01 Richard Biener <rguenther@suse.de>
3855 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
3856 interpolating formula in wrapping arithmetic.
3857 (chrec_apply): Convert chrec_evaluate return value to wanted type.
3859 2017-03-01 Jakub Jelinek <jakub@redhat.com>
3861 PR tree-optimization/79734
3862 * tree-vect-generic.c (expand_vector_condition): Optimize
3863 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
3864 Handle VEC_COND_EXPR where comparison has different inner width from
3867 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
3869 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
3870 markup, and similar issues. Remove @opindex entries for things
3871 that aren't options. Add missing -mmpy-option entries.
3873 2017-02-28 Jakub Jelinek <jakub@redhat.com>
3875 PR tree-optimization/79737
3876 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
3877 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
3878 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
3879 instead of byte_size. Formatting fix.
3880 (shift_bytes_in_array_right): Formatting fix.
3882 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
3885 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
3886 condition on optimize for the leaf function test.
3888 2017-02-28 Martin Liska <mliska@suse.cz>
3891 * read-rtl-function.c (function_reader::handle_unknown_directive):
3892 Bail out when one uses -flto.
3894 2017-02-28 Martin Liska <mliska@suse.cz>
3896 * common.opt: Replace space with tabular for options of <number>
3898 * config/i386/i386.opt: Show <number> value for
3899 -mlarge-data-threshold.
3900 * opts.c (print_filtered_help): Do not display number in hexadecimal
3903 2017-02-28 Martin Liska <mliska@suse.cz>
3905 * common.opt: Fix --help=option -Q for options which are of
3908 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
3910 * config/i386/i386.c (print_reg): Error out for values
3911 of 8-bit size in invalid integer register.
3913 2017-02-28 Martin Sebor <msebor@redhat.com>
3915 PR tree-optimization/79691
3916 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
3918 2017-02-28 Jakub Jelinek <jakub@redhat.com>
3921 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
3922 gcc_unreachable with output_operand_lossage.
3924 2017-02-28 Richard Biener <rguenther@suse.de>
3926 PR tree-optimization/79740
3927 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
3929 (visit_nary_op): Insert the nary into the hashtable if we
3930 pattern-matched sth.
3931 * tree-ssa-pre.c (eliminate_insert): Robustify.
3933 2017-02-28 Richard Biener <rguenther@suse.de>
3936 * fold-const.c (decode_field_reference): Reject out-of-bound
3939 2017-02-28 Jakub Jelinek <jakub@redhat.com>
3941 * config/i386/i386.c: Include intl.h.
3942 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
3943 instead of just cond ? "..." : "...".
3944 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
3945 * coverage.c (read_counts_file): Likewise.
3946 * omp-offload.c: Include intl.h.
3947 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
3948 of just cond ? "..." : "...".
3949 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
3950 of just cond ? "..." : "...".
3952 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
3955 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
3957 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
3958 'tune for' CPU name.
3959 * config/arm/arm-cpu-data.h: Regenerated.
3961 2017-02-28 Richard Biener <rguenther@suse.de>
3963 PR tree-optimization/79732
3964 * tree-inline.c (expand_call_inline): Do not shadow var.
3966 2017-02-28 Richard Biener <rguenther@suse.de>
3968 PR tree-optimization/79723
3969 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
3970 address-space properly.
3972 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
3974 * doc/optinfo.texi (Optimization groups): Fix option used for
3976 * doc/invoke.texi (-fopt-info): Document "omp".
3977 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
3978 (OPTGROUP_ALL): Add OPTGROUP_OMP.
3979 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
3980 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
3981 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
3983 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
3985 * dumpfile.c (optgroup_options): Instead of "openmp", associate
3986 OPTGROUP_OMP with "omp".
3988 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
3991 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
3992 for arithmetic shift of unsigned V2DI.
3994 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
3996 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
3997 arc/linux.h headers.
3998 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
3999 (LINK_SPEC): Likewise.
4000 (ARC_TLS_EXTRA_START_SPEC): Likewise.
4001 (EXTRA_SPECS): Likewise.
4002 (STARTFILE_SPEC): Likewise.
4003 (ENDFILE_SPEC): Likewise.
4004 (LIB_SPEC): Likewise.
4005 (TARGET_SDATA_DEFAULT): Likewise.
4006 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
4007 (MULTILIB_DEFAULTS): Likewise.
4008 (DWARF2_UNWIND_INFO): Likewise.
4009 * config/arc/big.h: New file.
4010 * config/arc/elf.h: Likewise.
4011 * config/arc/linux.h: Likewise.
4012 * config/arc/t-uClibc: Remove.
4014 2017-02-27 Bin Cheng <bin.cheng@arm.com>
4016 PR tree-optimization/77536
4017 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
4018 (tree_transform_and_unroll_loop): Use above function to compute the
4019 estimated niter of unrolled loop and use it when scaling profile.
4020 Also use count info rather than frequency if it's non-zero.
4021 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
4022 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
4023 (vect_transform_loop): Call above function.
4025 2017-02-27 Richard Biener <rguenther@suse.de>
4027 PR tree-optimization/45397
4028 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
4029 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
4030 (visit_nary_op): Add pattern matching for CSEing sign-changed
4031 or truncated operations with wider ones.
4033 2017-02-27 Richard Biener <rguenther@suse.de>
4035 PR tree-optimization/79690
4036 * tree-vect-stmts.c (vectorizable_store): Use vector type
4037 built from the DR with address-space.
4039 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
4041 * doc/invoke.texi (Optimize Options): Refine the description
4042 of asan-use-after-return.
4044 2017-02-25 Alan Modra <amodra@gmail.com>
4046 PR rtl-optimization/79584
4047 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
4048 base, not ad->base_term, the reg within base. Remove assertion
4049 that ad->base == ad->base_term. Replace gen_int_mode using
4050 bogus mode with const0_rtx.
4052 2017-02-25 Jakub Jelinek <jakub@redhat.com>
4055 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
4056 FMA_EXPR like tcc_binary or tcc_unary.
4058 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
4061 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
4063 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
4064 (output_loc_operands): Handle DW_OP_call_ref and
4065 DW_OP_GNU_variable_value.
4066 (struct variable_value_struct): New type.
4067 (struct variable_value_hasher): Likewise.
4068 (variable_value_hash): New variable.
4069 (string_types): Remove.
4070 (copy_loc_descr): New function.
4071 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
4072 (prepend_loc_descr_to_each): New function.
4073 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
4074 instead of add_loc_descr_to_each if the first argument is single
4075 location list and the second has multiple.
4076 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
4077 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
4078 when looking for variable value which doesn't have other location info.
4079 (loc_list_from_tree): Formatting fix.
4080 (gen_array_type_die): Simplify DW_AT_string_length handling.
4081 (adjust_string_types): Remove.
4082 (gen_subprogram_die): Don't call adjust_string_types nor test/set
4083 string_types. Call resolve_variable_values.
4084 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
4085 (resolve_addr_in_expr): Likewise. Add A argument.
4086 (copy_deref_exprloc): Remove deref argument. Adjust for the
4087 original expression being DW_OP_GNU_variable_value with optionally
4088 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
4089 optionally after it.
4090 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
4091 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
4092 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
4093 (variable_value_hasher::hash, variable_value_hasher::equal): New
4095 (resolve_variable_value_in_expr, resolve_variable_value,
4096 resolve_variable_values, note_variable_value_in_expr,
4097 note_variable_value): New functions.
4098 (dwarf2out_early_finish): Call note_variable_value on all toplevel
4101 2017-02-24 Jakub Jelinek <jakub@redhat.com>
4104 * opts.h (handle_generated_option): Add GENERATED_P argument.
4105 * opts-common.c (handle_option): Adjust function comment.
4106 (handle_generated_option): Add GENERATED_P argument, pass it to
4108 (control_warning_option): Pass false to handle_generated_option
4110 * opts.c (maybe_default_option): Pass true to handle_generated_option
4112 * optc-gen.awk: Likewise.
4114 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4116 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
4117 a REG, look at the REG it is a SUBREG of.
4118 (splitter for cmpeqsi_t): Ditto.
4120 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4122 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
4123 the special USEs with the pattern of the insn, not the insn itself.
4125 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
4128 * doc/invoke.texi: Document -mload-store-pairs.
4130 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4131 Sandra Loosemore <sandra@codesourcery.com>
4133 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
4134 argument isn't a CONST_INT.
4135 (nios2_alternate_compare_const): Assert op is a CONST_INT.
4136 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
4137 (nios2_validate_compare): Bypass alternate compare logic if *op2
4139 (ldstwm_operation_p): Return false if first_base is not a REG or
4140 if first_offset is not a CONST_INT.
4142 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4144 * config/cris/cris.md: Use correct operand in a define_peephole2.
4146 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4148 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
4150 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
4152 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
4153 this_insn if it is an INSN or JUMP_INSN.
4154 (force_offsettable): Look at base, not at addr.
4155 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
4156 on things that aren't necessarily CONST_INTs.
4158 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
4160 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
4161 -mfpmath=sse is the default also for x86-32 targets with SSE2
4162 instruction set when @option{-ffast-math} is enabled
4164 2017-02-24 Jeff Law <law@redhat.com>
4166 PR rtl-optimizatoin/79286
4167 * ira.c (update_equiv_regs): Drop may_trap_p exception to
4170 2017-02-24 Richard Biener <rguenther@suse.de>
4172 PR tree-optimization/79389
4173 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
4176 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
4178 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
4179 function comment to reflect reality.
4180 (loop_exits_before_overflow): Fix typo in function description.
4182 2017-02-24 Richard Biener <rguenther@suse.de>
4184 PR tree-optimization/79389
4185 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
4186 properly that a threading opportunity exists. Detect conditional
4187 copy/constant propagation opportunities.
4189 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
4191 * config/visium/visium.md (type): Add trap.
4192 (b): New mode attribute.
4193 (*btst): Rename into...
4194 (*btst<mode>): ...this and adjust.
4195 (*cbranchsi4_btst_insn): Rename into...
4196 (*cbranch<mode>4_btst_insn): ...this and adjust.
4197 (trap): New define_insn.
4199 2017-02-23 Jakub Jelinek <jakub@redhat.com>
4201 PR tree-optimization/79389
4202 * ifcvt.c (struct noce_if_info): Add rev_cond field.
4203 (noce_reversed_cond_code): New function.
4204 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
4205 reversed_comparison_code. Formatting fix.
4206 (noce_try_store_flag): Test rev_cond != NULL in addition to
4207 reversed_comparison_code.
4208 (noce_try_store_flag_constants): Likewise.
4209 (noce_try_store_flag_mask): Likewise.
4210 (noce_try_addcc): Use rev_cond if non-NULL instead of
4211 reversed_comparison_code.
4212 (noce_try_cmove_arith): Likewise. Formatting fixes.
4213 (noce_try_minmax, noce_try_abs): Clear rev_cond.
4214 (noce_find_if_block): Initialize rev_cond.
4215 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
4216 instead of false as last argument never attempt to reverse it
4219 2017-02-23 Bin Cheng <bin.cheng@arm.com>
4221 PR tree-optimization/79663
4222 * tree-predcom.c (combine_chains): Process refs in reverse order
4223 only for ZERO length chains, and add explaining comment.
4225 2017-02-23 Jeff Law <law@redhat.com>
4227 PR tree-optimization/79578
4228 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
4229 in call to operand_equal_p.
4231 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
4234 * config/i386/cpuid.h: Fix another undefined behavior.
4236 2017-02-23 Richard Biener <rguenther@suse.de>
4238 PR tree-optimization/79683
4239 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
4240 vector types for data-refs.
4242 2017-02-23 Martin Liska <mliska@suse.cz>
4244 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
4246 2017-02-23 Jakub Jelinek <jakub@redhat.com>
4249 * internal-fn.c (get_range_pos_neg): Moved to ...
4250 * tree.c (get_range_pos_neg): ... here. No longer static.
4251 * tree.h (get_range_pos_neg): New prototype.
4252 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
4253 are known to be in between 0 and signed maximum inclusive, try to
4254 expand both unsigned and signed divmod and use the cheaper one from
4257 2017-02-22 Jeff Law <law@redhat.com>
4259 PR tree-optimization/79578
4260 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
4261 to compare base operands.
4263 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
4266 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
4267 gpc_reg_operand instead of fpr_reg_operand.
4269 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
4271 * config/mips/mips.c (mips_return_in_memory): Force FP
4272 vector types to be returned in memory for o32 ABI.
4274 2017-02-22 Jakub Jelinek <jakub@redhat.com>
4276 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
4277 instead of DW_TAG_member for static data member declarations and don't
4278 set no_linkage_name for static inline data members.
4279 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
4282 2017-02-22 Martin Liska <mliska@suse.cz>
4284 * doc/invoke.texi: Replace inequality signs with square brackets
4287 2017-02-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4289 PR tree-optimization/68644
4290 * gcc.dg/tree-ssa/ivopts-lt-2.c: Skip for powerpc*-*-*.
4292 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
4295 * lra-constraints.c (simplify_operand_subreg): Handle
4296 WORD_REGISTER_OPERATIONS targets.
4298 2017-02-22 Jakub Jelinek <jakub@redhat.com>
4301 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
4302 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
4303 elimination by swapping fld*.
4305 2017-02-22 Richard Biener <rguenther@suse.de>
4307 PR tree-optimization/79673
4308 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
4309 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
4310 irrelevant address-space qualifiers and avoiding a
4311 ADDR_SPACE_CONVERT_EXPR from fold_convert.
4313 2017-02-22 Richard Biener <rguenther@suse.de>
4315 PR tree-optimization/79666
4316 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
4317 to not symbolically negate if that may introduce undefined
4320 2017-02-22 Martin Liska <mliska@suse.cz>
4323 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
4324 * data-streamer-out.c (streamer_write_gcov_count_stream):
4326 * value-prof.c (stream_out_histogram_value): Make assert more
4327 precise based on type of counter.
4329 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
4332 * config/i386/i386.md (standard_x87sse_constant_load splitter):
4333 Use nonimmediate_operand instead of memory_operand for operand 1.
4334 (float-extend standard_x87sse_constant_load splitter): Ditto.
4336 2017-02-21 Jeff Law <law@redhat.com>
4338 PR tree-optimization/79621
4339 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
4340 blocks with edges to themselves.
4342 2017-02-21 Jakub Jelinek <jakub@redhat.com>
4345 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
4346 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
4347 Use gimple_call_builtin_p.
4350 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
4351 on temporarily removed DEBUG_INSNs.
4353 PR tree-optimization/79649
4354 * tree-loop-distribution.c (classify_partition): Give up on
4355 non-generic address space loads/stores.
4357 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
4359 * doc/loop.texi (Loop manipulation): Remove nonexistent
4360 tree_ssa_loop_version from the documentation.
4361 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
4363 2017-02-21 Jakub Jelinek <jakub@redhat.com>
4366 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
4367 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
4368 * config/rs6000/rs6000.c: Include except.h.
4369 (rs6000_expand_split_stack_prologue): Call
4370 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
4372 2017-02-21 Martin Jambor <mjambor@suse.cz>
4375 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
4378 2017-02-21 Martin Jambor <mjambor@suse.cz>
4380 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
4381 for backward compatibility only.
4382 * doc/invoke.texi (Option Summary): Remove all references to
4385 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
4389 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
4391 * lra-constraints.c (curr_insn_transform): Handle
4392 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
4394 2017-02-21 Martin Liska <mliska@suse.cz>
4396 * config/i386/i386.opt: Replace -masm-dialect with -masm.
4398 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
4400 PR translation/79638
4401 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
4403 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
4406 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
4407 (arm_function_ok_for_sibcall): Return false for an indirect call by
4408 descriptor if all the argument registers are used.
4409 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
4410 alignment of the function.
4412 2017-02-21 Jakub Jelinek <jakub@redhat.com>
4414 PR tree-optimization/61441
4415 * simplify-rtx.c (simplify_const_unary_operation): For
4416 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
4417 the sNaN unmodified.
4419 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
4421 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
4422 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
4423 instead of SYSTEM_HEADER_DIR.
4425 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
4426 Martin Liška <mliska@suse.cz>
4428 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
4429 Fix typos and grammar, use active voice, and clarify.
4431 2017-02-20 Marek Polacek <polacek@redhat.com>
4434 * gimplify.c (gimplify_expr): Handle unused *&&L;.
4437 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
4439 2017-02-20 Jakub Jelinek <jakub@redhat.com>
4442 * config/i386/i386.c (ix86_expand_builtin): Handle
4443 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
4444 ix86_builtins_isa[fcode].isa as a requirement of those
4445 flags and any other flag in the bitmask.
4446 (ix86_init_mmx_sse_builtins): Use 0 instead of
4447 ~OPTION_MASK_ISA_64BIT as mask.
4448 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
4449 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
4450 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
4451 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
4453 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
4456 * lra-constraints.c (split_reg): Check requested split mode
4457 is supported by the register.
4459 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
4461 * lra-constraints.c (simplify_operand_subreg): Remove early
4464 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
4467 * lra-constraints.c (curr_insn_transform): Tighten condition
4468 for converting SUBREG reloads from OP_OUT to OP_INOUT.
4470 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
4473 * lra-constraints.c (curr_insn_transform): Handle
4474 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
4476 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
4479 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
4481 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
4483 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
4486 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
4489 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4491 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
4494 2017-02-18 Jakub Jelinek <jakub@redhat.com>
4496 * final.c (last_columnnum, override_columnnum): New variables.
4497 (final_start_function): Set last_columnnum, pass it to begin_prologue
4498 hook and pass 0 to dwarf2out_begin_prologue.
4499 (final_scan_insn): Update override_columnnum. Pass last_columnnum
4500 to source_line debug hook.
4501 (notice_source_line): Compute last_columnnum and for debug_column_info
4502 return true on column changes.
4503 * debug.h (struct gcc_debug_hooks): Add column argument to
4504 source_line and begin_prologue hooks.
4505 (debug_nothing_int_charstar_int_bool): Remove prototype.
4506 (debug_nothing_int_int_charstar,
4507 debug_nothing_int_int_charstar_int_bool): New prototypes.
4508 (dwarf2out_begin_prologue): Add column argument.
4509 * debug.c (do_nothing_debug_hooks): Adjust source_line and
4510 begin_prologue hooks.
4511 (debug_nothing_int_charstar_int_bool): Remove.
4512 (debug_nothing_int_int_charstar,
4513 debug_nothing_int_int_charstar_int_bool): New functions.
4514 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
4515 through to dwarf2out_source_line.
4516 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
4517 (dwarf2out_source_line): Add column argument, emit it if requested.
4518 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
4520 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
4521 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
4522 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
4523 through to dwarf2out_begin_prologue.
4524 (vmsdbgout_source_line): Add column argument, pass it through to
4525 dwarf2out_source_line.
4526 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
4527 dbxout_source_line caller.
4528 (dbxout_source_line): Add column argument.
4530 * common.opt (gno-column-info, gcolumn-info): New options.
4531 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
4532 (check_die): Also test for multiple DW_AT_decl_column attributes.
4533 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
4534 DW_AT_decl_column if requested.
4535 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
4537 (gen_variable_die): Likewise.
4538 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
4539 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
4542 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
4543 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
4544 (ix86_handle_option): Handle OPT_m3dnowa.
4545 * doc/invoke.texi (-m3dnowa): Document.
4546 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
4547 -m3dnowa instead of -m3dnow -march=athlon.
4550 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
4551 instead of gcc_assert for K, r and R code checks. Formatting fixes.
4553 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4556 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
4557 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
4558 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
4559 generator for vsx_xxpermdi_<mode>_be.
4560 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
4561 force big-endian semantics.
4562 (vsx_xxpermdi_<mode>_be): New define_expand with same
4563 implementation as previous version of vsx_xxpermdi_<mode>.
4565 2017-02-17 Jakub Jelinek <jakub@redhat.com>
4567 PR tree-optimization/79327
4568 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
4569 variable, its initialization and use.
4571 2017-02-17 Julia Koval <julia.koval@intel.com>
4573 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
4574 (OPTION_MASK_ISA_PKU_UNSET): New.
4575 (ix86_handle_option): Handle -mrdpid.
4576 * config/i386/cpuid.h (bit_RDPID): New.
4577 * config/i386/driver-i386.c (host_detect_local_cpu):
4578 Detect RDPID feature.
4579 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
4580 * config/i386/i386-c.c (ix86_target_macros_internal):
4582 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
4583 (ix86_valid_target_attribute_inner_p): Add "rdpid".
4584 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
4585 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
4586 * config/i386/i386.md (define_insn "rdpid"): New.
4587 * config/i386/i386.opt Add -mrdpid.
4588 * config/i386/immintrin.h (_rdpid_u32): New.
4590 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
4592 PR rtl-optimization/79541
4593 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
4594 instead of transforming it into USE.
4596 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
4598 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
4599 If HONOR_SNANS (SFmode) force the input to a register.
4600 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
4601 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
4602 an frsp or similar insn.
4604 2017-02-17 Martin Liska <mliska@suse.cz>
4606 PR rtl-optimization/79577
4607 * params.def (selsched-max-sched-times): Increase minimum to 1.
4609 2017-02-17 Martin Liska <mliska@suse.cz>
4611 PR rtl-optimization/79574
4612 * gcse.c (want_to_gcse_p): Prevent integer overflow.
4614 2017-02-17 Martin Liska <mliska@suse.cz>
4616 PR tree-optimization/79529
4617 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
4618 ssa_defined_default_def_p to handle cases which are implicitly
4620 * tree-ssa.c (ssa_defined_default_def_p): New function.
4621 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
4622 which are implicitly defined.
4623 * tree-ssa.h (ssa_defined_default_def_p): Declare.
4625 2017-02-17 Richard Biener <rguenther@suse.de>
4628 * params.def (max-ssa-name-query-depth): Limit to 10.
4630 2017-02-17 Richard Biener <rguenther@suse.de>
4632 PR tree-optimization/79552
4633 * tree-ssa-structalias.c (visit_loadstore): Properly verify
4636 2017-02-17 Richard Biener <rguenther@suse.de>
4639 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
4641 2017-02-17 Marek Polacek <polacek@redhat.com>
4644 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
4645 (fold_negate_expr): New wrapper.
4647 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
4649 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
4650 Correct terminology and de-emphasize pre-standard behavior.
4652 2017-02-16 Alan Modra <amodra@gmail.com>
4654 PR rtl-optimization/79286
4655 * ira.c (def_dominates_uses): New function.
4656 (update_equiv_regs): Don't create an equivalence for insns that
4657 may trap where the register def does not dominate the use.
4659 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
4661 PR rtl-optimization/78127
4662 * lra.c (lra): Call lra_eliminate before finish the loop after
4665 2017-02-16 Richard Biener <rguenther@suse.de>
4667 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
4669 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
4670 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
4671 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
4672 (isl_val_int_from_wi): New function.
4673 (extract_affine_gmp): Rename to ...
4674 (extract_affine_wi): ... this, take a widest_int.
4675 (extract_affine_int): Just wrap extract_affine_wi.
4676 (add_param_constraints): Use isl_val_int_from_wi.
4677 (add_loop_constraints): Likewise, and extract_affine_wi.
4679 2017-02-15 Jeff Law <law@redhat.com>
4682 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
4683 ira_init_register_move_cost_if_necessary.
4685 2017-02-15 Martin Sebor <msebor@redhat.com>
4688 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
4689 removed in a prior commit.
4691 2017-02-15 Bin Cheng <bin.cheng@arm.com>
4693 PR tree-optimization/79347
4694 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
4695 counters during peeling.
4697 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
4699 * Makefile.in (site.exp): Remove "set ISLVER".
4701 2017-02-15 Jakub Jelinek <jakub@redhat.com>
4704 * real.c (real_from_integer): Call real_convert even for decimal.
4706 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
4709 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
4711 2017-02-14 Andrew Pinski <apinski@cavium.com>
4713 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
4714 cores and change the partno/implementer to be correct.
4715 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
4716 the 'B" as the implementer.
4717 * config/aarch64/aarch64-tune.md: Regenerate.
4719 2017-02-14 Carl Love <cel@us.ibm.com>
4721 * config/rs6000/rs6000.c: Add case statement entry to make the
4722 xvcvuxdsp built-in argument unsigned.
4723 * config/rs6000/vsx.md: Fix the source and return operand types so they
4724 match the instruction definitions from the ISA document. Fix typo
4725 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
4728 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
4731 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
4732 member early_clobber_alts.
4733 * lra-lives.c (reg_early_clobber_p): New.
4734 (process_bb_lives): Use it.
4735 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
4736 (debug_operand_data): Initialize early_clobber_alts.
4737 (setup_operand_alternative): Set up early_clobber_alts.
4738 (collect_non_operand_hard_regs): Ditto. Pass early clobber
4739 alternatives to new_insn_reg.
4740 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
4742 (lra_update_insn_regno_info): Pass the new arg.
4744 2017-02-14 Jakub Jelinek <jakub@redhat.com>
4747 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
4748 (new_oacc_loop_raw): Don't clear already cleared fields.
4751 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
4752 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
4753 _mm512_prefetch_i64gather_ps): New inline functions and macros.
4755 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
4758 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
4760 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
4763 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
4764 the extra instruction to the right place to store 128-bit constant
4767 2017-02-14 Martin Sebor <msebor@redhat.com>
4770 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
4771 warning for strings of unknown length.
4773 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
4775 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
4777 2017-02-14 Jeff Law <law@redhat.com>
4780 * ira-costs.c (scan_one_insn): Initialize register move costs
4781 for pseudos seen in USE/CLOBBER insns.
4783 PR tree-optimization/79095
4784 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
4785 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
4786 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
4787 if the operands are known to be not equal, then the resulting range
4789 (intersect_ranges): If the new range is ~[0,0] and the old range is
4790 wide, then prefer ~[0,0].
4791 * tree-vrp.c (overflow_comparison_p_1): New function.
4792 (overflow_comparison_p): New function.
4793 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
4794 if NAME is used in an overflow test.
4795 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
4796 overflow check that can be expressed as an equality test, then adjust
4797 ops to be that equality test.
4799 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4801 * config/s390/s390-builtin-types.def: Remove flags argument.
4802 * config/s390/s390.c (s390_init_builtins): Likewise.
4804 2017-02-14 Martin Liska <mliska@suse.cz>
4806 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
4807 vector. Fix trailing white spaces.
4809 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
4811 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
4814 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4816 PR rtl-optimization/68664
4817 * config/arm/arm.c (arm_sched_can_speculate_insn):
4818 New function. Declare prototype.
4819 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
4821 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4823 PR rtl-optimization/68664
4824 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
4826 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
4828 2017-02-14 Amit Pawar <amit.pawar@amd.com>
4830 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
4831 max skip bytes for function, loop and jump.
4833 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4835 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
4836 ABS_EXPR for gimple dump.
4838 2017-02-14 Jakub Jelinek <jakub@redhat.com>
4841 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
4843 PR tree-optimization/79408
4844 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
4845 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
4846 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
4847 also if rhs1 is INTEGER_CST.
4849 2017-02-14 Richard Biener <rguenther@suse.de>
4852 * tree-into-ssa.c (insert_phi_nodes): When the function can
4853 have abnormal edges rewrite SSA names with broken use-def
4854 dominance out of SSA and register them for PHI insertion.
4856 2017-02-13 Martin Sebor <msebor@redhat.com>
4859 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
4860 clearing info.nowrite flag when snprintf size argument is a range.
4862 2017-02-13 Jakub Jelinek <jakub@redhat.com>
4864 * cprop.c (cprop_jump): Add missing space in string literal.
4865 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
4866 (get_constraint_for_component_ref): Likewise.
4867 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
4868 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
4869 * lra-constraints.c (process_alt_operands): Likewise.
4870 * ipa-inline.c (inline_small_functions): Likewise.
4871 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
4872 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
4873 * trans-mem.c (diagnose_tm_1_op): Likewise.
4874 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
4875 (grid_parallel_clauses_gridifiable): Likewise.
4877 * config/nvptx/mkoffload.c (process): Add space in between
4880 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
4881 "MOD4_SSE_REGS" and "ALL_REGS".
4883 * spellcheck.c (test_data): Add , in between "foo" and "food".
4885 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4888 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
4889 boundary crossing check and subsequent code generation agree.
4891 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4893 * config/aarch64/aarch64.c (has_memory_op): Delete.
4894 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
4897 2017-02-13 Jakub Jelinek <jakub@redhat.com>
4899 PR rtl-optimization/79388
4900 PR rtl-optimization/79450
4901 * combine.c (distribute_notes): When removing TEM_INSN for which
4902 corresponding dest has last value recorded, invalidate that last
4905 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4907 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
4908 of explicit '@'. Add missing assembly comment marker on branch costs
4911 2017-02-13 Nathan Sidwell <nathan@acm.org>
4913 * gengtype-lex.l (<in_struct>): Add '/'.
4915 2017-02-13 Martin Liska <mliska@suse.cz>
4918 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
4920 2017-02-13 Richard Biener <rguenther@suse.de>
4922 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
4924 * configure: Re-generate.
4925 * config.in: Likewise.
4926 * graphite-dependences.c: Simplify as if
4927 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
4928 * graphite-isl-ast-to-gimple.c: Likewise.
4929 * graphite-optimize-isl.c: Likewise.
4930 * graphite-poly.c: Likewise.
4931 * graphite-sese-to-poly.c: Likewise.
4932 * graphite.h: Likewise.
4933 * toplev.c: Include isl/version.h and use isl_version () for
4934 printing the ISL version.
4935 * doc/install.texi: Update ISL requirement.
4937 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
4939 * doc/standards.texi (Standards): Update reference to
4942 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
4944 * doc/extend.texi (Named Address Spaces): sourceware.org now
4946 * doc/install.texi (Binaries): Ditto.
4949 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
4951 * doc/cpp.texi: Replace "stringify"/"stringification" with C
4952 standard terminology "stringize"/"stringizing" throughout.
4953 * doc/cppinternals.texi: Likewise.
4955 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
4957 * doc/extend.texi: Fix some spelling mistakes and typos.
4958 * doc/invoke.texi: Likewise.
4960 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
4963 * params.def (inline-min-speedup) Change from 10 to 8.
4965 2017-02-11 Jakub Jelinek <jakub@redhat.com>
4967 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
4970 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
4973 * ipa-inline-analysis.c (get_minimal_bb): New function.
4974 (record_modified): Use it.
4975 (remap_edge_change_prob): Handle also ancestor functions.
4977 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
4979 * doc/contrib.texi (Contributors): Remove broken link into
4980 the Mauve CVS repository.
4982 2017-02-11 Jakub Jelinek <jakub@redhat.com>
4985 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
4986 result computation whenever lhs doesn't have vector mode, not
4987 just when it has BLKmode.
4989 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
4991 * doc/makefile.texi (profiledbootstrap): Refer to the
4992 installation instructions only in textual form.
4994 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4997 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
4999 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
5001 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
5002 (Specific): Update mingw-w64 reference.
5004 (Specific): Remove broken link to Renesas RX processor.
5006 2017-02-10 Richard Biener <rguenther@suse.de>
5008 * toplev.c (process_options): Do not mention obsolete graphite
5009 options when printing sorry message about missing graphite support.
5010 Mention -floop-nest-optimize.
5012 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
5014 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
5015 (vtst_p16): Likewise.
5016 (vtstq_p8): Likewise.
5017 (vtstq_p16): Likewise.
5019 (vtstq_p64): Likewise.
5020 * config/arm/arm_neon.h (vgetq_lane_p64): New.
5021 (vset_lane_p64): New.
5022 (vsetq_lane_p64): New.
5024 2017-02-10 Jakub Jelinek <jakub@redhat.com>
5026 PR tree-optimization/79411
5027 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
5028 stmt operands are SSA_NAMEs used in abnormal phis.
5029 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
5032 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
5035 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
5038 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
5040 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
5042 2017-02-09 Jakub Jelinek <jakub@redhat.com>
5044 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
5048 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
5049 not arbitrary TREE_CONSTANT.
5052 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
5053 "omp declare target link" attribute unless is_global_var.
5054 * omp-offload.c (find_link_var_op): Likewise.
5056 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
5057 Chung-Lin Tang <cltang@codesourcery.com>
5059 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
5061 (gimplify_adjust_omp_clauses): Don't delete TILE.
5062 (gimplify_omp_for): Deal with TILE.
5063 * internal-fn.c (expand_GOACC_TILE): New function.
5064 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
5066 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
5067 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
5069 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
5070 avoid DIV for outermost collapse var.
5071 (expand_oacc_for): Insert tile element loop as needed. Adjust.
5072 Remove out of date comments, fix whitespace.
5073 * omp-general.c (omp_extract_for_data): Deal with tiling.
5074 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
5075 adjust OLF_DIM_BASE value.
5076 (struct omp_for_data): Add tiling field.
5077 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
5078 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
5079 for auto loops. Remove default auto determining, moved to
5080 oacc_loop_fixed_partitions.
5081 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
5082 stmts, add e_mask field.
5083 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
5084 (oacc_thread_numbers): Use oacc_dim_call.
5085 (oacc_xform_tile): New.
5086 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
5087 (finish_oacc_loop): Adjust for ifns vector.
5088 (oacc_loop_discover_walk): Append loop abstraction sites to list,
5089 add case for GOACC_TILE fns.
5090 (oacc_loop_xform_loop): Delete.
5091 (oacc_loop_process): Iterate over call list directly, and add
5092 handling for GOACC_TILE fns.
5093 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
5095 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
5096 vector partitioning to outer loops. Assign 2 partitions to loops
5097 when available. Add TILE handling.
5098 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
5099 (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
5100 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
5101 * tree.c (omp_clause_num_ops): Adjust TILE ops.
5102 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
5104 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
5106 * configure.ac (ACX_BUGURL): Update.
5107 * configure: Regenerate.
5109 2017-02-09 Richard Biener <rguenther@suse.de>
5111 PR tree-optimization/69823
5112 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
5113 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
5115 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
5117 * config/arc/arc-c.def: Add __NPS400__ definition.
5118 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
5119 (TARGET_NPS400): Define.
5121 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
5123 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
5125 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
5127 (arc_cpu_types): Fill the arch_info field with a pointer into the
5128 arc_arch_types table.
5129 (arc_selected_cpu): Declare.
5130 * config/arc/arc.c (arc_selected_cpu): Make global.
5131 (arc_selected_arch): Delete.
5132 (arc_base_cpu): Delete.
5133 (arc_override_options): Remove references to deleted variables,
5134 update access to arch information.
5135 (ARC_OPT): Update access to arch information.
5136 (ARC_OPTX): Likewise.
5137 * config/arc/arc.h (arc_base_cpu): Remove declaration.
5138 (TARGET_ARC600): Update access to arch information.
5139 (TARGET_ARC601): Likewise.
5140 (TARGET_ARC700): Likewise.
5141 (TARGET_EM): Likewise.
5142 (TARGET_HS): Likewise.
5143 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
5146 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
5149 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
5150 condition/operands for integer GE/LE/GEU/LEU operations.
5152 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
5154 PR translation/79397
5155 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
5158 2017-02-08 Martin Jambor <mjambor@suse.cz>
5161 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
5162 whether allocation happened.
5163 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
5164 nothing was allocated.
5166 2017-02-08 Jakub Jelinek <jakub@redhat.com>
5168 PR tree-optimization/79408
5169 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
5170 constant, but SSA_NAME with a known integer range, use the minimum
5171 of that range instead of op1 to determine if modulo can be replaced
5172 with its first operand.
5174 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5176 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
5178 2017-02-08 Richard Biener <rguenther@suse.de>
5180 PR tree-optimization/71824
5181 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
5182 Check all loops contained in the merged region.
5184 2017-02-07 Andrew Pinski <apinski@cavium.com>
5186 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
5188 2017-02-07 Andrew Pinski <apinski@cavium.com>
5190 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
5191 (thunderxt88): Likewise.
5192 (thunderxt81): Disable LSE and change v8.1 to v8.
5193 (thunderxt83): Likewise.
5195 2017-02-07 Jakub Jelinek <jakub@redhat.com>
5196 Richard Biener <rguenther@suse.de>
5199 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
5200 type from int to size_t.
5201 * ira-costs.c (struct_costs_size): Change type from int to size_t.
5203 2017-02-07 Jakub Jelinek <jakub@redhat.com>
5205 PR rtl-optimization/79386
5206 * cprop.c (bypass_conditional_jumps): Initialize
5207 bypass_last_basic_block already before splitting bbs after
5208 unconditional traps...
5209 (bypass_conditional_jumps): ... rather than here.
5212 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
5213 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
5214 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
5215 fix -masm=intel patterns.
5217 2017-02-07 Richard Biener <rguenther@suse.de>
5219 PR tree-optimization/79256
5221 * builtins.c (get_object_alignment_2): Use min_align_of_type
5222 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
5223 and ADJUST_FIELD_ALIGN.
5225 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
5227 * doc/tm.texi: Regenerate.
5228 * stor-layout.c (layout_decl): Adjust.
5229 (update_alignment_for_field): Likewise.
5230 (place_field): Likewise.
5231 (min_align_of_type): Likewise.
5232 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
5233 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
5234 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
5235 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
5236 * config/frv/frv.c (frv_adjust_field_align): Likewise.
5237 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
5238 * config/i386/i386.c (x86_field_alignment): Likewise.
5239 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
5240 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
5241 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
5242 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
5243 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
5244 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
5248 2017-01-30 Richard Biener <rguenther@suse.de>
5250 PR tree-optimization/79256
5251 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
5252 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
5255 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
5257 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
5258 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
5259 builtins to SImode and emit a zero-extend, if necessary.
5261 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
5263 * docs/invoke.texi (RISC-V Options): Alphabetize.
5265 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
5267 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
5270 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
5272 * config/riscv/riscv.c: New file.
5273 * gcc/common/config/riscv/riscv-common.c: Likewise.
5274 * config.gcc: Likewise.
5275 * config/riscv/constraints.md: Likewise.
5276 * config/riscv/elf.h: Likewise.
5277 * config/riscv/generic.md: Likewise.
5278 * config/riscv/linux.h: Likewise.
5279 * config/riscv/multilib-generator: Likewise.
5280 * config/riscv/peephole.md: Likewise.
5281 * config/riscv/pic.md: Likewise.
5282 * config/riscv/predicates.md: Likewise.
5283 * config/riscv/riscv-builtins.c: Likewise.
5284 * config/riscv/riscv-c.c: Likewise.
5285 * config/riscv/riscv-ftypes.def: Likewise.
5286 * config/riscv/riscv-modes.def: Likewise.
5287 * config/riscv/riscv-opts.h: Likewise.
5288 * config/riscv/riscv-protos.h: Likewise.
5289 * config/riscv/riscv.h: Likewise.
5290 * config/riscv/riscv.md: Likewise.
5291 * config/riscv/riscv.opt: Likewise.
5292 * config/riscv/sync.md: Likewise.
5293 * config/riscv/t-elf-multilib: Likewise.
5294 * config/riscv/t-linux: Likewise.
5295 * config/riscv/t-linux-multilib: Likewise.
5296 * config/riscv/t-riscv: Likewise.
5297 * configure.ac: Likewise.
5298 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
5299 Waterman as RISC-V maintainers.
5300 * doc/install.texi: Add RISC-V entries.
5301 * doc/invoke.texi: Add RISC-V options section.
5302 * doc/md.texi: Add RISC-V constraints section.
5303 * configure: Regenerated.
5305 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
5308 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
5309 false values to be constant vectors with all 0 or all 1 bits set.
5310 (vcondu<mode><mode>): Likewise.
5311 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
5313 (fpmask_comparison_operator): Update comment.
5314 (vecint_comparison_operator): New predicate.
5315 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
5316 vector conditionals when the true and false values are constant
5317 vectors with all 0 bits or all 1 bits set.
5319 2017-02-06 Martin Sebor <msebor@redhat.com>
5321 PR tree-optimization/79376
5322 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
5324 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
5326 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
5327 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
5328 to simplify split condition.
5330 2017-02-06 Jakub Jelinek <jakub@redhat.com>
5332 * omp-expand.c (oxpand_omp_atomic_fetch_op,
5333 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
5336 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
5338 PR rtl-optimization/68664
5339 * target.def (can_speculate_insn): New hook.
5340 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
5341 * doc/tm.texi: Regenerate.
5342 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
5343 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
5344 (rs6000_sched_can_speculate_insn): New function.
5346 2017-02-06 Jakub Jelinek <jakub@redhat.com>
5348 PR tree-optimization/79284
5349 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
5350 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
5351 vectorizable_mask_load_store, vectorizable_operation,
5352 vect_is_simple_cond, get_same_sized_vectype): Use it instead
5353 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
5354 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
5355 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
5356 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
5357 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
5358 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
5359 is_gimple_assign (stmt). Replace another such test with
5360 is_gimple_assign (stmt).
5362 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
5365 * config/avr/avr.c (rtl-iter.h): Include it.
5366 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
5367 (avr_legitimate_combined_insn): ...and implementation.
5369 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
5371 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
5372 * config/s390/s390.c (s390_const_operand_ok)
5373 (s390_canonicalize_comparison, s390_extract_part)
5374 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
5375 (s390_contiguous_bitmask_p, s390_rtx_costs)
5376 (legitimize_pic_address): Likewise.
5377 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
5378 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
5379 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
5380 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
5381 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
5383 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
5385 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
5386 REGNO($0) == REGNO($1).
5388 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5390 * config/s390/linux.h(SIZE_TYPE): Add comment.
5392 2017-02-06 Julian Brown <julian@codesourcery.com>
5393 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
5394 Virendra Pathak <virendra.pathak@broadcom.com>
5396 * config/aarch64/aarch64-cores.def: Change the scheduler
5398 * config/aarch64/aarch64.md: Include thunderx2t99.md.
5399 * config/aarch64/thunderx2t99.md: New file.
5401 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
5403 * doc/standards.texi (Go Language): Update link to language
5406 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
5408 * tree-eh.c (lower_resx): Sanitize profile.
5409 (cleanup_empty_eh_move_lp): Likewise.
5411 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
5414 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
5416 * cfgloopmanip.h (loop_version): Update prototype.
5417 * modulo-sched.c (sms_schedule): Update call of loop_version.
5418 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
5419 * tree-parloops.c (gen_parallel_loop): Likewise.
5420 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
5421 * tree-ssa-loop-split.c (split_loop): Likewise.
5422 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
5423 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
5425 2017-02-05 Martin Liska <mliska@suse.cz>
5428 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
5430 (print_operand_address): Initialize a struct to zero.
5432 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
5434 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
5435 garbage collector only in textual form.
5437 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
5439 * doc/extend.texi (x86 specific memory model extensions for
5440 transactional memory): Simplify a phrase.
5442 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
5445 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
5446 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
5447 (atomic_storedi_1): Likewise.
5449 2017-02-04 Jakub Jelinek <jakub@redhat.com>
5451 PR tree-optimization/79338
5452 * tree-parloops.c (gather_scalar_reductions): Don't call
5453 vect_analyze_loop_form for loop->inner before destroying loop's
5456 2017-02-03 Martin Sebor <msebor@redhat.com>
5458 PR tree-optimization/79327
5459 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
5460 when precision has resulted in leading zeros.
5461 (format_integer): Adjust the likely counter to assume an unknown
5462 argument that may be zero is non-zero.
5464 2017-02-03 Jason Merrill <jason@redhat.com>
5467 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
5468 avoid copying non-taken branch.
5470 2017-02-03 Jakub Jelinek <jakub@redhat.com>
5472 PR tree-optimization/79340
5473 * tree-vect-loop.c (vectorizable_reduction): Release
5474 vec_defs elements after safe_splicing them into other vectors.
5477 PR tree-optimization/79327
5478 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
5479 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
5481 (format_integer): Use wide_int_to_tree instead of build_int_cst
5482 + to_?hwi. If argmin is NULL, just set argmin and argmax to
5483 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
5484 of shortest and longest sequence.
5486 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
5488 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
5489 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
5491 2017-02-03 Walter Lee <walt@tilera.com>
5494 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
5495 after initial stackframe link reg save.
5496 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
5498 2017-02-03 Jakub Jelinek <jakub@redhat.com>
5501 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
5502 wu for stxssp alternative.
5504 2017-02-03 Martin Sebor <msebor@redhat.com>
5506 PR tree-optimization/79352
5507 * gimple-fold.c (get_range_strlen): Add argument.
5508 (get_range_strlen): Change return type to bool.
5509 (get_maxval_strlen): Pass in a dummy argument.
5510 * gimple-fold.h (get_range_strlen): Change return type to bool.
5511 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
5512 * tree.h (array_at_struct_end_p): Add argument.
5513 * tree.c (array_at_struct_end_p): Handle it.
5515 2017-02-03 Martin Liska <mliska@suse.cz>
5518 * multiple_target.c (create_dispatcher_calls): Redirect edge
5519 from a caller of a dispatcher.
5520 (expand_target_clones): Make the clones local.
5521 (ipa_target_clone): Do both target clones and resolvers.
5522 (ipa_dispatcher_calls): Remove the pass.
5523 (pass_dispatcher_calls::gate): Likewise.
5524 (make_pass_dispatcher_calls): Likewise.
5525 * passes.def (pass_target_clone): Put as very first IPA early
5528 2017-02-03 Martin Liska <mliska@suse.cz>
5530 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
5531 in case of a function with ifunc attribute.
5533 2017-02-03 Martin Liska <mliska@suse.cz>
5535 * cgraph.c (cgraph_node::dump): Dump function version info.
5536 * symtab.c (symtab_node::dump_base): Add missing new line.
5538 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
5540 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
5541 (ifcombine_ifandif): Use it.
5543 2017-02-03 Martin Liska <mliska@suse.cz>
5545 * doc/invoke.texi: Document default value for
5546 use-after-scope-direct-emission-threshold.
5548 2017-02-03 Martin Liska <mliska@suse.cz>
5550 PR tree-optimization/79339
5551 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
5552 (format_floating): Likewise.
5554 2017-02-03 Martin Liska <mliska@suse.cz>
5557 * ipa-prop.c (ipa_node_params_t::insert): Remove current
5559 (ipa_node_params_t::remove): Likewise.
5560 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
5561 initialization from removed ipa_node_params_t::insert.
5562 (ipa_node_params::~ipa_node_params): Move from removed
5563 ipa_node_params_t::release.
5564 * symbol-summary.h (symbol_summary::m_released): New member.
5565 Do not release a summary twice. Do not allow to call finalizer
5566 for types of a summary that live in GGC memory.
5568 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
5570 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
5573 2017-02-02 Martin Sebor <msebor@redhat.com>
5576 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
5577 (format_string): Tighten up the range of output for non-constant
5578 strings and correct the expected range for wide non-constant strings.
5580 2017-02-02 Martin Sebor <msebor@redhat.com>
5582 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
5585 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
5587 (-fdump-tree-@var): Add to index and document how to come up
5588 with pass-specific option and dump file names.
5589 (-fdump-passes): Clarify where to look for output.
5591 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
5594 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
5595 statistics of the analyzed path; allow threading for speed when
5596 any of BBs along the path are optimized for speed.
5598 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
5601 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
5602 settings of the virtual registers.
5605 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
5607 * explow.c (get_dynamic_stack_size): Take known alignment of stack
5608 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
5611 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5613 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
5614 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
5616 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5618 * config/s390/s390.md: Add missing comments with the expanded
5620 * config/s390/vector.md: Likewise.
5621 * config/s390/vx-builtins.md: Likewise.
5623 2017-02-02 Jakub Jelinek <jakub@redhat.com>
5626 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
5627 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
5628 conditions on a single line.
5630 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5632 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
5633 __S390_VX__ to __VX__.
5635 2017-02-01 Andrew Pinski <apinski@cavium.com>
5637 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
5638 stmt_info to record_stmt_cost.
5639 (vect_get_known_peeling_cost): Pass stmt_info if known to
5641 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
5642 cpu_vector_cost field into
5643 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
5644 field into vec_int_stmt_cost and vec_fp_stmt_cost.
5645 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
5646 splitting of scalar_stmt_cost and vec_stmt_cost.
5647 (thunderx_vector_cost): Likewise.
5648 (cortexa57_vector_cost): LIkewise.
5649 (exynosm1_vector_cost): Likewise.
5650 (xgene1_vector_cost): Likewise.
5651 (thunderx2t99_vector_cost): Improve after the splitting of the two
5653 (aarch64_builtin_vectorization_cost): Update for the splitting of
5654 scalar_stmt_cost and vec_stmt_cost.
5656 2017-02-01 Torvald Riegel <triegel@redhat.com>
5657 Richard Henderson <rth@redhat.com>
5659 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
5660 conditional on existance of a fast atomic load.
5661 * optabs-query.c (can_atomic_load_p): New function.
5662 * optabs-query.h (can_atomic_load_p): Declare it.
5663 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
5664 no fast atomic load is available for the particular size of access.
5665 (expand_atomic_compare_and_swap): Likewise.
5666 (expand_atomic_load): Likewise.
5667 (expand_atomic_store): Likewise.
5668 (expand_atomic_fetch_op): Likewise.
5669 * testsuite/lib/target-supports.exp
5670 (check_effective_target_sync_int_128): Remove x86 because it provides
5671 no fast atomic load.
5672 (check_effective_target_sync_int_128_runtime): Likewise.
5674 2017-02-01 Richard Biener <rguenther@suse.de>
5676 * graphite.c: Include tree-vectorizer.h for find_loop_location.
5677 (graphite_transform_loops): Provide opt-info for optimized nests.
5678 * tree-parloop.c (parallelize_loops): Provide opt-info for
5681 2017-02-01 Richard Biener <rguenther@suse.de>
5684 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
5687 2017-02-01 Richard Biener <rguenther@suse.de>
5689 PR tree-optimization/71824
5690 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
5691 Verify the loops are valid in the merged SESE region.
5692 (scop_detection::can_represent_loop_1): Check analyzing the
5693 evolution of the number of iterations in the region succeeds.
5695 2017-01-31 Ian Lance Taylor <iant@golang.org>
5697 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
5698 REG_ARGS_SIZE note to 32-bit push insns and call insn.
5700 2017-01-31 David Malcolm <dmalcolm@redhat.com>
5702 PR preprocessor/79210
5703 * input.c (get_substring_ranges_for_loc): Replace line_width
5704 assertion with error-handling.
5706 2017-01-31 Richard Biener <rguenther@suse.de>
5708 PR tree-optimization/77318
5709 * graphite-sese-to-poly.c (extract_affine): Fix assert.
5710 (create_pw_aff_from_tree): Take loop parameter.
5711 (add_condition_to_pbb): Pass loop of the condition to
5712 create_pw_aff_from_tree.
5714 2017-01-31 Jakub Jelinek <jakub@redhat.com>
5716 * config/s390/s390.c (s390_asan_shadow_offset): New function.
5717 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
5719 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
5723 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
5725 (convert_int_to_float128): Likewise.
5726 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
5727 (convert_int_to_float128): Likewise.
5728 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
5729 (UNSPEC_IEEE128_CONVERT): Likewise.
5730 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
5731 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
5732 Use local variables for IBM extended format.
5733 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
5734 (fix_trunc<mode>si2_fprs): Likewise.
5735 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
5736 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
5737 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
5738 to know that we can now have integers of all sizes in vector
5740 (fix<uns>_<mode>di2_hw): Likewise.
5741 (float<uns>_<mode>si2_hw): Likewise.
5742 (fix_<mode>si2_hw): Likewise.
5743 (fixuns_<mode>si2_hw): Likewise.
5744 (float<uns>_<mode>di2_hw): Likewise.
5745 (float_<mode>di2_hw): Likewise.
5746 (float_<mode>si2_hw): Likewise.
5747 (floatuns_<mode>di2_hw): Likewise.
5748 (floatuns_<mode>si2_hw): Likewise.
5749 (xscvqp<su>wz_<mode>): Delete, no longer used.
5750 (xscvqp<su>dz_<mode>): Likewise.
5751 (xscv<su>dqp_<mode>): Likewise.
5752 (ieee128_mfvsrd_64bit): Likewise.
5753 (ieee128_mfvsrd_32bit): Likewise.
5754 (ieee128_mfvsrwz): Likewise.
5755 (ieee128_mtvsrw): Likewise.
5756 (ieee128_mtvsrd_64bit): Likewise.
5757 (ieee128_mtvsrd_32bit): Likewise.
5759 2017-01-31 Martin Liska <mliska@suse.cz>
5762 * ipa-prop.c (ipa_free_all_node_params): Call release method
5763 instead of ~sumbol_summary to not to trigger double times
5766 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
5768 PR tree-optimization/71691
5769 * bitmap.h (class auto_bitmap): New.
5770 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
5771 is_maybe_undefined instead of ssa_undefined_value_p.
5773 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5775 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
5776 __S390_ARCH_LEVEL__ to __ARCH__.
5778 2017-01-31 Jakub Jelinek <jakub@redhat.com>
5780 PR tree-optimization/79267
5781 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
5782 if should_remove_lhs_p is true.
5784 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
5787 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
5788 (add_alignment_attribute): New.
5789 (base_type_die): Add alignment attribute.
5790 (subrange_type_die): Likewise.
5791 (modified_type_die): Likewise.
5792 (gen_array_type_die): Likewise.
5793 (gen_descr_array_type_die: Likewise.
5794 (gen_enumeration_type_die): Likewise.
5795 (gen_subprogram_die): Likewise.
5796 (gen_variable_die): Likewise.
5797 (gen_field_die): Likewise.
5798 (gen_ptr_to_mbr_type_die): Likewise.
5799 (gen_struct_or_union_type_die): Likewise.
5800 (gen_subroutine_type_die): Likewise.
5801 (gen_typedef_die): Likewise.
5802 (base_type_cmp): Compare alignment attribute.
5804 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5807 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
5808 (setb_unsigned) New pattern for setb with CCUNS.
5809 * config/rs6000/rs6000.c (expand_block_compare): Use a different
5810 subfc./subfe sequence to avoid overflow problems. Generate a
5811 shorter sequence with cmpld/setb for power9.
5812 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
5813 for generating subfc. instruction.
5814 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
5815 now uses this instruction.
5817 2017-01-30 Ian Lance Taylor <iant@google.com>
5820 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
5821 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
5823 2017-01-30 Martin Sebor <msebor@redhat.com>
5825 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
5826 Move constant to the right of a relational operator.
5827 (get_mpfr_format_length, format_character, format_string): Ditto.
5828 (should_warn_p, maybe_warn): Same.
5830 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
5832 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
5835 * asan.c (get_translation_unit_decl): Remove function.
5836 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
5838 2017-01-30 Martin Liska <mliska@suse.cz>
5840 PR gcov-profile/79259
5841 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
5844 2017-01-30 Martin Liska <mliska@suse.cz>
5847 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
5848 Initialize variables with NULL value.
5850 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
5853 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
5855 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
5857 2017-01-30 Richard Biener <rguenther@suse.de>
5859 PR tree-optimization/79276
5860 * tree-vrp.c (process_assert_insertions): Properly adjust common
5861 when removing a duplicate.
5863 * gcc.dg/torture/pr79276.c: New testcase.
5865 2017-01-30 Richard Biener <rguenther@suse.de>
5867 PR tree-optimization/79256
5868 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
5869 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
5871 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
5873 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
5876 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
5877 ("*r<noxa>sbg_<mode>_sll_bitmask")
5878 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
5879 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
5880 Use contiguous_bitmask_nowrap_operand.
5882 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5885 * config/rs6000/altivec.h (vec_xl): Revise #define.
5886 (vec_xst): Likewise.
5888 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
5890 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
5892 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
5894 PR rtl-optimization/79194
5895 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
5896 traps before call to bypass_conditional_jumps.
5898 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
5900 PR tree-optimization/71374
5901 * lra-constraints.c (check_conflict_input_operands): New.
5902 (match_reload): Use it.
5904 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
5907 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
5908 account to calculate conflict_set.
5910 2017-01-27 Bin Cheng <bin.cheng@arm.com>
5912 PR rtl-optimization/78559
5913 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
5914 other_insn in combine.
5916 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
5918 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
5919 uint16_type_node for BT_UINT16.
5921 2017-01-27 David Malcolm <dmalcolm@redhat.com>
5923 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
5924 "RTL Tests" to menu.
5925 (GIMPLE Tests): New node.
5926 (RTL Tests): New node.
5928 2017-01-27 Richard Biener <rguenther@suse.de>
5930 PR tree-optimization/79245
5931 * tree-loop-distribution.c (distribute_loop): Apply cost
5932 modeling also to detected patterns.
5934 2017-01-27 Richard Biener <rguenther@suse.de>
5936 PR tree-optimization/71433
5937 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
5938 (compare_assert_loc): New function.
5939 (process_assert_insertions): Sort and optimize assert locations
5940 to remove duplicates and push down identical assertions on
5941 edges to their destination block.
5943 2017-01-27 Richard Biener <rguenther@suse.de>
5945 PR tree-optimization/79244
5946 * tree-vrp.c (remove_range_assertions): Forcefully propagate
5947 out SSA names even if abnormal.
5949 2017-01-27 Jakub Jelinek <jakub@redhat.com>
5951 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
5952 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
5953 instead of MPFR_RNDN.
5955 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
5958 * arm.c (arm_option_override): Don't call build_target_option_node
5959 until after doing all option overrides.
5960 (arm_valid_target_attribute_tree): Likewise.
5962 2017-01-27 Martin Liska <mliska@suse.cz>
5964 * doc/invoke.texi (-fprofile-arcs): Document profiling support
5965 for {cd}tors and C++ {cd}tors.
5967 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
5969 * config/s390/s390.md ("*setmem_long_and")
5970 ("*setmem_long_and_31z"): Use zero_extend instead of and.
5972 2017-01-26 Martin Sebor <msebor@redhat.com>
5974 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
5977 2017-01-26 Martin Sebor <msebor@redhat.com>
5979 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
5980 HAVE_DFmode before using XFmode or DFmode.
5981 (parse_directive): Avoid using the z length modifier to avoid
5982 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
5985 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
5986 to accept adjustment as an array.
5987 (get_int_range): New function.
5988 (struct directive): Make width and prec arrays.
5989 (directive::set_width, directive::set_precision): Call get_int_range.
5990 (format_integer, format_floating): Handle width and precision ranges.
5991 (format_string, parse_directive): Same.
5993 2017-01-26 Jakub Jelinek <jakub@redhat.com>
5996 * dwarf2out.c (generate_skeleton_bottom_up): For children with
5997 comdat_type_p set, just clone them, but keep the children in the
6001 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
6002 which have direct callers with -fvar-tracking-assignments enabled
6004 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
6005 inside of type units.
6007 2017-01-26 Martin Sebor <msebor@redhat.com>
6010 * gimple-ssa-sprintf.c (struct result_range): Add likely and
6012 (struct format_result): Replace number_chars, number_chars_min,
6013 and number_chars_max with a single member of struct result_range.
6015 (format_result::operator+=): Adjust.
6016 (struct fmtresult): Remove bounded. Handle likely and unlikely
6018 (fmtresult::adjust_for_width_or_precision): New function.
6019 (fmtresult:type_max_digits): New function.
6020 (bytes_remaining): Handle likely and unlikely counters.
6021 (min_bytes_remaining): Remove.
6022 (format_percent): Simplify.
6023 (format_integer, format_floating): Set likely and unlikely counters.
6024 (get_string_length, format_character, format_string): Same.
6025 (format_plain, should_warn_p): New function.
6026 (maybe_warn): Call should_warn_p. Update diagnostic messages
6027 and handle those for all directives, including plain strings.
6028 (format_directive): Handle likely and unlikely counters.
6029 Remove unnecessary quoting from diagnostics. Add an informational
6031 (add_bytes): Remove.
6032 (pass_sprintf_length::compute_format_length): Simplify.
6033 (try_substitute_return_value): Handle likely and unlikely counters.
6035 2017-01-26 Carl Love <cel@us.ibm.com>
6037 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
6038 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
6040 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
6043 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
6044 endianess for subregs into account.
6045 * lra-constraints.c (lra_constraints): Do risky transformations
6046 always on the first iteration.
6047 * lra-lives.c (check_pseudos_live_through_calls): Add arg
6048 last_call_used_reg_set.
6049 (process_bb_lives): Define and use last_call_used_reg_set.
6050 * lra.c (lra): Always continue after lra_constraints on the first
6053 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
6055 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
6057 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
6059 2017-01-26 Jakub Jelinek <jakub@redhat.com>
6061 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
6062 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
6063 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
6064 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
6065 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
6066 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
6067 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
6068 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
6069 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
6071 2017-01-26 Marek Polacek <polacek@redhat.com>
6074 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
6075 for the third operand.
6077 2017-01-26 Jakub Jelinek <jakub@redhat.com>
6080 * omp-low.c (struct omp_context): Add simt_stmt field.
6081 (scan_omp_for): Return omp_context *.
6082 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
6083 context to the _simt_ SIMD stmt.
6084 (lower_omp_for): For combined SIMD with sibling _simt_
6085 SIMD, make sure to use the same decls in _looptemp_
6086 clauses as in the sibling.
6088 2017-01-26 David Sherwood <david.sherwood@arm.com>
6091 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
6094 2017-01-26 Jakub Jelinek <jakub@redhat.com>
6097 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
6098 emit fld b; fld a; if possible.
6100 * brig-builtins.def: Update copyright years.
6101 * config/arm/arm_acle_builtins.def: Update copyright years.
6103 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
6106 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
6107 constraint instead of o for the stxsd instruction.
6109 2017-01-25 Carl Love <cel@us.ibm.com>
6111 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
6112 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
6114 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
6116 * doc/invoke.texi (C++ Dialect Options): Fix typo.
6118 2017-01-25 Richard Biener <rguenther@suse.de>
6120 PR tree-optimization/69264
6121 * target.def (vector_alignment_reachable): Improve documentation.
6122 * doc/tm.texi: Regenerate.
6123 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
6125 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
6126 earlier changes with respect to TYPE_USER_ALIGN.
6127 (vector_alignment_reachable_p): Likewise. Improve dumping.
6129 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6132 * config/arm/arm.md (xordi3): Force constant operand into a register
6135 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6137 * doc/invoke.texi (-fstore-merging): Correct default optimization
6138 levels at which it is enabled.
6139 (-O): Move -fstore-merging from list to...
6142 2017-01-25 Richard Biener <rguenther@suse.de>
6145 * omp-expand.c: Include debug.h.
6146 (expand_omp_taskreg): Make sure to generate early debug before
6147 outlining anything from a function.
6148 (expand_omp_target): Likewise.
6149 (grid_expand_target_grid_body): Likewise.
6151 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
6154 * asan.c (get_translation_unit_decl): New function.
6155 (asan_add_global): Extract modules file name from globals
6156 TRANSLATION_UNIT_DECL name.
6158 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
6161 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
6162 for long calls with APCS frame and VFP.
6164 2017-01-24 David Malcolm <dmalcolm@redhat.com>
6166 * cfg.c (original_copy_tables_initialized_p): New function.
6167 * cfg.h (original_copy_tables_initialized_p): New decl.
6168 * cfgrtl.c (relink_block_chain): Guard the call to
6169 free_original_copy_tables with a call to
6170 original_copy_tables_initialized_p.
6171 * cgraph.h (symtab_node::native_rtl_p): New decl.
6172 * cgraphunit.c (symtab_node::native_rtl_p): New function.
6173 (symtab_node::needed_p): Don't assert for early assembly output
6174 for __RTL functions.
6175 (cgraph_node::finalize_function): Set "force_output" for __RTL
6177 (cgraph_node::analyze): Bail out early for __RTL functions.
6178 (analyze_functions): Update assertion to support __RTL functions.
6179 (cgraph_node::expand): Bail out early for __RTL functions.
6180 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
6182 * function.h (struct function): Update comment for field
6184 * gimple-expr.c: Include "tree-pass.h".
6185 (gimple_has_body_p): Return false for __RTL functions.
6186 * Makefile.in (OBJS): Add run-rtl-passes.o.
6187 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
6189 (gcc::pass_manager::get_clean_slate): New accessor.
6190 * passes.c: Include "insn-addr.h".
6191 (should_skip_pass_p): Add logging. Update logic for running
6192 "expand" to be compatible with both __GIMPLE and __RTL. Guard
6193 property-provider override so it is only done for gimple passes.
6195 (skip_pass): New function.
6196 (execute_one_pass): Call skip_pass when skipping passes.
6197 * read-md.c (md_reader::read_char): Support filtering
6198 the input to a subset of line numbers.
6199 (md_reader::md_reader): Initialize fields
6200 m_first_line and m_last_line.
6201 (md_reader::read_file_fragment): New function.
6202 * read-md.h (md_reader::read_file_fragment): New decl.
6203 (md_reader::m_first_line): New field.
6204 (md_reader::m_last_line): New field.
6205 * read-rtl-function.c (function_reader::create_function): Only
6206 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
6207 curr_properties. Set DECL_INITIAL to a dummy block.
6208 (read_rtl_function_body_from_file_range): New function.
6209 * read-rtl-function.h (read_rtl_function_body_from_file_range):
6211 * run-rtl-passes.c: New file.
6212 * run-rtl-passes.h: New file.
6214 2017-01-24 Jeff Law <law@redhat.com>
6216 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
6219 2017-01-24 Bin Cheng <bin.cheng@arm.com>
6221 PR tree-optimization/79159
6222 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
6223 (record_nonwrapping_iv): Improve boundary using above function if no
6224 value range information.
6226 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
6227 Martin Jambor <mjambor@suse.cz>
6229 * brig-builtins.def: New file.
6230 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
6231 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
6232 (DEF_HSAIL_SAT_BUILTIN): Likewise.
6233 (DEF_HSAIL_INTR_BUILTIN): Likewise.
6234 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
6235 * builtin-types.def (BT_INT8): New.
6236 (BT_INT16): Likewise.
6237 (BT_UINT8): Likewise.
6238 (BT_UINT16): Likewise.
6239 (BT_FN_ULONG): Likewise.
6240 (BT_FN_UINT_INT): Likewise.
6241 (BT_FN_UINT_ULONG): Likewise.
6242 (BT_FN_UINT_LONG): Likewise.
6243 (BT_FN_UINT_PTR): Likewise.
6244 (BT_FN_ULONG_PTR): Likewise.
6245 (BT_FN_INT8_FLOAT): Likewise.
6246 (BT_FN_INT16_FLOAT): Likewise.
6247 (BT_FN_UINT32_FLOAT): Likewise.
6248 (BT_FN_UINT16_FLOAT): Likewise.
6249 (BT_FN_UINT8_FLOAT): Likewise.
6250 (BT_FN_UINT64_FLOAT): Likewise.
6251 (BT_FN_UINT16_UINT32): Likewise.
6252 (BT_FN_UINT32_UINT16): Likewise.
6253 (BT_FN_UINT16_UINT16_UINT16): Likewise.
6254 (BT_FN_INT_PTR_INT): Likewise.
6255 (BT_FN_UINT_PTR_UINT): Likewise.
6256 (BT_FN_LONG_PTR_LONG): Likewise.
6257 (BT_FN_ULONG_PTR_ULONG): Likewise.
6258 (BT_FN_VOID_UINT64_UINT64): Likewise.
6259 (BT_FN_UINT8_UINT8_UINT8): Likewise.
6260 (BT_FN_INT8_INT8_INT8): Likewise.
6261 (BT_FN_INT16_INT16_INT16): Likewise.
6262 (BT_FN_INT_INT_INT): Likewise.
6263 (BT_FN_UINT_FLOAT_UINT): Likewise.
6264 (BT_FN_FLOAT_UINT_UINT): Likewise.
6265 (BT_FN_ULONG_UINT_UINT): Likewise.
6266 (BT_FN_ULONG_UINT_PTR): Likewise.
6267 (BT_FN_ULONG_ULONG_ULONG): Likewise.
6268 (BT_FN_UINT_UINT_UINT): Likewise.
6269 (BT_FN_VOID_UINT_PTR): Likewise.
6270 (BT_FN_UINT_UINT_PTR: Likewise.
6271 (BT_FN_UINT32_UINT64_PTR): Likewise.
6272 (BT_FN_INT_INT_UINT_UINT): Likewise.
6273 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
6274 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
6275 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
6276 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
6277 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
6278 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
6279 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
6280 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
6281 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
6282 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
6283 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
6284 * doc/frontends.texi: List BRIG FE.
6285 * doc/install.texi (Testing): Add BRIG tesring requirements.
6286 * doc/invoke.texi (Overall Options): Mention BRIG.
6287 * doc/standards.texi (Standards): Doucment BRIG HSA version.
6289 2017-01-24 Richard Biener <rguenther@suse.de>
6291 PR translation/79208
6292 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
6294 2017-01-24 Martin Jambor <mjambor@suse.cz>
6297 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
6298 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
6301 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
6304 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
6305 casts from signed to unsigned really don't have a range.
6307 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
6309 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
6310 GMP_RNDx for compatiblity.
6312 2017-01-24 Martin Liska <mliska@suse.cz>
6315 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
6316 that would prevent us to call alloca with -1 as argument.
6318 2017-01-24 Jakub Jelinek <jakub@redhat.com>
6320 * dwarf2out.c (output_compilation_unit_header, output_file_names):
6321 Avoid -Wformat-security warning.
6323 2017-01-23 Andrew Pinski <apinski@cavium.com>
6325 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
6328 2017-01-23 Martin Sebor <msebor@redhat.com>
6331 * gimple-ssa-sprintf.c (warn_level): New global.
6332 (format_integer): Use it here and throughout the rest of the file.
6333 Use the same switch to compute sign as base.
6334 (maybe_warn): New function.
6335 (format_directive): Factor out warnings into maybe_warn.
6336 Add debugging output. Use warn_level.
6337 (add_bytes): Use warn_level.
6338 (pass_sprintf_length::compute_format_length): Add debugging output.
6339 (try_substitute_return_value): Same.
6340 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
6343 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
6344 (struct fmtresult, format_integer, format_floating): Adjust.
6345 (fmtresult::fmtresult): Set max correctly in two argument ctor.
6346 (get_string_length, format_string,format_directive): Same.
6347 (pass_sprintf_length::compute_format_length): Same.
6348 (try_substitute_return_value): Simplify slightly.
6351 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
6352 (fmtresult::operator+=): Outlined.
6353 (struct fmtresult): Add ctors.
6354 (struct conversion_spec): Rename...
6355 (struct directive): ...to this. Add and remove data members.
6356 (directive::set_width, directive::set_precision): New functions.
6357 (format_percent): Use fmtresult ctor.
6358 (get_width_and_precision): Remove.
6359 (format_integer): Make naming changes. Avoid computing width and
6361 (format_floating): Same. Adjust indentation.
6362 (format_character, format_none): New functions.
6363 (format_string): Moved character handling to format_character.
6364 (format_directive): Remove arguments, change return type.
6365 (parse_directive): New function.
6366 (pass_sprintf_length::compute_format_length): Move directive
6367 parsing to parse_directive.
6369 2017-01-23 Jakub Jelinek <jakub@redhat.com>
6371 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
6372 (assign_assembler_name_if_needed): ... this.
6373 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
6374 (assign_assembler_name_if_needed): ... this.
6375 (free_lang_data_in_cgraph): Adjust callers.
6376 * cgraphunit.c (cgraph_node::analyze): Likewise.
6377 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
6380 2017-01-23 Richard Biener <rguenther@suse.de>
6382 PR tree-optimization/79088
6383 PR tree-optimization/79188
6384 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
6385 resetting loop bounds after last path deletion. Reset loop
6386 bounds of the target loop, make code match the comments.
6387 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
6388 Make sure loops need no fixups.
6390 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
6392 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
6393 exponent support with double type for first argument.
6394 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
6395 type returned by __builtin_vec_extract_sig,
6396 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
6397 functions from "vector int" to "vector unsigned int" or from
6398 "vector long long int" to "vector unsigned long long int".
6399 Changed type returned by __builtin_vec_extract_exp,
6400 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
6401 functions from "vector int" to "vector unsigned int" or from
6402 "vector long long int" to "vector unsigned long long int".
6403 Changed return type of __builtin_vec_test_data_class,
6404 __builtin_vec_test_data_class_sp, and
6405 __builtin_vec_test_data_class_dp from "vector int" to
6406 "vector bool int" or from "vector long long int" to "vector bool
6407 long long int" and changed second argument type from "unsigned
6408 int" to "int". Added new overloaded function forms "vector float
6409 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
6410 "vector float __builtin_vec_insert_exp_sp (vector float, vector
6411 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
6412 double, vector unsigned long long int)" and "vector double
6413 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
6414 long int)". Changed return type of
6415 __builtin_scalar_test_data_class and
6416 __builtin_scalar_test_data_class_sp and
6417 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
6418 int" and changed second argument from "unsigned int" to "int".
6419 Changed type returned by __builtin_scalar_test_neg,
6420 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
6421 from "int" to "bool int". Added new overloaded function form
6422 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
6423 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
6424 exponent double-precision with floating point first argument.
6425 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
6426 documentation of scalar_test_data_class, scalar_test_neg,
6427 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
6428 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
6429 vec_test_data_class built-in functions to reflect refinements in
6430 their type signatures.
6432 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
6434 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
6436 (aarch64_elf_asm_destructor): Likewise.
6438 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
6440 PR rtl-optimization/78634
6441 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
6442 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
6443 * ifcvt.c (noce_try_cmove): Add missing cost check.
6445 PR rtl-optimization/71724
6446 * combine.c (if_then_else_cond): Look for situations where it is
6447 beneficial to undo the work of one of the recursive calls.
6449 2017-01-23 Bin Cheng <bin.cheng@arm.com>
6451 PR tree-optimization/70754
6452 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
6453 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
6454 combined stmt before it if not NULL.
6455 (combine_chains): Process refs reversely and compute dominance point
6458 2017-01-23 Martin Liska <mliska@suse.cz>
6460 PR tree-optimization/79196
6461 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
6462 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
6464 (strlen_optimize_stmt): Call the renamed function.
6466 2017-01-23 Michael Matz <matz@suse.de>
6468 PR tree-optimization/78384
6469 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
6471 2017-01-23 Richard Biener <rguenther@suse.de>
6473 PR tree-optimization/79186
6474 * tree-vrp.c (register_new_assert_for): Make sure we've seen
6475 both incoming edges before moving an assert.
6477 2017-01-23 Martin Jambor <mjambor@suse.cz>
6479 * ipa-prop.c (load_from_param_1): Removed.
6480 (load_from_unmodified_param): Bits from load_from_param_1 put back
6482 (load_from_param): Removed.
6483 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
6484 with stmt. Reverted back to use of load_from_unmodified_param.
6486 2017-01-23 Martin Jambor <mjambor@suse.cz>
6489 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
6490 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
6491 field a pointer to garbage collected vector, mark lattices and
6492 ipcp_orig_node with GTY((skip)).
6493 (ipa_get_param_count): Adjust to descriptors being a pointer.
6494 (ipa_get_param): Likewise.
6495 (ipa_get_type): Likewise.
6496 (ipa_get_param_move_cost): Likewise.
6497 (ipa_set_param_used): Likewise.
6498 (ipa_get_controlled_uses): Likewise.
6499 (ipa_set_controlled_uses): Likewise.
6500 (ipa_is_param_used): Likewise.
6501 (ipa_node_params_t): Move into garbage collector. New methods insert
6503 (ipa_node_params_sum): Annotate wth GTY(()).
6504 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
6506 (ipa_load_from_parm_agg): Adjust declaration.
6507 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
6508 * ipa-profile.c (ipa_profile): Likewise.
6509 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
6510 (ipa_populate_param_decls): Make descriptors parameter garbage
6512 (ipa_dump_param): Adjust to descriptors being a pointer.
6513 (ipa_alloc_node_params): Likewise.
6514 (ipa_initialize_node_params): Likewise.
6515 (load_from_param_1): Make descriptors parameter garbage collected.
6516 (load_from_unmodified_param): Likewise.
6517 (load_from_param): Likewise.
6518 (ipa_load_from_parm_agg): Likewise.
6519 (ipa_node_params::~ipa_node_params): Removed.
6520 (ipa_free_all_node_params): Remove call to delete operator.
6521 (ipa_node_params_t::insert): New.
6522 (ipa_node_params_t::remove): Likewise.
6523 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
6524 copy known_csts and known_contexts vectors.
6525 (ipa_read_node_info): Adjust to descriptors being a pointer.
6526 (ipcp_modif_dom_walker): Make m_descriptors field garbage
6528 (ipcp_transform_function): Make descriptors variable garbage
6531 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
6533 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
6534 * config/i386/avx512dqintrin.h: Ditto.
6535 * config/i386/avx512fintrin.h: Ditto.
6536 * gcc/config/i386/i386.c: Handle new builtins.
6537 * config/i386/i386-builtin.def: Add new builtins.
6538 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
6539 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
6541 2017-01-23 Jakub Jelinek <jakub@redhat.com>
6542 Martin Liska <mliska@suse.cz>
6544 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
6545 * asan.c (asan_expand_poison_ifn): Support stores and use
6546 appropriate ASAN report function.
6547 * internal-fn.c (expand_ASAN_POISON_USE): New function.
6548 * internal-fn.def (ASAN_POISON_USE): Declare.
6549 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
6550 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
6551 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
6552 ASAN_POISON calls w/o LHS.
6553 * tree-ssa.c (execute_update_addresses_taken): Create clobber
6554 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
6555 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
6556 * gimplify.c (asan_poison_variables): Add attribute
6557 use_after_scope_memory to variables that really needs to live
6559 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
6560 having the attribute.
6562 2017-01-23 Martin Liska <mliska@suse.cz>
6564 * asan.c (create_asan_shadow_var): New function.
6565 (asan_expand_poison_ifn): Likewise.
6566 * asan.h (asan_expand_poison_ifn): New declaration.
6567 * internal-fn.c (expand_ASAN_POISON): Likewise.
6568 * internal-fn.def (ASAN_POISON): New builtin.
6569 * sanopt.c (pass_sanopt::execute): Expand
6570 asan_expand_poison_ifn.
6571 * tree-inline.c (copy_decl_for_dup_finish): Make function
6573 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
6574 * tree-ssa.c (is_asan_mark_p): New function.
6575 (execute_update_addresses_taken): Rewrite local variables
6576 (identified just by use-after-scope as addressable) into SSA.
6578 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
6580 * doc/install.texi (Specific): opensource.apple.com uses https
6581 now. Remove trailing slash.
6583 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
6585 * README.Portability: Remove note on an Irix compatibility issue.
6587 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
6589 * gcov.c (INCLUDE_ALGORITHM): Define.
6590 (INCLUDE_VECTOR): Define.
6591 No longer include <vector> and <algorithm> directly.
6593 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
6595 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
6597 * doc/invoke.texi (Code Gen Options): Ditto.
6599 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
6602 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
6604 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
6606 rtl-optimization/79125
6607 * cprop.c (local_cprop_pass): Handle cases where we make an
6610 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
6614 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
6615 read from, for big endian.
6617 2017-01-20 Jiong Wang <jiong.wang@arm.com>
6619 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
6620 register pauth builtins for LP64 only.
6622 2017-01-20 Marek Polacek <polacek@redhat.com>
6625 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
6628 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
6630 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
6632 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
6633 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
6634 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
6636 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6639 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
6640 in big-endian mode when they are not a single duplicated value.
6642 2017-01-20 Richard Biener <rguenther@suse.de>
6644 * BASE-VER: Bump to 7.0.1.
6646 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
6648 * omp-low.c (omplow_simd_context): New struct. Use it...
6649 (lower_rec_simd_input_clauses): ...here and...
6650 (lower_rec_input_clauses): ...here to hold common data. Adjust all
6651 references to idx, lane, max_vf, is_simt.
6653 2017-01-20 Graham Markall <graham.markall@embecosm.com>
6655 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
6658 2017-01-20 Martin Jambor <mjambor@suse.cz>
6660 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
6661 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
6663 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
6664 (GTFILES): Rename hsa.c to hsa-common.c.
6665 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
6666 * hsa-dump.c: Likewise.
6667 * hsa-gen.c: Likewise.
6668 * hsa-regalloc.c: Likewise.
6669 * ipa-hsa.c: Likewise.
6670 * omp-expand.c: Likewise.
6671 * omp-low.c: Likewise.
6672 * toplev.c: Likewise.
6674 2017-01-20 Marek Polacek <polacek@redhat.com>
6677 * doc/invoke.texi: Document -Wduplicated-branches.
6678 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
6679 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
6680 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
6681 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
6682 return 0 only when not OEP_LEXICOGRAPHIC.
6683 (fold_build_cleanup_point_expr): Use the expression
6684 location when building CLEANUP_POINT_EXPR.
6685 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
6686 * tree.c (add_expr): Handle error_mark_node.
6688 2017-01-20 Martin Liska <mliska@suse.cz>
6691 * tree-profile.c (init_ic_make_global_vars): Do not call
6693 (gimple_init_gcov_profiler): Likewise.
6695 2017-01-20 Martin Liska <mliska@suse.cz>
6698 * cgraph.h (maybe_create_reference): Remove argument and
6700 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
6702 * ipa-cp.c (create_specialized_node): Likewise.
6703 * symtab.c (symtab_node::maybe_create_reference): Handle
6704 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
6706 2017-01-20 Martin Liska <mliska@suse.cz>
6708 * read-rtl-function.c (function_reader::create_function): Use
6709 build_decl instread of build_decl_stat.
6711 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
6713 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
6714 * config/i386/avx512dqintrin.h: Ditto.
6715 * config/i386/avx512fintrin.h: Ditto.
6716 * config/i386/i386-builtin-types.def: Add new types.
6717 * gcc/config/i386/i386.c: Handle new types.
6718 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
6719 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
6720 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
6721 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
6722 (__builtin_ia32_kshiftridi): New.
6723 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
6725 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
6729 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
6730 define to rs6000_init_stack_protect_guard.
6731 (rs6000_init_stack_protect_guard): New function.
6733 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
6734 Yunqiang Su <yunqiang.su@imgtec.com>
6736 * config.gcc (supported_defaults): Add madd4.
6737 (with_madd4): Add validation.
6738 (all_defaults): Add madd4.
6739 * config/mips/mips.opt (mmadd4): New option.
6740 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
6742 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
6744 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
6745 (ISA_HAS_FUSED_MADD4): Likewise.
6746 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
6747 * gcc/doc/install.texi (--with-madd4): Document the new option.
6749 2017-01-19 Jiong Wang <jiong.wang@arm.com>
6751 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
6752 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
6753 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
6754 (aarch64_init_pauth_hint_builtins): New.
6755 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
6756 (aarch64_expand_builtin): Expand new builtins.
6758 2017-01-19 Jiong Wang <jiong.wang@arm.com>
6760 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
6761 * combine-stack-adj.c (no_unhandled_cfa): Handle
6762 REG_CFA_TOGGLE_RA_MANGLE.
6763 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
6764 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
6765 info for return address signing.
6766 (aarch64_expand_epilogue): Likewise.
6768 2017-01-19 Jiong Wang <jiong.wang@arm.com>
6770 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
6771 * config/aarch64/aarch64-protos.h
6772 (aarch64_return_address_signing_enabled): New declaration.
6773 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
6775 (aarch64_expand_prologue): Sign return address before it's pushed onto
6777 (aarch64_expand_epilogue): Authenticate return address fetched from
6779 (aarch64_override_options): Sanity check for ILP32 and ISA level.
6780 (aarch64_attributes): New function attributes for "sign-return-address".
6781 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
6782 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
6783 ("*do_return"): Generate combined instructions according to key index.
6784 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
6785 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
6787 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
6788 * config/aarch64/aarch64.opt (msign-return-address=): New.
6789 * doc/extend.texi (AArch64 Function Attributes): Documents
6790 "sign-return-address=".
6791 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
6793 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
6795 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
6796 overall option summary.
6798 2017-01-19 Jiong Wang <jiong.wang@arm.com>
6800 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
6801 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
6802 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
6803 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
6805 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
6807 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
6808 -mpower9-minmax by default for -mcpu=power9.
6809 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
6810 128-bit floating point.
6812 2017-01-20 Alan Modra <amodra@gmail.com>
6814 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
6815 optimizing for size.
6817 2017-01-20 Alan Modra <amodra@gmail.com>
6820 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
6821 for strcmp and strncmp from corresponding builtin decl.
6823 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
6825 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
6826 instead of i386/rtems-64.h.
6827 * config/i386/rtems-64.h: Remove.
6829 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
6833 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
6835 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
6837 2017-01-19 Tamar Christina <tamar.christina@arm.com>
6839 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
6840 Change int to HOST_WIDE_INT.
6841 * config/aarch64/aarch64-protos.h
6842 (aarch64_simd_gen_const_vector_dup): Likewise.
6843 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
6845 2017-01-19 David Malcolm <dmalcolm@redhat.com>
6847 * langhooks-def.h (lhd_type_for_size): New decl.
6848 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
6849 * langhooks.c (lhd_type_for_size): New function, taken from
6852 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
6854 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
6855 define_bypass for CR latency.
6856 (power9-cracked-alu): Update bypass latency and remove power9-branch.
6857 (power9-alu2): Add define_bypass for CR latency.
6859 (power9-mul): Update insn latency.
6860 (power9-mul-compare): Update insn latency, bypass latency and remove
6863 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6865 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
6867 * config/aarch64/aarch64.md
6868 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
6869 aarch64_nopcrelative_literal_loads.
6870 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
6872 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
6874 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
6876 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
6878 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
6881 * config.gcc (supported_defaults): Add lxc1-sxc1.
6882 (with_lxc1_sxc1): Add validation.
6883 (all_defaults): Add lxc1-sxc1.
6884 * config/mips/mips.opt (mlxc1-sxc1): New option.
6885 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
6887 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
6888 __mips_no_lxc1_sxc1.
6889 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
6890 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
6891 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
6893 2017-01-19 Richard Biener <rguenther@suse.de>
6895 PR tree-optimization/72488
6896 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
6897 sure to restore SSA info.
6898 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
6900 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
6902 PR rtl-optimization/79121
6903 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
6904 of the inner type when shifting an extended value.
6906 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
6909 * symtab.c (symtab_node::equal_address_to): Fix comparing of
6910 interposable aliases.
6912 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
6915 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
6916 Use the evmergelohi instruction.
6917 (mov_si<mode>_e500_subreg4_2_le): Likewise.
6918 (mov_sitf_e500_subreg8_2_be): Likewise.
6919 (mov_sitf_e500_subreg12_2_le): Likewise.
6920 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
6921 (mov_si<mode>_e500_subreg4_2_be): Likewise.
6922 (mov_sitf_e500_subreg8_2_le): Likewise.
6923 (mov_sitf_e500_subreg12_2_be): Likewise.
6925 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6927 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
6928 attribute from vecsimple to vecperm.
6929 (altivec_vbpermq2): Likewise.
6931 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6934 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
6936 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
6937 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
6938 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
6939 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
6940 case where N arg is SIZE_MAX.
6941 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
6942 (cmpstrsi): Add pattern.
6944 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6946 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6947 __builtin_vec_revb builtins.
6948 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
6949 built-in functions to support generation of the ISA 3.0 XXBR<x>
6950 vector byte reverse instructions.
6951 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
6952 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
6953 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
6954 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
6955 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
6956 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
6957 (P9V_BUILTIN_VEC_REVB): Likewise.
6958 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
6959 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
6960 (p9_xxbrq_v16qi): Likewise.
6961 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
6962 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
6963 (p9_xxbrh_v8hi): Likewise.
6964 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
6965 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
6966 vec_revb built-in functions.
6968 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
6970 PR rtl-optimization/78952
6971 * config/i386/i386.md (any_extract): New code iterator.
6972 (*insvqi_2): Use any_extract for source operand.
6973 (*insvqi_3): Use any_shiftrt for source operand.
6975 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
6977 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
6979 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
6981 2017-01-18 Matthias Klose <doko@ubuntu.com>
6983 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
6985 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6987 * config/rs6000/altivec.h (vec_bperm): Change #define.
6988 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
6989 (altivec_vbpermq2): New define_insn.
6990 (altivec_vbpermd): Likewise.
6991 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
6993 (VBPERMD): Likewise.
6994 (VBPERM): New polymorphic function interface.
6995 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
6996 Add entries for P9V_BUILTIN_VEC_VBPERM.
6997 * doc/extend.texi: Add interfaces for vec_bperm.
6999 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7001 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
7002 first letter of error messages.
7003 (s390_resolve_overloaded_builtin): Likewise.
7004 * config/s390/s390.c (s390_expand_builtin): Likewise.
7005 (s390_invalid_arg_for_unprototyped_fn): Likewise.
7006 (s390_valid_target_attribute_inner_p): Likewise.
7007 * config/s390/s390.md ("tabort"): Likewise.
7009 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
7011 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
7012 (ISA_AVOID_DIV_HILO): New macro.
7013 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
7014 (ISA_HAS_DDIV): Likewise.
7016 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7018 * doc/invoke.texi (fabi-version): Correct number of occurrences.
7020 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7022 * doc/invoke.texi (fabi-version): Spelling fix.
7024 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7027 * doc/invoke.texi (fabi-version): Mention mangling fix for
7030 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
7033 * doc/invoke.texi (fabi-version): Document discriminator mangling.
7035 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
7038 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
7039 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
7041 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
7043 (stack_protect_test): Ditto.
7044 * config/rs6000/rs6000.opt (mstack-protector-guard=,
7045 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
7047 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
7048 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
7049 -mstack-protector-guard-offset=.
7050 (RS/6000 and PowerPC Options): Ditto.
7052 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
7054 * config/i386/i386.h (MASK_CLASS_P): New define.
7055 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
7056 there are no registers from different register sets also when
7057 mask registers are used. Update function comment.
7058 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
7059 to (*k/*r) and (*k/*km) alternatives.
7061 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
7063 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
7064 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
7065 (EH_RETURN_HANDLER_RTX): New define.
7066 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
7067 Force frame pointer in EH return functions.
7068 (aarch64_expand_epilogue): Add barrier for eh_return.
7069 (aarch64_final_eh_return_addr): Remove.
7070 (aarch64_eh_return_handler_rtx): New function.
7071 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
7073 (aarch64_eh_return_handler_rtx): New prototype.
7075 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7077 * config/rs6000/altivec.h (vec_rlmi): New #define.
7078 (vec_vrlnm): Likewise.
7079 (vec_rlnm): Likewise.
7080 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
7081 (UNSPEC_VRLNM): Likewise.
7082 (VIlong): New mode iterator.
7083 (altivec_vrl<VI_char>mi): New define_insn.
7084 (altivec_vrl<VI_char>nm): Likewise.
7085 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
7088 (RLNM): New polymorphic function entry.
7089 (VRLWMI): New monomorphic function entry.
7091 (RLMI): New polymorphic function entry.
7092 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
7093 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
7094 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
7097 2017-01-17 Jakub Jelinek <jakub@redhat.com>
7100 * dwarf2out.c (field_byte_offset): Restore the
7101 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
7102 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
7103 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
7106 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
7109 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
7111 2017-01-17 Jakub Jelinek <jakub@redhat.com>
7114 * dwarf2out.c (add_data_member_location_attribute): For constant
7115 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
7116 instead of DW_AT_data_member_location, DW_AT_bit_offset and
7117 DW_AT_byte_size attributes.
7119 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
7121 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
7122 after forcing to constant memory when the code model is medium.
7124 2017-01-17 Julia Koval <julia.koval@intel.com>
7127 * config/i386/avx512fintrin.h
7128 (_mm512_i32gather_ps): Change __addr type to void const*.
7129 (_mm512_mask_i32gather_ps): Ditto.
7130 (_mm512_i32gather_pd): Ditto.
7131 (_mm512_mask_i32gather_pd): Ditto.
7132 (_mm512_i64gather_ps): Ditto.
7133 (_mm512_mask_i64gather_ps): Ditto.
7134 (_mm512_i64gather_pd): Ditto.
7135 (_mm512_mask_i64gather_pd): Ditto.
7136 (_mm512_i32gather_epi32): Ditto.
7137 (_mm512_mask_i32gather_epi32): Ditto.
7138 (_mm512_i32gather_epi64): Ditto.
7139 (_mm512_mask_i32gather_epi64): Ditto.
7140 (_mm512_i64gather_epi32): Ditto.
7141 (_mm512_mask_i64gather_epi32): Ditto.
7142 (_mm512_i64gather_epi64): Ditto.
7143 (_mm512_mask_i64gather_epi64): Ditto.
7144 (_mm512_i32scatter_ps): Change __addr type to void*.
7145 (_mm512_mask_i32scatter_ps): Ditto.
7146 (_mm512_i32scatter_pd): Ditto.
7147 (_mm512_mask_i32scatter_pd): Ditto.
7148 (_mm512_i64scatter_ps): Ditto.
7149 (_mm512_mask_i64scatter_ps): Ditto.
7150 (_mm512_i64scatter_pd): Ditto.
7151 (_mm512_mask_i64scatter_pd): Ditto.
7152 (_mm512_i32scatter_epi32): Ditto.
7153 (_mm512_mask_i32scatter_epi32): Ditto.
7154 (_mm512_i32scatter_epi64): Ditto.
7155 (_mm512_mask_i32scatter_epi64): Ditto.
7156 (_mm512_i64scatter_epi32): Ditto.
7157 (_mm512_mask_i64scatter_epi32): Ditto.
7158 (_mm512_i64scatter_epi64): Ditto.
7159 (_mm512_mask_i64scatter_epi64): Ditto.
7160 * config/i386/avx512pfintrin.h
7161 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
7162 (_mm512_mask_prefetch_i32gather_ps): Ditto.
7163 (_mm512_mask_prefetch_i64gather_pd): Ditto.
7164 (_mm512_mask_prefetch_i64gather_ps): Ditto.
7165 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
7166 (_mm512_prefetch_i32scatter_ps): Ditto.
7167 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
7168 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
7169 (_mm512_prefetch_i64scatter_pd): Ditto.
7170 (_mm512_prefetch_i64scatter_ps): Ditto.
7171 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
7172 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
7173 * config/i386/avx512vlintrin.h
7174 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
7175 (_mm_mmask_i32gather_ps): Ditto.
7176 (_mm256_mmask_i32gather_pd): Ditto.
7177 (_mm_mmask_i32gather_pd): Ditto.
7178 (_mm256_mmask_i64gather_ps): Ditto.
7179 (_mm_mmask_i64gather_ps): Ditto.
7180 (_mm256_mmask_i64gather_pd): Ditto.
7181 (_mm_mmask_i64gather_pd): Ditto.
7182 (_mm256_mmask_i32gather_epi32): Ditto.
7183 (_mm_mmask_i32gather_epi32): Ditto.
7184 (_mm256_mmask_i32gather_epi64): Ditto.
7185 (_mm_mmask_i32gather_epi64): Ditto.
7186 (_mm256_mmask_i64gather_epi32): Ditto.
7187 (_mm_mmask_i64gather_epi32): Ditto.
7188 (_mm256_mmask_i64gather_epi64): Ditto.
7189 (_mm_mmask_i64gather_epi64): Ditto.
7190 (_mm256_i32scatter_ps): Change __addr type to void*.
7191 (_mm256_mask_i32scatter_ps): Ditto.
7192 (_mm_i32scatter_ps): Ditto.
7193 (_mm_mask_i32scatter_ps): Ditto.
7194 (_mm256_i32scatter_pd): Ditto.
7195 (_mm256_mask_i32scatter_pd): Ditto.
7196 (_mm_i32scatter_pd): Ditto.
7197 (_mm_mask_i32scatter_pd): Ditto.
7198 (_mm256_i64scatter_ps): Ditto.
7199 (_mm256_mask_i64scatter_ps): Ditto.
7200 (_mm_i64scatter_ps): Ditto.
7201 (_mm_mask_i64scatter_ps): Ditto.
7202 (_mm256_i64scatter_pd): Ditto.
7203 (_mm256_mask_i64scatter_pd): Ditto.
7204 (_mm_i64scatter_pd): Ditto.
7205 (_mm_mask_i64scatter_pd): Ditto.
7206 (_mm256_i32scatter_epi32): Ditto.
7207 (_mm256_mask_i32scatter_epi32): Ditto.
7208 (_mm_i32scatter_epi32): Ditto.
7209 (_mm_mask_i32scatter_epi32): Ditto.
7210 (_mm256_i32scatter_epi64): Ditto.
7211 (_mm256_mask_i32scatter_epi64): Ditto.
7212 (_mm_i32scatter_epi64): Ditto.
7213 (_mm_mask_i32scatter_epi64): Ditto.
7214 (_mm256_i64scatter_epi32): Ditto.
7215 (_mm256_mask_i64scatter_epi32): Ditto.
7216 (_mm_i64scatter_epi32): Ditto.
7217 (_mm_mask_i64scatter_epi32): Ditto.
7218 (_mm256_i64scatter_epi64): Ditto.
7219 (_mm256_mask_i64scatter_epi64): Ditto.
7220 (_mm_i64scatter_epi64): Ditto.
7221 (_mm_mask_i64scatter_epi64): Ditto.
7222 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
7223 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
7224 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
7225 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
7226 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
7227 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
7228 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
7229 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
7230 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
7231 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
7232 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
7233 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
7234 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
7235 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
7236 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
7237 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
7238 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
7239 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
7240 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
7241 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
7242 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
7243 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
7244 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
7245 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
7246 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
7247 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
7248 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
7249 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
7250 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
7251 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
7252 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
7253 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
7254 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
7255 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
7256 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
7257 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
7258 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
7259 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
7260 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
7261 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
7262 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
7263 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
7264 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
7265 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
7266 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
7267 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
7268 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
7269 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
7270 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
7271 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
7272 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
7273 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
7274 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
7275 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
7276 definitions accordingly.
7278 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
7279 Kuan-Lin Chen <kuanlinchentw@gmail.com>
7282 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
7285 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
7288 * ira-conflicts.c (ira_build_conflicts): Update total conflict
7289 hard regs for inner regno.
7291 2017-01-17 Martin Liska <mliska@suse.cz>
7294 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
7295 assumption and add comment.
7297 2017-01-17 Nathan Sidwell <nathan@acm.org>
7299 * ipa-visibility.c (localize_node): New function, broken out of ...
7300 (function_and_variable_visibility): ... here. Call it.
7302 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
7305 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
7306 correctly set frequency of oudgoing edge.
7307 (duplicate_thread_path): Fix profile updating.
7309 2017-01-17 Jakub Jelinek <jakub@redhat.com>
7312 * configure.ac: Add GCC_BASE_VER.
7313 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
7314 version from BASE-VER file.
7315 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
7316 (gcc.o): Depend on $(BASEVER).
7317 * common.opt (dumpfullversion): New option.
7318 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
7319 * doc/invoke.texi: Document -dumpfullversion.
7320 * doc/install.texi: Document --with-gcc-major-version-only.
7321 * configure: Regenerated.
7323 2017-01-17 Richard Biener <rguenther@suse.de>
7325 PR tree-optimization/71433
7326 * tree-vrp.c (register_new_assert_for): Merge same asserts
7327 on all incoming edges.
7328 (process_assert_insertions_for): Handle insertions at the
7331 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
7333 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
7334 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
7336 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
7339 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
7342 2017-01-17 Alan Modra <amodra@gmail.com>
7345 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
7346 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
7347 symbolic stack limit when pic.
7349 2017-01-16 Martin Sebor <msebor@redhat.com>
7351 PR tree-optimization/78608
7352 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
7354 2017-01-16 Jeff Law <law@redhat.com>
7357 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
7358 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
7359 for several include directories that may be relative to sysroot.
7360 * config/i386/x-mingw32 (gplus_includedir): Define.
7361 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
7362 (native_system_includedir): Likewise.
7363 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
7364 override if TARGET_SYSTEM_ROOT is defined.
7365 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
7367 PR tree-optimization/79090
7368 PR tree-optimization/33562
7369 PR tree-optimization/61912
7370 PR tree-optimization/77485
7371 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
7372 and computed trims into the dump file.
7374 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
7376 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
7378 2017-01-16 Jakub Jelinek <jakub@redhat.com>
7381 * gimplify.c (gimplify_init_constructor): If want_value and
7382 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
7386 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
7387 sequence. Formatting fixes.
7388 (doloop_optimize): Formatting fixes.
7391 * gcc.c (debug_level_greater_than_spec_func): New function.
7392 (static_spec_functions): Add debug-level-gt spec function.
7393 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
7395 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
7396 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
7397 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
7398 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
7399 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
7400 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
7402 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
7404 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
7405 QImode fixups to general and mask registers only.
7407 2017-01-16 Carl Love <cel@us.ibm.com>
7409 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
7410 for built-in functions
7411 vector signed char vec_nabs (vector signed char)
7412 vector signed short vec_nabs (vector signed short)
7413 vector signed int vec_nabs (vector signed int)
7414 vector signed long long vec_nabs (vector signed long long)
7415 vector float vec_nabs (vector float)
7416 vector double vec_nabs (vector double)
7417 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
7419 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
7420 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
7421 * doc/extend.texi: Update the documentation file for the new built-in
7424 2017-01-16 Martin Sebor <msebor@redhat.com>
7426 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
7429 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7431 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
7432 UNSPEC_VSX__XXSPLTD to require special splat handling.
7434 2017-01-16 David Malcolm <dmalcolm@redhat.com>
7437 * system.h: Poison strndup.
7439 2017-01-16 Alan Modra <amodra@gmail.com>
7442 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
7445 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
7447 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
7449 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
7451 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
7452 call recog here. Assert that INSN_CODE (insn) is non-negative.
7454 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
7457 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
7459 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
7460 in the currently scheduled RTL fragment.
7462 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
7464 PR rtl-optimization/78751
7465 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
7468 2017-01-14 Jeff Law <law@redhat.com>
7470 PR tree-optimization/79090
7471 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
7472 variable length stores.
7473 (compute_trims): Delete dead assignment to *trim_tail.
7474 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
7477 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
7479 PR rtl-optimization/78626
7480 PR rtl-optimization/78727
7481 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
7482 of a block, and split such blocks after everything else is finished.
7484 2017-01-14 Alan Modra <amodra@gmail.com>
7487 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
7488 target legitimate_combined_insn.
7489 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
7490 (rs6000_legitimate_combined_insn): New function.
7491 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
7493 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
7494 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
7495 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
7497 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
7499 * doc/frontends.texi (G++ and GCC): Remove references to Java.
7501 2017-01-13 Jeff Law <law@redhat.com>
7503 PR tree-optimization/33562
7504 PR tree-optimization/61912
7505 PR tree-optimization/77485
7506 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
7508 (delete_dead_assignment): Likewise.
7509 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
7510 statement to delete_dead_call and delete_dead_assignment.
7512 2017-01-13 David Malcolm <dmalcolm@redhat.com>
7515 * substring-locations.c (format_warning_va): Strengthen case 1 so
7516 that both endpoints of the substring must be within the format
7517 range for just the substring to be printed.
7519 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
7521 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
7522 * config/i386/i386.c (ix86_target_string): Add missing options
7523 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
7524 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
7525 flags_other and ix86_target_other to flags2_other. Display unknown
7527 (ix86_valid_target_attribute_inner_p): Add missing options and
7528 reorder options by implied ISAs, as in ix86_target_string.
7530 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
7532 * hash-table.h (hash_table::too_empty_p): New function.
7533 (hash_table::expand): Use it.
7534 (hash_table::traverse): Likewise.
7535 (hash_table::empty_slot): Use sizeof (value_type) instead of
7536 sizeof (PTR) to convert bytes to elements. Shrink the table
7537 if the current size is excessive for the current number of
7540 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
7542 * ira-costs.c (record_reg_classes): Break from the inner loop
7543 early once alt_fail is known to be true. Update outer loop
7544 handling accordingly.
7546 2017-01-13 Jeff Law <law@redhat.com>
7548 * tree-ssa-dse.c (decrement_count): New function.
7549 (increment_start_addr, maybe_trim_memstar_call): Likewise.
7550 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
7551 when we know the partially dead statement is a mem* function.
7553 PR tree-optimization/61912
7554 PR tree-optimization/77485
7555 * tree-ssa-dse.c: Include expr.h.
7556 (maybe_trim_constructor_store): New function.
7557 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
7559 PR tree-optimization/33562
7560 PR tree-optimization/61912
7561 PR tree-optimization/77485
7562 * doc/invoke.texi: Document new dse-max-object-size param.
7563 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
7564 * tree-ssa-dse.c: Include params.h.
7565 (dse_store_status): New enum.
7566 (initialize_ao_ref_for_dse): New, partially extracted from
7568 (valid_ao_ref_for_dse, normalize_ref): New.
7569 (setup_live_bytes_from_ref, compute_trims): Likewise.
7570 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
7571 (maybe_trim_partially_dead_store): Likewise.
7572 (maybe_trim_complex_store): Likewise.
7573 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
7574 Track what bytes live from the original store. Return tri-state
7575 for dead, partially dead or live.
7576 (dse_dom_walker): Add constructor, destructor and new private members.
7577 (delete_dead_call, delete_dead_assignment): New extracted from
7579 (dse_optimize_stmt): Make a member of dse_dom_walker.
7580 Use initialize_ao_ref_for_dse.
7582 PR tree-optimization/33562
7583 PR tree-optimization/61912
7584 PR tree-optimization/77485
7585 * sbitmap.h (bitmap_count_bits): Prototype.
7586 (bitmap_clear_range, bitmap_set_range): Likewise.
7587 * sbitmap.c (bitmap_clear_range): New function.
7588 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
7590 2017-01-13 Martin Liska <mliska@suse.cz>
7593 * function.c (set_cfun): Add new argument force.
7594 * function.h (set_cfun): Likewise.
7595 * ipa-inline-transform.c (inline_call): Use the function when
7596 strict alising from is dropped for function we inline to.
7598 2017-01-13 Richard Biener <rguenther@suse.de>
7600 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
7601 for dumping GIMPLE INTEGER_CSTs.
7603 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7605 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
7606 to 201112L since C++17.
7608 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
7611 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
7612 if -fsanitize=kernel-address is present.
7614 2017-01-13 Richard Biener <rguenther@suse.de>
7616 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
7617 as _Literal ( type ) number in case usual suffixes do not
7618 preserve all information.
7620 2017-01-13 Richard Biener <rguenther@suse.de>
7622 PR tree-optimization/77283
7623 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
7624 and ssa-iterators.h.
7625 (is_feasible_trace): Implement a cost model based on joiner
7628 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7631 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
7632 char or short to __float128/_Float128 directly.
7634 2017-01-12 Martin Sebor <msebor@redhat.com>
7636 to -Wformat-overflow.
7637 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
7638 (min_bytes_remaining): Same.
7639 (get_string_length): Same.
7640 (format_string): Same.
7641 (format_directive): Same.
7643 (pass_sprintf_length::handle_gimple_call): Same.
7645 2017-01-12 Jakub Jelinek <jakub@redhat.com>
7647 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
7648 info.nowrite calls with no lhs that can't throw. Return bool
7649 whether gsi_remove has been called or not.
7650 (pass_sprintf_length::handle_gimple_call): Return bool whether
7651 try_substitute_return_value called gsi_remove. Formatting fix.
7652 (pass_sprintf_length::execute): Don't use gsi_remove if
7653 handle_gimple_call returned true.
7656 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
7657 be removed due to side-effects, don't remove following barrier nor
7658 turn the successor edge into fallthru edge.
7660 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7663 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
7664 element-reversing loads and stores as not swappable.
7666 2017-01-12 Nathan Sidwell <nathan@acm.org>
7667 Nicolai Stange <nicstange@gmail.com>
7669 * combine.c (try_combine): Don't ignore result of overlap checking
7670 loop. Combine overlap & asm check into single loop.
7672 2017-01-12 Richard Biener <rguenther@suse.de>
7674 * tree-pretty-print.c (dump_generic_node): Provide -gimple
7675 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
7677 2017-01-12 Richard Biener <rguenther@suse.de>
7679 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
7680 and TS_TARGET_OPTION directly derive from TS_BASE.
7681 * tree-core.h (tree_optimization_option): Derive from tree_base.
7682 (tree_target_option): Likewise.
7684 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
7686 * config/i386/i386.c (memory_address_length): Increase len
7687 only when rip_relative_addr_p returns false.
7689 2017-01-11 Julia Koval <julia.koval@intel.com>
7691 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
7692 (OPTION_MASK_ISA_SGX_SET): New.
7693 (ix86_handle_option): Handle OPT_msgx.
7694 * config.gcc: Added sgxintrin.h.
7695 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
7696 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
7697 * config/i386/i386.c (ix86_target_string): Add -msgx.
7699 (ix86_option_override_internal): Handle new options.
7700 (ix86_valid_target_attribute_inner_p): Add sgx.
7701 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
7702 * config/i386/i386.opt: Add msgx.
7703 * config/i386/sgxintrin.h: New file.
7704 * config/i386/x86intrin.h: Add sgxintrin.h.
7706 2017-01-11 Jakub Jelinek <jakub@redhat.com>
7709 * fold-const.c (maybe_nonzero_address): Return 1 for function
7711 (tree_single_nonzero_warnv_p): Don't handle function local objects
7715 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
7718 2017-01-11 David Malcolm <dmalcolm@redhat.com>
7721 * opts.c: Include "spellcheck.h"
7722 (struct string_fragment): New struct.
7723 (struct edit_distance_traits<const string_fragment &>): New
7725 (get_closest_sanitizer_option): New function.
7726 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
7728 2017-01-11 Jakub Jelinek <jakub@redhat.com>
7730 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
7732 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
7733 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
7734 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
7735 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
7736 for initial die_offset if dwarf_split_debug_info.
7737 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
7738 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
7740 (output_skeleton_debug_sections): Formatting fix. Use
7741 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
7742 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
7744 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
7746 * config/arm/cortex-a53.md: Add bypasses for
7748 (cortex_a53_r2f): Only use for transfers.
7749 (cortex_a53_f2r): Likewise.
7750 (cortex_a53_r2f_cvt): Add reservation for conversions.
7751 (cortex_a53_f2r_cvt): Likewise.
7753 2017-01-11 Tamar Christina <tamar.christina@arm.com>
7755 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
7756 to all inlined functions, change static to extern.
7758 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
7761 * config/arm/arm.c (legitimize_pic_address): Handle reference to
7763 (arm_assemble_integer): Likewise.
7765 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
7767 * config.gcc: Use new awk script to check CPU, FPU and architecture
7768 parameters for --with-... options.
7769 * config/arm/parsecpu.awk: New file
7770 * config/arm/arm-cpus.in: New file.
7771 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
7773 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
7775 * config/arm/t-arm: Update dependency rules.
7776 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
7777 of processing .def files.
7778 * config/arm/genopt.sh: Deleted.
7779 * config/arm/gentune.sh: Deleted.
7780 * config/arm/arm-cores.def: Deleted.
7781 * config/arm/arm-arches.def: Deleted.
7782 * config/arm/arm-fpus.def: Deleted.
7783 * config/arm/arm-tune.md: Regenerated.
7784 * config/arm/arm-tables.opt: Regenerated.
7785 * config/arm/arm-cpu.h: New generated file.
7786 * config/arm/arm-cpu-data.h: New generated file.
7787 * config/arm/arm-cpu-cdata.h: New generated file.
7789 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
7792 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
7794 (input_varpool_node): Unpack dynamically_initialized bit.
7796 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
7798 PR rtl-optimization/79032
7799 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
7800 the alignment of the adjusted memory reference against that of MODE,
7801 instead of the alignment of the original memory reference.
7803 2017-01-11 Martin Jambor <mjambor@suse.cz>
7805 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
7807 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
7808 decorated functions.
7810 2017-01-11 Richard Biener <rguenther@suse.de>
7812 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
7813 set range/nonnull info for PHI results. Do not set it on
7814 stmts marked for removal.
7816 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
7818 * expr.c (store_field): In the bitfield case, fetch the return value
7819 from the registers before applying a single big-endian adjustment.
7820 Always do a final load for a BLKmode value not larger than a word.
7822 2017-01-10 David Malcolm <dmalcolm@redhat.com>
7825 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
7826 that we correctly handle column numbers greater than
7827 LINE_MAP_MAX_COLUMN_NUMBER.
7829 2017-01-10 Martin Sebor <msebor@redhat.com>
7832 * gimple-ssa-sprintf.c (get_destination_size): Call
7833 {init,fini}object_sizes.
7834 * tree-object-size.c (addr_object_size): Adjust.
7835 (pass_through_call): Adjust.
7836 (pass_object_sizes::execute): Adjust.
7837 * tree-object-size.h (fini_object_sizes): Declare.
7839 2017-01-10 Martin Sebor <msebor@redhat.com>
7841 PR tree-optimization/78775
7842 * builtins.c (get_size_range): Move...
7843 * calls.c: ...to here.
7844 (alloc_max_size): Accept zero argument.
7845 (operand_signed_p): Remove.
7846 (maybe_warn_alloc_args_overflow): Call get_size_range.
7847 * calls.h (get_size_range): Declare.
7849 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
7851 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
7852 from TI's devices.csv file as of September 2016.
7853 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
7855 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
7857 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
7858 * doc/invoke.texi: Likewise.
7859 * doc/md.texi: Likewise.
7860 * doc/objc.texi: Likewise.
7862 2017-01-10 Joshua Conner <joshconner@google.com>
7864 * config/arm/fuchsia-elf.h: New file.
7865 * config/fuchsia.h: New file.
7866 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
7867 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
7869 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
7871 2016-01-10 Richard Biener <rguenther@suse.de>
7873 PR tree-optimization/79034
7874 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
7875 Propagate out degenerate PHIs in the joiner.
7877 2017-01-10 Martin Liska <mliska@suse.cz>
7879 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
7880 (sort_congruence_classes_by_decl_uid): Likewise.
7881 (sort_congruence_class_groups_by_decl_uid): Likewise.
7882 (sem_item_optimizer::merge_classes): Sort class, groups in these
7883 classes and members in the groups by DECL_UID of declarations.
7884 This would make merge operations stable.
7886 2017-01-10 Martin Liska <mliska@suse.cz>
7888 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
7889 usage of m_classes_vec.
7890 (sem_item_optimizer::~sem_item_optimizer): Likewise.
7891 (sem_item_optimizer::get_group_by_hash): Likewise.
7892 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
7893 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
7894 (sem_item_optimizer::verify_classes): Likewise.
7895 (sem_item_optimizer::process_cong_reduction): Likewise.
7896 (sem_item_optimizer::dump_cong_classes): Likewise.
7897 (sem_item_optimizer::merge_classes): Likewise.
7898 * ipa-icf.h (congruence_class_hash): Rename from
7899 congruence_class_group_hash. Remove declaration of m_classes_vec.
7901 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
7903 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
7904 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
7905 * config.gcc: Add avx512vpopcntdqintrin.h.
7906 * config/i386/avx512vpopcntdqintrin.h: New.
7907 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
7908 * config/i386/i386-builtin-types.def: Add new types.
7909 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
7910 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
7911 __builtin_ia32_vpopcountq_v8di_mask): New.
7912 * config/i386/i386-c.c (ix86_target_macros_internal): Define
7913 __AVX512VPOPCNTDQ__.
7914 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
7915 (PTA_AVX512VPOPCNTDQ): Define.
7916 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
7917 TARGET_AVX512VPOPCNTDQ_P): Define.
7918 * config/i386/i386.opt: Add mavx512vpopcntdq.
7919 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
7920 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
7922 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
7925 * predict.def (PRED_CALL): Set to 67.
7927 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
7929 * expr.c (store_field): In the bitfield case, if the value comes from
7930 a function call and is of an aggregate type returned in registers, do
7931 not modify the field mode; extract the value in all cases if the mode
7932 is BLKmode and the size is not larger than a word.
7934 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
7937 * config/i386/cpuid.h: Fix undefined behavior.
7939 2017-01-04 Jeff Law <law@redhat.com>
7941 PR tree-optimization/79007
7942 PR tree-optimization/67955
7943 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
7944 conservative for pt.null when flag_non_call_exceptions is on.
7946 2017-01-09 Jakub Jelinek <jakub@redhat.com>
7948 PR translation/79019
7949 PR translation/79020
7950 * params.def (PARAM_INLINE_MIN_SPEEDUP,
7951 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
7952 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
7954 * config/avr/avr.opt (maccumulate-args): Likewise.
7955 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
7956 * common.opt (freport-bug): Likewise.
7957 * cif-code.def (CIF_FINAL_ERROR): Likewise.
7958 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
7959 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
7960 translatable string.
7961 * config/i386/i386.c (function_value_32): Likewise.
7962 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
7963 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
7965 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
7966 * common/config/msp430/msp430-common.c (msp430_handle_option):
7968 * symtab.c (symtab_node::verify_base): Likewise.
7969 * opts.c (set_debug_level): Likewise.
7970 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
7971 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7972 missing whitespace to translatable strings.
7973 * config/avr/avr.md (bswapsi2): Fix typo in comment.
7974 * config/sh/superh.h: Likewise.
7975 * config/i386/xopintrin.h: Likewise.
7976 * config/i386/znver1.md: Likewise.
7977 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
7978 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
7979 * double-int.h (struct double_int): Likewise.
7980 * double-int.c (div_and_round_double): Likewise.
7981 * wide-int.cc: Likewise.
7982 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
7983 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
7984 * cfgcleanup.c (crossjumps_occured): Renamed to ...
7985 (crossjumps_occurred): ... this.
7986 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
7989 PR tree-optimization/78899
7990 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
7991 returning bool return struct loop *, NULL for failure and the new
7993 (versionable_outer_loop_p): Don't version outer loop if it has
7994 dont_vectorized bit set.
7995 (tree_if_conversion): When versioning outer loop, ensure
7996 tree_if_conversion is performed also on the inner loop of the
7997 non-vectorizable outer loop copy.
7998 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
7999 LOOP_VECTORIZED in inner loop of the scalar outer loop and
8000 prevent vectorization of it.
8001 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
8002 the outer loop vectorization of the non-scalar version is attempted
8003 before vectorization of the inner loop in scalar version. If
8004 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
8005 vectorization of its inner loop.
8006 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
8007 has 2 inner loops, rename also on edges from bb whose single pred
8008 is outer_loop->header. Fix typo in function comment.
8010 2017-01-09 Martin Sebor <msebor@redhat.com>
8013 * asan.c (asan_emit_stack_protection): Increase local buffer size
8014 to avoid snprintf truncation warning.
8016 2017-01-09 Andrew Pinski <apinski@cavium.com>
8018 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
8019 to reference thunderx2t99 for the tuning structure
8020 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
8022 (thunderx2t99_extra_costs): This.
8023 * config/aarch64/aarch64-tune.md: Regenerate.
8024 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
8025 (vulcan_addrcost_table): This.
8026 (vulcan_regmove_cost): Rename to ...
8027 (thunderx2t99_regmove_cost): This.
8028 (vulcan_vector_cost): Rename to ...
8029 (thunderx2t99_vector_cost): this.
8030 (vulcan_branch_cost): Rename to ...
8031 (thunderx2t99_branch_cost): This.
8032 (vulcan_tunings): Rename to ...
8033 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
8034 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
8036 2017-01-09 Martin Jambor <mjambor@suse.cz>
8040 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
8041 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
8042 (propagate_vr_accross_jump_function): Use the above function for all
8043 value range computations for pass-through jump functions and type
8044 converasion from explicit value range values.
8045 (ipcp_propagate_stage): Do not attempt to deduce types of formal
8046 parameters from TYPE_ARG_TYPES.
8047 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
8048 (ipa_write_node_info): Stream type of the actual argument.
8049 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
8051 2017-01-09 Martin Liska <mliska@suse.cz>
8054 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
8055 (lookup_compiler): Do not show error message with have_E.
8057 2017-01-09 Jakub Jelinek <jakub@redhat.com>
8059 PR tree-optimization/78938
8060 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
8061 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
8062 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
8063 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
8066 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8068 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
8071 2017-01-09 Richard Biener <rguenther@suse.de>
8073 PR tree-optimization/78997
8074 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
8075 name condition properly.
8077 2017-01-09 Richard Biener <rguenther@suse.de>
8080 * dwarf2out.c (is_cxx): New overload with context.
8081 (is_naming_typedef_decl): Use it.
8083 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
8085 * invoke.texi (Option Summary): Correct spacing in option lists
8086 and add line breaks to fix over-long lines.
8088 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
8092 * extend.texi (Common Variable Attributes): Add xref to GCC
8093 Internals manual to explain mode attribute keywords.
8095 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
8098 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
8099 and Preprocessor Options.
8100 (Options for Linking): Document -pthread here....
8101 (RS/6000 and PowerPC Options): ...not here.
8102 (Solaris 2 Options): ...or here.
8103 * doc/cppopts.texi: Document -pthread.
8105 2017-01-08 Martin Sebor <msebor@redhat.com>
8108 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
8109 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
8110 New member functions.
8111 (format_directive): Used them.
8113 (pass_sprintf_length::handle_gimple_call): Same.
8114 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
8115 to avoid truncation for any argument.
8116 (extract_affine_mul): Same.
8117 * tree.c (get_file_function_name): Same.
8119 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
8122 * predict.def (PRED_INDIR_CALL): Set to 86.
8124 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
8126 PR preprocessor/54124
8127 * doc/cppopts.texi: Reformat -d subtable to list the full name
8128 of the options. Add cross-reference to the docs for the general
8129 compiler -d options.
8130 * doc/invoke.texi (Developer Options): Add cross-reference to the
8131 preprocessor-specific -d option documentation.
8133 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
8135 PR preprocessor/13498
8136 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
8137 redudant material, and reflect new command-line options.
8138 (System Headers): Likewise.
8140 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
8142 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
8143 -isystem, and -idirafter. Copy-edit.
8144 * doc/cppopts.texi: Copy-edit. Remove contradiction about
8145 default for -ftrack-macro-expansion. Delete obsolete and
8146 badly-formatted implementation details about -fdebug-cpp output.
8147 * doc/cppwarnopts.texi: Copy-edit.
8149 2017-01-07 David Malcolm <dmalcolm@redhat.com>
8152 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
8153 that the transition from a max line width >= 1<<10 to narrower
8154 lines works correctly.
8156 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
8158 * doc/options.texi (PerFunction): New.
8159 * opt-functions.awk (switch_flags): Map both Optimization and
8160 PerFunction to CL_OPTIMIZATION.
8161 * opth-gen.awk: Test for PerFunction flag along with
8163 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
8164 it only when the latter is present. Skip those that don't in
8165 the hash function generator.
8166 * common.opt (fvar-tracking): Mark as PerFunction instead of
8168 (fvar-tracking-assignments): Likewise.
8169 (fvar-tracking-assignments-toggle): Likewise.
8170 (fvar-tracking-uninit): Likewise.
8172 2017-01-07 Jakub Jelinek <jakub@redhat.com>
8174 PR translation/79018
8175 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
8178 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
8181 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
8182 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
8183 TARGET_LONG_JUMP_TABLE_OFFSETS.
8184 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
8185 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
8186 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
8187 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
8188 * config/m68k/m68k.md (tablejump expander): Likewise.
8189 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
8190 TARGET_LONG_JUMP_TABLE_OFFSETS.
8191 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
8192 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
8194 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
8195 David Holsgrove <david.holsgrove@xilinx.com>
8197 * common/config/microblaze/microblaze-common.c
8198 (TARGET_EXCEPT_UNWIND_INFO): Remove.
8199 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
8201 * config/microblaze/microblaze.c (microblaze_must_save_register)
8202 (microblaze_expand_epilogue, microblaze_return_addr): Handle
8204 (microblaze_eh_return): New function.
8205 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
8206 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
8207 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
8208 * config/microblaze/microblaze.md (eh_return): New pattern.
8210 2017-01-06 Jakub Jelinek <jakub@redhat.com>
8212 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
8213 GCC_DIAGNOSTIC_STRINGIFY): Define.
8215 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
8217 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8219 * config/arm/arm.md (<mcrr>): New.
8221 * config/arm/arm.c (arm_arch5te): New.
8222 (arm_option_override): Set arm_arch5te.
8223 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
8225 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
8226 (arm_mcrr_qualifiers): ... this. New.
8227 (MRRC_QUALIFIERS): Define to...
8228 (arm_mrrc_qualifiers): ... this. New.
8229 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
8231 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
8232 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
8233 (MRRCI, mrrc, MRRC): New.
8234 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
8235 VUNSPEC_MRRC2): New.
8237 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8239 * config/arm/arm.md (<mcr>): New.
8241 * config/arm/arm.c (arm_coproc_builtin_available): Add
8242 support for mcr, mrc, mcr2 and mrc2.
8243 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
8244 (arm_mcr_qualifiers): ... this. New.
8245 (MRC_QUALIFIERS): Define to ...
8246 (arm_mrc_qualifiers): ... this. New.
8247 (MCR_QUALIFIERS): Define to ...
8248 (arm_mcr_qualifiers): ... this. New.
8249 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
8251 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
8252 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
8253 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
8256 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8258 * config/arm/arm.md (*ldc): New.
8262 * config/arm/arm.c (arm_coproc_builtin_available): Add
8263 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
8264 (arm_coproc_ldc_stc_legitimate_address): New.
8265 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
8266 'qualifier_const_pointer'.
8267 (LDC_QUALIFIERS): Define to...
8268 (arm_ldc_qualifiers): ... this. New.
8269 (STC_QUALIFIERS): Define to...
8270 (arm_stc_qualifiers): ... this. New.
8271 * config/arm/arm-protos.h
8272 (arm_coproc_ldc_stc_legitimate_address): New.
8273 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
8274 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
8275 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
8276 stc2, stcl, stc2l): New.
8277 * config/arm/constraints.md (Uz): New.
8278 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
8279 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
8280 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
8281 VUNSPEC_STC2L): New.
8283 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8285 * config/arm/arm.md (<cdp>): New.
8286 * config/arm/arm.c (neon_const_bounds): Rename this ...
8287 (arm_const_bounds): ... this.
8288 (arm_coproc_builtin_available): New.
8289 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
8290 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
8291 (CDP_QUALIFIERS): Define to...
8292 (arm_cdp_qualifiers): ... this. New.
8294 (arm_expand_builtin_args): Add case for 6 arguments.
8295 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
8296 (arm_const_bounds): ... this.
8297 (arm_coproc_builtin_available): New.
8298 * config/arm/arm_acle.h (__arm_cdp): New.
8300 * config/arm/arm_acle_builtins.def (cdp): New.
8302 * config/arm/iterators.md (CDPI,CDP,cdp): New.
8303 * config/arm/neon.md: Rename all 'neon_const_bounds' to
8305 * config/arm/types.md (coproc): New.
8306 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
8307 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
8308 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
8309 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
8311 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8313 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
8314 (UBINOP_QUALIFIERS): New.
8316 (acle_builtin_data): New. Change comment.
8317 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
8318 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
8319 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
8320 arm_acle_builtins.def.
8321 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
8322 (arm_init_acle_builtins): New.
8323 (CRC32_BUILTIN): Remove.
8324 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
8325 crc32cb, crc32ch and crc32cw.
8326 (arm_init_crc32_builtins): Remove.
8327 (arm_init_builtins): Use arm_init_acle_builtins rather
8328 than arm_init_crc32_builtins.
8329 (arm_expand_acle_builtin): New.
8330 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
8331 * config/arm/arm_acle_builtins.def: New.
8333 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
8335 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
8336 (arm_builtin_datum): ... this.
8337 (arm_init_neon_builtin): Rename to ...
8338 (arm_init_builtin): ... this. Add a new parameters PREFIX
8339 and USE_SIG_IN_NAME.
8340 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
8341 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
8342 'arm_builtin_datum'.
8343 (arm_init_vfp_builtins): Likewise.
8344 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
8345 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
8346 (arm_expand_neon_args): Rename to ...
8347 (arm_expand_builtin_args): ... this. Rename builtin_arg
8348 enum values and differentiate between ARG_BUILTIN_MEMORY
8349 and ARG_BUILTIN_NEON_MEMORY.
8350 (arm_expand_neon_builtin_1): Rename to ...
8351 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
8352 values, arm_expand_builtin_args and add bool parameter NEON.
8353 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
8354 (arm_expand_vfp_builtin): Likewise.
8355 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
8357 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
8360 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
8361 * predict.c (tree_estimate_probability_bb): Reverse direction of
8362 polymorphic call predictor.
8364 2017-01-06 David Malcolm <dmalcolm@redhat.com>
8366 * passes.c (execute_one_pass): Split out pass-skipping logic into...
8367 (determine_pass_name_match): ...this new function and...
8368 (should_skip_pass_p): ...this new function.
8370 2017-01-06 Nathan Sidwell <nathan@acm.org>
8372 * ipa-visibility.c (function_and_variable_visibility): Reformat
8373 comments and long lines. Remove extrneous if.
8374 * symtab.c (symtab_node::make_decl_local): Fix code format.
8375 (symtab_node::set_section_for_node): Fix comment typo.
8377 2017-01-06 Martin Liska <mliska@suse.cz>
8380 * lra-constraints.c: Rename invariant to lra_invariant.
8381 * predict.c (set_even_probabilities): Initialize e to NULL.
8383 2017-01-05 Martin Sebor <msebor@redhat.com>
8385 PR tree-optimization/78910
8386 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
8387 (format_integer): Correct off-by-one error in the handling
8388 of precision with negative numbers in signed conversions..
8390 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
8392 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
8394 2017-01-05 Jakub Jelinek <jakub@redhat.com>
8396 PR tree-optimization/71016
8397 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
8398 factor_out_conditional_conversion. Formatting fix.
8399 (factor_out_conditional_conversion): Add cond_stmt argument.
8400 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
8401 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
8404 2017-01-05 David Malcolm <dmalcolm@redhat.com>
8406 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
8407 read-rtl-function.o, and selftest-rtl.o.
8408 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
8409 (selftest::aarch64_test_loading_full_dump): New function.
8410 (selftest::aarch64_run_selftests): New function.
8411 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
8412 selftest::aarch64_run_selftests.
8413 * config/i386/i386.c
8414 (selftest::ix86_test_loading_dump_fragment_1): New function.
8415 (selftest::ix86_test_loading_call_insn): New function.
8416 (selftest::ix86_test_loading_full_dump): New function.
8417 (selftest::ix86_test_loading_unspec): New function.
8418 (selftest::ix86_run_selftests): Call the new functions.
8419 * emit-rtl.c (maybe_set_max_label_num): New function.
8420 * emit-rtl.h (maybe_set_max_label_num): New decl.
8421 * function.c (instantiate_decls): Guard call to
8422 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
8423 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
8425 * gensupport.c (gen_reader::gen_reader): Pass "false"
8426 for new "compact" param of rtx_reader.
8427 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
8428 rather than an empty string for NULL strings.
8429 * read-md.c: Potentially include config.h rather than bconfig.h.
8430 Wrap include of errors.h with #ifdef GENERATOR_FILE.
8431 (have_error): New global, copied from errors.c.
8432 (md_reader::read_name): Rename to...
8433 (md_reader::read_name_1): ...this, adding "out_loc" param,
8434 and converting "missing name or number" to returning false, rather
8436 (md_reader::read_name): Reimplement in terms of read_name_1.
8437 (md_reader::read_name_or_nil): New function.
8438 (md_reader::read_string): Handle "(nil)" by returning NULL.
8439 (md_reader::md_reader): Add new param "compact".
8440 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
8441 (md_reader::read_file): New method.
8442 * read-md.h (md_reader::md_reader): Add new param "compact".
8443 (md_reader::read_file): New method.
8444 (md_reader::is_compact): New accessor.
8445 (md_reader::read_name): Convert return type from void to file_location.
8446 (md_reader::read_name_or_nil): New decl.
8447 (md_reader::read_name_1): New decl.
8448 (md_reader::m_compact): New field.
8449 (noop_reader::noop_reader): Pass "false" for new "compact" param
8451 (rtx_reader::rtx_reader): Add new "compact" param.
8452 (rtx_reader::read_rtx_operand): Make virtual and convert return
8453 type from void to rtx.
8454 (rtx_reader::read_until): New decl.
8455 (rtx_reader::handle_any_trailing_information): New virtual function.
8456 (rtx_reader::postprocess): New virtual function.
8457 (rtx_reader::finalize_string): New virtual function.
8458 (rtx_reader::m_in_call_function_usage): New field.
8459 (rtx_reader::m_reuse_rtx_by_id): New field.
8460 * read-rtl-function.c: New file.
8461 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
8462 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
8463 (selftest::verify_three_block_rtl_cfg): New decl.
8464 * read-rtl-function.h: New file.
8465 * read-rtl.c: Potentially include config.h rather than bconfig.h.
8466 For host, include function.h, memmodel.h, and emit-rtl.h.
8467 (one_time_initialization): New function.
8468 (struct compact_insn_name): New struct.
8469 (compact_insn_names): New array.
8470 (find_code): Handle insn codes in compact dumps.
8471 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
8472 (bind_subst_iter_and_attr): Likewise.
8473 (add_condition_to_string): Likewise.
8474 (add_condition_to_rtx): Likewise.
8475 (apply_attribute_uses): Likewise.
8476 (add_current_iterators): Likewise.
8477 (apply_iterators): Likewise.
8478 (initialize_iterators): Guard usage of apply_subst_iterator with
8479 #ifdef GENERATOR_FILE.
8480 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
8481 (md_reader::read_mapping): Likewise.
8482 (add_define_attr_for_define_subst): Likewise.
8483 (add_define_subst_attr): Likewise.
8484 (read_subst_mapping): Likewise.
8485 (check_code_iterator): Likewise.
8486 (rtx_reader::read_rtx): Likewise. Move one-time initialization
8488 (one_time_initialization): New function.
8489 (rtx_reader::read_until): New method.
8490 (read_flags): New function.
8491 (parse_reg_note_name): New function.
8492 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
8493 Handle reuse_rtx ids.
8494 Wrap iterator lookup within #ifdef GENERATOR_FILE.
8495 Add parsing support for RTL dumps, mirroring the special-cases in
8496 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
8497 values, and calling handle_any_trailing_information.
8498 (rtx_reader::read_rtx_operand): Convert return type from void
8499 to rtx, returning return_rtx. Handle case 'e'. Call
8500 finalize_string on XSTR and XTMPL fields.
8501 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
8502 "(nil)" values were omitted. Call the postprocess vfunc on the
8504 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
8505 class ctor. Initialize m_in_call_function_usage. Call
8506 one_time_initialization.
8507 * rtl-tests.c (selftest::test_uncond_jump): Call
8508 set_new_first_and_last_insn.
8509 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
8510 * selftest-rtl.c: New file.
8511 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
8512 (selftest::get_insn_by_uid): New decl.
8513 * selftest-run-tests.c (selftest::run_tests): Call
8514 read_rtl_function_c_tests.
8515 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
8516 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
8519 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
8521 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
8522 operands in a special way. Assert that pos+len <= mode precision.
8524 2017-01-05 Jakub Jelinek <jakub@redhat.com>
8526 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
8527 3 argument Alias with unlimited for the negative form.
8528 (fno-vect-cost-model): Removed.
8530 2017-01-05 Martin Liska <mliska@suse.cz>
8532 * hsa-gen.c (gen_hsa_divmod): New function.
8533 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
8535 2017-01-05 Martin Liska <mliska@suse.cz>
8538 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
8541 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8543 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
8544 small constant length operands.
8546 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8548 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
8549 between loop iterations.
8551 2017-01-05 Martin Liska <mliska@suse.cz>
8554 * gimplify.c (gimplify_decl_expr): Compare to
8555 asan_poisoned_variables instread of checking flags.
8556 (gimplify_target_expr): Likewise.
8557 (gimplify_expr): Likewise.
8558 (gimplify_function_tree): Conditionally initialize
8559 asan_poisoned_variables.
8561 2017-01-04 Jeff Law <law@redhat.com>
8563 PR tree-optimizatin/78812
8564 * rtl.h (contains_mem_rtx_p): Prototype.
8565 * ifcvt.c (containts_mem_rtx_p): Move from here to...
8566 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
8567 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
8568 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
8569 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
8571 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
8573 * input.c (assert_char_at_range): Default-initialize actual_range.
8575 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
8577 * df-scan.c (df_ref_create_structure): Make regno unsigned,
8578 to match the caller.
8580 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
8582 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
8583 insns after final jump in test to emit dummy move.
8585 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
8587 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
8588 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
8590 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
8592 * multiple_target.c (create_dispatcher_calls): Init e_next.
8593 * tree-ssa-loop-split.c (split_loop): Init border.
8594 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
8597 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
8602 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
8603 (altivec_register_operand): Do not return true if the operand
8604 contains a SUBREG mixing SImode and SFmode.
8605 (vsx_register_operand): Likewise.
8606 (vsx_reg_sfsubreg_ok): New predicate.
8607 (vfloat_operand): Do not return true if the operand contains a
8608 SUBREG mixing SImode and SFmode.
8609 (vint_operand): Likewise.
8610 (vlogical_operand): Likewise.
8611 (gpc_reg_operand): Likewise.
8612 (int_reg_operand): Likewise.
8613 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
8614 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
8615 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
8617 (rs6000_emit_move_si_sf_subreg): New helper function.
8618 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
8619 fixup SUBREGs involving SImode and SFmode.
8620 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
8621 numbers for the new peephole2 optimization.
8622 (peephole2 for SFmode unions): New peephole2 to optimize cases in
8623 the GLIBC math library that do AND/IOR/XOR operations on single
8624 precision floating point.
8625 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
8626 target macros to say whether we need to avoid SUBREGs mixing
8628 (TARGET_ALLOW_SF_SUBREG): Likewise.
8629 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
8630 (UNSPEC_SI_FROM_SF): Likewise.
8631 (iorxor): Change spacing.
8632 (and_ior_xor): New iterator for AND, IOR, and XOR.
8633 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
8634 (movdi_from_sf_zero_ext): Likewise.
8635 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
8636 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
8637 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
8638 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
8639 (fms<mode>4): Likewise.
8640 (fnma<mode>4): Likewise.
8641 (fnms<mode>4): Likewise.
8642 (nfma<mode>4): Likewise.
8643 (nfms<mode>4): Likewise.
8645 2017-01-04 Marek Polacek <polacek@redhat.com>
8648 * doc/invoke.texi: Document -Wpointer-compare.
8650 2017-01-04 Jakub Jelinek <jakub@redhat.com>
8652 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
8655 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
8656 descriptions for -gdwarf-5 and emit them as uleb128 instead of
8659 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
8662 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
8663 documentation of the powerpc_popcntb_ok attribute.
8664 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
8665 code to issue warning messages if a requested CPU configuration is
8666 not supported by the binary (assembler and loader) toolchain.
8667 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
8668 made to define a built-in function that has been disabled.
8669 (paired_init_builtins): Add assertion to prevent ICE if attempt is
8670 made to define a built-in function that has been disabled.
8671 (altivec_init_builtins): Add comment explaining why definition
8672 of the DST built-in functions is not preceded by an assertion
8673 check. Add assertions to prevent ICE if attempts are made to
8674 define an altivec predicate or an abs* built-in function that has
8676 (htm_init_builtins): Add comment explaining why definition of the
8677 htm built-in functions is not preceded by an assertion check.
8679 2017-01-04 Jeff Law <law@redhat.com>
8681 PR tree-optimizatin/67955
8682 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
8683 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
8684 the points-to solution does not include pt_null. Use DECL_PT_UID
8687 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
8689 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
8690 Use gen_int_mode instead of gen_lopwart for const_int operands.
8692 2017-01-04 Jakub Jelinek <jakub@redhat.com>
8694 PR tree-optimization/71563
8695 * match.pd: Simplify X << Y into X if Y is known to be 0 or
8696 out of range value - has low bits known to be zero.
8698 2017-01-04 Alan Modra <amodra@gmail.com>
8700 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
8701 * configure: Regenerate.
8702 * config.in: Regenerate.
8704 2017-01-04 Jakub Jelinek <jakub@redhat.com>
8707 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
8708 a substring of the message, but strcmp with the whole message. Ifdef
8709 ENABLE_NLS, translate the message first using dgettext.
8711 2017-01-03 Jeff Law <law@redhat.com>
8713 PR tree-optimizatin/78856
8714 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
8715 (mark_threaded_blocks): Remove code to truncate thread paths that
8716 cross multiple loop headers. Instead invalidate the cached loop
8717 iteration information and handle case of a thread path walking
8718 into an irreducible region.
8720 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
8723 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
8724 assertions. Add support for doing the signbit if the IEEE 128-bit
8725 floating point value is in a GPR.
8726 * config/rs6000/rs6000.md (Fsignbit): Delete.
8727 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
8728 Update the length attribute if the value is in a GPR.
8729 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
8730 the sign or zero extension instruction, since the value is always 0/1.
8731 (signbit<mode>2_dm2): Delete using <Fsignbit>.
8734 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
8735 extracting SImode to a GPR register so that we can generate a
8736 store, limit the vector to be in a traditional Altivec register
8737 for the vextuwrx instruction.
8739 2017-01-03 Ian Lance Taylor <iant@google.com>
8741 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
8743 2017-01-03 Martin Sebor <msebor@redhat.com>
8745 PR tree-optimization/78696
8746 * gimple-ssa-sprintf.c (format_floating): Correct handling of
8747 precision. Use MPFR for %f for greater fidelity. Correct handling
8749 (pass_sprintf_length::compute_format_length): Set width and precision
8750 specified by asrerisk to void_node for vararg functions.
8751 (try_substitute_return_value): Adjust dump output.
8753 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
8755 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
8757 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
8759 * doc/invoke.texi (SPARC options): Document -mlra as the default.
8760 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
8761 -mlra/-mno-lra was passed to the compiler.
8763 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
8765 PR rtl-optimization/65618
8766 * emit-rtl.c (try_split): Move initialization of "before" and
8767 "after" to just before the call to emit_insn_after_setloc.
8769 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
8771 * doc/md.texi (Standard Names): Remove reference to Java frontend.
8773 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
8775 * dwarf2out.c (gen_enumeration_type_die): When
8776 -gno-strict-dwarf, add a DW_AT_encoding attribute.
8778 2017-01-03 Jakub Jelinek <jakub@redhat.com>
8780 PR tree-optimization/78965
8781 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
8782 Change first argument from const call_info & to call_info &. For %n
8783 set info.nowrite to false.
8786 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
8787 possibly throwing calls.
8789 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
8790 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
8791 and fns handling, rather than in a separate case SSA_NAME.
8793 2017-01-02 Jeff Law <law@redhat.com>
8795 * config/darwin-driver.c (darwin_driver_init): Const-correctness
8796 fixes for first_period and second_period variables.
8798 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
8801 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
8802 (*insvqi_1): New insn pattern.
8803 (*insvqi_1_mem_rex64): Ditto.
8805 (*insvqi_3): Rename from *insvqi.
8807 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
8809 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
8811 * doc/cfg.texi (Edges): Remove reference to Java.
8812 (Maintaining the CFG): Ditto.
8814 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
8817 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
8818 transparent aliases.
8820 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
8823 * predict.def (PRED_CALL): Update hitrate.
8824 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
8825 * predict.c (tree_estimate_probability_bb): Split CALL predictor
8826 into direct/indirect/polymorphic variants.
8828 2017-01-01 Jakub Jelinek <jakub@redhat.com>
8830 Update copyright years.
8832 * gcc.c (process_command): Update copyright notice dates.
8833 * gcov-dump.c (print_version): Ditto.
8834 * gcov.c (print_version): Ditto.
8835 * gcov-tool.c (print_version): Ditto.
8836 * gengtype.c (create_file): Ditto.
8837 * doc/cpp.texi: Bump @copying's copyright year.
8838 * doc/cppinternals.texi: Ditto.
8839 * doc/gcc.texi: Ditto.
8840 * doc/gccint.texi: Ditto.
8841 * doc/gcov.texi: Ditto.
8842 * doc/install.texi: Ditto.
8843 * doc/invoke.texi: Ditto.
8845 Copyright (C) 2017 Free Software Foundation, Inc.
8847 Copying and distribution of this file, with or without modification,
8848 are permitted in any medium without royalty provided the copyright
8849 notice and this notice are preserved.