1 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
3 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
6 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
8 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
9 inits on power8 and above, use the VMRGEW instruction instead of a
12 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
13 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
16 2016-09-20 Tamar Christina <tamar.christina@arm.com>
18 * config/aarch64/arm_neon.h
19 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
20 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
21 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
23 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
25 * config/var/vax.h (ELIMINABLE_REGS): Define.
26 (INITIAL_ELIMINATION_OFFSET): Define.
28 2016-09-20 Jakub Jelinek <jakub@redhat.com>
31 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
32 cast to void * if the cast is from some other pointer type.
34 2016-09-20 Richard Biener <rguenther@suse.de>
36 PR tree-optimization/77646
37 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
40 2016-09-20 Tamar Christina <tamar.christina@arm.com>
42 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
43 attributes to all inlined functions and make them extern.
45 2016-09-20 Richard Biener <rguenther@suse.de>
47 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
49 * debug.c (do_nothing_debug_hooks): Adjust.
50 * dbxout.c (dbx_debug_hooks): Likewise.
51 * sdbout.c (sdb_debug_hooks): Likewise.
52 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
53 (dwarf2out_finish): Move producer, filename and
55 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
56 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
58 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
61 * doc/invoke.texi: Document -Wint-in-bool-context.
64 * dwarf2out.c (output_loc_operands): Fix an assertion.
66 2016-09-19 Joseph Myers <joseph@codesourcery.com>
68 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
69 (CR_DECIMAL_DIG): New macro.
71 2016-09-19 Joseph Myers <joseph@codesourcery.com>
73 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
76 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
78 PR rtl-optimization/77416
79 * lra-remat.c (operand_to_remat): Process hard coded insn
82 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
84 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
85 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
87 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
89 * target.def (lra_p): Wordsmithing.
90 * doc/tm.texi: Regenerate.
92 2016-09-19 Jakub Jelinek <jakub@redhat.com>
93 Jan Hubicka <jh@suse.cz>
96 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
97 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
98 Call ultimate_alias_target just once, not up to 4 times.
100 2016-09-19 Richard Biener <rguenther@suse.de>
102 * dwarf2out.c (early_dwarf_finished): New global.
103 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
105 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
106 if called from LTO exit early.
107 (dwarf2out_late_global_decl): When being during the early
108 debug phase do not add locations but only const value attributes.
109 Adjust the way we generate early DIEs for LTO.
111 2016-09-19 Richard Biener <rguenther@suse.de>
114 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
115 proper niter to bound the loops.
117 2016-09-19 Richard Biener <rguenther@suse.de>
119 PR tree-optimization/77514
120 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
121 search for folded stmt.
123 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
125 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
126 * tree-pass.h (make_pass_early_thread_jumps): Declare.
127 * tree-ssa-threadbackward.c (fsm_find_thread_path,
128 fsm_find_thread_path, profitable_jump_thread_path,
129 fsm_find_control_statement_thread_paths,
130 find_jump_threads_backwards): Add speed_p parameter.
131 (pass_data_early_thread_jumps): New pass.
132 (make_pass_early_thread_jumps): New function.
134 2016-09-17 Andreas Schwab <schwab@suse.de>
136 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
137 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
139 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
141 * recog.c (rest_of_handle_split_after_reload): Delete.
142 (pass_split_after_reload::gate): New method.
143 (pass_split_after_reload::execute): Call split_all_insns directly.
145 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
147 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
148 parameters for functions taking long long arguments.
150 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
153 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
156 2016-09-16 Jason Merrill <jason@redhat.com>
158 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
160 * hwint.c (exact_log2): Use pow2p_hwi.
161 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
162 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
163 * builtins.c (get_object_alignment_2, get_object_alignment)
164 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
166 * calls.c (compute_argument_addresses, store_one_arg): Use
168 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
169 * combine.c (force_to_mode): Use least_bit_hwi.
170 (contains_muldiv, find_split_point, combine_simplify_rtx)
171 (simplify_if_then_else, simplify_set, force_to_mode)
172 (if_then_else_cond, simplify_and_const_int_1)
173 (simplify_compare_const): Use pow2p_hwi.
174 * cse.c (fold_rtx): Use pow2p_hwi.
175 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
177 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
178 (init_expmed_one_conv): Use pow2p_hwi.
179 * expr.c (is_aligning_offset): Use pow2p_hwi.
180 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
181 (fold_binary_loc): Use pow2p_hwi.
182 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
183 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
184 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
185 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
187 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
188 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
189 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
190 * omp-low.c (oacc_loop_fixed_partitions)
191 (oacc_loop_auto_partitions): Use least_bit_hwi.
192 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
193 * stor-layout.c (place_field): Use least_bit_hwi.
194 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
195 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
196 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
197 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
198 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
199 * tree-vect-data-refs.c (vect_analyze_group_access_1)
200 (vect_grouped_store_supported, vect_grouped_load_supported)
201 (vect_permute_load_chain, vect_shift_permute_load_chain)
202 (vect_transform_grouped_load): Use pow2p_hwi.
203 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
204 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
205 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
207 * tsan.c (instrument_expr): Use least_bit_hwi.
208 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
210 2016-09-16 Andreas Schwab <schwab@suse.de>
212 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
214 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
216 2016-09-16 Jakub Jelinek <jakub@redhat.com>
219 * combine.c (rest_of_handle_combine): If any edges have been purged,
220 free dominators if available.
222 2016-09-16 Jakub Jelinek <jakub@redhat.com>
223 Eric Botcazou <ebotcazou@adacore.com>
226 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
227 through into expand_addsub_overflow after expand_neg_overflow.
229 2016-09-15 David Malcolm <dmalcolm@redhat.com>
231 * diagnostic-show-locus.c
232 (selftest::test_fixit_insert_containing_newline): New function.
233 (selftest::test_fixit_replace_containing_newline): New function.
234 (selftest::diagnostic_show_locus_c_tests): Call the above.
236 2016-09-15 Bin Cheng <bin.cheng@arm.com>
238 PR tree-optimization/77503
239 * tree-vect-loop.c (vectorizable_reduction): Record reduction
240 code for CONST_COND_REDUCTION at analysis stage and use it at
242 * tree-vectorizer.h (struct _stmt_vec_info): New field.
243 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
244 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
247 2016-09-15 Richard Biener <rguenther@suse.de>
250 * fold-const.c (split_tree): Do not split constant ~X.
252 2016-09-15 Jakub Jelinek <jakub@redhat.com>
254 PR rtl-optimization/77425
255 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
259 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
260 use %qs instead of %s where desirable, use argument instead of arg in
261 the diagnostic wording, add list of supported strategies and
263 (ix86_option_override_internal): Emit target("m...") instead of
264 option("m...") in the diagnostic. Use %qs instead of %s in invalid
265 -march/-mtune option diagnostic. Add list of supported arches/tunings
266 and spellcheck hint. Remove prefix, suffix and sw variables, use
267 main_args_p ? "..." : "..." in diagnostics to make translation
270 2016-09-15 Richard Biener <rguenther@suse.de>
272 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
273 extra offset argument.
274 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
275 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
276 to reflect new offset parameter.
277 * doc/tm.texi: Regenerate.
278 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
279 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
281 (darwin_asm_output_dwarf_offset): Likewise.
282 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
284 (darwin_asm_output_dwarf_offset): Pass offset argument through.
285 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
286 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
288 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
291 * ipa-icf.c (set_alias_uids): New function.
292 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
293 all the merged variable's referring aliases.
295 2016-09-15 Richard Biener <rguenther@suse.de>
297 PR tree-optimization/77514
298 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
299 only forced_stmts sequence.
301 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
303 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
304 * cfgexpand.c (update_alias_info_with_stack_vars): Use
305 FOR_EACH_SSA_NAME to iterate over SSA variables.
306 (pass_expand::execute): Likewise.
307 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
308 * tree-cfg.c (dump_function_to_file): Likewise.
309 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
310 (update_ssa): Likewise.
311 * tree-ssa-alias.c (dump_alias_info): Likewise.
312 * tree-ssa-ccp.c (ccp_finalize): Likewise.
313 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
314 (create_outofssa_var_map): Likewise.
315 (coalesce_ssa_name): Likewise.
316 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
317 * tree-ssa-pre.c (compute_avail): Likewise.
318 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
319 (scc_vn_restore_ssa_info): Likewise.
320 (free_scc_vn): Likwise.
321 (run_scc_vn): Likewise.
322 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
323 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
324 * tree-ssa-copy.c (fini_copy_prop): Likewise.
325 * tree-ssa.c (verify_ssa): Likewise.
327 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
329 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
330 and mips64r2 as default 32-bit and 64-bit architectures.
331 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
332 as default 32-bit and 64-bit architectures.
334 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
336 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability of succ edge.
338 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
340 * target.def (lra_p): Change commentary (for the manual) for the
342 * doc/tm.texi: Regenerate.
344 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
346 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
347 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
348 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
349 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
351 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
353 * targhooks.c (default_lra_p): Return true instead of false.
355 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
357 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
358 hook_bool_void_false.
359 * config/avr/avr.c: Ditto.
360 * config/bfin/bfin.c: Ditto.
361 * config/c6x/c6x.c: Ditto.
362 * config/cr16/cr16.c: Ditto.
363 * config/cris/cris.c: Ditto.
364 * config/epiphany/epiphany.c: Ditto.
365 * config/fr30/fr30.c: Ditto.
366 * config/frv/frv.c: Ditto.
367 * config/h8300/h8300.c: Ditto.
368 * config/ia64/ia64.c: Ditto.
369 * config/iq2000/iq2000.c: Ditto.
370 * config/lm32/lm32.c: Ditto.
371 * config/m32c/m32c.c: Ditto.
372 * config/m32r/m32r.c: Ditto.
373 * config/m68k/m68k.c: Ditto.
374 * config/mcore/mcore.c: Ditto.
375 * config/microblaze/microblaze.c: Ditto.
376 * config/mmix/mmix.c: Ditto.
377 * config/mn10300/mn10300.c: Ditto.
378 * config/moxie/moxie.c: Ditto.
379 * config/msp430/msp430.c: Ditto.
380 * config/nios2/nios2.c: Ditto.
381 * config/nvptx/nvptx.c: Ditto.
382 * config/pa/pa.c: Ditto.
383 * config/pdp11/pdp11.c: Ditto.
384 * config/rl78/rl78.c: Ditto.
385 * config/sparc/sparc.c: Ditto.
386 * config/spu/spu.c: Ditto.
387 * config/stormy16/stormy16.c: Ditto.
388 * config/tilegx/tilegx.c: Ditto.
389 * config/tilepro/tilepro.c: Ditto.
390 * config/v850/v850.c: Ditto.
391 * config/vax/vax.c: Ditto.
392 * config/visium/visium.c: Ditto.
393 * config/xtensa/xtensa.c: Ditto.
395 2016-09-14 Jakub Jelinek <jakub@redhat.com>
398 * tsan.c: Include target.h.
399 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
400 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
401 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
402 BUILT_IN_ATOMIC_TEST_AND_SET entries.
403 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
405 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
406 Martin Liska <mliska@suse.cz>
409 * predict.c (force_edge_cold): Add braces to a condition.
411 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
413 PR rtl-optimization/77289
414 * lra-constraints.c (get_final_hard_regno): Removed.
415 (get_hard_regno): Add new parameter final_p.
416 (get_reg_class): Directly call lra_get_elimination_hard_regno.
417 (operands_match_p): Adjust call to get_hard_regno.
418 (uses_hard_regs_p): Likewise.
419 (process_alt_operands): Likewise.
421 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
424 * config/msp430/msp430.c (msp430_start_function): Emit an error
425 if a function is both weak and specifies an interrupt number.
427 2016-09-13 Jakub Jelinek <jakub@redhat.com>
429 PR tree-optimization/77454
430 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
431 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
434 2016-09-13 Tamar Christina <tamar.christina@arm.com>
436 * config/aarch64/aarch64-builtins.c
437 (aarch64_init_simd_builtins): Fix builtin type signature printing.
439 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
441 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
442 SFmode and SCmode arguments by reference.
444 2016-09-13 David Malcolm <dmalcolm@redhat.com>
446 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
448 (selftest::test_one_liner_fixit_insert_before): ...this, and update
449 for renaming of add_fixit_insert to add_fixit_insert_before.
450 (selftest::test_one_liner_fixit_insert_after): New function.
451 (selftest::test_one_liner_fixit_validation_adhoc_locations):
452 Update for renaming of add_fixit_insert to add_fixit_insert_before.
453 (selftest::test_one_liner_many_fixits): Likewise.
454 (selftest::test_diagnostic_show_locus_one_liner): Update for
455 renaming, call new test function.
456 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
457 renaming of add_fixit_insert to add_fixit_insert_before.
458 (selftest::test_fixit_consolidation): Likewise.
459 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
461 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
462 (selftest::test_applying_fixits_insert_before): ...this.
463 (selftest::test_applying_fixits_insert): Update for renaming of
464 add_fixit_insert to add_fixit_insert_before.
465 (selftest::test_applying_fixits_insert_after): New function.
466 (selftest::test_applying_fixits_insert_after_at_line_end): New
468 (selftest::test_applying_fixits_insert_after_failure): New function.
469 (selftest::test_applying_fixits_multiple): Update for renaming of
470 add_fixit_insert to add_fixit_insert_before.
471 (selftest::change_line): Likewise.
472 (selftest::test_applying_fixits_unreadable_file): Likewise.
473 (selftest::test_applying_fixits_line_out_of_range): Likewise.
474 (selftest::test_applying_fixits_column_validation): Likewise.
475 (selftest::test_applying_fixits_column_validation): Likewise.
476 (selftest::edit_context_c_tests): Update for renamed test function;
477 call new test functions.
479 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
481 PR tree-optimization/77536
482 PR rtl-optimization/68212
483 * config/rs6000/rs6000.md (div->recip splitter): Remove
484 optimize_insn_for_speed_p condition.
486 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
488 * optabs.c (prepare_cmp_insn): Update documentation comment.
490 2016-09-13 Jakub Jelinek <jakub@redhat.com>
491 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
494 * opts.h (candidates_list_and_hint): Declare.
495 * opts-common.c (candidates_list_and_hint): New function.
496 (cmdline_handle_error): Use it.
498 2016-09-12 David Malcolm <dmalcolm@redhat.com>
500 * edit-context.c (edited_line::get_len): New accessor.
501 (edited_file::print_diff): Split out hunk-printing into...
502 (edited_file::print_diff_hunk): New method.
503 (edited_file::print_diff_line): New method.
505 2016-09-12 Andrew Pinski <apinski@cavium.com>
507 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
509 * config/aarch64/aarch64.c (thunderx_tunings): Enable
510 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
511 (aarch64_operands_ok_for_ldpstp): Return false if
512 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
513 was SImode and the alignment is less than 8 byte.
514 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
516 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
519 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
521 2016-09-12 Marek Polacek <polacek@redhat.com>
523 * doc/extend.texi: Use lowercase "boolean".
524 * doc/invoke.texi: Likewise.
525 * doc/md.texi: Likewise.
526 * target.def: Likewise.
527 * doc/tm.texi: Regenerated.
529 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
532 * expmed.c (synth_mult): Delete duplicate mode check.
534 2016-09-10 Tom de Vries <tom@codesourcery.com>
537 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
539 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
540 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
542 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
544 PR rtl-optimization/77289
545 * lra-constraints.c (get_final_hard_regno): Add support for non hard
546 register numbers. Remove support for subregs.
547 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
548 (get_reg_class): Delete removed get_final_hard_regno() argument.
549 (uses_hard_regs_p): Call get_final_hard_regno().
551 2016-09-09 Martin Sebor <msebor@redhat.com>
555 * pretty-print.c (pp_quoted_string): New function.
556 (pp_format): Call it for %c and %s directives.
558 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
560 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
561 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
562 INITIAL_ELIMINATION_OFFSET) : Update documentation.
563 * target.def (frame_pointer_required, can_eliminate): Likewise.
564 * doc/tm.texi: Regenerated.
565 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
567 * df-scan.c (df_hard_reg_init): Likewise.
568 * ira.c (ira_setup_eliminable_regset): Likewise.
569 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
570 init_elim_table): Likewise.
571 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
572 set_initial_elim_offsets, update_eliminables,
573 init_elim_table): Likewise.
574 * rtlanal.c (get_initial_register_offset): Likewise.
575 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
576 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
577 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
578 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
579 * config/fr30/fr30.h: Fix comment.
580 * config/frv/frv.c: Likewise.
581 * config/frv/frv.h: Likewise.
582 * config/ft32/ft32.h: Likewise.
583 * config/visium/visium.h: Likewise.
584 * config/pa/pa64-linux.h: Likewise.
585 * config/v850/v850.h: Likewise.
586 * config/cris/cris.c: Likewise.
587 * config/ia64/ia64.h: Likewise.
588 * config/moxie/moxie.h: Likewise.
589 * config/m32r/m32r.h: Likewise.
591 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
594 * config.in: Regenerate.
595 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
597 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
598 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
599 static-libmpxwrappers case.
600 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
601 MPX_LD_AS_NEEDED_GUARD_POP.
602 * configure: Regenerate.
603 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
604 defined if linker support "--push-state"/"--pop-state".
606 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
608 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
610 2016-09-09 Joseph Myers <joseph@codesourcery.com>
612 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
613 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
614 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
615 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
616 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
617 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
618 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
620 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
621 width macros from TS 18661-1.
622 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
624 2016-09-08 Jakub Jelinek <jakub@redhat.com>
627 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
628 OMP_CLAUSE_SAFELEN_EXPR.
630 2016-09-07 David Malcolm <dmalcolm@redhat.com>
632 * Makefile.in (OBJS): Add substring-locations.o.
633 * langhooks-def.h (class substring_loc): New forward decl.
634 (lhd_get_substring_location): New decl.
635 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
636 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
637 * langhooks.c (lhd_get_substring_location): New function.
638 * langhooks.h (class substring_loc): New forward decl.
639 (struct lang_hooks): Add field get_substring_location.
640 * substring-locations.c: New file, taking definition of
641 format_warning_va and format_warning_at_substring from
642 c-family/c-format.c, making them non-static.
643 * substring-locations.h (class substring_loc): Move class here
644 from c-family/c-common.h. Add and rewrite comments.
645 (format_warning_va): New decl.
646 (format_warning_at_substring): New decl.
647 (get_source_location_for_substring): Add comment.
649 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
651 * config/i386/i386.c: Add 'U' suffix to processor feature bits
652 to avoid -Wnarrowing warning.
653 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
654 * opts.c: Likewise for SANITIZER_OPT bitmasks.
656 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
658 * config/aarch64/aarch64.c (aarch64_legitimize_address):
659 Avoid use of base_offset if offset already in range.
661 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
663 * config/sh/sh-protos.h (struct sh_atomic_model,
664 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
665 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
666 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
667 * config/sh/sh.h (struct sh_atomic_model,
668 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
669 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
670 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
671 Guard with __cplusplus.
673 2016-09-06 Jakub Jelinek <jakub@redhat.com>
676 * config/i386/i386.c (ix86_expand_builtin): For builtin with
677 unsupported or unknown ISA, use expand_call.
679 2016-09-06 Martin Liska <mliska@suse.cz>
681 PR gcov-profile/77378
682 PR gcov-profile/77466
683 * tree-profile.c (tree_profiling): Detect whether target can use
684 -fprofile-update=atomic.
686 2016-09-06 Richard Biener <rguenther@suse.de>
688 PR tree-optimization/77479
689 * tree-vrp.c (update_value_range): Extend overflow handling to
692 2016-09-05 Jakub Jelinek <jakub@redhat.com>
695 * config/i386/i386.md (isa): Add x64_avx512bw.
696 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
697 (kmov_isa): New mode attr.
698 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
699 (*zero_extend<mode>si2): Likewise.
700 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
702 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
704 * doc/invoke.texi (SPU Options): nops -> NOPs.
705 (x86 Options): Ditto.
707 2016-09-05 Jakub Jelinek <jakub@redhat.com>
710 * toplev.c (process_options): Temporarily set input_location
711 to UNKNOWN_LOCATION around targetm.target_option.override () call.
713 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
715 PR rtl-optimization/77452
716 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
717 inner-mode reference to a CONST_VECTOR constant in the constant pool.
719 2016-09-05 Marek Polacek <polacek@redhat.com>
722 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
724 2016-09-05 Jakub Jelinek <jakub@redhat.com>
727 * gensupport.c (alter_output_for_subst_insn): Remove redundant
728 *insn_out == '*' test. Don't copy unnecessary to yet another
729 memory buffer, and don't leak it.
731 PR rtl-optimization/77425
732 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
734 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
736 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
738 2016-09-02 David Malcolm <dmalcolm@redhat.com>
740 * common.opt (fdiagnostics-generate-patch): New option.
741 * diagnostic.c: Include "edit-context.h".
742 (diagnostic_initialize): Initialize context->edit_context_ptr.
743 (diagnostic_finish): Delete context->edit_context_ptr.
744 (diagnostic_report_diagnostic): Add fix-it hints from the
745 diagnostic to context->edit_context_ptr, if any.
746 * diagnostic.h (class edit_context): Add forward decl.
747 (struct diagnostic_context): Add field "edit_context_ptr".
748 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
749 -fdiagnostics-generate-patch.
750 (-fdiagnostics-generate-patch): New item.
751 * toplev.c: Include "edit-context.h".
752 (process_options): Set global_dc->edit_context_ptr to a new
753 edit_context if the options need one.
754 (toplev::main): Handle -fdiagnostics-generate-patch by using
755 global_dc->edit_context_ptr.
757 2016-09-02 Jakub Jelinek <jakub@redhat.com>
760 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
761 map and firstprivate clauses on target construct for _Atomic
763 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
764 on target construct for _Atomic qualified decls.
765 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
767 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
768 _Atomic qualified arguments not mentioned in uniform clause.
770 2016-09-02 David Malcolm <dmalcolm@redhat.com>
772 * Makefile.in (OBJS-libcommon): Add edit-context.o.
773 * diagnostic-color.c (color_dict): Add "diff-filename",
774 "diff-hunk", "diff-delete", and "diff-insert".
775 (parse_gcc_colors): Update default value of GCC_COLORS in comment
776 to reflect above changes.
777 * doc/invoke.texi (-fdiagnostics-color): Update description of
778 default GCC_COLORS, and of the supported capabilities.
779 * edit-context.c: New file.
780 * edit-context.h: New file.
781 * input.c (struct fcache): Add field "missing_trailing_newline".
782 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
784 (add_file_to_cache_tab): Likewise.
785 (fcache::fcache): Likewise.
786 (get_next_line): Update c->missing_trailing_newline.
787 (location_missing_trailing_newline): New function.
788 * input.h (location_missing_trailing_newline): New decl.
789 * selftest-run-tests.c (selftest::run_tests): Call
790 edit_context_c_tests.
791 * selftest.h (edit_context_c_tests): New decl.
793 2016-09-02 Jakub Jelinek <jakub@redhat.com>
794 Richard Biener <rguenth@suse.de>
796 PR tree-optimization/77444
797 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
798 as steptype, remove redundant initialization.
800 2016-09-02 Jakub Jelinek <jakub@redhat.com>
803 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
804 (sanopt_optimize_walker): Optimize away
805 __asan_before_dynamic_init (...) followed by
806 __asan_after_dynamic_init () without intervening memory loads/stores.
807 * ipa-pure-const.c (special_builtin_state): Handle
808 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
809 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
811 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
813 * cfg.c (free_original_copy_tables): Replace second assignment of
814 bb_copy = NULL by bb_original = NULL.
816 2016-09-02 Jakub Jelinek <jakub@redhat.com>
819 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
820 assignment added in r216794.
822 2016-09-02 David Malcolm <dmalcolm@redhat.com>
824 * Makefile.in (OBJS): Add typed-splay-tree.o.
825 * selftest-run-tests.c (selftest::run_tests): Call
826 typed_splay_tree_c_tests.
827 * selftest.h (typed_splay_tree_c_tests): New decl.
828 * typed-splay-tree.c: New file.
829 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
830 (typed_splay_tree::max): New method.
831 (typed_splay_tree::min): New method.
832 (typed_splay_tree::foreach): New method.
833 (typed_splay_tree::closure): New struct.
834 (typed_splay_tree::inner_foreach_fn): New function.
836 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
838 * ipa-cp.c (ipcp_store_bits_results): Change option name from
839 -fipa-cp-bit to -fipa-bit-cp.
841 2016-09-01 Martin Sebor <msebor@redhat.com>
843 PR tree-optimization/71831
844 * tree-object-size.h: Return bool instead of the size and add
845 argument for the size.
846 * tree-object-size.c (compute_object_offset): Update signature.
847 (addr_object_size): Same.
848 (compute_builtin_object_size): Return bool instead of the size
849 and add argument for the size. Handle POINTER_PLUS_EXPR when
850 optimization is disabled.
851 (expr_object_size): Adjust.
852 (plus_stmt_object_size): Adjust.
853 (pass_object_sizes::execute): Adjust.
854 * builtins.c (fold_builtin_object_size): Adjust.
855 * doc/extend.texi (Object Size Checking): Update.
856 * ubsan.c (instrument_object_size): Adjust.
858 2016-09-01 Martin Sebor <msebor@redhat.com>
860 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
861 it fits the output of the formatted function regardless of its
863 * gcc/genmodes.c (parser::parse_expr): Same.
864 * gimplify.c (gimplify_asm_expr): Same.
865 * passes.c (pass_manager::register_one_dump_file): Same.
866 * print-tree.c (print_node): Same.
868 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
870 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
872 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
874 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
876 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
878 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
879 * config/rs6000/vector.md: Ditto.
880 * config/rs6000/vsx.md: Ditto.
882 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
884 * ipa-inline-analysis.c (param_change_prob): Get to the base object
887 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
889 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
890 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
891 *return_and_restore_gpregs_<mode>_r11,
892 *return_and_restore_gpregs_<mode>_r12,
893 *return_and_restore_gpregs_<mode>_r1,
894 *return_and_restore_fpregs_<mode>_r11,
895 *return_and_restore_fpregs_<mode>_r12,
896 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
897 directly instead of via the "l" constraint. Renumber operands.
900 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
902 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
903 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
904 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
905 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
906 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
907 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
908 *call_value_nonlocal_darwin64, reload_macho_picbase,
909 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
910 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
911 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
912 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
913 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
914 *save_fpregs_<mode>_r1): Ditto.
915 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
916 *return_and_restore_gpregs_spe): Ditto.
918 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
920 * config/rs6000/rs6000.md
921 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
922 the use of the link register.
923 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
925 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
926 Michael Meissner <meissner@linux.vnet.ibm.com>
929 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
930 reg+reg addressing for TImode.
931 (rs6000_legitimate_address_p): Only allow register indirect
932 addressing for TImode, even without TARGET_QUAD_MEMORY.
934 2016-09-01 Richard Biener <rguenther@suse.de>
937 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
938 check whether the result fits the desired result type.
940 2016-09-01 Nathan Sidwell <nathan@acm.org>
942 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
944 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
946 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
948 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
950 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
952 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
953 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
954 for comparisons of integer ZERO_EXTEND against zero.
956 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
958 * config/i386/i386.c (ix86_option_override_internal): Also disable the
959 STV pass if -mstackrealign is enabled.
961 2016-08-31 Ilya Verbin <iverbin@gmail.com>
963 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
966 2016-08-31 David Malcolm <dmalcolm@redhat.com>
968 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
969 (layout_range::intersects_line_p): New method.
970 (test_range_contains_point_for_single_point): Rename to...
971 (test_layout_range_for_single_point): ...this, and add testing
972 for layout_range::intersects_line_p.
973 (test_range_contains_point_for_single_line): Rename to...
974 (test_layout_range_for_single_line): ...this, and add testing
975 for layout_range::intersects_line_p.
976 (test_range_contains_point_for_multiple_lines): Rename to...
977 (test_layout_range_for_multiple_lines): ...this, and add testing
978 for layout_range::intersects_line_p.
979 (layout::layout): Populate m_fixit_hints.
980 (layout::get_expanded_location): Handle the case of a line-span
982 (layout::validate_fixit_hint_p): New method.
983 (get_line_span_for_fixit_hint): New function.
984 (layout::calculate_line_spans): Add spans for fixit-hints.
985 (layout::should_print_annotation_line_p): New method.
986 (layout::print_any_fixits): Drop param "richloc", instead using
987 validated fixits in m_fixit_hints. Add "const" to hint pointers.
988 (diagnostic_show_locus): Avoid printing blank annotation lines.
989 (selftest::test_diagnostic_context::test_diagnostic_context):
990 Initialize show_column and start_span.
991 (selftest::test_diagnostic_context::start_span_cb): New static
993 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
994 (selftest::diagnostic_show_locus_c_tests): Update for function
995 renamings. Call test_diagnostic_show_locus_fixit_lines.
997 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
999 PR tree-optimization/73714
1000 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
1002 2016-08-31 David Malcolm <dmalcolm@redhat.com>
1004 * selftest.c: Move "namespace selftest {" to top of file,
1005 removing explicit "selftest::" qualifiers throughout.
1007 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
1009 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
1011 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
1012 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
1013 Replace builtin with vector extension.
1014 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
1016 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
1017 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
1018 Replace builtin with vector extension.
1019 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
1020 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
1021 Replace builtin with vector extension.
1022 * config/i386/xmmintrin.h (__m128_u): New type.
1023 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
1024 (_mm_load_ps, _mm_store_ps): Simplify.
1026 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
1028 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
1030 2016-08-30 David Malcolm <dmalcolm@redhat.com>
1032 * diagnostic-show-locus.c (colorizer::begin_state): Support more
1033 than 3 ranges per diagnostic by alternating between color 1 and
1035 (layout::layout): Replace use of rich_location::MAX_RANGES
1036 with richloc->get_num_locations ().
1037 (layout::calculate_line_spans): Replace use of
1038 rich_location::MAX_RANGES with m_layout_ranges.length ().
1039 (layout::print_annotation_line): Handle arbitrary numbers of
1040 ranges in caret-printing by defaulting to '^'.
1041 (selftest::test_one_liner_many_fixits): New function.
1042 (test_diagnostic_show_locus_one_liner): Call it.
1043 * diagnostic.c (diagnostic_initialize): Update for renaming
1044 of rich_location::MAX_RANGES to
1045 rich_location::STATICALLY_ALLOCATED_RANGES.
1046 * diagnostic.h (struct diagnostic_context): Likewise.
1048 2016-08-30 David Malcolm <dmalcolm@redhat.com>
1050 * selftest.c (selftest::named_temp_file::named_temp_file): New
1052 (selftest::temp_source_file::~temp_source_file): Move to...
1053 (selftest::named_temp_file::~named_temp_file): ...here.
1054 (selftest::test_named_temp_file): New function.
1055 (selftest::selftest_c_tests): Call test_named_temp_file.
1056 * selftest.h (class named_temp_file): New class.
1057 (class temp_source_file): Convert to a subclass of named_temp_file.
1059 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
1061 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
1062 USEs of LR_REGNO in returns and sibcalls.
1063 (rs6000_output_mi_thunk): Similar.
1064 (rs6000_sibcall_aix): Similar.
1065 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
1066 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
1067 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
1068 Remove the USE of LR_REGNO from the patterns as well. Delete an
1070 (return_internal_<mode>): Delete.
1072 2016-08-30 Tamar Christina <tamar.christina@arm.com>
1074 * gcc/config/aarch64/aarch64-simd.md
1075 (aarch64_ld2<mode>_dreg_le): New.
1076 (aarch64_ld2<mode>_dreg_be): New.
1077 (aarch64_ld2<mode>_dreg): Removed.
1078 (aarch64_ld3<mode>_dreg_le): New.
1079 (aarch64_ld3<mode>_dreg_be): New.
1080 (aarch64_ld3<mode>_dreg): Removed.
1081 (aarch64_ld4<mode>_dreg_le): New.
1082 (aarch64_ld4<mode>_dreg_be): New.
1083 (aarch64_ld4<mode>_dreg): Removed.
1084 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
1086 2016-08-30 David Malcolm <dmalcolm@redhat.com>
1088 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
1089 redundant location param.
1090 (test_one_liner_fixit_remove): Likewise.
1091 (test_one_liner_fixit_replace): Likewise.
1092 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
1093 * gcc-rich-location.c
1094 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
1095 get_range_from_loc. Drop overload taking a const char *.
1096 * gcc-rich-location.h
1097 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
1100 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
1102 * config/linux.c (linux_libc_has_function): Return true on musl.
1104 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
1106 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
1108 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
1110 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
1111 used for abnormal egdes.
1113 2016-08-30 Jakub Jelinek <jakub@redhat.com>
1115 PR tree-optimization/72866
1116 * tree-vect-patterns.c (search_type_for_mask): Turn into
1117 a small wrapper, move all code to ...
1118 (search_type_for_mask_1): ... this new function. Add caching
1119 and adjust recursive calls.
1122 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
1123 instead of lookup_type_die (type_main_variant (type)) even for array
1127 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
1128 constant pool reference return x instead of c.
1130 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
1132 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
1135 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1138 (selftest::test_make_location_nonpure_range_endpoints): Fix
1141 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1143 * diagnostic-show-locus.c
1144 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
1146 (selftest::test_diagnostic_show_locus_one_liner): Call it.
1147 * input.c (get_pure_location): Move to libcpp/line-map.c.
1148 * input.h (get_pure_location): Convert decl to an inline function
1149 calling implementation in libcpp.
1151 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
1154 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
1155 template for intel asm dialect.
1156 (vec_set_hi_<mode><mask_name>): Ditto.
1158 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1160 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
1161 (selftest::fail_formatted): Likewise.
1163 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1165 * input.c (make_location): Call get_start and get_finish
1166 on the endpoints to avoid storing packed ranges or ad-hoc
1168 (selftest::test_make_location_nonpure_range_endpoints): New function.
1169 (selftest::input_c_tests): Call it.
1170 * input.h (get_start): New inline function.
1172 2016-08-29 Tom de Vries <tom@codesourcery.com>
1175 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
1178 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
1180 * Makefile.in (gcov-iov.h): Add dummy recipe.
1182 2016-08-29 Nathan Sidwell <nathan@acm.org>
1184 * config/nvptx/nvptx.c: #include tree-vrp.h.
1186 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
1189 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
1190 HIGH+LO construct during reload.
1192 2016-08-28 Tom de Vries <tom@codesourcery.com>
1195 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
1196 'sysv_abi va_list' attribute.
1197 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
1198 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
1201 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1203 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
1204 * emit-rtl.c (unshare_all_rtl_1): Adjust.
1205 (unshare_all_rtl_again): Likewise.
1206 * function.c (assign_stack_local_1): Likewise.
1207 (assign_stack_temp_for_type): Likewise.
1209 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1211 * cfgbuild.c (make_edges): Adjust.
1212 * cfgrtl.c (can_delete_label_p): Likewise.
1213 * dwarf2cfi.c (create_trace_edges): Likewise.
1214 * except.c (sjlj_emit_dispatch_table): Likewise.
1215 * function.h (struct expr_status): make x_forced_labels a vector.
1216 * jump.c (rebuild_jump_labels_1): Adjust.
1217 * reload1.c (set_initial_label_offsets): Likewise.
1218 * stmt.c (force_label_rtx): Likewise.
1219 (expand_label): Likewise.
1221 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1223 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
1225 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
1227 PR tree-optimization/71077
1228 PR tree-optimization/68542
1229 * fold-const.c (fold_relational_const): Fix folding of
1230 VECTOR_CST comparisons that have a scalar boolean result type.
1231 (selftest::test_vector_folding): New static function.
1232 (selftest::fold_const_c_tests): Call it.
1234 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
1236 * doc/extend.texi (SPU Built-in Functions): Remove stale
1237 references to material formerly at IBM and Sony.
1239 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
1242 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
1244 2016-08-26 David Malcolm <dmalcolm@redhat.com>
1246 * diagnostic-show-locus.c
1247 (selftest::test_fixit_consolidation): New function.
1248 (selftest::diagnostic_show_locus_c_tests): Call it.
1249 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
1250 constructor based on source_range.
1252 2016-08-26 David Malcolm <dmalcolm@redhat.com>
1254 * diagnostic-color.c (color_dict): Add "fixit-insert" and
1256 (parse_gcc_colors): Update description of default GCC_COLORS.
1257 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
1258 (colorizer::set_fixit_insert): New method.
1259 (colorizer::set_fixit_delete): New method.
1260 (colorizer::get_color_by_name): New method.
1261 (colorizer::STATE_FIXIT_INSERT): New constant.
1262 (colorizer::STATE_FIXIT_DELETE): New constant.
1263 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
1264 fields in favor of new field "m_stop_color". Add fields
1265 "m_fixit_insert" and "m_fixit_delete".
1266 (colorizer::colorizer): Update for above changes. Replace
1267 colorize_start calls with calls to get_color_by_name.
1268 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
1269 STATE_FIXIT_DELETE. Update for field renamings.
1270 (colorizer::finish_state): Simplify by using m_stop_color,
1271 rather than multiple identical "*_ce" fields.
1272 (colorizer::get_color_by_name): New method.
1273 (layout::print_any_fixits): Print insertions and replacements
1274 using the "fixit-insert" color, and deletions using the
1275 "fixit-delete" color.
1276 * doc/invoke.texi (-fdiagnostics-color): Update description of
1277 default GCC_COLORS, and of the supported capabilities.
1279 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
1281 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
1282 current_function_static_stack_size variable with the static
1283 stack frame size of the current function when
1284 flag_stack_usage_info is enabled.
1286 2016-08-26 Nathan Sidwell <nathan@acm.org>
1288 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
1289 assignment inside if condition.
1291 2016-08-26 Richard Biener <rguenther@suse.de>
1293 PR tree-optimization/69047
1294 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
1295 extracts similar to what FRE does.
1296 (non_rewritable_mem_ref_base): Likewise.
1298 2016-08-26 Joseph Myers <joseph@codesourcery.com>
1300 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
1301 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
1302 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1303 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1304 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
1306 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1307 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1308 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1309 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
1310 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1312 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1315 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
1316 reservation duration to 15 cycles.
1317 (cortex_a8_vfp_macs): Likewise.
1318 (cortex_a8_vfp_macd): Likewise.
1319 (cortex_a8_vfp_divs): Likewise.
1320 (cortex_a8_vfp_divd): Likewise.
1322 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1324 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
1325 (aarch_macro_fusion_pair_p): Use above to avoid early return.
1327 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1328 Martin Jambhor <mjambor@suse.cz>
1330 * common.opt: New option -fipa-bit-cp.
1331 * doc/invoke.texi: Document -fipa-bit-cp.
1332 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
1333 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
1334 * tree-ssa-ccp.h: New header file.
1335 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
1336 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
1337 Replace all occurences of tree parameter by two new params: signop, int.
1338 (bit_value_unop_1): Change to bit_value_unop and export it.
1339 Replace all occurences of tree parameter by two new params: signop,
1341 (bit_value_binop): Change call from bit_value_binop_1 to
1343 (bit_value_assume_aligned): Likewise.
1344 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
1345 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
1347 (ccp_finalize): Skip processing if val->mask == 0.
1348 * ipa-cp.c: Include tree-ssa-ccp.h
1349 (ipcp_bits_lattice): New class.
1350 (ipcp_param_lattice (bits_lattice): New member.
1351 (print_all_lattices): Call ipcp_bits_lattice::print.
1352 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
1353 (initialize_node_lattices): Likewise.
1354 (propagate_bits_accross_jump_function): New function.
1355 (propagate_constants_accross_call): Call
1356 propagate_bits_accross_jump_function.
1357 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
1358 (ipcp_store_bits_results): New function.
1359 (ipcp_driver): Call ipcp_store_bits_results.
1360 * ipa-prop.h (ipa_bits): New struct.
1361 (ipa_jump_func): Add new member bits of type ipa_bits.
1362 (ipa_param_descriptor): Change decl to decl_or_type.
1363 (ipa_get_param): Change decl to decl_or_type and assert on
1365 (ipa_get_type): New function.
1366 (ipcp_transformation_summary): New member bits.
1367 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
1368 (ipa_populate_param_decls): Likewise.
1369 (ipa_dump_param): Likewise.
1370 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
1372 (ipa_set_jf_unknown): Set ipa_bits::known to false.
1373 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
1375 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
1376 (ipa_write_jump_function): Add streaming for ipa_bits.
1377 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
1378 (write_ipcp_transformation_info): Add streaming for ipa_bits
1380 (read_ipcp_transfomration_info): Add support for reading streamed
1382 (ipcp_update_bits): New function.
1383 (ipcp_transform_function): Call ipcp_update_bits.
1385 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
1387 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
1388 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
1390 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
1392 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
1394 2016-08-25 Richard Biener <rguenther@suse.de>
1396 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
1397 Only add locations in late dwarf.
1398 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
1399 (dwarf2out_early_finish): But do it here.
1401 2016-08-24 Michael Collison <michael.collison@linaro.org>
1402 Michael Collison <michael.collison@arm.com>
1404 * config/arm/arm-modes.def: Add new condition code mode CC_V
1405 to represent the overflow bit.
1406 * config/arm/arm.c (maybe_get_arm_condition_code):
1407 Add support for CC_Vmode.
1408 (arm_gen_unlikely_cbranch): New function to generate common
1409 rtl conditional branches for overflow patterns.
1410 * config/arm/arm-protos.h: Add prototype for
1411 arm_gen_unlikely_cbranch.
1412 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
1413 addsi3_compareV_upper): New patterns to support signed
1414 builtin overflow add operations.
1415 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
1416 New patterns to support unsigned builtin add overflow operations.
1417 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
1418 builtin overflow subtract operations,
1419 (usubv<mode>4): New patterns to support unsigned builtin subtract
1420 overflow operations.
1421 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
1422 to support builtin overflow negate operations.
1424 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1427 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1429 * explow.c (get_dynamic_stack_size): Take known alignment of stack
1430 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
1433 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
1435 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
1436 MULTILIB_OPTIONS should be used. Small wording fixes.
1437 * genmultilib: Memorize set of all option combinations in
1438 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
1439 found in MULTILIB_OPTIONS by checking if option set is listed in
1440 combination_space. Output new and existing error message to stderr.
1442 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
1444 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
1445 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
1446 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
1447 (MULTILIB_REUSE): Remove reuse rules for option set including
1448 -mfpu=fp-armv8 and -mfpu=vfpv4
1450 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
1452 * config/arm/t-rtems: Add vfp multilib.
1454 2016-08-23 Ian Lance Taylor <iant@golang.org>
1456 * config/s390/s390.c (s390_asm_file_start): Call
1459 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1461 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
1462 initialization of all 0's to the 0 constant, instead of directly
1463 generating XOR. Add support for V4SImode vector initialization on
1464 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
1465 initialization. Change variables used in V4SFmode vector
1466 intialization. For V4SFmode vector splat on ISA 3.0, make sure
1467 any memory addresses are in index form. Add support for using
1468 VSPLTH/VSPLTB to initialize vector short and vector char vectors
1469 with all of the same element.
1470 (regno_or_subregno): New helper function to return a register
1471 number for either REG or SUBREG.
1472 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
1473 Use regno_or_subregno where possible.
1474 (rs6000_split_v4si_init_di_reg): New helper function to build up a
1475 DImode value from two SImode values in order to generate V4SImode
1476 vector initialization on 64-bit systems with direct move.
1477 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
1479 (rtx_is_swappable_p): V4SImode vector initialization insn is not
1481 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
1483 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
1484 attributes to initialize V8HImode and V16QImode vectors with the
1486 (VSX_SPLAT_COUNT): Likewise.
1487 (VSX_SPLAT_SUFFIX): Likewise.
1488 (UNSPEC_VSX_VEC_INIT): New unspec.
1489 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
1490 Allow SFmode values to come from Altivec registers.
1491 (vsx_init_v4si): New insn/split for V4SImode vector initialization
1492 on 64-bit systems with direct move.
1493 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
1494 vector initializations, to allow V4SImode vector initializations
1495 on 64-bit systems with direct move.
1496 (vsx_splat_v4si): Likewise.
1497 (vsx_splat_v4si_di): Likewise.
1498 (vsx_splat_v4sf): Likewise.
1499 (vsx_splat_v4sf_internal): Likewise.
1500 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
1502 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
1503 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
1504 initializing V8HImode and V16QImode vectors with the same
1506 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
1507 optimization if -maltivec=be.
1509 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
1511 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
1512 attribute for alternatives 3 and 4.
1514 2016-08-23 David Malcolm <dmalcolm@redhat.com>
1516 * selftest.c (selftest::assert_str_contains): New function.
1517 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
1518 * selftest.h (selftest::assert_str_contains): New decl.
1519 (ASSERT_STR_CONTAINS): New macro.
1521 2016-08-23 Richard Biener <rguenther@suse.de>
1523 PR tree-optimization/77286
1524 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
1526 (vect_transform_loop): Split exit edges of loop and scalar
1527 loop if required and at the appropriate time.
1529 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1531 * explow.c (get_dynamic_stack_size): Take known alignment of stack
1532 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
1534 Correct a typo in a comment.
1536 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1538 * config/s390/s390.md ("*andc_split"): New splitter for and with
1541 2016-08-23 Richard Biener <rguenther@suse.de>
1543 PR tree-optimization/27336
1544 * tree-vrp.c (infer_value_range): Handle stmts that can throw
1545 by looking for a non-EH edge.
1546 (process_assert_insertions_for): Likewise.
1548 2016-08-23 Richard Biener <rguenther@suse.de>
1551 * statistics.c (statistics_counter_event): Robustify against
1554 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1556 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
1557 for targets amdfam10 and barcelona.
1559 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
1561 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
1562 (zero_extend<mode>di2): Ditto.
1563 (*zero_extend<mode>si2): Ditto.
1564 (*zero_extendqihi2): Ditto.
1566 2016-08-22 Joseph Myers <joseph@codesourcery.com>
1569 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
1570 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
1572 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
1574 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
1575 identical consecutive elements.
1576 [SSA_NAME]: Print the name's def stmt on its own line. When printing
1577 the node's def stmt, avoid printing an unwanted trailing newline by
1578 replacing the call to print_gimple_stmt() with its inlined body and
1579 adjusting it to not set pp_needs_newline and to call pp_flush()
1580 instead of pp_newline_and_flush().
1582 2016-08-22 Joseph Myers <joseph@codesourcery.com>
1584 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
1585 (float32_type_node, float64_type_node, float32x_type_node)
1586 (float128x_type_node): New macros.
1587 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
1588 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
1589 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
1590 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
1591 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
1592 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
1593 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
1594 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
1595 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
1596 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
1597 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
1598 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
1599 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
1600 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
1601 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
1602 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
1603 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
1604 (copysign, fabs, huge_val, inf, nan, nans): Use it.
1605 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
1607 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
1608 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
1609 * doc/extend.texi (Other Builtins): Document these built-in
1611 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
1614 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
1616 * doc/install.texi (Binaries): www.opencsw.org now uses https.
1618 2016-08-22 Richard Biener <rguenther@suse.de>
1620 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
1622 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
1625 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
1626 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
1627 non-SSE2 athlons only, otherwise prefer SSE prefetches.
1629 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1631 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
1632 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
1633 (vrp_visit_switch_stmt): Likewise.
1634 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
1635 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
1636 (vrp_visit_stmt): Use extract_range_from_stmt.
1637 (vrp_visit_phi_node): Use extract_range_from_phi_node.
1639 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1641 * Makefile.in: Add tree-vrp.h to GTFILES.
1642 * gengtype.c (open_base_files): Add tree-vrp.h.
1643 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
1644 * builtins.c: Likewise.
1645 * fold-const.c: Likewise.
1646 * gimple-builder.c: Likewise.
1647 * gimple-laddress.c: Likewise.
1648 * hsa-gen.c: Likewise.
1649 * internal-fn.c: Likewise.
1651 * targhooks.c: Liewise,
1652 * tree-ssa-address.c: Likewise.
1653 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
1654 * tree-vrp.c (struct value_range): Move to tree-vrp.h
1655 * tree-vrp.h: New file.
1657 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1659 PR tree-optimization/61839
1660 * tree-vrp.c (two_valued_val_range_p): New.
1661 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
1662 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
1663 Also Convert VAR BINOP CST where VAR is two-valued to
1664 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
1666 2016-08-19 David Malcolm <dmalcolm@redhat.com>
1668 * diagnostic-show-locus.c
1669 (layout::annotation_line_showed_range_p): New method.
1670 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
1671 Reimplement case fixit_hint::REPLACE to cover removals, and
1672 replacements where the range of the replacement isn't one
1673 of the ranges in the rich_location.
1674 (test_one_liner_fixit_replace): Likewise.
1675 (selftest::test_one_liner_fixit_replace_non_equal_range): New
1677 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
1679 (selftest::test_diagnostic_show_locus_one_liner): Call the new
1681 * diagnostic.c (print_parseable_fixits): Remove case
1684 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
1687 * config/i386/i386.c (ix86_option_override_internal): Remove
1688 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
1689 Enable SSE prefetch also for TARGET_PREFETCHWT1.
1690 Do not try to enable TARGET_PRFCHW ISA flag here.
1691 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
1692 Rewrite expander function body.
1693 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
1695 2016-08-19 Joseph Myers <joseph@codesourcery.com>
1698 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
1699 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
1700 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
1701 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
1702 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
1703 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
1704 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
1705 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
1706 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
1708 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
1710 (struct floatn_type_info): New structure type.
1711 (floatn_nx_types): New variable declaration.
1712 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
1713 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
1714 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
1715 * tree.c (floatn_nx_types): New variable.
1716 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
1717 corresponding complex types.
1718 * target.def (floatn_mode): New hook.
1719 * targhooks.c: Include "real.h".
1720 (default_floatn_mode): New function.
1721 * targhooks.h (default_floatn_mode): New prototype.
1722 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
1724 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
1725 effective-target and dg-add-options keywords.
1726 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
1727 Document new effective-target keywords.
1728 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
1729 * doc/tm.texi: Regenerate.
1730 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
1731 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
1732 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
1734 * real.h (struct real_format): Add field ieee_bits.
1735 * real.c (ieee_single_format, mips_single_format)
1736 (motorola_single_format, spu_single_format, ieee_double_format)
1737 (mips_double_format, motorola_double_format)
1738 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
1739 (ieee_extended_intel_128_format)
1740 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
1741 (mips_extended_format, ieee_quad_format, mips_quad_format)
1742 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
1743 (decimal_double_format, decimal_quad_format, ieee_half_format)
1744 (arm_half_format, real_internal_format: Initialize ieee_bits
1746 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
1747 float128_type_node. Set float80_type_node to float64x_type_node
1748 if appropriate and long_double_type_node not appropriate.
1749 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
1750 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
1751 Initialize ieee_bits field.
1752 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
1753 (rs6000_init_builtins): Set ieee128_float_type_node to
1755 (rs6000_floatn_mode): New function.
1757 2016-08-19 Jakub Jelinek <jakub@redhat.com>
1759 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
1760 _rdseed64_step): Uglify argument names and/or local variable names
1761 in inline functions.
1762 * config/i386/rtmintrin.h (_xabort): Likewise.
1763 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
1764 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
1765 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
1766 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
1767 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
1768 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
1769 _mm_maskz_ternarylogic_epi32): Likewise.
1770 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
1771 __lwpins32, __lwpins64): Likewise.
1772 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
1773 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
1774 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
1775 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
1776 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
1777 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
1778 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
1779 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
1780 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
1781 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
1782 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
1783 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
1784 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
1785 _mm256_mask_i64gather_epi32): Likewise.
1786 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
1787 * config/i386/ia32intrin.h (__writeeflags): Likewise.
1788 * config/i386/pkuintrin.h (_wrpkru): Likewise.
1789 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
1790 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
1791 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
1792 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
1793 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
1794 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
1795 _mm512_mask_prefetch_i64scatter_ps): Likewise.
1796 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
1797 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
1798 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
1799 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
1800 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
1801 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
1802 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
1803 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
1805 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
1807 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
1808 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
1810 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
1811 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
1813 (_rdpkru_u32): Add space after function name.
1815 * config/i386/t-i386 (i386-c.o): Don't depend on
1816 i386-builtin-types.inc.
1817 (i386.o): Depend on i386-builtin-types.inc.
1819 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
1822 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
1823 Use const_vec_duplicate to check for duplicated elements.
1825 2016-08-19 Richard Biener <rguenther@suse.de>
1827 PR tree-optimization/77290
1828 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1829 Fix flag_tree_parallelize_loops check.
1831 2016-08-19 Richard Biener <rguenther@suse.de>
1833 * match.pd (x | 0 -> x): Add.
1835 2016-08-19 Richard Biener <rguenther@suse.de>
1837 PR tree-optimization/77286
1838 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
1839 Deal with virtual PHIs being out-of-order.
1841 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1843 * doc/invoke.texi (fverbose-asm): Note that source code lines
1844 are emitted, and provide an example.
1845 * final.c (asm_show_source): New function.
1846 (final_scan_insn): Call asm_show_source.
1848 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1850 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
1851 param with diagnostic_kind.
1852 (class colorizer): Similarly replace field m_diagnostic with
1854 (colorizer::colorizer): Replace diagnostic
1855 param with diagnostic_kind.
1856 (colorizer::begin_state): Update for above field change.
1857 (layout::layout): Replace diagnostic param with rich_location *
1858 and diagnostic_kind.
1859 (diagnostic_show_locus): Replace diagnostic param with richloc
1860 and diagnostic_kind.
1861 (class selftest::test_diagnostic_context): New class.
1862 (selftest::test_diagnostic_show_locus_unknown_location): New
1864 (selftest::test_one_liner_simple_caret): New function.
1865 (selftest::test_one_liner_caret_and_range): New function.
1866 (selftest::test_one_liner_multiple_carets_and_ranges): New
1868 (selftest::test_one_liner_fixit_remove): New function.
1869 (selftest::test_one_liner_fixit_replace): New function.
1870 (selftest::test_diagnostic_show_locus_one_liner): New function.
1871 (selftest::diagnostic_show_locus_c_tests): Call the new test
1873 * diagnostic.c (diagnostic_initialize): Initialize
1874 colorize_source_p, show_ruler_p and parseable_fixits_p.
1875 (default_diagnostic_finalizer): Update for change to
1876 diagnostic_show_locus.
1877 (diagnostic_append_note): Likewise.
1878 * diagnostic.h (diagnostic_show_locus): Replace
1879 const diagnostic_info * param with location * and diagnostic_t.
1881 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1883 * input.c (saved_line_table): New global.
1884 (class selftest::temp_line_table): Rename to line_table_test and
1885 move declaration to selftest.h, and drop field m_old_line_table.
1886 (selftest::temp_line_table::temp_line_table): Rename ctor to...
1887 (selftest::line_table_test::line_table_test): ...this. Add a
1888 default ctor. Store current value of line_table within
1890 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
1891 (selftest::line_table_test::~line_table_test): ...this, and
1892 restore line_table from the saved_line_table, rather than
1894 (selftest::test_accessing_ordinary_linemaps): Update for above
1896 (selftest::test_lexer): Likewise.
1897 (struct selftest::lexer_test): Likewise.
1898 (selftest::lexer_test::lexer_test): Likewise.
1899 (selftest::input_c_tests): Move the looping over test cases from
1901 (selftest::for_each_line_table_case): New function.
1902 * input.h (saved_line_table): New decl.
1903 * selftest.h (struct selftest::line_table_case): New forward decl.
1904 (class selftest::line_table_test): New class, moved here from
1905 selftest::temp_line_table in input.c, and renamed.
1906 (selftest::for_each_line_table_case): New decl.
1908 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
1911 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
1913 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
1916 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
1917 enclosing parallel construct for reduction variables on OpenACC loop
1920 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
1922 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
1923 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
1925 (function_to_dwarf_procedure): Update comment.
1927 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1929 * input.c (diagnostics_file_cache_forcibly_evict_file): New
1931 * input.h (diagnostics_file_cache_forcibly_evict_file): New
1933 * selftest.c (selftest::temp_source_file::~temp_source_file):
1934 Evict m_filename from the diagnostic file cache.
1936 2016-08-18 Richard Biener <rguenther@suse.de>
1938 * tree-pass.h (make_pass_materialize_all_clones): Declare.
1939 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
1940 make_pass_materialize_all_clones): New simple IPA pass encapsulating
1941 clone materialization.
1942 * passes.def (all_late_ipa_passes): Start with
1943 pass_materialize_all_clones.
1944 * cgraphunit.c (symbol_table::compile): Remove call to
1945 materialize_all_clones.
1946 * tree-into-ssa.c: Include statistics.h.
1947 (update_ssa): Count number of times we do incremental/rewrite
1950 2016-08-18 Richard Biener <rguenther@suse.de>
1952 PR tree-optimization/77282
1953 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1954 When doing auto-parallelizing also prevent use of PHIs that
1955 carry dependences across loop backedges.
1957 2016-08-18 Tamar Christina <tamar.christina@arm.com>
1958 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1960 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
1962 2016-08-18 Richard Biener <rguenther@suse.de>
1964 * ssa-iterators.h (ssa_vuse_operand): New inline.
1965 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
1966 (predicate_all_scalar_phis): Use remove_phi_node to remove
1967 phi nodes predicated. Delay removing virtual PHIs.
1968 (predicate_mem_writes): Update virtual operands.
1969 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
1970 (tree_if_conversion): Do not rewrite virtual SSA form.
1971 * tree-phinodes.c (release_phi_node): Make static.
1972 * tree-phinodes.h (release_phi_node): Remove.
1974 2016-08-18 Jakub Jelinek <jakub@redhat.com>
1976 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
1977 codes that appear in bdesc_* arrays, instead include i386-builtin.def
1978 twice to define those.
1979 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
1980 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
1981 bdesc_multi_arg): Define by including i386-builtin.def the third time.
1982 * config/i386/i386-builtin.def: New file.
1984 2016-08-17 David Malcolm <dmalcolm@redhat.com>
1986 * input.c (get_source_range_for_char): Rename to...
1987 (selftest::get_source_range_for_char): ...this, and move within
1988 the #if CHECKING_P guard.
1989 (get_num_source_ranges_for_substring): Rename to...
1990 (selftest::get_num_source_ranges_for_substring): ...this, move
1991 within the #if CHECKING_P guard, and make static.
1992 (selftest::assert_num_substring_ranges): Initialize
1995 2016-08-18 Alan Modra <amodra@gmail.com>
1997 PR rtl-optimization/72771
1998 * reload.c (find_reloads): Don't assume that a subreg mem is OK
1999 when find_reloads_toplev returns address_reloaded==-1.
2000 (alternative_allows_const_pool_ref): Update comment.
2002 2015-08-17 Alan Hayward <alan.hayward@arm.com>
2004 PR tree-optimization/71752
2005 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
2006 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
2008 2016-08-17 Jakub Jelinek <jakub@redhat.com>
2010 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
2011 instead of testing ECF_NORETURN bit in gimple_call_flags.
2012 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
2013 * predict.c (tree_bb_level_predictions): Likewise.
2014 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
2017 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
2018 turning a call into __builtin_unreachable-like noreturn call, adjust
2019 gimple_call_set_fntype.
2020 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
2021 gimple_call_fntype has void return type.
2023 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
2025 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
2026 maybe_lookup_decl, to handle nested acc loop directives.
2028 2016-08-17 Richard Biener <rguenther@suse.de>
2030 PR tree-optimization/76490
2031 * tree-vrp.c (update_value_range): Preserve overflow infinities
2032 when intersecting with ranges from get_range_info.
2033 (operand_less_p): Handle overflow infinities correctly.
2034 (value_range_constant_singleton): Use vrp_operand_equal_p
2035 to handle overflow max/min correctly.
2036 (vrp_valueize): Likewise.
2037 (union_ranges): Likewise.
2038 (intersect_ranges): Likewise.
2039 (vrp_visit_phi_node): Improve iteration limitation to only
2040 apply when we'll possibly re-visit the PHI via a changed argument
2043 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
2045 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
2046 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
2047 rather than those that should not be built.
2049 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
2052 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
2054 2016-08-17 Richard Biener <rguenther@suse.de>
2056 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
2057 (verify_vssa): New function verifying virtual SSA form.
2058 (verify_ssa): Call it.
2059 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
2060 Do not apply loop-closed SSA handling to virtuals.
2061 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
2062 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
2063 when rewriting their symbol.
2064 (prepare_def_site_for): Likewise.
2065 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
2066 operands of moved stmts.
2068 2016-08-17 Richard Biener <rguenther@suse.de>
2070 PR tree-optimization/23855
2071 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
2072 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
2073 find guards to hoist. Do not update SSA form but rewrite virtuals
2074 into loop closed SSA.
2075 (find_loop_guard): Adjust to skip already hoisted guards. Do
2076 not mark virtuals for renaming or update SSA form.
2078 2016-08-17 Martin Liska <mliska@suse.cz>
2080 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
2081 a LONG_LONG_TYPE_SIZE comparison.
2082 * gcov-io.h: Remove macro definitions.
2083 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
2084 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
2087 2016-08-16 Jakub Jelinek <jakub@redhat.com>
2089 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
2090 that builtins not mentioned in bdesc_* arrays come first, then
2091 the ones mentioned in bdesc_* arrays in the order they appear in
2092 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
2093 IX86_BUILTIN__BDESC_*_LAST enumerator.
2094 (bdesc_mpx): Fix up a comment typo.
2095 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
2096 __builtin_ia32_vpcomneu[bwdq] builtins.
2097 (BDESC_VERIFY, BDESC_VERIFYS): Define.
2098 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
2099 enum ix86_builtins ordering.
2100 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
2101 for direct bdesc_* array member access instead of searching all the
2102 arrays until an fcode match is found.
2104 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
2106 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
2107 pattern as define_insn_and_split. Split insn before reload to
2109 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
2110 <shift_insn><mode>3_1.
2111 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
2112 <rotate_insn><mode>3_1.
2114 2016-08-16 David Malcolm <dmalcolm@redhat.com>
2117 * input.c (get_source_range_for_substring): Rename to...
2118 (get_source_location_for_substring): ...this, adding param
2119 "caret_idx", and converting output param from source_range * to
2121 (get_source_range_for_char): New function.
2122 (get_num_source_ranges_for_substring): Update comment to reflect
2124 (assert_char_at_range): Update to use get_source_range_for_char
2125 rather than get_source_range_for_substring.
2126 (test_lexer_string_locations_concatenation_2): Likewise.
2127 * substring-locations.h (get_source_range_for_substring): Rename
2129 (get_source_location_for_substring): ...this, and adding param
2130 "caret_idx", and converting output param from source_range * to
2133 2016-08-16 David Malcolm <dmalcolm@redhat.com>
2135 * input.c (class selftest::temp_source_file): Move to
2137 (selftest::temp_source_file::temp_source_file): Move to
2139 (selftest::temp_source_file::~temp_source_file): Likewise.
2140 * selftest.c (selftest::temp_source_file::temp_source_file): Move
2142 (selftest::temp_source_file::~temp_source_file): Likewise.
2143 * selftest.h (class selftest::temp_source_file): Move here from
2146 2016-08-16 Jakub Jelinek <jakub@redhat.com>
2149 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
2150 inlining, add cgraph edge for the added __builtin_unreachable call.
2153 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
2154 only cast it to SHWI for the final comparison.
2156 2016-08-16 Martin Liska <mliska@suse.cz>
2158 PR gcov-profile/36412
2159 * doc/gcov.texi: Document --hash-filenames(-x).
2160 * gcov.c (print_usage): Add the option.
2161 (process_args): Process the option, sort options alphabetically.
2162 (md5sum_to_hex): New function.
2163 (make_gcov_file_name): Do the md5sum and append it to a
2166 2016-08-16 Bin Cheng <bin.cheng@arm.com>
2168 PR tree-optimization/69848
2169 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
2170 and swtich operands to avoid additional NOT instruction.
2171 (vcond<v_cmp_mixed><mode>): Ditto.
2172 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
2174 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
2176 * doc/install.texi (*-*-solaris2*): Adjust latest change.
2178 2016-08-16 Richard Biener <rguenther@suse.de>
2180 PR tree-optimization/76783
2181 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
2182 BB visited flags at start.
2184 2016-08-16 Bin Cheng <bin.cheng@arm.com>
2186 PR tree-optimization/72817
2187 PR tree-optimization/73450
2188 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
2189 multiple_of_p for adjusted IV.base.
2191 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
2194 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
2195 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
2196 for !flag_finite_math_only or flag_signed_zeros.
2197 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
2198 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
2199 depend on flag_finite_math_only.
2200 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
2202 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
2203 (*ieee_smin<mode>3): Ditto.
2204 (*ieee_smax<mode>3): Ditto.
2205 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
2206 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
2208 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
2209 depend on flag_finite_math_only.
2210 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
2211 (*mmx_<code>v2sf3): Remove.
2212 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
2213 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
2214 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
2216 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
2218 PR rtl-optimization/73650
2219 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
2220 it is not a simple move.
2222 2016-08-15 Martin Liska <mliska@suse.cz>
2225 * gcc.c (do_spec_1): Call save_string with the right size.
2226 (save_string): Do an assert about string we copy.
2228 2016-08-15 Richard Biener <rguenther@suse.de>
2230 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
2231 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
2233 (pass_data_stv): Likewise.
2235 2016-08-15 Richard Biener <rguenther@suse.de>
2237 PR tree-optimization/73434
2238 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
2239 TBAA info on the base when forwarding a non-invariant address.
2241 2016-08-15 Jakub Jelinek <jakub@redhat.com>
2243 * dwarf2out.c (struct checksum_attributes): Add
2244 at_string_length_bit_size and at_string_length_byte_size fields.
2245 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
2246 and DW_AT_string_length_byte_size.
2247 (die_checksum_ordered): Handle at_string_length_bit_size and
2248 at_string_length_byte_size.
2249 (gen_array_type_die): For dwarf_version >= 5 emit
2250 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
2251 (adjust_string_types): For dwarf_version >= 5 remove
2252 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
2253 (resolve_addr): Likewise.
2256 * dwarf2out.c (string_types): New variable.
2257 (gen_array_type_die): Change early_dwarf handling of
2258 DW_AT_string_length, create DW_OP_call4 referencing the
2259 length var temporarily. Handle parameters that are pointers
2261 (adjust_string_types): New function.
2262 (gen_subprogram_die): Temporarily set string_types to local var,
2263 call adjust_string_types if needed.
2264 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
2266 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
2268 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
2270 * doc/install.texi (*-*-solaris2*): Fix version number and document
2271 requirement on GNU make for building libjava with the Solaris linker.
2273 2016-08-15 Martin Liska <mliska@suse.cz>
2274 Jakub Jelinek <jakub@redhat.com>
2276 PR tree-optimization/72824
2277 * tree-loop-distribution.c (const_with_all_bytes_same)
2278 <case VECTOR_CST>: Fix a typo.
2280 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
2283 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
2284 Renamed from _mm512_undefined_si512.
2285 (_mm_undefined_si512): New definition.
2287 2016-08-13 Richard Biener <rguenther@suse.de>
2289 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
2290 into PHIs and update the lattice for its def.
2292 2016-08-12 Jakub Jelinek <jakub@redhat.com>
2295 * ubsan.c (instrument_si_overflow): Pass true instead of false
2297 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
2298 of bbs. Return TODO_cleanup_cfg if any returned true.
2300 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2302 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
2303 ISA 3.0 MTVSRDD instruction.
2304 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
2307 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
2309 PR tree-optimization/71083
2310 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
2311 bitfield access when possible.
2313 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
2316 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
2317 sign-changing cast from a shorter unsigned type to a wider
2320 2016-08-12 Jakub Jelinek <jakub@redhat.com>
2322 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
2323 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
2324 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
2326 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2328 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
2329 Correct costs for vec_construct.
2331 2016-08-12 Bin Cheng <bin.cheng@arm.com>
2333 PR tree-optimization/69848
2334 * tree-vectorizer.h (enum vect_def_type): New condition reduction
2335 type CONST_COND_REDUCTION.
2336 * tree-vect-loop.c (vectorizable_reduction): Support new condition
2337 reudction type CONST_COND_REDUCTION.
2339 2016-08-12 Richard Biener <rguenther@suse.de>
2341 PR tree-optimization/57326
2342 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
2343 returning an SSA name.
2344 (phi_translate_1): When fully_constant_expression returns a NAME
2345 make sure we have a leader for it.
2347 2016-08-12 Martin Liska <mliska@suse.cz>
2348 Adam Fineman <afineman@afineman.com>
2350 * gcov.c (process_file): Create .gcov file when .gcda
2353 2016-08-12 Marek Polacek <polacek@redhat.com>
2356 * alias.c (find_base_value): Adjust fall through comment.
2357 * cfgexpand.c (expand_debug_expr): Likewise.
2358 * combine.c (find_split_point): Likewise.
2359 (expand_compound_operation): Likewise. Add FALLTHRU.
2360 (make_compound_operation): Adjust fall through comment.
2361 (canon_reg_for_combine): Add FALLTHRU.
2362 (force_to_mode): Adjust fall through comment.
2363 (simplify_shift_const_1): Likewise.
2364 (simplify_comparison): Likewise.
2365 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
2367 * config/aarch64/predicates.md: Likewise.
2368 * config/i386/i386.c (function_arg_advance_32): Likewise.
2369 (ix86_gimplify_va_arg): Likewise.
2370 (print_reg): Likewise.
2371 (ix86_print_operand): Likewise.
2372 (ix86_build_const_vector): Likewise.
2373 (ix86_expand_branch): Likewise.
2374 (ix86_sched_init_global): Adjust fall through comment.
2375 (ix86_expand_args_builtin): Add FALLTHRU.
2376 (ix86_expand_builtin): Likewise.
2377 (ix86_expand_vector_init_one_var): Likewise.
2378 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
2379 (rs6000_adjust_cost): Likewise.
2380 (insn_must_be_first_in_group): Likewise.
2381 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
2382 * dbxout.c (dbxout_symbol): Adjust fall through comment.
2383 * df-scan.c (df_uses_record): Likewise.
2384 * dojump.c (do_jump): Add FALLTHRU.
2385 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
2387 (resolve_args_picking_1): Adjust fall through comment.
2388 (loc_list_from_tree_1): Likewise.
2389 * expmed.c (make_tree): Likewise.
2390 * expr.c (expand_expr_real_2): Add FALLTHRU.
2391 (expand_expr_real_1): Likewise. Adjust fall through comment.
2392 * fold-const.c (const_binop): Adjust fall through comment.
2393 (fold_truth_not_expr): Likewise.
2394 (fold_cond_expr_with_comparison): Add FALLTHRU.
2395 (fold_binary_loc): Likewise.
2396 (contains_label_1): Adjust fall through comment.
2397 (multiple_of_p): Likewise.
2398 * gcov-tool.c (process_args): Add FALLTHRU.
2399 * genattrtab.c (check_attr_test): Likewise.
2400 (write_test_expr): Likewise.
2401 * genconfig.c (walk_insn_part): Likewise.
2402 * genpreds.c (validate_exp): Adjust fall through comment.
2403 (needs_variable): Likewise.
2404 * gensupport.c (get_alternatives_number): Add FALLTHRU.
2405 (subst_dup): Likewise.
2406 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
2407 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
2408 (gimplify_scan_omp_clauses): Add FALLTHRU.
2409 (goa_stabilize_expr): Likewise.
2410 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
2412 * hsa-gen.c (get_address_from_value): Likewise.
2413 * ipa-icf.c (sem_function::hash_stmt): Likewise.
2414 * ira.c (ira_setup_alts): Add FALLTHRU.
2415 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
2417 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
2418 * opts.c (common_handle_option): Likewise.
2419 * read-rtl.c (read_rtx_code): Likewise.
2420 * real.c (round_for_format): Likewise.
2421 * recog.c (asm_operand_ok): Likewise.
2422 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
2423 * reload1.c (set_label_offsets): Likewise.
2424 (eliminate_regs_1): Likewise.
2425 (reload_reg_reaches_end_p): Likewise.
2426 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
2427 (rtx_cost): Likewise.
2428 * sched-rgn.c (is_exception_free): Likewise.
2429 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
2430 * stor-layout.c (int_mode_for_mode): Likewise.
2431 * toplev.c (print_to_asm_out_file): Likewise.
2432 (print_to_stderr): Likewise.
2433 * tree-cfg.c (gimple_verify_flow_info): Likewise.
2434 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
2435 (chrec_fold_multiply): Likewise.
2436 (evolution_function_is_invariant_rec_p): Likewise.
2437 (for_each_scev_op): Likewise.
2438 * tree-data-ref.c (siv_subscript_p): Likewise.
2439 (get_references_in_stmt): Likewise.
2440 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
2441 (substitute_in_expr): Likewise.
2442 (type_cache_hasher::equal): Likewise.
2443 (walk_type_fields): Likewise.
2444 * var-tracking.c (adjust_mems): Add FALLTHRU.
2445 (set_dv_changed): Adjust fall through comment.
2446 * varasm.c (default_function_section): Add FALLTHRU.
2448 2016-08-12 Marek Polacek <polacek@redhat.com>
2451 * tree-complex.c (expand_complex_division): Add missing break.
2453 2016-08-12 Richard Biener <rguenther@suse.de>
2455 * passes.c (execute_todo): Do not push/pop TV_TODO.
2456 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
2457 (execute_one_pass): Likewise.
2458 * common.opt (ftime-report-details): New switch.
2459 * doc/invoke.texi (ftime-report-details): Document.
2460 * timevar.h (timer::print_row): Adjust signature.
2461 (timer::all_zero): New static helper.
2462 (timer::child_map_t): New typedef.
2463 (timer::time_var_def): Add children field.
2464 * timevar.c (timer::named_items::print): Adjust.
2465 (timer::~timer): Free timevar recorded children.
2466 (timer::pop_internal): When -ftime-report-details record
2467 time spent in sub-timevars.
2468 (timer::print_row): Adjust.
2469 (timer::print): Print sub-timevar stats, use all_zero.
2470 * timevar.def (TV_TODO): Remove.
2472 2016-08-12 Richard Biener <rguenther@suse.de>
2474 PR tree-optimization/72851
2475 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
2476 worklists to use bitmaps indexed in execution order.
2477 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
2478 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
2479 (cfg_blocks): Make a bitmap.
2480 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
2482 (cfg_blocks_empty_p): Adjust.
2483 (cfg_blocks_add): Likewise.
2484 (cfg_blocks_get): Likewise.
2485 (add_ssa_edge): Likewise.
2486 (add_control_edge): Likewise.
2487 (simulate_stmt): Likewise.
2488 (process_ssa_edge_worklist): Likewise.
2489 (simulate_block): Likewise.
2490 (ssa_prop_init): Compute PRE order and stmt UIDs.
2491 (ssa_prop_fini): Adjust.
2492 (ssa_propagate): Adjust.
2494 2016-08-12 Richard Biener <rguenther@suse.de>
2496 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
2497 the currently executable edges have fixed ranges. Always
2498 go through update_value_range.
2500 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
2504 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
2505 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
2506 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
2507 (LANG_HOOKS_DECLS): Add it.
2508 * langhooks.h (struct lang_hooks_for_decls): Add
2509 function_decl_defaulted. Const_tree-ify
2510 function_decl_explicit_p and function_decl_deleted_p.
2511 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
2512 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
2513 also at strict DWARF v5.
2516 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
2517 TYPE_QUAL_CONST in reference-typed decls.
2520 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
2521 in DW_OP_pieces, just enough to handle pointers to member
2523 (gen_remaining_tmpl_value_param_die_attribute): Use a location
2524 expression on DWARFv5 if a constant value doesn't work.
2526 2016-08-11 David Malcolm <dmalcolm@redhat.com>
2528 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
2529 * selftest.c (selftest::test_assertions): New function.
2530 (selftest::selftest_c_tests): New function.
2531 * selftest.h (selftest::selftest_c_tests): New declaration.
2533 2016-08-11 Richard Biener <rguenther@suse.de>
2534 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2536 PR rtl-optimization/72855
2537 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
2539 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2542 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
2543 (vsx_store_<mode>): Likewise.
2545 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
2547 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
2548 TImode CONST_WIDE_INT store.
2549 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
2551 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
2553 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
2554 mode if unaligned SSE load and store are optimal.
2556 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
2558 PR tree-optimization/71083
2559 * tree-predcom.c (ref_at_iteration): Correctly align the
2562 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2564 * config/s390/s390-builtin-types.def: Add INT128 types.
2565 * config/s390/s390-builtins.def: Add INT128 variants for the add
2566 sub low-level builtins dealing with TImode.
2567 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
2568 via subreg when expanding a builtin.
2569 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
2570 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
2572 * config/s390/vecintrin.h: Adjust builtin names accordingly.
2573 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
2574 ("vec_addc<mode>", "vec_addc_u128"): Merge to
2575 "vacc<bhfgq>_<mode>".
2576 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
2577 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
2578 ("vec_subc<mode>", "vec_subc_u128"): Merge to
2579 "vscbi<bhfgq>_<mode>".
2580 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
2581 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
2583 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2585 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
2587 2016-08-11 Bin Cheng <bin.cheng@arm.com>
2589 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
2591 (vcond<v_cmp_mixed><mode>): Ditto.
2592 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
2594 2016-08-11 Bin Cheng <bin.cheng@arm.com>
2596 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
2597 variable explicitly, also assert on it before use.
2599 2016-08-11 Richard Biener <rguenther@suse.de>
2601 PR tree-optimization/72772
2602 * cfgloopmanip.c (create_preheader): Use split_edge if there
2603 is a single loop entry, avoiding degenerate PHIs.
2605 2016-08-11 Richard Biener <rguenther@suse.de>
2607 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
2608 unconditional TODO_cleanup_cfg.
2609 (pass_thread_jumps::execute): Initialize loops, perform a CFG
2610 cleanup only if we threaded a jump.
2612 2016-08-11 Alan Modra <amodra@gmail.com>
2615 * lra-constraints.c (simplify_operand_subreg): Allow subreg
2616 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
2617 slow. Emit two reloads for slow mem case, first loading in
2618 fast innermode, then converting to required mode.
2620 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
2622 * config/rs6000/altivec.h (vec_extract_exp): New macro.
2623 (vec_extract_sig): New macro.
2624 (vec_insert_exp): New macro.
2625 (vec_test_data_class): New macro.
2626 (scalar_extract_exp): New macro.
2627 (scalar_extract_sig): New macro.
2628 (scalar_insert_exp): New macro.
2629 (scalar_test_data_class): New macro.
2630 (scalar_test_neg): New macro.
2631 (scalar_cmp_exp_gt): New macro.
2632 (scalar_cmp_exp_lt): New macro.
2633 (scalar_cmp_exp_eq): New macro.
2634 (scalar_cmp_exp_unordered): New macro.
2635 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
2636 to enforce constraint that operand is a 7-bit unsigned literal.
2637 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
2638 for power9 built-ins.
2639 (BU_P9V_VSX_2): Likewise.
2640 (BU_P9V_64BIT_VSX_2): Likewise.
2641 (VSEEDP): Add scalar extract exponent support.
2642 (VSEESP): Add scalar extract signature support.
2643 (VSTDCNDP): Add scalar test negative support.
2644 (VSTDCNSP): Likewise.
2645 (VSIEDP): Add scalar insert exponent support.
2646 (VSCEDPGT): Add scalar compare exponent greater than support.
2647 (VSCEDPLT): Add scalar compare exponent less than support.
2648 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
2649 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
2650 (VSTDCDP): Add scalar test data class support.
2651 (VSTDCSP): Likewise.
2652 (VSEEDP): Add overload support for scalar extract exponent
2654 (VSESDP): Add overload support for scalar extract signature
2656 (VSTDCN): Add overload support for scalar test negative
2658 (VSTDCNDP): Add overload support for scalar test negative
2660 (VSTDCNSP): Add overload support for scalar test negative
2662 (VSIEDP): Add overload support for scalar insert exponent
2664 (VSTDC): Add overload support for scalar test data class
2666 (VSTDCDP): Add overload support for scalar test data class
2668 (VSTDCSP): Add overload support for scalar test data class
2670 (VSCEDPGT): Add overload support for scalar compare exponent
2671 greater than operation.
2672 (VSCEDPLT): Add overload support for scalar compare exponent
2673 less than operation.
2674 (VSCEDPEQ): Add overload support for scalar compare exponent
2675 test-for-equality operation.
2676 (VSCEDPUO): Add overload support for scalar compare exponent
2677 test-for-unordered operation.
2678 (VEEDP): Add vector extract exponent support.
2680 (VESDP): Add vector extract significand support.
2682 (VIEDP): Add vector insert exponent support.
2684 (VTDCDP): Add vector test data class support.
2686 (VES): Add overload support for vector extract significand operation.
2689 (VEE): Add overload support for vector extract exponent operation.
2692 (VTDC): Add overload support for vector test data class operation.
2695 (VIE): Add overload support for vector insert exponent operation.
2698 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2699 overloaded binary floating point functions.
2700 (altivec_resolve_overloaded_builtin): Improve error messages to
2701 distinguish between functions not supported in the current
2702 compiler configuration and functions that were invoked with an
2703 invalid parameter combination, and include the built-in function
2704 name in both error messages.
2705 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
2707 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
2709 (rs6000_expand_binop_builtin): Add check to enforce that argument
2710 2 of the test data class operations is a 7-bit unsigned literal.
2711 (rs6000_invalid_builtin): Add code to issue an error message if a
2712 built-in function that requires the power9_vector and -m32
2713 command-line options is compiled without these options.
2714 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
2715 (UNSPEC_VSX_SXSIGDP): New value.
2716 (UNSPEC_VSX_SXSIGPDP): New value.
2717 (UNSPEC_VSX_SIEXPDP): New value.
2718 (UNSPEC_VSX_SCMPEXPDP): New value.
2719 (UNSPEC_VSX_STSTDC): New value.
2720 (UNSPEC_VSX_VXEXP): New value.
2721 (UNSPEC_VSX_VXSIG): New value.
2722 (UNSPEC_VSX_VIEXP): New value.
2723 (UNSPEC_VSX_VTSTDC): New value.
2724 (xsxexpdp): New insn for scalar extract exponent.
2725 (xsxsigdp): New insn for scalar extract significand.
2726 (xsiexpdp): New insn for scalar insert exponent.
2727 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
2728 (*xscmpexpdp): New insn for scalar compare exponents.
2729 (xststdc<Fvsx): New expansion for both single- and
2730 double-precision scalar test data class operations.
2731 (xststdcneg<Fvsx>): New expansion for both single- and
2732 double-precision scalar test for negative value operations.
2733 (*xststdc<Fvsx>): New insn for scalar test data class
2735 (xvxexp<VSs>): New insn for single- and double-precision
2736 vector extract exponent operation.
2737 (xvxsig<VSs>): New insn for single- and double-precision
2738 vector extract significand operation.
2739 (xviexp<VSs>): New insn for single- and double-precision
2740 vector insert exponent operation.
2741 (xvtstdc<VSs>): New insn for single- and double-precision
2742 vector test data class operation.
2743 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2744 built-in functions to represent the Power9 binary floating-point
2745 support instructions.
2747 2016-08-10 bin cheng <bin.cheng@arm.com>
2749 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
2751 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
2752 Renlin Li <renlin.li@arm.com>
2753 Bin Cheng <bin.cheng@arm.com>
2755 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
2756 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
2757 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
2758 (aarch64_vcond_internal<mode><mode>): Delete pattern.
2759 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
2760 (vcond<v_cmp_result><mode>): Ditto.
2761 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
2762 (vcondu<mode><mode>): Ditto.
2763 (vcond<v_cmp_mixed><mode>): New pattern.
2764 (vcondu<mode><v_cmp_mixed>): New pattern.
2765 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
2766 of aarch64_vcond_internal.
2768 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
2769 Renlin Li <renlin.li@arm.com>
2770 Bin Cheng <bin.cheng@arm.com>
2772 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
2773 (vec_cmp<mode><v_cmp_result>): New pattern.
2774 (vec_cmpu<mode><mode>): New pattern.
2775 (vcond_mask_<mode><v_cmp_result>): New pattern.
2777 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
2779 PR tree-optimization/71734
2780 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
2781 REF_LOOP, invoke ref_indep_loop_p_1.
2782 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
2783 to ref_indep_loop_p.
2784 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
2785 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
2786 is inside LOOP, do not cache dpendence value for loops with
2788 (ref_indep_loop_p_2): Delete function.
2789 (can_sm_ref_p): Pass LOOP as additional argument to
2792 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2795 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
2796 being an offsettable address.
2798 2016-08-10 Martin Liska <mliska@suse.cz>
2800 PR gcov-profile/58306
2801 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
2802 atomic variants of profile update functions.
2804 2016-08-10 Martin Liska <mliska@suse.cz>
2806 Cherry picked (and modified) from google-4_7 branch
2807 2012-12-26 Rong Xu <xur@google.com>
2808 * common.opt (fprofile-update): Add new flag.
2809 * coretypes.h: Define enum profile_update.
2810 * doc/invoke.texi: Document -fprofile-update.
2811 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
2812 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
2813 * tree-profile.c (gimple_init_edge_profiler): Generate
2814 also atomic profiler update.
2815 (gimple_gen_edge_profiler): Likewise.
2817 2016-08-10 David Malcolm <dmalcolm@redhat.com>
2819 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
2820 stack_usage_file to NULL after fclose calls.
2822 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2825 * reload.c (push_reload): Compute subreg_in_class for
2826 subregs of constants and plus expressions. Remove special
2827 handling of SYMBOL_REFs.
2829 2016-08-10 Alan Modra <amodra@gmail.com>
2832 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
2833 SImode for TARGET_E500_DOUBLE when given SImode.
2835 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
2837 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
2838 unused variable __O.
2840 2016-08-09 Martin Liska <mliska@suse.cz>
2842 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
2843 _gcov_reset to __gcov_reset.
2844 * doc/gcov-tool.texi: Fix typo.
2846 2016-08-09 Martin Liska <mliska@suse.cz>
2848 * value-prof.c (gimple_divmod_values_to_profile): Do not
2849 instrument MOD histogram if a value is not a SSA name.
2851 2016-08-09 Martin Liska <mliska@suse.cz>
2853 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
2856 2016-08-09 Renlin Li <renlin.li@arm.com>
2859 * calls.c (prepare_call_address): Convert funexp to Pmode when
2861 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
2862 (sibcall_value): Likewise.
2864 2016-08-09 Marek Polacek <polacek@redhat.com>
2867 * cselib.c (cselib_expand_value_rtx_1): Add return.
2868 * gengtype.c (dbgprint_count_type_at): Likewise.
2869 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
2870 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
2872 2016-08-09 Martin Jambor <mjambor@suse.cz>
2875 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
2876 if instance is a MEM_REF.
2878 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
2881 * config/i386/i386.md (*movtf_internal): Use
2882 lra_in_progress || reload_completed instead of !can_create_pseudo_p
2883 in the insn constraint.
2884 (*movxf_internal): Ditto.
2885 (*movdf_internal): Ditto.
2886 (*movsf_internal): Ditto.
2888 2016-08-09 Bin Cheng <bin.cheng@arm.com>
2890 PR tree-optimization/72772
2891 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
2894 2016-08-09 Bin Cheng <bin.cheng@arm.com>
2896 PR tree-optimization/72772
2897 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
2899 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
2900 parameter STOP and update calls. Move expand_simple_operations
2901 function call from here...
2902 (simplify_using_initial_conditions): ...to here. Delete parameter
2904 (tree_simplify_using_condition): Delete parameter STOP.
2905 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
2906 simplify_using_initial_conditions.
2908 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
2911 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
2912 Use create_tmp_var_raw instead of create_tmp_var.
2914 2016-08-09 Richard Biener <rguenther@suse.de>
2916 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
2917 Treat same SSA names related.
2919 2016-08-09 Jakub Jelinek <jakub@redhat.com>
2921 PR tree-optimization/72824
2922 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
2923 real_zerop is not negative.
2925 2016-08-09 Richard Biener <rguenther@suse.de>
2927 PR tree-optimization/71802
2928 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
2929 all merge opportunities with the predecessor.
2931 2016-08-09 Richard Biener <rguenther@suse.de>
2934 * ipa-prop.c (ipa_modify_formal_parameters): Build
2935 parameter types with natural alignment also for the
2938 2016-08-08 Andi Kleen <ak@linux.intel.com>
2940 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
2942 2016-08-08 David Malcolm <dmalcolm@redhat.com>
2945 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
2946 do-nothing langhook.
2947 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
2948 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
2949 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
2950 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
2952 2016-08-08 David Malcolm <dmalcolm@redhat.com>
2955 * input.c: Ensure that HAVE_ICONV is defined.
2957 2016-08-08 Jakub Jelinek <jakub@redhat.com>
2960 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
2961 private vars for lastprivate and for linear iterator.
2964 * omp-simd-clone.c: Include varasm.h.
2965 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
2966 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
2967 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
2968 update function name.
2970 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2972 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
2973 (avr_diagnose_devicespecs_error): Remove.
2974 (avr_devicespecs_file): Remove composing absolute path for specfile
2975 and its verbose info. Remove conditions to check specs-file,
2977 2016-08-08 Jakub Jelinek <jakub@redhat.com>
2979 PR rtl-optimization/72821
2980 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
2981 just return false for them.
2983 2016-08-08 Alan Modra <amodra@gmail.com>
2986 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
2987 toc refs created during reload. Update function comment.
2989 2016-08-08 Alan Modra <amodra@gmail.com>
2992 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
2993 alternatives. Put loads first, then stores, and reg/reg moves
2994 within same class later. Delete attr length.
2996 2016-08-08 Alan Modra <amodra@gmail.com>
2999 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
3000 (mem_operand_ds_form): New predicate.
3001 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
3002 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
3003 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
3004 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
3005 (extendsfdf2_fpr): Replace o constraint with wY.
3007 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
3009 * tree-ssa-threadbackward.c: Include tree-inline.h
3010 (profitable_jump_thread_path): Use estimate_num_insns to estimate
3011 size of copied block; for cold paths reduce duplication.
3012 (find_jump_threads_backwards): Remove redundant tests.
3013 (pass_thread_jumps::gate): Enable for -Os.
3015 2016-08-07 Jakub Jelinek <jakub@redhat.com>
3018 * stor-layout.c (layout_decl): Fix up formatting.
3019 (relayout_decl): Allow DECL to be FIELD_DECL.
3021 2016-08-07 Alan Modra <amodra@gmail.com>
3023 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
3025 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
3027 * data-streamer-in.c (streamer_read_wide_int): New.
3028 (streamer_read_widest_int): Renamed function.
3029 * data-streamer-out.c (streamer_write_wide_int): New
3030 (streamer_write_widest_int): Renamed function.
3031 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
3033 (input_cfg): Call renamed function.
3034 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
3036 (output_cfg): Call renamed function.
3037 * data-streamer.h: Add declarations.
3039 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3041 * tree-ssa-ccp.c (extend_mask): New param sgn.
3042 Remove ORing with wi::mask.
3043 (get_default_value): Adjust call to extend_mask to pass sign.
3044 (evaluate_stmt): Likewise.
3046 2016-08-06 Jakub Jelinek <jakub@redhat.com>
3048 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
3051 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3053 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
3054 transform if operand's type is pointer to function or method.
3056 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
3058 PR tree-optimization/18046
3059 * tree-ssa-threadedge.c: Include cfganal.h.
3060 (simplify_control_statement_condition): If simplifying a
3061 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
3062 with the dominating ASSERT_EXPR before handing it off to VRP.
3063 Mention that a CASE_LABEL_EXPR may be returned.
3064 (thread_around_empty_blocks): Adjust to handle
3065 simplify_control_statement_condition() returning a
3067 (thread_through_normal_block): Likewise.
3068 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
3069 a switch statement by trying to determine which case label
3072 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
3074 PR rtl-optimization/69847
3075 * lra-constraints.c (process_invariant_for_inheritance): Save
3076 pattern instead of src.
3077 (remove_inheritance_pseudos): Use the pattern. Add assert.
3079 2016-08-05 David Malcolm <dmalcolm@redhat.com>
3081 * input.c (string_concat::string_concat): New constructor.
3082 (string_concat_db::string_concat_db): New constructor.
3083 (string_concat_db::record_string_concatenation): New method.
3084 (string_concat_db::get_string_concatenation): New method.
3085 (string_concat_db::get_key_loc): New method.
3086 (class auto_cpp_string_vec): New class.
3087 (get_substring_ranges_for_loc): New function.
3088 (get_source_range_for_substring): New function.
3089 (get_num_source_ranges_for_substring): New function.
3090 (class selftest::lexer_test_options): New class.
3091 (struct selftest::lexer_test): New struct.
3092 (class selftest::ebcdic_execution_charset): New class.
3093 (selftest::ebcdic_execution_charset::s_singleton): New variable.
3094 (selftest::lexer_test::lexer_test): New constructor.
3095 (selftest::lexer_test::~lexer_test): New destructor.
3096 (selftest::lexer_test::get_token): New method.
3097 (selftest::assert_char_at_range): New function.
3098 (ASSERT_CHAR_AT_RANGE): New macro.
3099 (selftest::assert_num_substring_ranges): New function.
3100 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
3101 (selftest::assert_has_no_substring_ranges): New function.
3102 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
3103 (selftest::test_lexer_string_locations_simple): New function.
3104 (selftest::test_lexer_string_locations_ebcdic): New function.
3105 (selftest::test_lexer_string_locations_hex): New function.
3106 (selftest::test_lexer_string_locations_oct): New function.
3107 (selftest::test_lexer_string_locations_letter_escape_1): New function.
3108 (selftest::test_lexer_string_locations_letter_escape_2): New function.
3109 (selftest::test_lexer_string_locations_ucn4): New function.
3110 (selftest::test_lexer_string_locations_ucn8): New function.
3111 (selftest::uint32_from_big_endian): New function.
3112 (selftest::test_lexer_string_locations_wide_string): New function.
3113 (selftest::uint16_from_big_endian): New function.
3114 (selftest::test_lexer_string_locations_string16): New function.
3115 (selftest::test_lexer_string_locations_string32): New function.
3116 (selftest::test_lexer_string_locations_u8): New function.
3117 (selftest::test_lexer_string_locations_utf8_source): New function.
3118 (selftest::test_lexer_string_locations_concatenation_1): New
3120 (selftest::test_lexer_string_locations_concatenation_2): New
3122 (selftest::test_lexer_string_locations_concatenation_3): New
3124 (selftest::test_lexer_string_locations_macro): New function.
3125 (selftest::test_lexer_string_locations_stringified_macro_argument):
3127 (selftest::test_lexer_string_locations_non_string): New function.
3128 (selftest::test_lexer_string_locations_long_line): New function.
3129 (selftest::test_lexer_char_constants): New function.
3130 (selftest::input_c_tests): Call the new test functions once per
3131 case within the line_table test matrix.
3132 * input.h (struct string_concat): New struct.
3133 (struct location_hash): New struct.
3134 (class string_concat_db): New class.
3135 * substring-locations.h: New header.
3137 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
3139 PR tree-optimization/72810
3140 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
3141 the type of the case labels when truncating.
3143 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
3146 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
3147 (aarch64_fp16_ptr_type_node): Likewise.
3148 * config/aarch64/aarch64-simd-builtins.c
3149 (aarch64_fp16_ptr_type_node): Define.
3150 (aarch64_init_fp16_types): New, refactored out of...
3151 (aarch64_init_builtins): ...here, update to call
3152 aarch64_init_fp16_types.
3153 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
3155 (aapcs_vfp_sub_candidate): Likewise.
3157 2016-08-05 Martin Liska <mliska@suse.cz>
3158 Joshua Cranmer <Pidgeot18@gmail.com>
3160 * gcov.c (line_t::has_block): New function.
3161 (enum loop_type): New enum.
3162 (handle_cycle): New function.
3163 (unblock): Likewise.
3164 (circuit): Likewise.
3165 (get_cycles_count): Likewise.
3166 (accumulate_line_counts): Use new loop detection algorithm.
3168 2016-08-05 Martin Liska <mliska@suse.cz>
3170 * gcov.c (output_intermediate_file): Rename
3171 function_info::line_next to next_file_fn.
3172 (process_file): Likewise.
3173 (read_graph_file): Likewise.
3174 (accumulate_line_counts): Likewise.
3175 (output_lines): Likewise.
3177 2016-08-05 Richard Biener <rguenther@suse.de>
3179 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
3180 restriction on threading to a loop header.
3182 2016-08-05 Richard Biener <rguenther@suse.de>
3184 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
3185 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
3186 adjust loop info accordingly.
3188 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
3190 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
3191 before folding call to __builtin_constant_p with parameters to false.
3193 2016-08-05 Alan Modra <amodra@gmail.com>
3195 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
3196 code accidentally committed 2016-05-02 providing class when given
3199 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
3201 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
3202 the case label ranges that partially overlap with OP's value
3205 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
3208 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
3209 Cast builtin function result to __mmask16 instead of __mmask8.
3210 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
3211 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
3212 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
3214 2016-08-04 David Malcolm <dmalcolm@redhat.com>
3216 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
3217 (ASSERT_TRUE_AT): New macro.
3218 (ASSERT_FALSE): Reimplement in terms of...
3219 (ASSERT_FALSE_AT): New macro.
3220 (ASSERT_STREQ_AT): Fix typo in comment.
3222 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
3224 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
3225 labels are exhaustive, designate the label with the widest
3226 range to be the default label.
3228 2016-08-04 Andrew Pinski <apinski@cavium.com>
3230 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
3231 (thunderx_tunings): Use thunderx_vector_cost instead of
3232 generic_vector_cost.
3234 2016-08-04 Martin Liska <mliska@suse.cz>
3236 * gcov.c (main): Fix GNU coding style.
3237 (output_intermediate_file): Likewise.
3238 (process_file): Likewise.
3239 (generate_results): Likewise.
3240 (release_structures): Likewise.
3241 (create_file_names): Likewise.
3242 (find_source): Likewise.
3243 (read_graph_file): Likewise.
3244 (find_exception_blocks): Likewise.
3245 (canonicalize_name): Likewise.
3246 (make_gcov_file_name): Likewise.
3247 (mangle_name): Likewise.
3248 (accumulate_line_counts): Likewise.
3249 (output_branch_count): Likewise.
3250 (read_line): Likewise.
3252 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
3254 PR rtl-optimization/71779
3255 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
3256 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
3257 or if it was truncated.
3259 PR rtl-optimization/70903
3260 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
3262 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
3264 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
3265 accessing SSA_NAME_PTR_INFO.
3267 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
3270 * common/config/avr/avr-common.c (avr_option_optimization_table)
3271 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
3273 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
3276 * config/avr/avr.md: New pattern to work around do_store_flag
3277 generating shift instructions for bit extractions.
3279 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
3281 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
3283 (add_equivalence): Likewise.
3284 (get_value_range): Allocate value range with vrp_value_range_pool.
3285 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
3286 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
3288 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
3290 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
3291 the default for the rs6000 port.
3293 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
3296 * calls.c (special_function_p): Remove special handling of
3297 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
3298 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
3299 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
3301 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
3304 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
3305 Don't stop on regular insns.
3307 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
3309 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
3310 size to DImode boundary.
3311 (nvptx_propagate): Likewise.
3313 2016-08-03 Alan Modra <amodra@gmail.com>
3315 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
3316 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
3317 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
3318 from -mefficient-unaligned-vector. Note that this affects fp too.
3320 2016-08-03 Alan Modra <amodra@gmail.com>
3322 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
3325 2016-08-03 Alan Modra <amodra@gmail.com>
3327 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
3328 to a reg. Localize vars.
3330 2016-08-03 Alan Modra <amodra@gmail.com>
3332 * config/rs6000/rs6000.opt: Remove negatives from help strings
3335 2016-08-03 Alan Modra <amodra@gmail.com>
3337 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
3338 Delete duplicated code.
3340 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
3343 * lra-spills.c (regno_in_use_p): New.
3344 (lra_final_code_change): Use it.
3346 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
3348 PR rtl-optimization/69847
3349 * lra-int.h (struct lra-reg): Use restore_rtx instead of
3351 (lra_rtx_hash): New.
3352 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
3354 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
3355 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
3356 * lra-spills.c (lra_final_code_change): Don't delete insn when the
3357 next insn is USE with the same reg as the current insn source.
3358 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
3360 (lra_constraints_init): Call initiate_invariants.
3361 (lra_constraints_finish): Call finish_invariants.
3362 (struct invariant, invariant_t, invariant_ptr_t): New.
3363 (const_invariant_ptr_t, invariants, invariants_pool): New.
3364 (invariant_table, invariant_hash, invariant_eq_p): New.
3365 (insert_invariant, initiate_invariants, finish_invariants): New.
3366 (clear_invariants, invalid_invariant_regs): New.
3367 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
3368 instead of restore_regno.
3369 (invariant_p, process_invariant_for_inheritance): New.
3370 (inherit_in_ebb): Implement invariant inheritance.
3371 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
3372 (remove_inheritance_pseudos): Implement undoing invariant
3374 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
3375 instead of restore_regno.
3376 * lra-assigns.c (regno_live_length): New.
3377 (reload_pseudo_compare_func): Use regno_live_length.
3378 (assign_by_spills): Use restore_rtx instead of restore_regno.
3379 (lra_assign): Ditto. Initiate regno_live_length.
3381 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
3383 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
3384 __builtin_aarch64_fmindf.
3386 2016-08-02 Bin Cheng <bin.cheng@arm.com>
3388 PR tree-optimization/34114
3389 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
3390 information for more control IVs.
3392 2016-08-02 Bin Cheng <bin.cheng@arm.com>
3394 PR tree-optimization/34114
3395 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
3396 PLUS_EXPR case. Handle SSA_NAME case.
3398 2016-08-02 Tamar Christina <tamar.christina@arm.com>
3400 * config/aarch64/aarch64-simd-builtins.def
3401 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
3402 (__builtin_aarch64_fmaxdf): Likewise.
3403 (__builtin_aarch64_smin_nandf): Likewise.
3404 (__builtin_aarch64_smax_nandf): Likewise.
3405 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
3406 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
3407 (<fmaxmin><mode>3): ...this.
3408 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
3409 (vminnm_f64): Likewise.
3410 (vmin_f64): Likewise.
3411 (vmax_f64): Likewise.
3412 * config/aarch64/iterators.md (FMAXMIN): Merge with...
3413 (FMAXMIN_UNS): ...this.
3414 (fmaxmin): Merged with
3415 (fmaxmin_op): ...this...
3416 (maxmin_uns_op): ...in to this.
3418 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
3420 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3421 Add support for vec_extract on vector float, vector int, vector
3422 short, and vector char vector types.
3423 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3424 vector float, vector int, vector short, and vector char
3425 optimizations on 64-bit ISA 2.07 systems for both constant and
3426 variable element numbers.
3427 (rs6000_split_vec_extract_var): Likewise.
3428 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
3429 Altivec registers on ISA 2.07 and above.
3430 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
3431 which never was matched due to the split occuring before register
3432 allocation (and the code would not have worked on little endian
3433 systems if it did match). Allow extracts to go to the Altivec
3434 registers if ISA 2.07 (power8). Change from using "" around the
3435 C++ code to using {}'s.
3436 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
3437 vec_extracts when the vector is in memory.
3438 (vsx_extract_v4sf_var): New insn to optimize vector float
3439 vec_extracts when the element number is variable on 64-bit ISA
3441 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
3442 for 64-bit ISA 2.07 as well as ISA 3.0.
3443 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
3444 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
3445 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
3446 optimize vector int, vector short, and vector char vec_extracts
3447 when the vector is in memory.
3448 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
3449 optimize vector int, vector short, and vector char vec_extracts
3450 when the element number is variable.
3452 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
3455 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
3456 does not overlap with other symbol flags.
3458 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
3460 * config/aarch64/aarch64.h (aarch64_frame):
3461 Remove padding0 and hardfp_offset. Add locals_offset,
3462 initial_adjust, callee_adjust, callee_offset and final_adjust.
3463 * config/aarch64/aarch64.c (aarch64_layout_frame):
3464 Remove unused padding0 and hardfp_offset initializations.
3465 Choose frame layout and set frame variables accordingly.
3466 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
3467 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
3468 (aarch64_pop_regs): Likewise.
3469 (aarch64_expand_prologue): Remove all decision code, just emit
3470 prolog according to frame variables.
3471 (aarch64_expand_epilogue): Remove all decision code, just emit
3472 epilog according to frame variables.
3473 (aarch64_initial_elimination_offset): Use offset to local/arg area.
3475 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
3478 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
3479 fix_debug_reg_uses after changing source register mode to
3480 V1TImode if source register is undefined.
3482 2015-08-01 Alan Hayward <alan.hayward@arm.com>
3484 PR tree-optimization/71818
3485 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
3486 with non invariant evolutions
3488 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
3491 * config/avr/avr.md (length) [branch]: Correct insn length
3492 attribute for forward branches.
3494 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
3496 * doc/extend.texi (AVR Built-in Functions): Document
3498 * config/avr/builtins.def (NOPS): New.
3499 * config/avr/avr.c (avr_expand_nops): New static function.
3500 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
3502 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3504 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
3505 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
3508 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
3510 * config/aarch64/aarch64.c (vulcan_tunings): Update
3511 vulcan L1 cache_line_size.
3513 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
3515 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
3516 function that takes a vector memory address, a hard register, an
3517 element number and a temporary base register, and recreates an
3518 address that points to the appropriate element within the vector.
3519 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
3520 (rs6000_split_vec_extract_var): Add support for the target of a
3521 vec_extract with variable element number being a scalar memory
3523 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
3525 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
3526 vsx_extract_<mode>_load insn with a new insn that optimizes
3527 storing either element to a memory location, using scratch
3528 registers to pick apart the vector and reconstruct the address.
3529 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
3530 (vsx_extract_<mode>_store): Rework alternatives to more correctly
3531 support Altivec registers. Add support for ISA 3.0 Altivec d-form
3533 (vsx_extract_<mode>_var): Add support for extracting a variable
3534 element number from memory.
3536 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
3538 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
3539 when testing for compares against constants of the form 0xabab.
3541 2016-07-29 Bin Cheng <bin.cheng@arm.com>
3543 PR tree-optimization/57558
3544 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
3546 (vect_loop_versioning): Support versioning with niter assumptions.
3547 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
3548 (vect_get_loop_niters): New parameter. Reimplement to support
3549 assumptions in loop niter info.
3550 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
3551 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
3552 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
3553 Support loop versioning for niters.
3554 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
3555 (vect_free_loop_info_assumptions): New function.
3556 (vectorize_loops): Free loop niter info for loops with flag
3557 LOOP_F_ASSUMPTIONS set if vectorization failed.
3558 * tree-vectorizer.h (struct _loop_vec_info): New field
3559 num_iters_assumptions.
3560 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
3561 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
3562 (LOOP_REQUIRES_VERSIONING): New macro.
3563 (vect_free_loop_info_assumptions): New decl.
3565 2016-07-29 Bin Cheng <bin.cheng@arm.com>
3567 * cfgloop.h (struct loop): New field constraints.
3568 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
3569 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
3571 * cfgloop.c (alloc_loop): Initialize new field.
3572 * cfgloopmanip.c (copy_loop_info): Copy constraints.
3573 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
3574 Adjust niter analysis wrto loop constraints.
3575 * doc/loop.texi (@node Number of iterations): Add description for loop
3578 2016-07-29 Marek Polacek <polacek@redhat.com>
3581 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
3582 (ix86_expand_round_builtin): Likewise.
3584 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
3585 Georg-Johann Lay <avr@gjlay.de>
3587 PR rtl-optimization/71976
3588 * combine.c (get_last_value): Return 0 if the argument for which
3589 the function is called has a wider mode than the recorded value.
3591 2016-07-29 Marek Polacek <polacek@redhat.com>
3594 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
3595 (altivec_expand_st_builtin): Likewise.
3597 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
3599 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
3600 introduced in r238381.
3602 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
3605 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
3606 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
3608 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
3610 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
3612 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3613 Add support for vec_extract of vector double or vector long having
3614 a variable element number on 64-bit ISA 2.07 systems or newer.
3615 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
3617 (rs6000_split_vec_extract_var): New function to split a
3618 vec_extract built-in function with variable element number.
3619 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
3621 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
3622 (UNSPEC_VSX_EXTRACT): Likewise.
3623 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
3624 direct move instructions to be generated on 64-bit ISA 2.07
3625 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
3627 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
3628 arguments for vec_extract variable element.
3629 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
3630 vec_extract with variable element on V2DFmode and V2DImode
3632 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
3633 -mupper-regs-df requirement, since it isn't needed.
3634 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
3635 do direct moves on 64-bit systems, which allows optimization of
3636 vec_extract on 64-bit ISA 2.07 systems and newer.
3638 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
3639 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
3641 * config/aarch64/aarch64.md
3642 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
3644 (<optab>qihi2_aarch64): Likewise, and split into two.
3645 (extendqihi2_aarch64): New.
3646 (zero_extendqihi2_aarch64): New.
3647 * config/aarch64/iterators.md (ldrxt): Remove.
3648 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
3651 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
3653 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
3655 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
3657 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
3658 (aarch64_push_reg): New function to push 1 or 2 registers.
3659 (aarch64_pop_reg): New function to pop 1 or 2 registers.
3660 (aarch64_expand_prologue): Use aarch64_push_regs.
3661 (aarch64_expand_epilogue): Use aarch64_pop_regs.
3663 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
3665 PR tree-optimization/71734
3666 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
3667 attribute instead of REF_LOOP and use it.
3668 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
3669 set it for Loops having non-zero safelen attribute.
3670 (ref_indep_loop_p): Pass zero as initial value for safelen.
3672 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
3676 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
3677 call using chkp_gimple_call_builtin_p.
3678 (chkp_copy_bounds_for_assign): Likewise.
3680 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3682 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
3683 * config/arm/arm-protos.h (struct tune_params): Likewise.
3684 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
3685 (cortex_a9_sched_adjust_cost): Likewise.
3686 (fa726te_sched_adjust_cost): Likewise.
3687 (arm_adjust_cost): Likewise.
3688 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
3689 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
3690 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
3691 * config/i386/i386.c (ix86_adjust_cost): Likewise.
3692 * config/ia64/ia64.c: Likewise.
3693 * config/m68k/m68k.c: Likewise.
3694 * config/mep/mep.c (mep_adjust_cost): Likewise.
3695 * config/microblaze/microblaze.c (microblaze_adjust_cost):
3697 * config/mips/mips.c (mips_adjust_cost): Likewise.
3698 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
3700 * config/pa/pa.c (pa_adjust_cost): Likewise.
3701 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
3702 (rs6000_debug_adjust_cost): Likewise.
3703 * config/sh/sh.c (sh_adjust_cost): Likewise.
3704 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
3705 (hypersparc_adjust_cost): Likewise.
3706 (sparc_adjust_cost): Likewise.
3707 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
3708 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
3709 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
3711 * config/visium/visium.c (visium_adjust_cost): Likewise.
3712 * doc/tm.texi: Regenerate.
3713 * haifa-sched.c (dep_cost_1): Adjust.
3714 * target.def: Merge adjust_cost and adjust_cost_2.
3716 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3718 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
3720 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3722 * store-motion.c (struct st_expr): Make pattern_regs a vector.
3723 (extract_mentioned_regs): Append to a vector instead of
3724 returning a rtx_expr_list.
3725 (st_expr_entry): Adjust.
3726 (free_st_expr_entry): Likewise.
3727 (store_ops_ok): Likewise.
3728 (store_killed_in_insn): Likewise.
3729 (find_moveable_store): Likewise.
3731 2016-07-28 Martin Liska <mliska@suse.cz>
3733 PR gcov-profile/68025
3734 * tree-profile.c (tree_profiling): Respect
3735 no_profile_instrument_function attribute.
3736 * doc/extend.texi: Document no_profile_instrument_function
3739 2016-07-28 Martin Liska <mliska@suse.cz>
3741 PR rtl-optimization/70944
3742 * combine.c (make_compound_operation):
3743 Do not allow make_compound_operation for vector mode
3745 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
3748 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
3749 before calling get_ops.
3751 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
3753 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
3754 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
3755 (BITS_PER_UNIT_LOG): Remove.
3756 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
3757 * expr.c (expand_assignment): Likewise.
3758 * stor-layout.c (initialize_sizetypes): Likewise.
3760 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3762 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
3763 signature of rs6000_expand_vector_extract so that the element
3764 number is a RTX instead of a constant integer.
3765 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
3767 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
3768 (altivec_expand_vec_ext_builtin): Likewise.
3769 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
3770 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
3771 MFVSRLD instruction.
3773 2016-07-27 David Malcolm <dmalcolm@redhat.com>
3775 * input.c (get_pure_location): Move here from tree.c.
3776 (make_location): Likewise. Add header comment.
3777 (selftest::test_accessing_ordinary_linemaps): Verify
3778 pure_location_p, make_location, get_location_from_adhoc_loc and
3780 * input.h (get_pure_location): Move declaration here from tree.h.
3781 (get_finish): Likewise for inline function.
3782 (make_location): Likewise for declaration.
3783 * tree.c (get_pure_location): Move to input.c.
3784 (make_location): Likewise.
3785 * tree.h (get_pure_location): Move declaration to tree.h.
3786 (get_finish): Likewise for inline function.
3787 (make_location): Likewise for declaration.
3789 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3792 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
3794 2016-07-27 David Malcolm <dmalcolm@redhat.com>
3796 * system.h (STATIC_ASSERT): Use static_assert if building
3799 2016-07-27 Richard Biener <rguenther@suse.de>
3801 PR tree-optimization/72517
3802 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
3803 Revert change to not compute read-read dependences.
3805 2016-07-27 Richard Biener <rguenther@suse.de>
3807 * predict.c (set_even_probabilities): Make nedges unsigned.
3809 2016-07-27 Martin Liska <mliska@suse.cz>
3811 * predict.c (set_even_probabilities): Handle unlikely edges.
3812 (combine_predictions_for_bb): Likewise.
3814 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3817 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
3818 __float128 support when we don't have hardware support, so that
3819 the IEEE built-in functions like isgreater, first call __unordkf3
3820 to make sure neither operand is a NaN, and if both operands are
3821 ordered, do the normal comparison.
3823 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
3825 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
3827 (extract_code_and_val_from_cond_with_ops): Verify that name is
3828 either cond_op0 or cond_op1.
3830 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
3832 PR tree-optimization/18046
3833 * genmodes.c (emit_mode_size_inline): Emit an assert that
3834 verifies that mode is a valid array index.
3835 (emit_mode_nuinits_inline): Likewise.
3836 (emit_mode_inner_inline): Likewise.
3837 (emit_mode_unit_size_inline): Likewise.
3838 (emit_mode_unit_precision_inline): Likewise.
3839 * tree-vrp.c: Include params.h.
3840 (find_switch_asserts): Register edge assertions for the default
3841 label which correspond to the anti-ranges of each case label.
3842 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
3843 * doc/invoke.texi: Document it.
3845 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3847 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
3848 and unnecessary call to gimple_bb.
3850 2016-07-26 Richard Biener <rguenther@suse.de>
3852 PR rtl-optimization/71984
3853 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
3856 2016-07-26 Richard Biener <rguenther@suse.de>
3859 * expmed.c (extract_bit_field_1): Constrain the vector mode
3860 with element size matching the extraction mode size when
3861 choosing a better vector mode to do the extraction from.
3863 2016-07-26 Richard Biener <rguenther@suse.de>
3864 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3867 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
3870 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3872 * tree-ssa-structalias.c (struct scc_info): Change types of
3873 members to auto_sbitmap and auto_vec.
3874 (scc_info::scc_info): New constructor.
3875 (scc_info::~scc_info): New destructor.
3876 (init_scc_info): Remove.
3877 (free_scc_info): Remove.
3878 (find_indirect_cycles): Adjust.
3879 (perform_var_substitution): Likewise.
3880 (free_var_substitution_info): Likewise.
3882 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3884 * tree-outof-ssa.c (struct elim_graph): Change type of members
3885 to auto_vec and auto_sbitmap.
3886 (elim_graph::elim_graph): New constructor.
3887 (delete_elim_graph): Remove.
3888 (expand_phi_nodes): Adjust.
3890 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3892 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
3893 (new_elim_graph): Adjust.
3894 (clear_elim_graph): Likewise.
3895 (delete_elim_graph): Likewise.
3896 (elim_graph_size): Likewise.
3897 (elim_graph_add_node): Likewise.
3898 (elim_graph_add_edge): Likewise.
3899 (elim_graph_remove_succ_edge): Likewise.
3900 (eliminate_name): Likewise.
3901 (eliminate_build): Likewise.
3902 (elim_forward): Likewise.
3903 (elim_unvisited_predecessor): Likewise.
3904 (elim_backward): Likewise.
3905 (elim_create): Likewise.
3906 (eliminate_phi): Likewise.
3907 (expand_phi_nodes): Likewise.
3909 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3911 * bt-load.c (compute_out): Use auto_sbitmap class.
3912 (link_btr_uses): Likewise.
3913 * cfganal.c (mark_dfs_back_edges): Likewise.
3914 (post_order_compute): Likewise.
3915 (inverted_post_order_compute): Likewise.
3916 (pre_and_rev_post_order_compute_fn): Likewise.
3917 (single_pred_before_succ_order): Likewise.
3918 * cfgexpand.c (pass_expand::execute): Likewise.
3919 * cfgloop.c (verify_loop_structure): Likewise.
3920 * cfgloopmanip.c (fix_bb_placements): Likewise.
3921 (remove_path): Likewise.
3922 (update_dominators_in_loop): Likewise.
3923 * cfgrtl.c (break_superblocks): Likewise.
3924 * ddg.c (check_sccs): Likewise.
3925 (create_ddg_all_sccs): Likewise.
3926 * df-core.c (df_worklist_dataflow): Likewise.
3927 * dse.c (dse_step3): Likewise.
3928 * except.c (eh_region_outermost): Likewise.
3929 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3930 * gcse.c (prune_expressions): Likewise.
3931 (prune_insertions_deletions): Likewise.
3932 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
3933 * graph.c (draw_cfg_nodes_no_loops): Likewise.
3934 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
3935 * lcm.c (compute_earliest): Likewise.
3936 (compute_farthest): Likewise.
3937 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
3938 (unroll_loop_runtime_iterations): Likewise.
3939 (unroll_loop_stupid): Likewise.
3940 * lower-subreg.c (decompose_multiword_subregs): Likewise.
3941 * lra-lives.c: Likewise.
3942 * lra.c (lra): Likewise.
3943 * modulo-sched.c (schedule_reg_moves): Likewise.
3944 (optimize_sc): Likewise.
3945 (get_sched_window): Likewise.
3946 (sms_schedule_by_order): Likewise.
3947 (check_nodes_order): Likewise.
3948 (order_nodes_of_sccs): Likewise.
3949 (order_nodes_in_scc): Likewise.
3950 * recog.c (split_all_insns): Likewise.
3951 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
3952 * reload1.c (reload): Likewise.
3953 * sched-rgn.c (haifa_find_rgns): Likewise.
3954 (split_edges): Likewise.
3955 (compute_trg_info): Likewise.
3956 * sel-sched.c (init_seqno): Likewise.
3957 * store-motion.c (remove_reachable_equiv_notes): Likewise.
3958 * tree-into-ssa.c (update_ssa): Likewise.
3959 * tree-ssa-live.c (live_worklist): Likewise.
3960 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
3961 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3963 (try_peel_loop): Likewise.
3964 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
3966 * tree-ssa-pre.c (compute_antic): Likewise.
3967 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
3968 * tree-stdarg.c (reachable_at_most_once): Likewise.
3969 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
3970 * var-tracking.c (vt_find_locations): Likewise.
3972 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3974 * sbitmap.h (auto_sbitmap): New class.
3976 2016-07-26 Alan Modra <amodra@gmail.com>
3979 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
3982 2016-07-25 David Malcolm <dmalcolm@redhat.com>
3984 * input.c (selftest::temp_source_file::temp_source_file): Fix
3985 missing "%s" in fprintf.
3987 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
3990 * cselib.c (cselib_process_insn): Invalidate argument slots for
3993 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3995 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
3996 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
3997 vmulxh_lane_f16, vmulxh_laneq_f16): New.
3999 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4001 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4002 * config/aarch64/aarch64.md (fma, fnma): Support HF.
4003 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
4005 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4007 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4008 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
4010 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
4011 (add<mode>3): Likewise.
4012 (sub<mode>3): Likewise.
4013 (mul<mode>3): Likewise.
4014 (div<mode>3): Likewise.
4015 (*div<mode>3): Likewise.
4016 (<fmaxmin><mode>3): Extend to HF.
4017 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
4018 (fabd<mode>3): Likewise.
4019 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
4020 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
4021 (aarch64_fmulx<mode>): Likewise.
4022 (aarch64_fac<optab><mode>): Likewise.
4023 (aarch64_frecps<mode>): Likewise.
4024 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
4025 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
4026 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
4027 (VSDQ_HSDI): Support HI.
4028 (fcvt_target, FCVT_TARGET): Likewise.
4029 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
4030 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
4031 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
4032 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
4033 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
4034 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
4035 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
4038 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4040 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
4041 * config/aarch64/aarch64-builtins.c (hi_UP): New.
4042 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4043 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
4045 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
4046 (aarch64_cm<optab><mode>): Likewise.
4047 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
4048 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
4049 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
4050 (sqrt<mode>2): Likewise.
4051 (*sqrt<mode>2): Likewise.
4052 (abs<mode>2): Likewise.
4053 (<optab><mode>hf2): New pattern for HF mode.
4054 (<optab>hihf2): Likewise.
4055 * config/aarch64/arm_neon.h: Include arm_fp16.h.
4056 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
4057 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
4059 * config/aarch64/arm_fp16.h: New file.
4060 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
4061 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
4062 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
4063 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
4064 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
4065 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
4066 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
4067 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
4068 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
4069 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
4070 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
4071 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
4074 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4076 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
4077 reduc_smin_scal_): Use VDQIF_F16.
4078 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
4079 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
4081 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
4082 * config/aarch64/iterators.md (VDQIF_F16): New.
4083 (vp): Support HF modes.
4084 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
4085 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
4087 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4089 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
4090 "*aarch64_mulx_elt_from_dup<mode>".
4091 (*aarch64_mul3_elt<mode>): Update schedule type.
4092 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
4093 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
4094 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
4095 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
4096 (f, fp): Support HF modes.
4097 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
4098 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
4099 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
4100 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
4101 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
4102 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
4104 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4106 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4107 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
4109 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
4112 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4114 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4115 * config/aarch64/aarch64-simd.md
4116 (aarch64_rsqrts<mode>): Extend to HF modes.
4117 (fabd<mode>3): Likewise.
4118 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
4119 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
4120 (aarch64_<maxmin_uns>p<mode>): Likewise.
4121 (<su><maxmin><mode>3): Likewise.
4122 (<maxmin_uns><mode>3): Likewise.
4123 (<fmaxmin><mode>3): Likewise.
4124 (aarch64_faddp<mode>): Likewise.
4125 (aarch64_fmulx<mode>): Likewise.
4126 (aarch64_frecps<mode>): Likewise.
4127 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
4128 (add<mode>3): Extend to HF modes.
4129 (sub<mode>3): Likewise.
4130 (mul<mode>3): Likewise.
4131 (div<mode>3): Likewise.
4132 (*div<mode>3): Likewise.
4133 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
4135 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
4136 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
4137 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
4138 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
4139 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
4140 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
4141 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
4142 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
4143 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
4144 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
4145 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
4146 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
4147 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
4148 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
4150 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4152 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
4153 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4154 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
4155 (neg<mode>2): Likewise.
4156 (abs<mode>2): Likewise.
4157 (<frint_pattern><mode>2): Likewise.
4158 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
4159 (<optab><VDQF:mode><fcvt_target>2): Likewise.
4160 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
4161 (ftrunc<VDQF:mode>2): Likewise.
4162 (<optab><fcvt_target><VDQF:mode>2): Likewise.
4163 (sqrt<mode>2): Likewise.
4164 (*sqrt<mode>2): Likewise.
4165 (aarch64_frecpe<mode>): Likewise.
4166 (aarch64_cm<optab><mode>): Likewise.
4167 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
4169 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
4170 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
4172 * config/aarch64/arm_neon.h (vdup_n_f16): New.
4173 (vdupq_n_f16): Likewise.
4174 (vld1_dup_f16): Use vdup_n_f16.
4175 (vld1q_dup_f16): Use vdupq_n_f16.
4176 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
4177 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
4178 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
4179 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
4180 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
4181 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
4182 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
4183 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
4184 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
4185 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
4186 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
4187 vsqrt_f16, vsqrtq_f16): New.
4189 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4191 * config/aarch64/aarch64-simd.md
4192 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
4193 (aarch64_ext<mode>): Likewise.
4194 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
4195 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
4196 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
4198 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
4200 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
4201 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
4202 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
4203 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
4204 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
4205 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
4206 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
4208 (vmov_n_f16): Reimplement using vdup_n_f16.
4209 (vmovq_n_f16): Reimplement using vdupq_n_f16..
4211 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4213 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
4214 "frame_related_p". Generate CFA annotation when it's necessary.
4215 (aarch64_expand_prologue): Use aarch64_add_constant.
4216 (aarch64_expand_epilogue): Likewise.
4217 (aarch64_output_mi_thunk): Pass "false" when calling
4218 aarch64_add_constant.
4220 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4222 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
4225 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4227 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
4228 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
4229 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
4230 (aarch64_build_constant): Delete.
4232 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
4235 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
4237 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
4238 flag_toplevel_reorder.
4240 2016-07-25 Richard Biener <rguenther@suse.de>
4242 * cgraph.c (cgraph_node::verify_node): Compare against builtin
4243 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
4244 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
4245 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
4246 (streamer_get_builtin_tree): Likewise.
4247 (streamer_write_builtin): Likewise.
4248 * lto-streamer.h (LTO_builtin_decl): Remove.
4249 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
4250 (lto_input_scc): Remove LTO_builtin_decl handling.
4251 (lto_input_tree_1): Liekwise.
4252 * lto-streamer-out.c (lto_output_tree_1): Remove special
4253 handling of builtins.
4254 (DFS::DFS): Likewise.
4255 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
4256 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
4258 (streamer_write_builtin): Remove.
4260 2016-07-25 Martin Liska <mliska@suse.cz>
4262 * lto-cgraph.c (input_symtab): Don't call get_working_sets
4263 if flag_auto_profile is set to true.
4265 2016-07-25 Martin Liska <mliska@suse.cz>
4267 PR gcov-profile/71868
4268 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
4269 have a function with multiple latches, count them all.
4271 2016-07-25 Martin Liska <mliska@suse.cz>
4273 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
4275 2016-07-25 Martin Liska <mliska@suse.cz>
4277 PR tree-optimization/71987
4278 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
4279 just for SSA_NAMEs. Fix GNU coding style.
4281 2016-07-25 Martin Liska <mliska@suse.cz>
4283 PR gcov-profile/64874
4284 * gcov-io.h: Update command about file format.
4285 * gcov-iov.c (main): Adapt the numbering scheme.
4287 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
4290 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
4291 whose result is used in PHI.
4292 (final_range_test_p): Likewise.
4293 (maybe_optimize_range_tests): Likewise.
4295 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4297 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4298 Reformat two multi-line strings.
4300 2016-07-22 Martin Sebor <msebor@redhat.com>
4302 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
4304 2016-07-22 Martin Sebor <msebor@redhat.com>
4307 * doc/extend.texi (Compound Literals): Correct and clarify.
4308 (Cast to Union): Same.
4310 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
4312 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
4313 comments to explain why certain error messages make mention of
4314 undocumented options.
4315 (rs6000_invalid_builtin): Change error messages to replace mention
4316 of undocumented options with mention of the -mcpu=power9 option
4317 that enables those undocumented options.
4318 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
4319 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
4320 definition of this macro to correct an existing error.
4321 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
4322 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
4323 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
4324 descriptions of built-in functions so that they depend on
4325 -mcpu=power9 instead of on the corresponding undocumented flags.
4326 * doc/invoke.texi (Option Summary): Remove all mention of newly
4328 (IBM RS/6000 and PowerPC Options): Likewise.
4329 * doc/md.texi (Constraints for Particuliar Machines): Remove all
4330 mention of newly undocumented flags.
4332 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
4334 * ipa-cp.c (determine_versionability): Do not create constprop clones,
4335 when target_clones attribute is set.
4337 2016-07-22 Bin Cheng <bin.cheng@arm.com>
4339 * common.opt (funsafe-loop-optimizations): Mark ignore.
4340 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
4341 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
4343 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
4344 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
4346 2016-07-22 Bin Cheng <bin.cheng@arm.com>
4348 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
4350 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
4352 (number_of_iterations_exit): Warn missed loop optimization for
4353 possible infinite loops.
4355 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
4358 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
4359 when to emit a ".machine" pseudo-op.
4361 2016-07-22 Martin Liska <mliska@suse.cz>
4363 PR gcov-profile/69028
4364 PR gcov-profile/62047
4365 * coverage.c (coverage_compute_lineno_checksum): Do not
4366 calculate checksum for fns w/o xloc.file.
4367 (coverage_compute_profile_id): Likewise.
4369 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
4371 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
4372 (avr_secondary_reload): ...and implementation.
4373 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
4374 * config/avr/avr.md (reload_in<mode>): Remove insns.
4375 (adjust_len) [lpm]: Remove insn attribute value.
4376 * config/avr/predicates.md (flash_operand): Remove insn predicate.
4378 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
4381 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
4383 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
4384 * calls.c (special_function_p): Remove the special handling of the
4385 "__builtin_" prefix.
4387 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
4390 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
4391 if STMT may be an alloca call.
4392 (gimple_alloca_call_p, alloca_call_p): Return only true for the
4393 builtin alloca call.
4394 * calls.h (gimple_maybe_alloca_call_p): New function.
4395 * tree-inline.c (inline_forbidden_p_stmt): Use
4396 gimple_maybe_alloca_call_p here.
4398 2016-07-21 David Malcolm <dmalcolm@redhat.com>
4400 * spellcheck-tree.c (best_macro_match::best_macro_match):
4401 Explictly specify the template arguments when invoking the base
4402 class constructor, to help older C++ compilers.
4404 2016-07-21 Jakub Jelinek <jakub@redhat.com>
4407 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
4408 before builtin_decl_implicit.
4410 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
4412 * optabs.c (emit_condiitonal_move): Short circuit for identical
4415 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
4417 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
4418 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
4419 (noce_conversion_profitable_p): New.
4420 (noce_try_store_flag_constants): Use it.
4421 (noce_try_addcc): Likewise.
4422 (noce_try_store_flag_mask): Likewise.
4423 (noce_try_cmove): Likewise.
4424 (noce_try_cmove_arith): Likewise.
4425 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
4427 (noce_convert_multiple_sets): Move cost model to here, from...
4428 (bb_ok_for_noce_convert_multiple_sets) ...here.
4429 (noce_process_if_block): Update calls for above changes.
4430 (noce_find_if_block): Record new noce_if_info parameters.
4432 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
4434 * target.def (max_noce_ifcvt_seq_cost): New.
4435 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
4436 * doc/tm.texi: Regenerate.
4437 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
4438 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
4439 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
4440 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
4441 * doc/invoke.texi: Document new params.
4443 2016-07-21 Richard Biener <rguenther@suse.de>
4445 PR tree-optimization/71947
4446 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
4447 ranges have useful limit_vr information.
4449 2016-07-21 Richard Biener <rguenther@suse.de>
4451 * function-tests.c (build_trivial_generic_function): Set
4452 BLOCK_SUPERCONTEXT of DECL_INITIAL.
4453 * omp-low.c (create_omp_child_function): Likewise.
4454 (grid_expand_target_grid_body): Likewise.
4455 * cgraphunit.c (init_lowered_empty_function): Likewise.
4456 (cgraph_node::expand_thunk): Likewise.
4457 * tree-parloops.c (create_loop_fn): Likewise.
4458 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
4460 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4462 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
4465 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
4467 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
4468 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
4469 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
4470 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
4471 values for insn attribute.
4472 * config/avr/avr.c (avr_out_insert_notbit): New function.
4473 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
4474 ADJUST_LEN_INSV_NOTBIT_0/_7.
4475 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
4477 2016-07-21 Bin Cheng <bin.cheng@arm.com>
4479 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
4480 (chrec_convert_1, chrec_convert): Ditto.
4481 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
4482 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
4483 * tree-vrp.c (adjust_range_with_scev): Ditto.
4484 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
4485 (scev_var_range_cant_overflow): New function.
4486 (scev_probably_wraps_p): New parameter. Call above function.
4487 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
4489 2016-07-21 Bin Cheng <bin.cheng@arm.com>
4491 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
4492 by removing computation of may_be_zero.
4494 2016-07-21 Jakub Jelinek <jakub@redhat.com>
4496 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
4498 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
4500 Improving concepts performance and diagnostics.
4501 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
4502 for constraint satisfaction and subsumption.
4503 * timevar.h (auto_timevar): New constructor that matches the push/pop
4504 pattern of usage in pt.c.
4506 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
4508 * hwint.h (HOST_WIDE_INT_0): New define.
4509 (HOST_WIDE_INT_0U): Ditto.
4510 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
4511 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
4512 * simplify-rtx.c: Ditto.
4513 * tree-object-size.c: Ditto.
4515 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4517 * config/s390/s390.c (s390_encode_section_info): Remove mode size
4520 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
4522 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
4523 * combine.c: Use HOST_WIDE_INT_M1U instead of
4524 ~(unsigned HOST_WIDE_INT) 0.
4525 * double-int.h: Ditto.
4527 * dwarf2asm.c:Ditto.
4529 * genmodes.c: Ditto.
4531 * read-rtl.c: Ditto.
4532 * tree-ssa-loop-ivopts.c: Ditto.
4533 * tree-ssa-loop-prefetch.c: Ditto.
4534 * tree-vect-generic.c: Ditto.
4535 * tree-vect-patterns.c: Ditto.
4538 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4540 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
4541 constant addresses outside [0,0xc0] into a register.
4542 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
4543 cases where the base address register is unused after.
4544 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
4545 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
4546 (avr_out_store_psi_reg_disp_tiny): Same.
4548 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4550 Implement attribute progmem on reduced Tiny cores by adding
4551 flash offset 0x4000 to respective symbols.
4554 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
4555 documentation how it works on reduced Tiny cores.
4556 (AVR Named Address Spaces): No support for reduced Tiny.
4557 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
4558 (avr_address_tiny_pm_p): New static function.
4559 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
4560 if the address is in progmem.
4561 (avr_assemble_integer): Same.
4562 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
4563 for symbol_ref in progmem.
4564 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
4565 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
4566 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
4568 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
4570 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
4571 * configure: Regenerate.
4572 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
4573 (USE_THIN_ARCHIVES): New variable.
4574 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
4575 this archive as a thin archive.
4577 2016-07-20 David Malcolm <dmalcolm@redhat.com>
4579 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
4580 same location as last time, don't skip if we have fix-it hints.
4581 Clarify the skipping logic by converting it from one "if" clause
4582 to repeated "if" clauses.
4583 * spellcheck-tree.c: Include "cpplib.h".
4584 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
4585 (best_macro_match::best_macro_match): New constructor.
4586 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
4587 Move here from c/c-decl.c.
4588 (class best_macro_match): Move here from c/c-decl.c, converting
4589 from a typedef to a subclass, gaining a ctor.
4591 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4593 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
4594 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
4596 (avr_addr_space_diagnose_usage): ...and implementation.
4597 (avr_addr_space_supported_p): New function.
4598 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
4599 report bad address space usage if that space is supported.
4600 (avr_insert_attributes): Same. No more complain about unsupported
4602 * config/avr/avr-c.c (tm_p.h): Include it.
4603 (avr_cpu_cpp_builtins): Only define addr-space related built-in
4604 macro if avr_addr_space_supported_p.
4606 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
4608 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
4609 flag_toplevel_reorder.
4611 2016-07-20 David Malcolm <dmalcolm@redhat.com>
4613 * gcc-rich-location.c
4614 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
4616 * gcc-rich-location.h
4617 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
4619 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4621 * target.def (addr_space): Add new diagnose_usage to hook vector.
4622 * targhooks.c (default_addr_space_diagnose_usage): Add default
4623 implementation and...
4624 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
4625 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
4626 is some address space, call targetm.addr_space.diagnose_usage.
4627 * doc/tm.texi.in (Named Address Spaces): Add anchor for
4628 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
4629 * doc/tm.texi: Regenerate.
4631 2016-07-20 Martin Liska <mliska@suse.cz>
4634 * graphite-isl-ast-to-gimple.c (later_of_the_two):
4635 Properly handly PHI stmts.
4637 2016-07-20 Bin Cheng <bin.cheng@arm.com>
4639 PR tree-optimization/71503
4640 PR tree-optimization/71683
4641 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
4644 2016-07-20 Martin Liska <mliska@suse.cz>
4646 * doc/invoke.texi (-fipa-ra): Document when the option is
4647 disabled. Fix a typo.
4649 2016-07-20 Martin Liska <mliska@suse.cz>
4651 * Makefile.in: Include fibonacci_heap.c
4652 * fibonacci_heap.c: New file.
4653 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
4654 (fibonacci_heap::union_with): Fix deletion of the second heap.
4655 * selftest-run-tests.c (selftest::run_tests): Incorporate
4656 fibonacci heap tests.
4657 * selftest.h: Declare fibonacci_heap_c_tests.
4659 2016-07-20 Martin Liska <mliska@suse.cz>
4661 * selftest-run-tests.c (selftest::run_tests): New function.
4662 * selftest.h (sreal_c_tests): Declare.
4663 * sreal.c (sreal_verify_basics): New function.
4664 (verify_aritmetics): Likewise.
4665 (sreal_verify_arithmetics): Likewise.
4666 (verify_shifting): Likewise.
4667 (sreal_verify_shifting): Likewise.
4668 (void sreal_c_tests): Likewise.
4670 2016-07-19 Jakub Jelinek <jakub@redhat.com>
4672 PR rtl-optimization/71916
4673 * cfgrtl.c (contains_no_active_insn_p): Return false also for
4674 bb which have a single succ fake edge.
4676 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
4679 * dwarf2out.c (gen_subprogram_die): Only call
4680 gen_unspecified_parameters_die while dumping early dwarf.
4682 2016-07-19 Jakub Jelinek <jakub@redhat.com>
4685 * gimple-fold.c (fold_builtin_memory_op): Use
4686 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
4688 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
4690 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
4691 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
4692 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
4693 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
4697 * double-int.c: Ditto.
4699 * dwarf2out.c: Ditto.
4702 * fold-const.c: Ditto.
4703 * function.c: Ditto.
4705 * genmodes.c: Ditto.
4709 * loop-doloop.c: Ditto.
4710 * loop-invariant.c: Ditto.
4717 * simplify-rtx.c: Ditto.
4718 * stor-layout.c: Ditto.
4720 * tree-ssa-loop-ivopts.c: Ditto.
4721 * tree-vect-generic.c: Ditto.
4722 * tree-vect-patterns.c: Ditto.
4727 * wide-int-print.cc: Ditto.
4728 * wide-int.cc: Ditto.
4729 * wide-int.h: Ditto.
4731 2016-07-19 David Malcolm <dmalcolm@redhat.com>
4733 * selftest.c (selftest::assert_streq): Handle NULL values of
4734 val_actual and val_expected.
4736 2016-07-19 Martin Jambor <mjambor@suse.cz>
4739 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
4740 rather than cgraph_create_node to get a call graph node.
4742 2016-07-19 Richard Biener <rguenther@suse.de>
4744 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
4745 handle all tcc_constant bases and valueize SSA names.
4746 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
4749 2016-07-19 David Malcolm <dmalcolm@redhat.com>
4751 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
4752 the flags of the exit block and bb2, not just the entry block.
4754 2016-07-19 Richard Biener <rguenther@suse.de>
4756 PR tree-optimization/71901
4757 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
4758 align member, group stuff with the bitfield.
4759 (vn_ref_op_align_unit): New inline.
4760 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
4761 record element alignment and operand 3 unchanged.
4762 (ao_ref_init_from_vn_reference): Adjust.
4763 (valueize_refs_1): Likewise.
4764 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
4766 2016-07-19 Richard Biener <rguenther@suse.de>
4768 PR tree-optimization/71908
4769 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
4770 symbolic constants in a more reliable way.
4772 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
4774 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
4776 (vect_update_inits_of_drs): Likewise.
4777 (vect_create_cond_for_alias_checks): Likewise.
4778 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
4780 2016-07-19 Richard Biener <rguenther@suse.de>
4783 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
4784 with an abstract origin that is not an inlined function outer
4785 scope add a self-reference as abstract origin.
4786 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
4788 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4791 * config/rs6000/rs6000.c (rs6000_function_value): Fix
4792 unintentional System V.4 structure return breakage for structures
4793 with a single floating point element.
4795 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
4797 PR tree-optimization/71734
4798 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
4799 contains REF, use it to check safelen, assume that safelen value
4800 must be greater 1, fix style.
4801 (ref_indep_loop_p_2): Add REF_LOOP argument.
4802 (ref_indep_loop_p): Pass LOOP as additional argument to
4805 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
4807 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
4808 allocation in the prologue.
4809 * explow.c (get_dynamic_stack_base): New function to return an address
4810 expression for the dynamic stack base.
4811 (get_dynamic_stack_size): New function to do the required dynamic stack
4812 space size calculations.
4813 (allocate_dynamic_stack_space): Use new functions.
4814 (align_dynamic_address): Move some code from
4815 allocate_dynamic_stack_space to new function.
4816 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
4818 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4820 * config/s390/s390.c (s390_encode_section_info): Always set
4821 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
4824 2016-07-18 Richard Biener <rguenther@suse.de>
4826 PR tree-optimization/71893
4827 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
4828 for sizetype cast added by array_ref_element_size.
4829 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4831 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
4833 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
4834 register parameters. Remove code to initialize argument pointer
4835 on TARGET_64BIT. Optimize call to _mcount when it can be reached
4836 using a pc-relative branch. Cleanup conditional code.
4837 * config/pa/pa.md (call_mcount): New expander.
4838 (call_mcount_nonpic): New insn.
4839 (call_mcount_pic): New insn and split.
4840 (call_mcount_pic_post_reload): New insn.
4841 (call_mcount_64bit): New insn and split.
4842 (call_mcount_64bit_post_reload): New insn.
4844 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
4846 * config/avr/predicates.md (const_m255_to_m1_operand): New.
4847 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
4848 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
4849 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
4850 (*usum_widenqihi3, *udiff_widenqihi3)
4851 (*addhi3_zero_extend.const): New combiner insns.
4852 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
4853 just 1 bit is affected.
4854 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
4855 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
4857 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
4859 * omp-low.c (lower_omp_target): Mark data clauses with
4860 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
4861 zero-length subarrays.
4863 2016-07-15 Richard Biener <rguenther@suse.de>
4865 PR tree-optimization/71881
4866 * tree-loop-distribution.c (destroy_loop): Remove blocks in
4867 reverse DOM order to make debug temp generation happy.
4869 2016-07-15 Richard Biener <rguenther@suse.de>
4871 PR tree-optimization/71887
4872 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
4873 verify it is not zero for division / modulo handling.
4874 (value_replacement): Adjust.
4876 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
4877 Julian Brown <julian@codesourcery.com>
4879 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
4880 * config/aarch64/aarch64-cost-tables.h
4881 (vulcan_extra_costs): New variable.
4882 * config/aarch64/aarch64.c
4883 (vulcan_addrcost_table): Likewise.
4884 (vulcan_regmove_cost): Likewise.
4885 (vulcan_vector_cost): Likewise.
4886 (vulcan_branch_cost): Likewise.
4887 (vulcan_tunings): Likewise.
4889 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
4891 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
4892 (output_in_order): Loop over undefined variables too. Output them
4893 via assemble_undefined_decl. Skip variables that correspond to hard
4894 registers or have value-exprs.
4895 * varpool.c (symbol_table::output_variables): Handle undefined
4896 variables together with defined ones.
4898 2016-07-15 Richard Biener <rguenther@suse.de>
4900 * tree-ssa-pre.c (get_representative_for): Make sure to return
4901 the value number of SSA names.
4902 (phi_translate_1): get_representative_for cannot return NULL.
4903 (do_pre_regular_insertion): Remove redundant call to
4904 fully_constant_expression.
4905 (do_pre_partial_partial_insertion): Likewise.
4907 2016-07-15 Bin Cheng <bin.cheng@arm.com>
4909 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
4910 (derive_simple_iv_with_niters): New function.
4911 (simple_iv): Rewrite using simple_iv_with_niters.
4912 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
4913 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
4915 (number_of_iterations_exit): Rewrite using above function.
4916 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
4919 2016-07-15 Richard Biener <rguenther@suse.de>
4921 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
4924 2016-07-14 Jakub Jelinek <jakub@redhat.com>
4926 PR tree-optimization/71872
4927 * tree-data-ref.c (get_references_in_stmt): Ignore references
4928 with is_gimple_constant get_base_address.
4930 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4932 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
4933 (TARGET_HAVE_LDACQD): New macro.
4934 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
4935 than TARGET_HAVE_LDACQ.
4936 (arm_load_acquire_exclusivedi): Likewise.
4937 (arm_store_release_exclusivedi): Likewise.
4939 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4941 PR rtl-optimization/71878
4942 * lra-constraints.c (match_reload): Pass information about other
4943 output operands. Create new unique register value if matching input
4944 operand shares same register value as output operand being considered.
4945 (curr_insn_transform): Record output operands already processed.
4947 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4950 PR tree-optimization/70923
4951 * tree-vect-patterns.c: Include mult-synthesis.h.
4952 (target_supports_mult_synth_alg): New function.
4953 (synth_lshift_by_additions): Likewise.
4954 (apply_binop_and_append_stmt): Likewise.
4955 (vect_synth_mult_by_constant): Likewise.
4956 (target_has_vecop_for_code): Likewise.
4957 (vect_recog_mult_pattern): Use above functions to synthesize vector
4958 multiplication by integer constants.
4960 2016-07-14 Alan Modra <amodra@gmail.com>
4962 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
4963 gpr alternatives. Correct '*' placement on Y,r alternative.
4964 Add '*' on operand 1 of r,r alternative.
4966 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4968 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
4969 * expmed.h: ... Here.
4971 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
4973 * gimple.h (stmt_can_terminate_bb_p): New function.
4974 * tree-cfg.c (need_fake_edge_p): Rename to ...
4975 (stmt_can_terminate_bb_p): ... this; return true if stmt can
4976 throw external; handle const and pure calls.
4977 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
4979 2016-07-14 Richard Biener <rguenther@suse.de>
4981 PR tree-optimization/71866
4982 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
4983 (do_hoist_insertion): Avoid endless recursion when we
4984 didn't insert anything because we managed to simplify
4985 things down to a constant or SSA name.
4986 (fully_constant_expression): Re-write in terms of ...
4987 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
4988 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
4989 vn_nary_build_or_lookup_1.
4990 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
4991 (vn_nary_build_or_lookup): ... this which now wraps it.
4993 2016-07-14 Alan Modra <amodra@gmail.com>
4996 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
4997 with p9_vector override before power9-dform override.
4999 2016-07-13 Andi Kleen <ak@linux.intel.com>
5001 * value-prof.c (gimple_value_profile_transformations): Don't run
5002 when auto_profile is on.
5004 2016-07-13 Andi Kleen <ak@linux.intel.com>
5006 * auto-profile.c (update_inlined_ind_target,
5007 afdo_indirect_call): Print information to dump file.
5009 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
5011 * genrecog.c (special_predicate_operand_p): New function.
5012 (predicate_name): Move function.
5013 (validate_pattern): Don't warn about missing mode for all
5014 define_special_predicate predicates.
5016 2016-07-13 Bin Cheng <bin.cheng@arm.com>
5018 * tree-vect-data-refs.c (vect_no_alias_p): New function.
5019 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
5020 resolve alias checks which are known at compilation time.
5021 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
5022 alias checks are resolved. Move dump info for too many runtime
5023 alias checks to here...
5024 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
5026 2016-07-13 Richard Biener <rguenther@suse.de>
5028 PR tree-optimization/24574
5029 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
5030 position and add shift, rotate, divison and modulo support
5032 (value_replacement): Pass in argument position to absorbing_element_p.
5034 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
5037 * ipa-inline-transform.c (inline_call): Support
5038 instrumented thunks.
5040 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
5042 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
5043 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
5045 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
5046 Baseline. Make initial alternative TARGET_32BIT only.
5047 (udivsi3): Likewise.
5048 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
5049 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
5052 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
5054 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
5055 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
5056 availability with TARGET_HAVE_MOVT.
5057 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
5058 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
5059 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
5061 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
5062 extra instruction if MOVW is available. Use a cost variable
5063 incremented by COSTS_N_INSNS (1) when the condition match rather than
5064 returning an arithmetic expression based on COSTS_N_INSNS. Make
5065 constant with bottom half word zero cost 2 instruction if MOVW is
5067 * config/arm/arm.md (define_attr "arch"): Add v8mb.
5068 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
5069 target is ARMv8-M Baseline.
5070 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
5071 (arm_movtas_ze): Likewise.
5072 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
5073 alternative for constants satisfying j constraint.
5074 (thumb1_movsi_insn): Likewise.
5075 (movsi splitter for K alternative): Tighten condition to not trigger
5076 if movt is available and j constraint is satisfied.
5077 (Pe immediate splitter): Likewise.
5078 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
5079 constant fitting in an halfword to use MOVW.
5080 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
5083 2016-07-13 Richard Biener <rguenther@suse.de>
5086 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
5087 gimplifying the LHS. Make sure to gimplify a returning twice
5088 call LHS without using SSA names.
5090 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5092 * tree-data-ref.c (find_data_references_in_stmt): Remove
5093 unnecessary call to vec::release.
5094 (graphite_find_data_references_in_stmt): Likewise.
5095 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
5096 * tree-vect-stmts.c (vectorizable_condition): Likewise.
5098 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5100 * cfgexpand.c (expand_used_vars): Make the type of a local
5102 * genmatch.c (lower_for): Likewise.
5103 * haifa-sched.c (haifa_sched_init): Likewise.
5104 (add_to_speculative_block): Likewise.
5105 (create_check_block_twin): Likewise.
5106 * predict.c (handle_missing_profiles): Likewise.
5107 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
5108 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
5109 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
5111 (maybe_lower_iteration_bound): Likewise.
5112 * tree-ssa-sccvn.c (DFS): Likewise.
5113 * tree-stdarg.c (reachable_at_most_once): Likewise.
5114 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
5115 (vectorizable_store): Likewise.
5117 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5119 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
5120 (sccvn_dom_walker): make cond_stack an auto_vec.
5122 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5124 * ree.c (struct ext_state): Make type of members auto_vec.
5125 (find_and_remove_re): Adjust.
5127 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5129 * cfgexpand.c (struct stack_vars_data): Make type of fields
5131 (expand_used_vars): Adjust.
5133 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5135 * ipa.c (record_cdtor_fn): Adjust.
5136 (build_cdtor_fns): Likewise.
5137 (ipa_cdtor_merge): Make static_ctors and static_dtors local
5140 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5142 * genextract.c (struct accum_extract): Add constructor and make
5146 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5148 * tree.c (struct free_lang_data_d): Add constructor and change
5149 types of members to ones that automatically manage resources.
5150 (fld_worklist_push): Adjust.
5151 (find_decls_types): Likewise.
5152 (find_decls_types_in_eh_region): Likewise.
5153 (free_lang_data_in_cgraph): Stop manually creating and
5154 destroying members of free_lang_data_d.
5156 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
5158 PR rtl-optimization/68961
5159 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
5160 peephole variant. Use sse_reg_operand predicates.
5162 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
5164 * config/i386/predicates.md (x86_64_immediate_operand)
5165 <case CONST_INT>: Remove unneeded truncation to DImode.
5166 <case CONST>: Ditto.
5167 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
5169 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5172 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
5173 The xxperm and xxpermr instructions require that the 2nd input
5174 operand overlap with the output operand, and not the 1st.
5175 (altivec_vperm_v8hiv16qi): Likewise.
5176 (altivec_vperm_<mode>_uns_internal): Likewise.
5177 (altivec_vpermr_<mode>_internal): Likewise.
5178 (vperm_v8hiv4si): Likewise.
5179 (vperm_v16qiv8hi): Likewise.
5181 2016-07-12 Nathan Sidwell <nathan@acm.org>
5183 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
5184 when -mno-pic-data-is-text-relative is in effect, by default.
5185 * doc/invoke.texi (mpic-data-is-text-relative): Document new
5186 behavior and clarify.
5188 2016-07-12 Martin Liska <mliska@suse.cz>
5190 * params.def: Add avg-loop niter.
5191 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
5192 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
5193 * doc/invoke.texi: Document the new parameter.
5195 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5198 * expr.c (store_constructor): Mask sign-extended bits when widening
5199 sub-word constructor element at the start of a word.
5201 2016-07-12 Martin Liska <mliska@suse.cz>
5203 * Makefile.in: Append rule for params-options.h.
5204 * params-options.h: New file.
5206 2016-07-12 Martin Liska <mliska@suse.cz>
5208 * ira-build.c (mark_loops_for_removal): Properly iterate
5211 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
5212 Richard Biener <rguenther@suse.de>
5214 PR tree-optimization/23286
5215 PR tree-optimization/70159
5216 * doc/invoke.texi: Document -fcode-hoisting.
5217 * common.opt (fcode-hoisting): New flag.
5218 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
5219 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
5220 (do_regular_insertion): Rename to ...
5221 (do_pre_regular_insertion): ... this and amend general comments
5222 on insertion strathegy.
5223 (do_partial_partial_insertion): Rename to ...
5224 (do_pre_partial_partial_insertion): ... this.
5225 (do_hoist_insertion): New function.
5226 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
5227 and call do_hoist_insertion properly.
5229 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
5230 (pass_pre::execute): Register hoist_insert stats.
5232 2016-07-12 Jakub Jelinek <jakub@redhat.com>
5235 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
5236 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
5237 is different from mode's bitsize. Small cleanup.
5239 2016-07-12 Richard Biener <rguenther@suse.de>
5241 PR rtl-optimization/68961
5242 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
5243 to simplify to a non-constant.
5245 2016-07-11 Jakub Jelinek <jakub@redhat.com>
5248 * omp-low.c (expand_omp_target): Gimplify device.
5250 PR tree-optimization/71823
5251 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
5252 to get vec_oprnds2 from op2.
5254 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
5256 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
5257 Hoist common subexpressions.
5258 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
5260 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
5263 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
5264 prevent generation of 'stxsiwx' on pre Power8 hardware.
5266 2016-07-11 David Malcolm <dmalcolm@redhat.com>
5268 * input.c: Include cpplib.h.
5269 (selftest::temp_source_file): New class.
5270 (selftest::temp_source_file::temp_source_file): New ctor.
5271 (selftest::temp_source_file::~temp_source_file): New dtor.
5272 (selftest::should_have_column_data_p): New function.
5273 (selftest::test_should_have_column_data_p): New function.
5274 (selftest::temp_line_table): New class.
5275 (selftest::temp_line_table::temp_line_table): New ctor.
5276 (selftest::temp_line_table::~temp_line_table): New dtor.
5277 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
5278 it to create a temp_line_table.
5279 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
5280 locations that are known to have column data.
5281 (selftest::line_table_case): New struct.
5282 (selftest::test_reading_source_line): Move tempfile handling
5283 to class temp_source_file.
5284 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
5285 (selftest::assert_token_loc_eq): New function.
5286 (ASSERT_TOKEN_LOC_EQ): New macro.
5287 (selftest::test_lexer): New function.
5288 (selftest::boundary_locations): New array.
5289 (selftest::input_c_tests): Call test_should_have_column_data_p.
5290 Loop over a test matrix of interesting values of location and
5291 default_range_bits, calling test_lexer on each case in the matrix.
5292 Move call to test_accessing_ordinary_linemaps into the matrix.
5293 * selftest.h (ASSERT_EQ): Reimplement in terms of...
5294 (ASSERT_EQ_AT): New macro.
5296 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
5299 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
5300 Don't convert TImode in debug insn.
5302 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5304 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
5305 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
5306 (tree_type_common::lang_flag_7): New.
5307 (tree_type_common::spare): Reduce size.
5308 * tree.h (TYPE_ALIGN_OK): Remove.
5309 (TYPE_LANG_FLAG_7): New.
5310 (get_inner_reference): Adjust header.
5311 * print-tree.c (print_node): Adjust.
5312 * expr.c (get_inner_reference): Remove parameter keep_aligning.
5313 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
5314 calls to get_inner_reference.
5315 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
5316 handling of TYPE_ALIGN_OK.
5317 * builtins.c (get_object_alignment_2): Adjust call to
5318 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
5319 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
5321 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
5322 * cfgexpand.c (expand_debug_expr): Likewise.
5323 * dbxout.c (dbxout_expand_expr): Likewise.
5324 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
5325 loc_list_from_tree, fortran_common): Likewise.
5326 * fold-const.c (optimize_bit_field_compare,
5327 decode_field_reference, fold_unary_loc, fold_comparison,
5328 split_address_to_core_and_offset): Likewise.
5329 * gimple-laddress.c (execute): Likewise.
5330 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
5331 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
5332 * hsa-gen.c (gen_hsa_addr): Likewise.
5333 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
5334 * tsan.c (instrument_expr): Likewise.
5335 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
5336 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
5337 * tree-affine.c (tree_to_aff_combination,
5338 get_inner_reference_aff): Adjust calls to get_inner_reference.
5339 * tree-data-ref.c (split_constant_offset_1,
5340 dr_analyze_innermost): Likewise.
5341 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
5342 * tree-sra.c (ipa_sra_check_caller): Likewise.
5343 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
5344 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
5345 bswap_replace): Likewise.
5346 * tree-vect-data-refs.c (vect_check_gather,
5347 vect_analyze_data_refs): Likewise.
5348 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
5349 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
5352 2016-07-11 David Malcolm <dmalcolm@redhat.com>
5354 * Makefile.in (selftest-valgrind): New phony target.
5355 * function-tests.c (selftest::build_cfg): Delete pass instances
5356 created by the test.
5357 (selftest::convert_to_ssa): Likewise.
5358 (selftest::test_expansion_to_rtl): Likewise.
5359 * tree-cfg.c (selftest::test_linear_chain): Release dominator
5361 (selftest::test_diamond): Likewise.
5363 2016-07-11 Richard Biener <rguenther@suse.de>
5365 PR tree-optimization/71816
5366 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
5367 than replacing all of its operands.
5369 2016-07-11 Alan Modra <amodra@gmail.com>
5371 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
5372 (ctr<mode>): Add unspec.
5373 (ctr<mode>_internal*): Likewise.
5375 2016-07-08 James Bowman <james.bowman@ftdichip.com>
5377 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
5378 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
5380 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
5382 PR rtl-optimization/71621
5383 * lra-constraints.c (process_alt_operands): Check combination of
5386 2016-07-08 Jason Merrill <jason@redhat.com>
5387 Richard Biener <rguenther@suse.de>
5389 P0145: Refining Expression Order for C++.
5390 * gimplify.c (initial_rhs_predicate_for): New.
5391 (gimplfy_modify_expr): Gimplify RHS before LHS.
5393 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5396 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5397 Allow standard error handling to take over when a wrong number
5398 of arguments is presented to __builtin_vec_ld () or
5399 __builtin_vec_st ().
5401 2016-07-08 Jiong Wang <jiong.wang@arm.com>
5403 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
5408 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
5409 __builtin_aarch64_fmaxv2sf.
5410 (vmaxnmq_f32): Likewise.
5411 (vmaxnmq_f64): Likewise.
5412 (vminnm_f32): Likewise.
5413 (vminnmq_f32): Likewise.
5414 (vminnmq_f64): Likewise.
5416 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
5419 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
5420 enable -mfloat128-hardware by default.
5421 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
5422 that IEEE 128-bit hardware support needs.
5423 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
5424 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
5425 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
5426 floating point requires.
5427 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5428 -mfloat128 and -mfloat128-hardware changes.
5430 2016-07-08 Alan Hayward <alan.hayward@arm.com>
5432 PR tree-optimization/71667
5433 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
5435 2016-07-08 Martin Liska <mliska@suse.cz>
5438 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
5439 folding produces SAVE_EXPRs, thus return false for the type.
5441 2016-07-07 Martin Liska <mliska@suse.cz>
5443 * file-find.c (remove_prefix): New function.
5444 * file-find.h (remove_prefix): Declare the function.
5445 * gcc-ar.c (main): Skip a folder of the wrapper if
5446 a wrapped binary would point to the same file.
5448 2016-07-07 Jan Hubicka <jh@suse.cz>
5450 * tree-scalar-evolution.c (iv_can_overflow_p): export.
5451 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
5452 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
5454 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
5457 * ipa-inline-analysis.c (compute_inline_parameters): Set
5458 local.can_change_signature to false for intrumentation
5461 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5463 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
5464 with TARGET_HAVE_MOVT.
5465 (TARGET_HAVE_MOVT): Define.
5466 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
5467 availability with TARGET_HAVE_MOVT.
5468 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
5470 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
5472 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
5473 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
5474 * config/arm/constraints.md (define_constraint "j"): Use
5475 TARGET_HAVE_MOVT to check MOVT availability.
5477 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5479 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
5481 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5483 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
5484 (armv8-m.main): Likewise.
5485 (armv8-m.main+dsp): Likewise.
5486 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
5487 (FL_FOR_ARCH8M_MAIN): Likewise.
5488 * config/arm/arm-tables.opt: Regenerate.
5489 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
5490 armv8-m.main+dsp to BE8_LINK_SPEC.
5491 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
5492 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
5493 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
5494 Baseline and Mainline.
5495 (arm_option_override_internal): Also disable arm_restrict_it when
5496 !arm_arch_notm. Update comment for -munaligned-access to also cover
5498 (arm_file_start): Increase buffer size for printing architecture name.
5499 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
5500 and armv8-m.main+dsp.
5501 (mno-unaligned-access): Clarify that this is disabled by default for
5502 ARMv8-M Baseline architectures as well.
5504 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5506 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
5507 decide whether to prevent some libgcc routines being included for some
5508 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
5509 link between this condition and the one in
5510 libgcc/config/arm/lib1func.S.
5512 2016-07-07 Richard Biener <rguenther@suse.de>
5514 * tree-ssa-pre.c: Include alias.h.
5515 (compute_avail): If we have multiple VN_REFERENCEs with the
5516 same hashtable entry adjust that to make it a valid replacement
5517 for all of them with respect to alignment and aliasing
5518 when doing insertion.
5519 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
5520 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
5522 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
5526 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
5527 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
5530 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5532 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
5533 (adjust_mems): Adjust.
5534 (adjust_insn): Likewise.
5535 (prepare_call_arguments): Likewise.
5537 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5539 * gcse.c (struct ls_expr): Make stores field a vector.
5540 (ldst_entry): Adjust.
5541 (free_ldst_entry): Likewise.
5542 (print_ldst_list): Likewise.
5543 (compute_ld_motion_mems): Likewise.
5544 (update_ld_motion_stores): Likewise.
5546 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5548 * gcse.c (struct ls_expr): Remove loads field.
5549 (ldst_entry): Adjust.
5550 (free_ldst_entry): Likewise.
5551 (print_ldst_list): Likewise.
5552 (compute_ld_motion_mems): Likewise.
5554 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5556 * store-motion.c (struct st_expr): Make antic_stores a vector.
5557 (st_expr_entry): Adjust.
5558 (free_st_expr_entry): Likewise.
5559 (print_store_motion_mems): Likewise.
5560 (find_moveable_store): Likewise.
5561 (compute_store_table): Likewise.
5562 (remove_reachable_equiv_notes): Likewise.
5563 (replace_store_insn): Likewise.
5564 (build_store_vectors): Likewise.
5566 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5568 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
5569 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
5571 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
5573 PR tree-optimization/71518
5574 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
5575 misalign also for outer loops with negative step.
5577 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
5579 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
5580 (cortex_a53_shift): Add mov_shift.
5581 (cortex_a53_shift_reg): Add new reservation for register shifts.
5582 (cortex_a53_alu): Remove bfm.
5583 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
5584 (cortex_a53_alu_extr): Add new reservation for EXTR.
5585 (bypasses): Improve bypass modelling.
5587 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5590 * config/avr/avr.c (avr_asm_select_section): Strip off
5591 SECTION_DECLARED from flags when calling get_section.
5593 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5595 * tree-vectorizer.h (vect_memory_access_type): Add
5596 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
5597 * tree-vect-stmts.c (compare_step_with_zero): New function.
5598 (perm_mask_for_reverse): Move further up file.
5599 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
5601 (get_negative_load_store_type): New function.
5602 (get_load_store_type): Call it. Add an ncopies argument.
5603 (vectorizable_mask_load_store): Update call accordingly and
5604 remove tests for negative steps.
5605 (vectorizable_store, vectorizable_load): Likewise. Handle new
5606 memory_access_types.
5608 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5610 * tree-vectorizer.h (vect_memory_access_type): New enum.
5611 (_stmt_vec_info): Add a memory_access_type field.
5612 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
5613 (vect_model_store_cost): Take an access type instead of a boolean.
5614 (vect_model_load_cost): Likewise.
5615 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
5616 vect_model_store_cost and vect_model_load_cost.
5617 * tree-vect-stmts.c (vec_load_store_type): New enum.
5618 (vect_model_store_cost): Take an access type instead of a
5619 store_lanes_p boolean. Simplify tests.
5620 (vect_model_load_cost): Likewise, but for load_lanes_p.
5621 (get_group_load_store_type, get_load_store_type): New functions.
5622 (vectorizable_store): Use get_load_store_type. Record the access
5623 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
5624 (vectorizable_load): Likewise.
5625 (vectorizable_mask_load_store): Likewise. Replace is_store
5626 variable with vls_type.
5628 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5630 * tree-vectorizer.h (vect_grouped_load_supported): Add a
5631 single_element_p parameter.
5632 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
5633 Check the PR65518 case here rather than in vectorizable_load.
5634 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
5635 * tree-vect-stmts.c (vectorizable_load): Likewise.
5637 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5639 * tree-vectorizer.h (gather_scatter_info): New structure.
5640 (vect_check_gather_scatter): Return a bool rather than a decl.
5641 Replace return-by-pointer arguments with a single
5642 gather_scatter_info *.
5643 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
5644 (vect_analyze_data_refs): Update call accordingly.
5645 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
5646 (vectorizable_mask_load_store): Likewise. Also record the
5647 offset dt and vectype in the gather_scatter_info.
5648 (vectorizable_store): Likewise.
5649 (vectorizable_load): Likewise.
5651 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5653 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
5654 strided groups, use the cost of N scalar accesses instead
5655 of ncopies vector accesses.
5656 (vect_model_load_cost): Likewise.
5658 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5660 * tree-vect-stmts.c (vect_cost_group_size): Delete.
5661 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
5662 variable to indicate when once-per-group costs are being used.
5663 (vect_model_load_cost): Likewise. Fix comment and misindented code.
5665 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5667 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
5668 peeling-for-gaps condition.
5670 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5672 * config/s390/s390.c (s390_expand_vec_init): Force initializer
5673 element to register if it doesn't match general_operand.
5675 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
5676 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5678 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
5680 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
5681 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
5682 (SIGNBIT): New mode iterator.
5683 (Fsignbit): New mode attribute.
5684 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
5685 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
5686 when direct moves are available.
5687 (signbit<mode>2_dm): New define_insn_and_split).
5688 (signbit<mode>2_dm2): New define_insn.
5690 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5692 PR rtl-optimization/71594
5693 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
5694 into subregs of appropriate mode before trying to emit a conditional
5697 2016-07-05 Jan Hubicka <jh@suse.cz>
5699 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
5700 (simple_iv): Use it.
5702 2016-07-05 Jan Hubicka <jh@suse.cz>
5704 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
5706 2016-07-05 Jiong Wang <jiong.wang@arm.com>
5708 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
5711 2016-07-05 Jan Hubicka <jh@suse.cz>
5713 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
5716 2016-07-05 Richard Biener <rguenther@suse.de>
5718 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
5719 Handle empty else block.
5720 (is_feasible_trace): Likewise.
5721 (split_paths): Likewise.
5723 2016-07-05 Richard Biener <rguenther@suse.de>
5725 * tree-loop-distribution.c (distribute_loop): Fix issue with
5726 the cost model loop.
5728 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
5730 * config/arm/neon-testgen.ml: Delete.
5731 * config/arm/neon.ml: Delete.
5733 2016-07-04 Jakub Jelinek <jakub@redhat.com>
5736 * tree.c (attribute_value_equal): Use get_attribute_name instead of
5737 directly using TREE_PURPOSE.
5739 2016-07-04 Jiong Wang <jiong.wang@arm.com>
5741 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
5742 * config/aarch64/aarch64_neon.h: Likewise.
5743 * config/aarch64/arm_neon.h: Likewise.
5744 * config/aarch64/atomics.md: Likewise.
5745 * config/aarch64/aarch64-simd-builtins.def: Likewise.
5746 * doc/invoke.texi: Likewise.
5748 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
5750 * config/s390/s390.md: Add "z13" cpu_facility.
5751 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
5752 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
5753 condition" type instructions.
5755 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
5756 Jeff Law <law@redhat.com>
5758 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
5759 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
5761 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
5763 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
5764 permutation for TARGET_AVX512F.
5765 (ix86_expand_vec_one_operand_perm_avx512): New function.
5766 (expand_vec_perm_1): Invoke introduced function.
5767 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
5768 it may be not valid after vectorization.
5770 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5773 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
5774 typo in comment. Only force to memory if it is a weak
5777 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
5778 Jiong Wang <jiong.wang@arm.com>
5780 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
5781 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
5782 (AARCH64_FL_F16): New.
5783 (AARCH64_FL_FOR_ARCH8_2): New.
5784 (AARCH64_ISA_8_2): New.
5785 (AARCH64_ISA_F16): New.
5786 (TARGET_FP_F16INST): New.
5787 (TARGET_SIMD_F16INST): New.
5788 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
5789 ("fp"): Disabling "fp" also disables "fp16".
5790 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
5791 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
5792 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
5793 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
5795 2016-07-04 Jan Beulich <jbeulich@suse.com>
5797 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
5799 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5802 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
5803 the insns, use an insn form that does not adjust the offset on
5804 little endian systems.
5806 2016-07-01 Jan Beulich <jbeulich@suse.com>
5808 * varasm.c (get_variable_section): Validate initializer in
5809 named .bss-like sections.
5811 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
5813 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
5814 Exchange the order of the second and third operands in the vpermr
5815 instruction tmeplate.
5817 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
5820 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
5821 Disallow TDmode values.
5823 2016-07-01 Alan Modra <amodra@gmail.com>
5825 PR rtl-optimization/71709
5826 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
5827 being set, not referenced.
5829 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
5831 PR tree-optimization/70729
5832 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
5833 of loop since it can be not valid after transformation.
5835 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5837 * config/arm/arm.c (thumb_reload_in_hi): Delete.
5838 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
5840 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
5842 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
5845 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
5848 * config/rs6000/constraints.md (wY constraint): New constraint to
5849 match the requirements for the LXSD and STXSD instructions.
5850 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
5851 predicate to match the requirements for the LXSD and STXSD
5853 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
5854 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
5855 to make sure that the bottom 2 bits of offset are 0, the address
5856 form is offsettable, and no updating is done in the address mode.
5857 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
5858 (movdi_internal32): Likewise
5859 (movdi_internal64): Likewise.
5861 2016-06-30 Jakub Jelinek <jakub@redhat.com>
5863 PR tree-optimization/71707
5864 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
5865 strinfo even for ADDR_EXPR ptr.
5867 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
5869 * config/rs6000/altivec.md (darn_32): Change the condition to
5870 TARGET_P9_MISC instead of TARGET_MODULO.
5871 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
5872 condition expression.
5873 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
5874 condition expression.
5875 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
5876 (DFP_TEST): New code iterator.
5877 (dfptstsfi_<code>_mode>): New define_expand.
5878 (*dfp_sgnfcnc_<mode>): New define_insn.
5879 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
5880 definition next to BU_P9_MISC_1 definition and change the MASK
5881 value to RS6000_BTM_P9_MISC.
5882 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
5883 (BU_P9_64BIT_MISC_0): Likewise.
5884 (BU_P9_DFP_MISC_0): New macro definition.
5885 (BU_P9_DFP_MISC_1): New macro definition.
5886 (BU_P9_DFP_MISC_2): New macro definition.
5887 (BU_P9_DFP_OVERLOAD_1): New macro definition.
5888 (BU_P9_DFP_OVERLOAD_2): New macro definition.
5889 (BU_P9_DFP_OVERLOAD_3): New macro definition.
5890 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
5891 (TSTSFI_LT_TD): Likewise.
5892 (TSTSFI_EQ_DD): Likewise.
5893 (TSTSFI_EQ_TD): Likewise.
5894 (TSTSFI_GT_DD): Likewise.
5895 (TSTSFI_GT_TD): Likewise.
5896 (TSTSFI_OV_DD): Likewise.
5897 (TSTSFI_OV_TD): Likewise.
5898 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
5899 (TSTSFI_LT_DD): Likewise.
5900 (TSTSFI_LT_TD): Likewise.
5901 (TSTSFI_EQ): Likewise.
5902 (TSTSFI_EQ_DD): Likewise.
5903 (TSTSFI_EQ_TD): Likewise.
5904 (TSTSFI_GT): Likewise.
5905 (TSTSFI_GT_DD): Likewise.
5906 (TSTSFI_GT_TD): Likewise.
5907 (TSTSFI_OV): Likewise.
5908 (TSTSFI_OV_DD): Likewise.
5909 (TSTSFI_OV_TD): Likewise.
5910 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5911 overloaded test significance functions.
5912 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
5913 OPTION_MASK_P9_MISC into the representation of this mask.
5914 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
5916 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
5917 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
5919 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
5920 argument is a 6-bit unsigned literal value if the icode argument
5921 represents a DFP test significance built-in call.
5922 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
5923 flag used independently and in combination with the
5924 RS6000_BTM_64BIT flag.
5925 (rs6000_opt_masks): Add entry for power9-misc command-line option.
5926 (rs6000_builtin_mask_names): Add entry for power9-misc
5927 command-line option.
5928 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
5929 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
5930 RS6000_BTM_P9_MISC macros.
5931 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
5932 option and change the description of the -mpower9-vector option to
5933 enable only vector instructions, removing its erroneously claimed
5934 support for scalar instructions.
5935 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5936 the ISA 3.0 digital floating point test significance built-in
5939 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
5941 * config/aarch64/aarch64.c (cortexa35_tunings):
5942 Enable AES fusion. Use cortexa57_branch_cost.
5943 (cortexa53_tunings): Use cortexa57_branch_cost.
5944 (cortexa72_tunings): Use cortexa57_branch_cost.
5945 Use AUTOPREFETCHER_WEAK.
5946 (cortexa73_tunings): Use cortexa57_branch_cost.
5948 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5949 James Greenhalgh <james.greenhalgh@arm.com>
5951 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
5952 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
5953 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
5954 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
5955 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
5956 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
5957 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
5958 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
5959 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
5960 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
5961 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
5962 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
5963 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
5966 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
5967 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5969 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
5971 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
5973 2016-06-30 David Malcolm <dmalcolm@redhat.com>
5976 * gcc.c (driver::build_option_suggestions): Pass "option" to
5977 add_misspelling_candidates.
5978 * opts-common.c (add_misspelling_candidates): Add "option" param;
5979 use it to avoid adding negated forms for options marked with
5981 * opts.h (add_misspelling_candidates): Add "option" param.
5983 2016-06-30 Jakub Jelinek <jakub@redhat.com>
5986 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
5987 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
5988 first when permuting bitwise operation with rotate. Cast
5989 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
5991 2016-06-29 David Malcolm <dmalcolm@redhat.com>
5993 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
5994 for misspelled param names.
5995 * params.c: Include spellcheck.h.
5996 (find_param_fuzzy): New function.
5997 * params.h (find_param_fuzzy): New prototype.
5998 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
5999 * spellcheck.h (struct edit_distance_traits<const char *>):
6002 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
6004 * config/rs6000/predicates.md (const_0_to_7_operand): New
6005 predicate, recognize 0..7.
6006 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6007 support for doing extracts from V16QImode, V8HImode, V4SImode
6009 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
6010 vector extract support.
6011 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
6012 for ISA 3.0 vector extract.
6013 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
6014 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
6015 extracts of a constant element number from small integer vectors
6016 on 64-bit ISA 3.0 systems.
6017 (vsx_extract_<mode>_di): Likewise.
6018 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
6019 say when we can do ISA 3.0 vector extracts.
6020 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
6021 registers, using the stxsiwx instruction.
6023 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
6025 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
6026 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
6027 qdf24xx_regmove_cost, qdf24xx_tunings): New.
6028 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
6029 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
6030 * config/arm/arm.c (arm_qdf24xx_tune): New.
6032 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
6034 * config/aarch64/aarch64.c (cortexa53_tunings):
6035 Increase loop alignment to 8. Set function alignment to 16.
6036 (cortexa35_tunings): Likewise.
6037 (cortexa57_tunings): Increase loop alignment to 8.
6038 (cortexa72_tunings): Likewise.
6039 (cortexa73_tunings): Likewise.
6041 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
6043 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
6044 for arm_fp16_ok and arm_fp16_hw.
6045 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
6046 arm_fp16_alternative.
6048 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
6050 PR tree-optimization/71655
6051 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
6052 types when swapping operands.
6054 2016-06-29 Martin Liska <mliska@suse.cz>
6057 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
6058 * ipa-inline-transform.c (inline_call): Remove unnecessary call
6059 of build_optimization_node.
6061 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
6063 PR tree-optimization/70729
6064 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
6065 independent in loops having positive safelen value.
6066 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
6067 it may be not valid after vectorization.
6069 2016-06-29 Jakub Jelinek <jakub@redhat.com>
6071 PR tree-optimization/71625
6072 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
6073 is sorted by ascending list->offset. If PTR is non-NULL and there is
6074 previous strinfo, call get_stridx_plus_constant.
6075 (get_stridx): Pass exp as second argument to get_addr_stridx.
6076 (addr_stridxptr): Add missing list = list->next, so that there can be
6077 more than one entries in the list. Bump limit from 16 to 32. Ensure
6078 the list is sorted by ascending list->offset.
6079 (get_stridx_plus_constant): Adjust so that it can be also called with
6080 ADDR_EXPR instead of SSA_NAME as PTR.
6081 (handle_char_store): Pass NULL_TREE as second argument to
6084 2016-06-29 Richard Biener <rguenther@suse.de>
6086 PR rtl-optimization/68961
6087 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
6089 2016-06-29 Richard Biener <rguenther@suse.de>
6092 * alias.c (component_uses_parent_alias_set_from): Handle
6093 type punning through union accesses by using the union alias set.
6094 * gimple.c (gimple_get_alias_set): Remove union type punning case.
6096 2016-07-29 Richard Biener <rguenther@suse.de>
6098 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
6099 precision not matching mode precision.
6101 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
6103 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
6104 pa_output_arg_descriptor.
6105 (call_val_symref_64bit_post_reload): Likewise.
6106 (call_val_powf_64bit_post_reload): Likewise.
6107 (sibcall_internal_symref_64bit): Likewise.
6108 (sibcall_value_internal_symref_64bit): Likewise.
6110 2016-06-28 Jakub Jelinek <jakub@redhat.com>
6113 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
6114 a constant, force its SUBREG_REG into memory or register instead
6117 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
6120 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
6121 * doc/invoke.texi (AVR Options): Document it.
6123 2016-06-28 Walter Lee <walt@tilera.com>
6125 * config/tilegx/linux.h: Do not include arch/icache.h
6126 (CLEAR_INSN_CACHE): Provide inlined definition directly.
6127 * config/tilepro/linux.h: Do not include arch/icache.h
6128 (CLEAR_INSN_CACHE): Provide inlined definition directly.
6130 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
6132 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
6133 for big-endian BIT_FIELD_REF.
6135 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
6137 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
6138 ('size' attribute): Add '128'.
6140 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
6141 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
6142 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
6143 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
6144 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
6145 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
6146 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
6147 *trunc<mode>df2_odd): Set size attribute to '128'.
6148 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
6149 * config/rs6000/power6.md (power6-fp): Include dfp type.
6150 * config/rs6000/power7.md (power7-fp): Likewise.
6151 * config/rs6000/power8.md (power8-fp): Likewise.
6152 * config/rs6000/power9.md: New file.
6153 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
6154 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
6155 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
6157 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
6158 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
6159 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
6160 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
6161 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
6162 dfp_dscri_<mode>): Change type attribute to dfp.
6163 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
6164 attribute to vecsimple.
6165 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
6166 and prefetch streams.
6167 (rs6000_option_override_internal): Remove temporary code setting
6168 tuning to power8. Don't set rs6000_sched_groups for power9.
6169 (last_scheduled_insn): Change to rtx_insn *.
6170 (divide_cnt, vec_load_pendulum): New variables.
6171 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
6172 (rs6000_issue_rate): Set issue rate for Power9.
6173 (is_power9_pairable_vec_type): New.
6174 (power9_sched_reorder2): New.
6175 (rs6000_sched_reorder2): Call new function for Power9 specific
6177 (insn_must_be_first_in_group): Remove Power9.
6178 (insn_must_be_last_in_group): Likewise.
6179 (force_new_group): Likewise.
6180 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
6181 Initialize divide_cnt/vec_load_pendulum.
6182 (_rs6000_sched_context, rs6000_init_sched_context,
6183 rs6000_set_sched_context): Handle context save/restore of new
6186 2016-06-28 Richard Biener <rguenther@suse.de>
6188 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
6189 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
6190 COMPONENT_REF operand.
6191 (nonoverlapping_component_refs_p): Likewise.
6192 * stor-layout.c (start_bitfield_representative): Mark
6193 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
6195 2016-06-28 Jakub Jelinek <jakub@redhat.com>
6197 * Makefile.in: Don't cat ../stage_current if it does not exist.
6199 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
6200 last argument is a bit-field.
6202 PR rtl-optimization/71673
6203 * internal-fn.c (expand_arith_overflow_result_store): Use
6204 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
6205 expand_simple_binop.
6208 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
6209 expand_ifn_atomic_compare_exchange): New functions.
6210 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
6211 * tree.h (build_call_expr_internal_loc): Rename to ...
6212 (build_call_expr_internal_loc_array): ... this. Fix up type of
6214 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
6215 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
6216 ATOMIC_COMPARE_EXCHANGE result.
6217 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
6218 * gimple-fold.h (optimize_atomic_compare_exchange_p,
6219 fold_builtin_atomic_compare_exchange): New prototypes.
6220 * gimple-fold.c (optimize_atomic_compare_exchange_p,
6221 fold_builtin_atomic_compare_exchange): New functions..
6222 * tree-ssa.c (execute_update_addresses_taken): If
6223 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
6224 of call when finding addressable vars, and if such var becomes
6225 non-addressable, call fold_builtin_atomic_compare_exchange.
6227 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
6230 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
6231 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
6233 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
6235 * config/rs6000/rs6000.md ('type' attribute): Add
6236 veclogical,veccmpfx,vecexts,vecmove insn types.
6237 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
6238 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
6239 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
6240 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
6241 *nabs<mode>2_hw): Change type to vecmove.
6242 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
6243 *boolcc<mode>3_internal, *eqv<mode>3_internal,
6244 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
6245 *ieee_128bit_vsx_abs<mode>2_internal,
6246 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
6247 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
6248 *ieee128_mtvsrd_32bit): Change type to veclogical.
6249 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
6250 *movdi_internal32, *movdi_internal64): Update insn types.
6251 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
6252 vsx_extract_<mode>): Change type to veclogical.
6253 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
6254 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
6255 *vsx_sign_extend_si_v2di): Change type to vecexts.
6256 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
6258 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
6259 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
6260 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
6261 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
6262 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
6263 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
6264 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
6265 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
6266 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
6267 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
6268 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
6269 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
6270 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
6271 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
6272 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
6273 (ppc7450-vecsimple): Add veclogical, vecmove.
6274 (ppc7450-veccmp): Add veccmpfx.
6275 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
6277 (ppc8540_vector_compare): Add veccmpfx.
6278 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
6279 * config/rs6000/cell.md (cell-fp): Add fpsimple.
6280 (cell-vecsimple): Add veclogical, vecmove.
6281 (cell-veccmp): Add veccmpfx.
6282 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
6283 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
6285 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
6286 * config/rs6000/power4.md (power4-fp): Add fpsimple.
6287 (power4-vecsimple): Add veclogical, vecmove.
6288 (power4-veccmp): Add veccmpfx.
6289 * config/rs6000/power5.md (power5-fp): Add fpsimple.
6290 * config/rs6000/power6.md (power6-fp): Add fpsimple.
6291 (power6-vecsimple): Add veclogical, vecmove.
6292 (power6-veccmp): Add veccmpfx.
6293 * config/rs6000/power7.md (power7-fp): Add fpsimple.
6294 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
6295 * config/rs6000/power8.md (power8-fp): Add fpsimple.
6296 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
6297 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
6298 * config/rs6000/titan.md (titan_fp): Add fpsimple.
6299 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
6301 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
6303 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
6306 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
6307 OPTION_MASK_P9_DFORM_VECTOR.
6308 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
6309 disable -mpower9-dform-vector when using reload.
6310 (quad_address_p): Remove 'gpr_p' argument and all associated code.
6311 New 'strict' argument. Update all callers. Add strict addressing
6313 (rs6000_legitimate_offset_address_p): Remove call to
6314 virtual_stack_registers_memory_p.
6315 (rs6000_legitimize_reload_address): Add quad address support.
6316 (rs6000_legitimate_address_p): Move call to quad_address_p above
6317 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
6318 to account for new strict usage.
6319 (rs6000_output_move_128bit): Adjust quad_address_p args to account
6320 for new strict usage.
6321 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
6323 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
6330 * config/i386/i386.c (ix86_spill_class): Disable condition to
6331 always return NO_REGS.
6333 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
6335 * predict.c: Include gimple-pretty-print.h
6336 (predicted_by_loop_heuristics_p): Check also
6337 PRED_LOOP_EXIT_WITH_RECURSION
6338 (predict_loops): Find self recursive calls and use special purpose
6339 predictors for them; dump log about decisions.
6340 (pass_profile::execute): Dump info about #of iterations.
6341 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
6342 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
6344 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
6346 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
6347 output_asm_insn calls and shorten long lines. Output .CALL
6348 argument descriptor using pa_output_arg_descriptor. Add various
6349 inline $$dyncall and other optimizations.
6350 (pa_attr_length_indirect_call): Adjust ordering and lengths.
6352 2016-06-25 Jakub Jelinek <jakub@redhat.com>
6354 PR tree-optimization/71643
6355 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
6358 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
6359 leak a bitmap if dep_bb is NULL.
6361 PR tree-optimization/71631
6362 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
6363 to rewrite_expr_tree even if negate_result, move new_lhs var
6364 declaration and initialization earlier, for powi_result set afterwards
6365 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
6366 if new_lhs != lhs, and don't shadow gsi var.
6368 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
6370 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
6371 Add in_loop parameter.
6372 (predict_loops): Add loop guard heuristics.
6373 * predict.def (PRED_LOOP_GUARD): New heuristics.
6375 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
6377 * predict.c: Include ipa-utils.h
6378 (tree_bb_level_prediction): Predict recursive calls.
6379 (tree_estimate_probability_bb): Skip inexpensive calls for call
6381 * predict.def (PRED_RECURSIVE_CALL): New.
6383 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6385 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
6386 (BU_FLOAT128_1): Likewise.
6388 (COPYSIGNQ): Likewise.
6389 (RS6000_BUILTIN_NANQ): Likewise.
6390 (RS6000_BUILTIN_NANSQ): Likewise.
6391 (RS6000_BUILTIN_INFQ): Likewise.
6392 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
6393 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
6394 (TARGET_FOLD_BUILTIN): New #define.
6395 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
6396 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
6397 (rs6000_fold_builtin): New target hook implementation, handling
6398 folding of 128-bit NaNs and infinities.
6399 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
6400 entries are filled in to avoid problems during bootstrap
6401 self-test; define builtins for 128-bit NaNs and infinities.
6402 (rs6000_opt_mask): Add entry for float128.
6403 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
6404 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
6405 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
6406 (const_str_type_node): New #define.
6407 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
6408 to a define_expand that dispatches to either copysign<mode>3_soft
6409 or copysign<mode>3_hard.
6410 (copysign<mode>3_hard): Rename from copysign<mode>3.
6411 (copysign<mode>3_soft): New define_insn.
6412 * doc/extend.texi: Document new builtins.
6414 2016-06-24 Jakub Jelinek <jakub@redhat.com>
6416 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
6417 PRIu64 instead of lu.
6419 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
6422 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
6425 2016-06-24 Jakub Jelinek <jakub@redhat.com>
6427 PR tree-optimization/71647
6428 * omp-low.c (lower_rec_input_clauses): Convert
6429 omp_clause_aligned_alignment (c) to size_type_node for the
6430 last argument of __builtin_assume_aligned.
6432 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
6434 * configure.ac (calling ___tls_get_addr via GOT): New
6435 assembler/linker check.
6436 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
6437 assembler and linker supports calling ___tls_get_addr via GOT.
6438 Otherise, defined to 0.
6439 * config.in: Regenerated.
6440 * configure: Likewise.
6441 * config/i386/constraints.md (Yb): New constraint.
6442 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
6443 (REG_CLASS_NAMES): Likewise.
6444 (REG_CLASS_CONTENTS): Likewise.
6445 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
6446 the b constraint with the Yb constraint. Call ___tls_get_addr
6447 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
6449 (*tls_local_dynamic_base_32_gnu): Likewise.
6450 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
6451 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
6452 (*tls_local_dynamic_base_64_<mode>): Likewise.
6454 2016-06-24 Martin Liska <mliska@suse.cz>
6456 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
6457 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
6459 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
6460 argument to true if the expected number of iterations is
6463 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
6465 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
6466 assemble for 32bit target.
6467 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
6468 and $ld_ix86_gld_32_opt to link for 32bit target.
6469 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
6470 * configure: Regenerate.
6472 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6474 * config/arm/arm.c (int_log2): Delete definition and prototype.
6475 (shift_op): Use exact_log2 instead of int_log2.
6476 (vfp3_const_double_for_fract_bits): Likewise.
6478 2016-06-24 Jakub Jelinek <jakub@redhat.com>
6480 * internal-fn.c (expand_arith_set_overflow): New function.
6481 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
6483 (expand_arith_overflow_result_store): Likewise. Handle precision
6484 smaller than mode precision.
6485 * tree-vrp.c (extract_range_basic): For imag part, handle
6486 properly signed 1-bit precision result.
6487 * doc/extend.texi (__builtin_add_overflow): Document that last
6488 argument can't be pointer to enumerated or boolean type.
6489 (__builtin_add_overflow_p): Document that last argument can't
6490 have enumerated or boolean type.
6492 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6493 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6495 * config/rs6000/predicates.md (splat_input_operand): Rework.
6496 Don't allow constants, since the insns that use this predicate
6497 don't support constants. Constants are handled by other insns
6498 that are created via combine. During and after register
6499 allocation, only allow indexed or indirect addresses, and not
6500 general addresses. Only allow modes supported by the hardware.
6501 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
6502 comment. Move check for using VSPLTIS<x> to a common location,
6503 instead of doing it in two different places.
6505 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
6507 * config/i386/driver-i386.c (host_detect_local_cpu): Set
6508 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
6509 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
6510 signature_CENTAUR_ebx.
6512 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
6516 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
6517 (as_ix86_gas_32_opt): This.
6518 (ld_ix86_tls_ldm_opt): Renamed to ...
6519 (ld_ix86_gld_32_opt): This.
6520 (R_386_TLS_LDM reloc): Updated.
6521 (R_386_GOT32X reloc): New assembler/linker check.
6522 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
6523 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
6525 * config.in: Regenerated.
6526 * configure: Likewise.
6527 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
6528 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
6529 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
6530 if ix86_force_load_from_GOT_p returns true.
6531 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
6532 ix86_force_load_from_GOT_p returns true.
6533 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
6534 the external function address via the GOT slot.
6535 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
6536 HAVE_AS_IX86_GOT32X before returning false.
6537 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
6538 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
6540 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
6542 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
6544 2016-06-23 Andi Kleen <ak@linux.intel.com>
6546 * Makefile.in: Regenerate.
6547 * doc/install.texi: Document autoprofiledbootstrap.
6549 2016-06-23 Andi Kleen <ak@linux.intel.com>
6551 * config/i386/gcc-auto-profile: New file.
6553 2016-06-23 Martin Liska <mliska@suse.cz>
6556 * predict.c (predict_loops): Revert the hunk that was removed
6559 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
6561 * config.gcc: Add support for arm*-*-phoenix* targets.
6562 * config/arm/t-phoenix: New.
6563 * config/phoenix.h: New.
6565 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
6566 H.J. Lu <hongjiu.lu@intel.com>
6569 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
6570 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
6571 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
6572 ix86_force_load_from_GOT_p returns true.
6573 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
6574 ix86_force_load_from_GOT_p returns true.
6575 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
6576 ix86_force_load_from_GOT_p returns true.
6577 (ix86_expand_move): Load the external function address via the
6578 GOT slot if ix86_force_load_from_GOT_p returns true.
6579 * config/i386/predicates.md (x86_64_immediate_operand): Return
6580 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
6581 (x86_64_zext_immediate_operand): Ditto.
6583 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
6585 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
6587 2016-06-22 David Malcolm <dmalcolm@redhat.com>
6590 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
6591 * diagnostic.c (pedwarn_at_rich_loc): New function.
6592 * spellcheck.h (best_match::best_match): Add a
6593 "best_distance_so_far" optional parameter.
6594 (best_match::set_best_so_far): New method.
6595 (best_match::get_best_distance): New accessor.
6596 (best_match::get_best_candidate_length): New accessor.
6598 2016-06-22 Nick Clifton <nickc@redhat.com>
6600 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
6601 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
6602 modes are accepted as well.
6603 (ucompare_loc_descriptor): Likewise.
6604 (minmax_loc_descriptor): Likewise.
6605 (clz_loc_descriptor): Likewise.
6606 (popcount_loc_descriptor): Likewise.
6607 (bswap_loc_descriptor): Likewise.
6608 (rotate_loc_descriptor): Likewise.
6609 (mem_loc_descriptor): Likewise.
6610 (loc_descriptor): Likewise.
6612 2016-06-22 David Malcolm <dmalcolm@redhat.com>
6614 * common.opt (fdiagnostics-parseable-fixits): New option.
6615 * diagnostic.c: Include "selftest.h".
6616 (print_escaped_string): New function.
6617 (print_parseable_fixits): New function.
6618 (diagnostic_report_diagnostic): Call print_parseable_fixits.
6619 (selftest::assert_print_escaped_string): New function.
6620 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
6621 (selftest::test_print_escaped_string): New function.
6622 (selftest::test_print_parseable_fixits_none): New function.
6623 (selftest::test_print_parseable_fixits_insert): New function.
6624 (selftest::test_print_parseable_fixits_remove): New function.
6625 (selftest::test_print_parseable_fixits_replace): New function.
6626 (selftest::diagnostic_c_tests): New function.
6627 * diagnostic.h (struct diagnostic_context): Add field
6628 "parseable_fixits_p".
6629 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
6630 -fdiagnostics-parseable-fixits.
6631 (-fdiagnostics-parseable-fixits): New option.
6632 * opts.c (common_handle_option): Handle
6633 -fdiagnostics-parseable-fixits.
6634 * selftest-run-tests.c (selftest::run_tests): Call
6635 selftest::diagnostic_c_tests.
6636 * selftest.h (selftest::diagnostic_c_tests): New prototype.
6638 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
6640 PR tree-optimization/71488
6641 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
6642 comparison of boolean vectors.
6643 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
6644 of boolean vectors using bitwise operations.
6646 2016-06-22 Andreas Schwab <schwab@suse.de>
6648 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
6651 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
6653 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
6655 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
6657 * config/i386/i386.c (print_reg): Emit an error message on attempt to
6660 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6662 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
6663 * config/arm/arm-cores.def (cortex-a73): New entry.
6664 (cortex-a73.cortex-a35): Likewise.
6665 (cortex-a73.cortex-a53): Likewise.
6666 * config/arm/arm-tables.opt: Regenerate.
6667 * config/arm/arm-tune.md: Likewise.
6668 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
6669 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
6670 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
6671 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
6672 * doc/invoke.texi (ARM Options): Document cortex-a73,
6673 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
6675 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6677 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
6678 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
6679 (cortex-a73.cortex-a35): Likewise.
6680 (cortex-a73.cortex-a53): Likewise.
6681 * config/aarch64/aarch64-tune.md: Regenerate.
6682 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
6683 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
6686 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6688 * configure.ac (gcc_cv_as_compress_debug): Remove
6689 --compress-debug-sections as extra as switch.
6690 Handle gas --compress-debug-sections=type.
6691 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
6692 Handle gld --compress-debug-sections=type.
6693 * configure: Regenerate.
6695 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
6697 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
6699 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
6701 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
6702 (do_rewrite): likewise.
6704 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6706 * common/config/mep/mep-common.c: Remove.
6707 * config.gcc: Remove mep-* support.
6708 * config/mep/constraints.md: Remove.
6709 * config/mep/default.h: Remove.
6710 * config/mep/intrinsics.h: Remove.
6711 * config/mep/intrinsics.md: Remove.
6712 * config/mep/ivc2-template.h: Remove.
6713 * config/mep/mep-c5.cpu: Remove.
6714 * config/mep/mep-core.cpu: Remove.
6715 * config/mep/mep-default.cpu: Remove.
6716 * config/mep/mep-ext-cop.cpu: Remove.
6717 * config/mep/mep-intrin.h: Remove.
6718 * config/mep/mep-ivc2.cpu: Remove.
6719 * config/mep/mep-pragma.c: Remove.
6720 * config/mep/mep-protos.h: Remove.
6721 * config/mep/mep.c: Remove.
6722 * config/mep/mep.cpu: Remove.
6723 * config/mep/mep.h: Remove.
6724 * config/mep/mep.md: Remove.
6725 * config/mep/mep.opt: Remove.
6726 * config/mep/predicates.md: Remove.
6727 * config/mep/t-mep: Remove.
6728 * doc/install.texi: Remove mep-* documentation.
6729 * doc/md.texi: Likewise.
6731 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6733 * config.gcc: Remove support for avr-rtems.
6734 * config/avr/gen-avr-mmcu-specs.c: Likewise.
6735 * config/avr/rtems.h: Remove.
6736 * config/avr/t-rtems: Remove.
6738 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6740 * config.gcc: Remove m32r-rtems support.
6741 * config/m32r/rtems.h: Remove.
6743 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6745 * config.gcc: Remove h8300-rtems support.
6746 * config/h8300/rtems.h: Remove.
6747 * config/h8300/t-rtems: Remove.
6749 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6751 * config.gcc: Remove support for knetbsd.
6752 * configure.ac: Likewise.
6753 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
6754 * config/knetbsd-gnu.h: Remove.
6755 * configure: Regenerate.
6757 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6759 * config.gcc: Remove support for openbsd 2 and 3.
6760 * config/openbsd-oldgas.h: Remove.
6762 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6764 * config.gcc: Remove interix support.
6765 * config/i386/i386-interix.h: Remove.
6766 * config/i386/interix.opt: Remove.
6767 * config/i386/t-interix: Remove.
6768 * configure: Regenerate.
6769 * configure.ac: Remove interix support.
6770 * doc/install.texi: Remove interix documentation.
6772 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
6774 * config/rs6000/rs6000.h: Add conditional preprocessing directives
6775 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
6778 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
6780 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
6781 they are both PLACEHOLDER_EXPRs.
6783 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
6785 * stor-layout.c (layout_type): Move setting complex MODE to
6786 layout_type, instead of setting it ahead of time by the caller.
6787 * tree.c (build_complex_type): Likewise.
6789 2016-06-21 Martin Liska <mliska@suse.cz>
6791 * predict.c (force_edge_cold): Replace imposisble with
6794 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
6796 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
6797 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
6799 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
6801 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
6803 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
6804 Ilya Enkovich <ilya.enkovich@intel.com>
6807 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
6808 New member function to convert V1TImode register to SUBREG
6809 TImode in debug insn.
6810 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
6811 after changing register mode to V1TImode.
6813 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
6815 * config/aarch64/aarch64-cores.def (vulcan): New core.
6816 * config/aarch64/aarch64-tune.md: Regenerate.
6817 * doc/invoke.texi: Document vulcan as an available option.
6819 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
6821 * cse.c (canon_asm_operands): New function extracted from...
6822 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
6823 either standalone or member of a PARALLEL.
6825 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
6828 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
6829 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
6830 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
6832 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
6835 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
6836 constant addresses if can_create_pseudo_p.
6838 2016-06-21 Jakub Jelinek <jakub@redhat.com>
6840 PR tree-optimization/71588
6841 * tree-ssa-strlen.c (valid_builtin_call): New function.
6842 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
6845 2016-06-20 Jakub Jelinek <jakub@redhat.com>
6848 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
6849 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
6850 for conversion of scalar user var to complex type and use the
6851 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
6854 PR rtl-optimization/71591
6855 * toplev.c (toplev::run_self_tests): If no_backend, complain and
6856 don't run any tests.
6858 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
6861 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
6862 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
6863 space for PIC with non-v32 and the common non-PIC "jump".
6865 2016-06-20 Jakub Jelinek <jakub@redhat.com>
6868 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
6869 returned values and add UN*/LTGT/*ORDERED cases with values matching
6870 D operand modifier on vcmp for AVX.
6872 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6874 * config/aarch64/aarch64.opt
6875 (mpc-relative-literal-loads): Rename internal option name.
6876 * config/aarch64/aarch64.c
6877 (aarch64_nopcrelative_literal_loads): Rename to
6878 aarch64_pcrelative_literal_loads.
6879 (aarch64_expand_mov_immediate): Likewise.
6880 (aarch64_secondary_reload): Likewise.
6881 (aarch64_can_use_per_function_literal_pools_p): Likewise.
6882 (aarch64_override_options_after_change_1): Rename and simplify logic.
6883 (aarch64_classify_symbol): Merge large model checks into switch,
6884 remove pc-relative load check.
6886 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6888 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
6889 costs relative to the cost of a register move.
6891 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6893 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
6894 (vcvt_n_f64_u64): Likewise.
6895 (vcvt_n_s64_f64): Likewise.
6896 (vcvt_n_u64_f64): Likewise.
6897 (vcvt_f64_s64): Likewise.
6898 (vrecpe_f64): Likewise.
6899 (vcvt_f64_u64): Likewise.
6900 (vrecps_f64): Likewise.
6902 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6904 * config/aarch64/aarch64.md
6905 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
6907 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
6909 * config/aarch64/aarch64-builtins.c
6910 (aarch64_types_binop_uss_qualifiers): Delete.
6911 (TYPES_BINOP_USS): Likewise.
6912 (aarch64_types_binop_sus_qualifiers): Likewise.
6913 (TYPES_BINOP_SUS): Likewise.
6914 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
6915 (TYPES_FCVTIMM_SUS): Likewise.
6916 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
6918 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
6919 (fcvtzs): Use SHIFTIMM rather than BINOP.
6920 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
6922 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6924 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
6925 costs relative to the cost of a register move.
6927 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6929 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
6930 Allow scalar/single vector modes to be tieable.
6932 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6934 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
6936 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6938 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
6940 * tree.h (TYPE_ALIGN): Likewise.
6942 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
6945 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
6947 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
6949 * config/avr/avr.c (avr_print_operand): Fix "format not a string
6950 literal" build warnings.
6951 (avr_print_operand_address): Dito.
6953 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
6956 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
6957 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
6959 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
6961 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
6963 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
6966 * reload1.c (reload): Pass 0 to finish_spills when called because
6967 update_eliminables_and_spill returns true and remove did_spill.
6968 (finish_spills): Adjust comment and document GLOBAL parameter.
6970 2016-06-17 DJ Delorie <dj@redhat.com>
6973 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
6974 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
6975 (umulqihi3_virt): Likewise.
6976 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
6977 (umulqihi3_real): Likewise.
6979 2016-06-17 Martin Liska <mliska@suse.cz>
6981 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
6983 2016-06-17 Martin Liska <mliska@suse.cz>
6985 * predict.def: PRED_LOOP_EXIT from 92 to 85.
6987 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
6989 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
6991 (vaddq_f32): Likewise.
6992 (vmul_f32): Likewise.
6993 (vmulq_f32): Likewise.
6994 (vsub_f32): Likewise.
6995 (vsubq_f32): Likewise.
6997 2016-06-17 Bin Cheng <bin.cheng@arm.com>
6999 PR tree-optimization/71347
7000 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
7001 cost for all uses in group.
7003 2016-06-17 Bin Cheng <bin.cheng@arm.com>
7005 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
7006 insert gimple seq if it's not empty.
7008 2016-06-17 Bin Cheng <bin.cheng@arm.com>
7010 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
7012 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
7014 (comp_dr_with_seg_len_pair): Ditto.
7015 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
7016 struct dr_with_seg_len_pair against DR_OFFSET.
7017 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
7020 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
7022 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
7024 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
7026 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
7027 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
7028 (pa_output_millicode_call): Likewise.
7029 (pa_output_call): Likewise.
7030 (pa_output_indirect_call): Likewise.
7031 (pa_asm_output_mi_thunk): Likewise.
7033 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
7035 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
7037 2016-06-16 Martin Liska <mliska@suse.cz>
7039 * predict.c (combine_predictions_for_insn): When we find a first
7040 match predictor, we should consider just predictors with
7041 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
7042 DS theory predictor.
7043 (combine_predictions_for_bb): Likewise.
7045 2016-06-16 Jakub Jelinek <jakub@redhat.com>
7047 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
7048 with base of reference to struct.
7050 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
7052 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
7054 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7057 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
7058 progmem_swtable_section.
7059 (progmem_swtable_section): Remove.
7060 (avr_asm_function_rodata_section): Remove.
7061 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
7062 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
7064 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
7066 * config/i386/driver-i386.c (host_detect_local_cpu): Set
7067 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
7068 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
7069 signature_CENTAUR_ebx.
7070 * config/i386/i386.c (ix86_option_override_internal): Add
7071 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
7072 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
7073 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
7075 2016-06-16 Martin Liska <mliska@suse.cz>
7077 * predict.def: Add fortran loop preheader predictor.
7078 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
7079 fold IFN_BUILTIN_EXPECT with a known constant argument.
7081 2016-06-16 Martin Liska <mliska@suse.cz>
7083 * predict.def: Add 'Fortran' to display text of all
7084 PRED_FORTRAN_* predictors.
7086 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
7089 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
7090 [IA64_BUILTIN_NANSQ]: Ditto.
7091 (ia64_fold_builtin): New function.
7092 (TARGET_FOLD_BUILTIN): New define.
7093 (ia64_init_builtins) Declare const_string_type node.
7094 Add __builtin_nanq and __builtin_nansq builtin functions.
7095 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
7097 2016-06-16 Nick Clifton <nickc@redhat.com>
7099 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
7100 MSP430_HWMULT_ prefix to enum values.
7101 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
7102 * config/msp430/msp430.c: Update use of enum values.
7103 * config/msp430/msp430.md: Likewise.
7104 * config/msp430/msp430.opt: Likewise.
7106 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
7108 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
7109 of comparsions in the last iteration.
7111 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
7112 Joern Rennecke <joern.rennecke@embecosm.com>
7114 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
7116 (arc_needs_pcl_p): Add GOTOFFPC.
7117 (arc_legitimate_pic_addr_p): Likewise.
7118 (arc_output_pic_addr_const): Likewise.
7119 (arc_legitimize_pic_address): Generate a pc-relative address using
7121 (arc_output_libcall): Use @pcl syntax.
7122 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
7123 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
7124 (*movsi_insn): Use @pcl syntax.
7125 (doloop_begin_i): Likewise.
7127 2016-06-16 Martin Liska <mliska@suse.cz>
7129 * predict.def: Define a new predictor.
7131 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
7133 * config/arc/arc.opt (mtp-regno): Update text.
7135 2016-06-16 Renlin Li <renlin.li@arm.com>
7137 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
7139 2016-06-16 Jakub Jelinek <jakub@redhat.com>
7142 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
7143 (setcc + and peephole2): Likewise.
7145 PR rtl-optimization/71532
7146 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
7149 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
7151 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
7152 DImode constants with XXSPLTIB in vector registers.
7153 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
7154 vsx_extract_<mode>_internal{1,2} into a single insn that handles
7155 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
7156 extraction of the element at the top of the register as a scalar
7158 (vsx_extract_<mode>_internal1): Likewise.
7159 (vsx_extract_<mode>_internal2): Likewise.
7160 * config/rs6000/constraints.md (wi constraint): Remove a comment
7161 about DImode not being allowed in Altivec registers.
7162 (wB constraint): New constraint for constants that can be
7163 generated in Altivec registers with VSPLTISW/VUPKHSW.
7164 * config/rs6000/predicates.md (xxspltib_constant_split): Update
7166 (xxspltib_constant_nosplit): Likewise.
7167 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
7168 support for -mupper-regs-di to enable DImode to go into Altivec
7170 (POWERPC_MASKS): Likewise.
7171 (power7 cpu): Likewise.
7172 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
7173 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
7174 for DImode being allowed in Altivec registers. Update wi/wj
7175 constraints. Set scalar_in_vmx_p flag.
7176 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
7177 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
7178 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
7179 (rs6000_opt_masks): Add -mupper-regs-di.
7180 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
7181 direct move to use wi and not wj.
7183 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
7185 (floatunssi<mode>2_lfiwzx_mem): Likewise.
7186 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
7187 any VSX register, instead of just Altivec registers, to allow
7188 either operand to be an Altivec register or both.
7189 (fixuns_trunc<mode>di2_fctiduz): Likewise.
7190 (movdi_internal32): Add support for -mupper-regs-di. Add support
7191 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
7192 the alternatives and attributes to be lined up to be easier to
7194 (movdi_internal64): Likewise.
7195 (64-bit DImode splitters): Change predicates to only split loading
7196 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
7197 load constants in ISA 3.0 or ISA 2.07 respectively.
7198 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7199 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
7200 mention -mcpu=power9 sets these options.
7201 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
7204 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
7207 * config/avr/avr.c (avr_set_current_function): Warn misspelled
7208 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
7209 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
7210 by default to warn misspelled interrupt/ signal handler.
7211 * doc/invoke.texi (AVR Options): Document it. Update description
7212 for -nodevicelib option.
7214 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7216 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
7217 up parentheses. Use GET_MODE_UNIT_BITSIZE.
7218 (aarch64_<sur>shll2_n<mode>): Likewise.
7220 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
7223 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
7224 DECL_CONTEXT for copied arguments.
7226 2016-06-15 Alan Hayward <alan.hayward@arm.com>
7228 PR tree-optimization/71483
7229 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
7232 2016-06-15 Martin Liska <mliska@suse.cz>
7234 * predict.c (tree_predict_by_opcode): Call predict_edge_def
7235 instead of predict_edge w/o a probability.
7237 2016-06-15 Alan Hayward <alan.hayward@arm.com>
7239 PR tree-optimization/71439
7240 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
7243 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7245 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
7246 register subregs in SET_SRC.
7248 2016-06-15 Richard Biener <rguenther@suse.de>
7250 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
7253 2016-06-15 Richard Biener <rguenther@suse.de>
7255 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
7256 not consider dependences between accesses that belong to the
7258 (vect_analyze_data_ref_dependences): Do not analyze read-read
7259 or self-dependences.
7261 2016-06-14 David Malcolm <dmalcolm@redhat.com>
7263 * spellcheck-tree.c: Include spellcheck-tree.h rather than
7265 (find_closest_identifier): Reimplement in terms of
7266 best_match<tree,tree>.
7267 * spellcheck-tree.h: New file.
7268 * spellcheck.c (struct edit_distance_traits<const char *>): New
7270 (find_closest_string): Reimplement in terms of
7271 best_match<const char *, const char *>.
7272 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
7273 overload to spellcheck-tree.h.
7274 (find_closest_identifier): Likewise.
7275 (struct edit_distance_traits<T>): New template.
7276 (class best_match): New class.
7278 2016-06-14 David Malcolm <dmalcolm@redhat.com>
7280 * selftest-run-tests.c (selftest::run_tests): Call
7281 selftest::spellcheck_tree_c_tests.
7282 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
7283 * spellcheck-tree.c: Include selftest.h and stringpool.h.
7284 (selftest::test_find_closest_identifier): New function.
7285 (selftest::spellcheck_tree_c_tests): New function.
7286 * spellcheck.c (selftest::test_find_closest_string): Verify that
7287 the order of the vec does not affect the results for this case.
7288 (selftest::test_data): New array.
7289 (selftest::test_metric_conditions): New function.
7290 (selftest::spellcheck_c_tests): Add a test of case-comparison.
7291 Call selftest::test_metric_conditions.
7293 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7295 * config/rs6000/rs6000-builtin.def (commentary): Typo.
7296 (BU_P9_MISC_1): Likewise.
7297 (BU_P9_64BIT_MISC_0): Likewise.
7298 (BU_P9_MISC_0): Likewise.
7300 2016-06-14 David Malcolm <dmalcolm@redhat.com>
7302 * gcc-rich-location.c
7303 (gcc_rich_location::add_fixit_misspelled_id): New method.
7304 * gcc-rich-location.h
7305 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
7307 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
7309 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
7310 FreeBSD 11 and above.
7312 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
7314 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
7316 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7318 * expmed.h: Close parenthesis in "at your option" in copyright
7320 * lower-subreg.h: Likewise.
7322 2016-06-14 Richard Biener <rguenther@suse.de>
7325 * genmatch.c (expr::gen_transform): Use in_type for comparisons
7328 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7330 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
7332 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
7334 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
7336 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
7337 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
7339 2016-06-14 Richard Biener <rguenther@suse.de>
7341 PR tree-optimization/71522
7342 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
7343 copying into float copying.
7345 2016-06-14 Jakub Jelinek <jakub@redhat.com>
7347 PR tree-optimization/71520
7348 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
7349 (replace_block_by): Move user labels from bb1 to bb2.
7351 2016-06-14 Richard Biener <rguenther@suse.de>
7355 * expr.h (get_bit_range): Declare.
7356 * expr.c (get_bit_range): Export.
7357 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
7358 word_mode again to constrain the bitfield access.
7360 2016-06-14 Richard Biener <rguenther@suse.de>
7362 PR tree-optimization/71521
7363 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
7364 division int_const_binop against zero divisor.
7366 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
7368 * config/i386/i386.md (signbittf2): New expander.
7369 * config/i386/sse.md (ptesttf2): New insn pattern.
7371 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7374 * input.c (selftest::test_reading_source_line): Avoid reading from
7375 __FILE__ by creating a tempfile with known content and reading
7378 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7380 * pretty-print.c (assert_pp_format_colored): Skip the test if
7382 (test_pp_format): Remove comment about GCC_COLORS.
7384 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7386 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
7387 * pretty-print.c (assert_pp_format_va): Add location param and use
7388 it with ASSERT_STREQ_AT.
7389 (assert_pp_format): Add location param and pass it to
7390 assert_pp_format_va.
7391 (assert_pp_format_colored): Likewise.
7392 (ASSERT_PP_FORMAT_1): New.
7393 (ASSERT_PP_FORMAT_2): New.
7394 (ASSERT_PP_FORMAT_3): New.
7395 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
7396 explicitly, or implicitly via the above macros.
7397 * selftest.c (selftest::pass): Use a selftest::location rather
7399 (selftest::fail): Likewise. Print the function name.
7400 (selftest::fail_formatted): Likewise.
7401 (selftest::assert_streq): Use a selftest::location rather than
7403 * selftest.h (selftest::location): New struct.
7404 (SELFTEST_LOCATION): New macro.
7405 (selftest::pass): Accept a const location & rather than file
7407 (selftest::fail): Likewise.
7408 (selftest::fail_formatted): Likewise.
7409 (selftest::assert_streq): Likewise.
7410 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
7411 (ASSERT_FALSE): Likewise.
7412 (ASSERT_EQ): Likewise.
7413 (ASSERT_NE): Likewise.
7414 (ASSERT_STREQ): Likewise.
7415 (ASSERT_PRED1): Likewise.
7416 (ASSERT_STREQ_AT): New macro.
7418 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7420 * selftest.c (selftest::fail_formatted): New function.
7421 (selftest::assert_streq): New function.
7422 * selftest.h (selftests::fail_formatted): New decl.
7423 (selftest::assert_streq): New decl.
7424 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
7426 2016-06-13 Jeff Law <law@redhat.com>
7428 PR tree-optimization/71403
7429 * tree-ssa-threadbackward.c
7430 (convert_and_register_jump_thread_path): No longer accept reference
7431 to path. Do not pop items off the path anymore.
7432 (fsm_find_control_statement_thread_paths): Do not allow threading
7433 to a deeper loop nest. Pop the last item off the path here rather
7434 than in convert_and_register_jump_thread_path.
7436 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
7437 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
7439 [AArch64] Emit division using the Newton series
7441 * config/aarch64/aarch64-protos.h
7442 (cpu_approx_modes): Add new member "division".
7443 (aarch64_emit_approx_div): Declare new function.
7444 * config/aarch64/aarch64.c
7445 (generic_approx_modes): New member "division".
7446 (exynosm1_approx_modes): Likewise.
7447 (xgene1_approx_modes): Likewise.
7448 (aarch64_emit_approx_div): Define new function.
7449 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
7450 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
7451 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
7452 * doc/invoke.texi (-mlow-precision-div): Describe new option.
7454 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
7455 Wilco Dijkstra <wilco.dijkstra@arm.com>
7457 [AArch64] Emit square root using the Newton series
7459 * config/aarch64/aarch64-protos.h
7460 (aarch64_emit_approx_rsqrt): Replace with new function
7461 "aarch64_emit_approx_sqrt".
7462 (cpu_approx_modes): New member "sqrt".
7463 * config/aarch64/aarch64.c
7464 (generic_approx_modes): New member "sqrt".
7465 (exynosm1_approx_modes): Likewise.
7466 (xgene1_approx_modes): Likewise.
7467 (aarch64_emit_approx_rsqrt): Replace with new function
7468 "aarch64_emit_approx_sqrt".
7469 (aarch64_override_options_after_change_1): Handle new option.
7470 * config/aarch64/aarch64-simd.md
7471 (rsqrt<mode>2): Use new function instead.
7472 (sqrt<mode>2): New expansion and insn definitions.
7473 * config/aarch64/aarch64.md: Likewise.
7474 * config/aarch64/aarch64.opt
7475 (mlow-precision-sqrt): Add new option description.
7476 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
7478 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
7480 [AArch64] Add more choices for the reciprocal square root approximation
7482 Allow a target to prefer such operation depending on the operation mode.
7484 * config/aarch64/aarch64-protos.h
7485 (AARCH64_APPROX_MODE): New macro.
7486 (AARCH64_APPROX_{NONE,ALL}): Likewise.
7487 (cpu_approx_modes): New structure.
7488 (tune_params): New member "approx_modes".
7489 * config/aarch64/aarch64-tuning-flags.def
7490 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
7491 * config/aarch64/aarch64.c
7492 (generic_approx_modes): New core "cpu_approx_modes" structure.
7493 (exynosm1_approx_modes): Likewise.
7494 (xgene1_approx_modes): Likewise.
7495 (generic_tunings): New member "approx_modes".
7496 (cortexa35_tunings): Likewise.
7497 (cortexa53_tunings): Likewise.
7498 (cortexa57_tunings): Likewise.
7499 (cortexa72_tunings): Likewise.
7500 (exynosm1_tunings): Likewise.
7501 (thunderx_tunings): Likewise.
7502 (xgene1_tunings): Likewise.
7503 (use_rsqrt_p): New argument for the mode and use new member from
7505 (aarch64_builtin_reciprocal): Devise mode from builtin.
7506 (aarch64_optab_supported_p): New argument for the mode.
7507 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
7509 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
7511 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
7512 RS6000_BTM_MODULO flag into the set of flags that are considered
7513 to be part of the common configuration.
7515 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
7517 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
7518 difference unsigned.
7519 (vec_absdb): New macro for vector absolute difference unsigned
7521 (vec_absdh): New macro for vector absolute difference unsigned
7523 (vec_absdw): New macro for vector absolute difference unsigned word.
7524 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
7525 (vadu<mode>3): New insn.
7526 (*p9_vadu<mode>3): New insn.
7527 * config/rs6000/rs6000-builtin.def (vadub): New built-in
7529 (vaduh): New built-in definition.
7530 (vaduw): New built-in definition.
7531 (vadu): New overloaded built-in definition.
7532 (vadub): New overloaded built-in definition.
7533 (vaduh): New overloaded built-in definition.
7534 (vaduw): New overloaded built-in definition.
7535 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7536 overloaded vector absolute difference unsigned functions.
7537 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
7538 the ISA 3.0 vector absolute difference unsigned built-in functions.
7540 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
7542 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
7543 update shared_lookup_references only once after changing operands.
7545 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
7548 * tree-nested.c (convert_nonlocal_omp_clauses)
7549 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
7551 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
7552 * tree.def (CASE_LABEL_EXPR): Likewise.
7554 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
7557 * input.c (test_builtins): Fix an assertion.
7559 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
7561 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
7564 (isinf<mode>2): Ditto.
7566 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
7568 * ggc-tests.c (test_finalization): Only test need_finalization_p
7569 for GCC_VERSION >= 4003.
7571 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7573 * config/s390/vecintrin.h: Fix file description in comment.
7575 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7577 * config/s390/s390-builtin-types.def: Change builtin type naming
7578 scheme to match builtin-types.def.
7580 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
7582 * fold-const.c (optimize_minmax_comparison): Remove.
7583 (fold_comparison): Remove call to the above.
7584 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
7585 New transformations.
7587 2016-06-13 Alan Hayward <alan.hayward@arm.com>
7589 PR tree-optimization/71416
7590 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
7593 2016-06-13 Martin Liska <mliska@suse.cz>
7595 * predict.c (enum predictor_reason): Prefix enum with REASON_.
7596 (combine_predictions_for_insn): Likewise.
7597 (prune_predictions_for_bb): Likewise.
7598 (combine_predictions_for_bb): Likewise.
7600 2016-06-13 Richard Biener <rguenther@suse.de>
7602 PR tree-optimization/71505
7603 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
7604 assert match comment.
7606 2016-06-13 Marek Polacek <polacek@redhat.com>
7609 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
7610 gimplify_switch_expr.
7611 (warn_switch_unreachable_r): New function.
7613 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7616 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
7619 2016-06-13 Richard Biener <rguenther@suse.de>
7622 * fold-const.c (fold_unary_loc): Preserve alignment when
7623 folding a VIEW_CONVERT_EXPR into a MEM_REF.
7625 2016-06-13 Martin Liska <mliska@suse.cz>
7628 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
7629 w/ -fsanitize=bounds.
7631 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
7633 * config/i386/i386.c (ix86_init_builtins): Calculate
7634 FLOAT128_FTYPE_CONST_STRING function type only once.
7635 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
7636 built-in functions are available for x86-32 and x86-64 targets.
7638 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
7641 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
7643 (FLOAT128_FTYPE_CONST_STRING): New function type.
7644 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
7645 [IX86_BUILTIN_NANSQ]: Ditto.
7646 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
7647 (ix86_init_builtin_types): Declare const_string_type_node.
7648 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
7650 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
7651 * doc/extend.texi (x86 Built-in Functions): Document
7652 __builtin_nanq and __builtin_nansq.
7654 2016-06-11 Jiong Wang <jiong.wang@arm.com>
7657 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
7658 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
7659 length for pop patterns.
7660 (arm_attr_length_push_multi): Update comments.
7661 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
7663 (*pop_multiple_with_writeback_and_return): Likewise.
7664 (*pop_multiple_with_return): Likewise.
7666 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
7669 * fold-const.c (optimize_bit_field_compare): Don't try to use
7670 word_mode unconditionally for reading the bit field, look at
7671 DECL_BIT_FIELD_REPRESENTATIVE instead.
7673 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
7676 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
7677 vector integer type.
7679 2016-06-10 Jakub Jelinek <jakub@redhat.com>
7682 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
7683 without LABEL_DECL, set *handled_ops_p to false instead of true.
7685 2016-06-10 Martin Sebor <msebor@redhat.com>
7688 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
7689 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
7690 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
7692 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
7693 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
7694 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
7695 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
7696 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
7697 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
7698 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
7699 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
7701 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7703 * config/arm/arm.h (pool_vector_label,
7704 return_used_this_function): Remove.
7706 2016-06-10 Jeff Law <law@redhat.com>
7708 PR tree-optimization/71335
7709 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
7710 zero length paths here.
7711 (convert_and_register_jump_thread_path): Remove hacks related to
7712 duplicated blocks in the jump thread path.
7713 (fsm_find_control_statement_thread_paths): Avoid putting the same
7714 block on the thread path twice, but ensure the thread path is
7715 unchanged from the caller's point of view.
7717 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
7719 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
7720 * predict.def (PRED_LOOP_BRANCH): Remove.
7722 2016-06-10 David Malcolm <dmalcolm@redhat.com>
7724 * Makefile.in (OBJS): Add ggc-tests.o.
7725 (GTFILES): Add ggc-tests.c.
7726 * ggc-tests.c: New file.
7727 * selftest-run-tests.c (selftest::run_tests): Call
7728 selftest::ggc_tests_c_tests.
7729 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
7731 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
7733 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
7735 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
7738 * varasm.c (place_block_symbol): Adjust alignment for asan protected
7739 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
7741 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
7743 * profile.c: Include cfgloop.h.
7744 (branch_prob): Compute estimated number of iterations.
7745 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
7746 recompute estimate number of iterations from profile.
7748 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7751 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
7752 must be grouped on top of stack. Don't force early clobber
7753 on ordinary reg outputs.
7755 2016-06-10 Richard Biener <rguenther@suse.de>
7757 * targhooks.c (default_builtin_vectorization_cost): Adjust
7760 2016-06-10 Richard Biener <rguenther@suse.de>
7762 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
7763 to fold the RHS to a constant if possible.
7765 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
7768 * tree-nested.c (convert_nonlocal_omp_clauses)
7769 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
7770 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
7771 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
7773 * gimplify.c (gimplify_adjust_omp_clauses): Discard
7775 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
7777 * omp-low.c (scan_sharing_clauses): Don't expect
7780 2016-06-10 Alan Hayward <alan.hayward@arm.com>
7782 PR tree-optimization/71407
7783 PR tree-optimization/71416
7784 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
7787 2016-06-10 Richard Biener <rguenther@suse.de>
7790 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
7792 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
7794 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
7796 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
7797 Jiong Wang <jiong.wang@arm.com>
7799 PR rtl-optimization/70751
7800 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
7801 spilled into memory.
7803 2016-06-09 Jonathan Yong <10walls@gmail.com>
7806 2015-09-21 Jonathan Yong <10walls@gmail.com>
7808 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
7809 sysroot/usr/lib/32api for additional win32 libraries,
7810 fixes failing Cygwin bootstrapping.
7812 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
7814 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
7817 2016-06-09 David Malcolm <dmalcolm@redhat.com>
7820 * pretty-print.c (pp_indent): Specify that %p is printed in a
7821 host-dependent manner.
7822 (test_pp_format): Remove the test for %p.
7824 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
7826 * config/mips/mips.c (mips_output_jump): Fix formatting.
7828 2016-06-09 Richard Biener <rguenther@suse.de>
7830 PR tree-optimization/71462
7831 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
7834 2016-06-09 Martin Liska <mliska@suse.cz>
7836 * predict.c (dump_prediction): Add new argument.
7837 (enum predictor_reason): New enum.
7838 (struct predictor_hash): New struct.
7839 (predictor_hash::hash): New function.
7840 (predictor_hash::equal): Likewise.
7841 (not_removed_prediction_p): New function.
7842 (prune_predictions_for_bb): Likewise.
7843 (combine_predictions_for_bb): Prune predictions.
7845 2016-06-09 Martin Liska <mliska@suse.cz>
7847 * predict.c (filter_predictions): New function.
7848 (remove_predictions_associated_with_edge): Use the filter
7850 (equal_edge_p): New function.
7852 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
7854 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
7855 Correct usage of @samp vs @option, add @samp where appropriate.
7856 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
7857 Add armv6s-m and document it, as it is no official ARM name.
7859 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7861 * ifcvt.c (struct noce_if_info): Add transform_name field.
7862 (noce_try_move): Set if_info->transform_name to the function name.
7863 (noce_try_ifelse_collapse): Likewise.
7864 (noce_try_store_flag): Likewise.
7865 (noce_try_inverse_constants): Likewise.
7866 (noce_try_store_flag_constants): Likewise.
7867 (noce_try_addcc): Likewise.
7868 (noce_try_store_flag_mask): Likewise.
7869 (noce_try_cmove): Likewise.
7870 (noce_try_cmove_arith): Likewise.
7871 (noce_try_minmax): Likewise.
7872 (noce_try_abs): Likewise.
7873 (noce_try_sign_mask): Likewise.
7874 (noce_try_bitop): Likewise.
7875 (noce_convert_multiple_sets): Likewise.
7876 (noce_process_if_block): Print if_info->transform_name to
7877 dump_file if transformation succeeded.
7879 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7881 * config/arm/cortex-a57.md (cortex_a57_alu):
7884 2016-06-08 Martin Sebor <msebor@redhat.com>
7885 Jakub Jelinek <jakub@redhat.com>
7889 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
7890 BUILT_IN_MUL_OVERFLOW_P): New builtins.
7891 * builtins.c: Include gimple-fold.h.
7892 (fold_builtin_arith_overflow): Handle
7893 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
7894 (fold_builtin_3): Likewise.
7895 * doc/extend.texi (Integer Overflow Builtins): Document
7896 __builtin_{add,sub,mul}_overflow_p.
7898 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
7900 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
7901 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
7903 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
7905 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
7906 Rewrite, looking one level down for records and arrays.
7908 2016-06-08 David Malcolm <dmalcolm@redhat.com>
7910 * pretty-print.c: Include "selftest.h".
7911 (pp_format): Fix comment.
7912 (identifier_to_locale): Likewise.
7913 (selftest::test_basic_printing): New function.
7914 (selftest::assert_pp_format): New function.
7915 (selftest::test_pp_format): New function.
7916 (selftest::pretty_print_c_tests): New function.
7917 * selftest-run-tests.c (selftest::run_tests): Call
7918 selftest::pretty_print_c_tests.
7919 * selftest.h (pretty_print_c_tests): New declaration.
7921 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7923 * invoke.texi (max-loop-headers-insns): Document.
7924 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
7925 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
7926 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
7928 2016-06-08 Richard Biener <rguenther@suse.de>
7930 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
7931 on strided SLP loads and fall back to scalar loads in case
7932 we can't chunk them.
7934 2016-06-08 Richard Biener <rguenther@suse.de>
7936 PR tree-optimization/71452
7937 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
7938 type used for the SSA rewrite has enough precision to cover
7939 the dynamic type of the location.
7941 2016-06-08 Jakub Jelinek <jakub@redhat.com>
7942 Richard Biener <rguenther@suse.de>
7945 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
7946 the same as DECL_P (base0) for indirect_base0. Use equality_code
7947 in one further place.
7949 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
7951 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
7952 to one word if the field is known to overlap other words.
7953 (extract_bit_field_1): Likewise.
7954 (store_split_bit_field): Remove compensating code.
7955 (extract_split_bit_field): Likewise.
7957 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
7961 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
7963 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7965 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
7967 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
7968 (arch64_addpv4sf): Delete.
7969 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
7970 "gen_aarch64_addpv4sf".
7971 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
7973 (vpadds_f32): Likewise.
7974 (vpaddq_f32): Likewise.
7975 (vpaddq_f64): Likewise.
7977 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7979 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
7981 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
7982 to VALLF. Rename to "fabd<mode>3".
7983 "*fabd_scalar<mode>3): Delete.
7984 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
7986 (vabdd_f64): Likewise.
7987 (vabd_f32): Likewise.
7988 (vabd_f64): Likewise.
7989 (vabdq_f32): Likewise.
7990 (vabdq_f64): Likewise.
7992 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7994 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
7996 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
7997 "aarch64_rsqrts<mode>".
7998 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
7999 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
8001 (vrsqrtsd_f64): Likewise.
8002 (vrsqrts_f32): Likewise.
8003 (vrsqrts_f64): Likewise.
8004 (vrsqrtsq_f32): Likewise.
8005 (vrsqrtsq_f64): Likewise.
8007 2016-06-08 Jiong Wang <jiong.wang@arm.com>
8009 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
8011 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
8012 "aarch64_rsqrte<mode>".
8013 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
8014 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
8016 (vrsqrted_f64): Likewise.
8017 (vrsqrte_f32): Likewise.
8018 (vrsqrte_f64): Likewise.
8019 (vrsqrteq_f32): Likewise.
8020 (vrsqrteq_f64): Likewise.
8022 2016-06-08 Jiong Wang <jiong.wang@arm.com>
8024 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
8028 * config/aarch64/aarch64-simd.md
8029 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
8030 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
8031 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
8033 (vcvt_n_f32_u32): Likewise.
8034 (vcvt_n_s32_f32): Likewise.
8035 (vcvt_n_u32_f32): Likewise.
8036 (vcvtq_n_f32_s32): Likewise.
8037 (vcvtq_n_f32_u32): Likewise.
8038 (vcvtq_n_f64_s64): Likewise.
8039 (vcvtq_n_f64_u64): Likewise.
8040 (vcvtq_n_s32_f32): Likewise.
8041 (vcvtq_n_s64_f64): Likewise.
8042 (vcvtq_n_u32_f32): Likewise.
8043 (vcvtq_n_u64_f64): Likewise.
8044 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
8045 (VSDQ_SDI): Likewise.
8046 (fcvt_target): Support V4DI, V4SI and V2SI.
8047 (FCVT_TARGET): Likewise.
8049 2016-06-08 Jiong Wang <jiong.wang@arm.com>
8051 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
8052 (TYPES_BINOP_SUS): Likewise.
8053 (aarch64_simd_builtin_data): Update include file name.
8054 (aarch64_builtins): Likewise.
8055 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
8056 for conversion between scalar float-point and fixed-point.
8060 * config/aarch64/aarch64.md
8061 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
8062 pattern for conversion between scalar float to fixed-pointer.
8063 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
8064 (UNSPEC_FCVTZS): New UNSPEC enumeration.
8065 (UNSPEC_FCVTZU): Likewise.
8066 (UNSPEC_SCVTF): Likewise.
8067 (UNSPEC_UCVTF): Likewise.
8068 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
8070 (vcvtd_n_f64_u64): Likewise.
8071 (vcvtd_n_s64_f64): Likewise.
8072 (vcvtd_n_u64_f64): Likewise.
8073 (vcvtd_n_f32_s32): Likewise.
8074 (vcvts_n_f32_u32): Likewise.
8075 (vcvtd_n_s32_f32): Likewise.
8076 (vcvts_n_u32_f32): Likewise.
8077 * config/aarch64/iterators.md (fcvt_target): Support integer to float
8079 (FCVT_TARGET): Likewise.
8080 (FCVT_FIXED2F): New iterator.
8081 (FCVT_F2FIXED): Likewise.
8082 (fcvt_fixed_insn): New define_int_attr.
8084 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
8086 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
8087 some statements was removed.
8089 2016-06-08 Alan Hayward <alan.hayward@arm.com>
8091 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
8092 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
8093 (vect_can_advance_ivs_p): likewise.
8094 (vect_update_ivs_after_vectorizer): likewise.
8095 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
8096 (vect_analyze_scalar_cycles_1): likewise.
8097 (vect_analyze_loop_operations): likewise.
8098 (report_vect_op): likewise.
8099 (vect_is_slp_reduction): likewise.
8100 (vect_is_simple_reduction): likewise.
8101 (get_initial_def_for_induction): likewise.
8102 (vect_transform_loop): likewise.
8103 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
8104 (vect_recog_sad_pattern): likewise.
8105 (vect_recog_widen_sum_pattern): likewise.
8106 (vect_recog_widening_pattern): likewise.
8107 (vect_recog_divmod_pattern): likewise.
8108 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
8109 (vect_analyze_slp_instance): likewise.
8110 (vect_transform_slp_perm_load): likewise.
8111 (vect_schedule_slp_instance): likewise.
8113 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
8115 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
8116 (return_prediction): PRED_CONST_RETURN predict return as not taken.
8117 * predict.def (PRED_CONTINUE): Change hitrate 50->67
8118 (PRED_LOOP_BRANCH): Document predictor as broken.
8119 (PRED_LOOP_EXIT): Change hitrate 91->92.
8120 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
8121 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
8122 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
8123 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
8124 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
8125 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
8126 (PRED_CALL): Chane hitrate 71->67.
8127 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
8128 (PRED_GOTO): Document as unused right now.
8129 (PRED_CONST_RETURN): Change hitrate 67->69
8130 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
8131 (PRED_NULL_RETURN): Change hitrate 91->90.
8132 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
8133 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
8134 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
8136 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
8138 * config/rs6000/altivec.h: Add __builtin_vec_mul.
8139 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
8140 special case Altivec builtin.
8141 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
8142 VSX_BUILTIN_VEC_MUL (replaced with special case code).
8143 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8144 code for ALTIVEC_BUILTIN_VEC_MUL.
8145 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8146 for __builtin_vec_mul.
8148 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
8150 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
8153 2016-06-07 David Malcolm <dmalcolm@redhat.com>
8155 * spellcheck.c (selftest::test_find_closest_string): New function.
8156 (spellcheck_c_tests): Call the above.
8158 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8160 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
8162 2016-06-07 Jakub Jelinek <jakub@redhat.com>
8164 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
8165 Yv=Yv,C alternatives.
8167 2016-06-07 Richard Biener <rguenther@suse.de>
8170 * common.opt (ffast-math): Make Optimization.
8172 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
8173 Prachi Godbole <prachi.godbole@imgtec.com>
8175 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
8176 `fabs' and `fneg' type attributes.
8177 (p5600_fpu_fabs): Add `fmove' to the comment.
8179 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
8181 * gimple.c: Include builtins.h
8182 (gimple_inexpensive_call_p): New function.
8183 * gimple.h (gimple_inexpensive_call_p): Declare.
8184 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
8185 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
8188 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
8190 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
8191 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
8192 warning_at_rich_loc, warning_n, pedwarn, permerror,
8193 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
8194 sorry, fatal_error, internal_error, internal_error_no_backtrace):
8197 2016-06-07 Richard Biener <rguenther@suse.de>
8199 PR tree-optimization/71428
8200 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
8201 BIT_FIELD_REF op vs. load.
8203 2016-06-07 Richard Biener <rguenther@suse.de>
8206 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
8209 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
8211 * config/pa/pa.md (call): Generate indirect long calls to non-local
8212 functions on TARGET_64BIT.
8213 (call_value): Likewise.
8215 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
8217 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
8218 pattern and subsequent splitters.
8219 (call_val_reg_64bit_post_reload): Likewise.
8221 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
8224 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
8225 propagate_op_to_single_use.
8227 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
8230 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
8232 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
8234 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
8235 (enum x86_dirflag_state): New enum.
8236 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
8237 (machine_function): Remove needs_cld.
8238 (ix86_current_function_needs_cld): Remove.
8239 * config/i386/i386.c (ix86_set_func_type): Set
8240 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
8241 (ix86_expand_prologue): Do not emit CLD here.
8242 (ix86_dirflag_mode_needed): New function.
8243 (ix86_dirflag_mode_entry): Ditto.
8244 (ix86_mode_needed): Handle X86_DIRFLAG entity.
8245 (ix86_mode_after): Ditto.
8246 (ix86_mode_entry): Ditto.
8247 (ix86_mode_exit): Ditto.
8248 (ix86_emit_mode_set): Ditto.
8249 * config/i386/i386.md (strmov_singleop): Set
8250 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
8251 Do not set ix86_current_function_needs_cld.
8253 (strset_singleop): Ditto.
8255 (cmpstrnqi_nz_1): Ditto.
8256 (cmpstrnqi_1): Ditto.
8257 (strlenqi_1): Ditto.
8259 2016-06-06 Jakub Jelinek <jakub@redhat.com>
8261 PR tree-optimization/71259
8262 * tree-vect-slp.c (vect_get_constant_vectors): For
8263 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
8264 one for constant op, and use COND_EXPR for non-constant.
8266 2016-06-06 David Malcolm <dmalcolm@redhat.com>
8268 * Makefile.in (OBJS): Add function-tests.o,
8269 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
8270 selftest-run-tests.o.
8271 (OBJS-libcommon): Add selftest.o.
8272 (OBJS-libcommon-target): Add selftest.o.
8273 (all.internal): Add "selftest".
8274 (all.cross): Likewise.
8275 (selftest): New phony target.
8276 (s-selftest): New target.
8277 (selftest-gdb): New phony target.
8278 (COLLECT2_OBJS): Add selftest.o.
8279 * bitmap.c: Include "selftest.h".
8280 (selftest::test_gc_alloc): New function.
8281 (selftest::test_set_range): New function.
8282 (selftest::test_clear_bit_in_middle): New function.
8283 (selftest::test_copying): New function.
8284 (selftest::test_bitmap_single_bit_set_p): New function.
8285 (selftest::bitmap_c_tests): New function.
8286 * common.opt (fself-test): New.
8287 * diagnostic-show-locus.c: Include "selftest.h".
8288 (make_range): New function.
8289 (test_range_contains_point_for_single_point): New function.
8290 (test_range_contains_point_for_single_line): New function.
8291 (test_range_contains_point_for_multiple_lines): New function.
8292 (assert_eq): New function.
8293 (test_get_line_width_without_trailing_whitespace): New function.
8294 (selftest::diagnostic_show_locus_c_tests): New function.
8295 * et-forest.c: Include "selftest.h".
8296 (selftest::test_single_node): New function.
8297 (selftest::test_simple_tree): New function.
8298 (selftest::test_disconnected_nodes): New function.
8299 (selftest::et_forest_c_tests): New function.
8300 * fold-const.c: Include "selftest.h".
8301 (selftest::assert_binop_folds_to_const): New function.
8302 (selftest::assert_binop_folds_to_nonlvalue): New function.
8303 (selftest::test_arithmetic_folding): New function.
8304 (selftest::fold_const_c_tests): New function.
8305 * function-tests.c: New file.
8306 * gimple.c: Include "selftest.h".
8307 Include "gimple-pretty-print.h".
8308 (selftest::verify_gimple_pp): New function.
8309 (selftest::test_assign_single): New function.
8310 (selftest::test_assign_binop): New function.
8311 (selftest::test_nop_stmt): New function.
8312 (selftest::test_return_stmt): New function.
8313 (selftest::test_return_without_value): New function.
8314 (selftest::gimple_c_tests): New function.
8315 * hash-map-tests.c: New file.
8316 * hash-set-tests.c: New file.
8317 * input.c: Include "selftest.h".
8318 (selftest::assert_loceq): New function.
8319 (selftest::test_accessing_ordinary_linemaps): New function.
8320 (selftest::test_unknown_location): New function.
8321 (selftest::test_builtins): New function.
8322 (selftest::test_reading_source_line): New function.
8323 (selftest::input_c_tests): New function.
8324 * rtl-tests.c: New file.
8325 * selftest-run-tests.c: New file.
8326 * selftest.c: New file.
8327 * selftest.h: New file.
8328 * spellcheck.c: Include "selftest.h".
8329 (selftest::levenshtein_distance_unit_test_oneway): New function,
8330 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
8331 (selftest::levenshtein_distance_unit_test): Likewise.
8332 (selftest::spellcheck_c_tests): Likewise.
8333 * toplev.c: Include selftest.h.
8334 (toplev::run_self_tests): New.
8335 (toplev::main): Handle -fself-test.
8336 * toplev.h (toplev::run_self_tests): New.
8337 * tree.c: Include "selftest.h".
8338 (selftest::test_integer_constants): New function.
8339 (selftest::test_identifiers): New function.
8340 (selftest::test_labels): New function.
8341 (selftest::tree_c_tests): New function.
8342 * tree-cfg.c: Include "selftest.h".
8343 (selftest::push_fndecl): New function.
8344 (selftest::test_linear_chain): New function.
8345 (selftest::test_diamond): New function.
8346 (selftest::test_fully_connected): New function.
8347 (selftest::tree_cfg_c_tests): New function.
8348 * vec.c: Include "selftest.h".
8349 (selftest::safe_push_range): New function.
8350 (selftest::test_quick_push): New function.
8351 (selftest::test_safe_push): New function.
8352 (selftest::test_truncate): New function.
8353 (selftest::test_safe_grow_cleared): New function.
8354 (selftest::test_pop): New function.
8355 (selftest::test_safe_insert): New function.
8356 (selftest::test_ordered_remove): New function.
8357 (selftest::test_unordered_remove): New function.
8358 (selftest::test_block_remove): New function.
8359 (selftest::reverse_cmp): New function.
8360 (selftest::test_qsort): New function.
8361 (selftest::vec_c_tests): New function.c.
8362 * wide-int.cc: Include selftest.h and wide-int-print.h.
8363 (selftest::from_int <wide_int>): New function.
8364 (selftest::from_int <offset_int>): New function.
8365 (selftest::from_int <widest_int>): New function.
8366 (selftest::assert_deceq): New function.
8367 (selftest::assert_hexeq): New function.
8368 (selftest::test_printing <VALUE_TYPE>): New function template.
8369 (selftest::test_ops <VALUE_TYPE>): New function template.
8370 (selftest::test_comparisons <VALUE_TYPE>): New function template.
8371 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
8373 (selftest::wide_int_cc_tests): New function.
8375 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8378 * ifcvt.c (noce_try_ifelse_collapse): New function.
8380 (noce_process_if_block): Call noce_try_ifelse_collapse.
8381 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
8382 (simplify_ternary_operation): Use the above to simplify
8383 conditional CLZ/CTZ expressions.
8385 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8388 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
8389 define_insn_and_split.
8391 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8394 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
8396 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
8399 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
8400 Implicitly clobber memory for basic asm with non-empty assembler
8401 string. Use targetm.md_asm_adjust also here.
8402 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
8403 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
8404 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
8405 non-empty assembler string.
8406 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
8407 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
8408 (decode_asm_operands): Handle basic asm in PARALLEL block.
8409 (extract_insn): Handle basic asm in PARALLEL block.
8410 * doc/extend.texi: Mention new behavior of basic asm.
8411 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
8412 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
8413 branch_needs_nop_p): Use asm_noperands.
8415 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
8417 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
8418 Include the M7 SPARC DFA scheduler.
8419 New attribute v3pipe.
8420 Annotate insns with v3pipe where appropriate.
8421 Define cpu_feature vis4.
8422 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
8423 Add (V8QI "8") to vbits.
8424 Add insns {add,sub}v8qi3
8425 Add insns ss{add,sub}v8qi3
8426 Add insns us{add,sub}{v8qi,v4hi}3
8427 Add insns {min,max}{v8qi,v4hi,v2si}3
8428 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
8429 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
8430 * config/sparc/niagara4.md: Add a comment explaining the
8431 discrepancy between the documented latenty numbers and the
8433 * config/sparc/niagara7.md: New file.
8434 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
8435 supports SPARC5 and VIS 4.0 instructions.
8436 * configure: Regenerate.
8437 * config.in: Likewise.
8438 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
8439 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
8440 TARGET_CPU_niagara7.
8441 (ASM_CPU64_DEFAULT_SPEC): Likewise.
8442 (CPP_CPU_SPEC): Handle niagara7.
8443 (ASM_CPU_SPEC): Likewise.
8444 * config/sparc/sparc-opts.h (processor_type): Add
8446 (mvis4): New option.
8447 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
8448 (AS_NIAGARA7_FLAG): Define.
8449 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
8450 (CPP_CPU64_DEFAULT_SPEC): Likewise.
8451 (CPP_CPU_SPEC): Handle niagara7.
8452 (ASM_CPU_SPEC): Likewise.
8453 * config/sparc/sparc.c (niagara7_costs): Define.
8454 (sparc_option_override): Handle niagara7 and adjust cache-related
8455 parameters with better values for niagara cpus. Also support VIS4.
8456 (sparc32_initialize_trampoline): Likewise.
8457 (sparc_use_sched_lookahead): Likewise.
8458 (sparc_issue_rate): Likewise.
8459 (sparc_register_move_cost): Likewise.
8460 (dump_target_flag_bits): Support VIS4.
8461 (sparc_vis_init_builtins): Likewise.
8462 (sparc_builtins): Likewise.
8463 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
8465 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
8467 * config/sparc/sparc.opt (sparc_processor_type): New value
8469 * config/sparc/visintrin.h (__attribute__): Prototypes for the
8471 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
8473 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
8476 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
8478 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
8480 2016-06-06 Richard Biener <rguenther@suse.de>
8482 PR tree-optimization/71398
8483 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
8486 2016-06-05 James Bowman <james.bowman@ftdichip.com>
8488 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
8489 ft32_expand_prolog, ft32_expand_epilogue):
8490 Handle pretend_args.
8491 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
8492 * config/ft32/ft32.md: Add pretend_returner.
8494 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
8497 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8498 Copy op1 RTX to avoid invalid sharing.
8499 (ix86_expand_vector_move_misalign): Ditto.
8501 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
8503 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
8506 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
8508 * predict.c (predicted_by_loop_heuristics_p): New function.
8509 (predict_iv_comparison): Use it.
8510 (predict_loops): Walk from innermost loops; do not predict edges
8511 leaving multiple loops multiple times; implement
8512 PRED_LOOP_ITERATIONS_MAX heuristics.
8513 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
8515 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
8517 * cfg.c (check_bb_profile): Do not report mismatched profiles when
8518 only edges out of BB are EH edges.
8520 2016-06-04 Martin Sebor <msebor@redhat.com>
8521 Marcin Baczyński <marbacz@gmail.com>
8524 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
8525 a void expression in a void function.
8527 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
8529 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
8530 aux; dump reasons of decisions.
8531 (should_duplicate_loop_header_p): Likewise.
8532 (do_while_loop_p): Likewise.
8533 (ch_base::copy_headers): Dump asi num insns duplicated.
8535 2016-06-04 Jakub Jelinek <jakub@redhat.com>
8537 PR tree-optimization/71405
8538 * tree-ssa.c (execute_update_addresses_taken): For clobber with
8539 incompatible type, build a new clobber with the right type instead
8540 of building a VIEW_CONVERT_EXPR around it.
8542 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
8544 PR tree-optimization/52171
8545 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
8546 by_pieces_ninsns instead of move_by_pieces_ninsns.
8548 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
8550 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
8551 for reg+reg addressing mode.
8553 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8555 * rs6000-c.c (c/c-tree.h): Add #include.
8556 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
8557 in C++ when found in the base position of vec_ld or vec_st.
8559 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
8561 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
8562 use of profile unless profile status is PROFILE_READ.
8563 * profile.c (compute_branch_probabilities): Set profile status
8564 only after reporting predictor hitrates.
8566 2016-06-03 Joseph Myers <joseph@codesourcery.com>
8570 * common.opt (ffp-int-builtin-inexact): New option.
8571 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
8572 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
8573 (ceil@var{m}2): Document dependence on this option.
8574 * ipa-inline-transform.c (inline_call): Handle
8575 flag_fp_int_builtin_inexact.
8576 * ipa-inline.c (can_inline_edge_p): Likewise.
8577 * config/i386/i386.md (rintxf2): Do not test
8578 flag_unsafe_math_optimizations.
8579 (rint<mode>2_frndint): New define_insn.
8580 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
8581 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
8582 for 387 instead of extending and truncating.
8583 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
8584 !flag_trapping_math instead of flag_unsafe_math_optimizations.
8585 Change to frndint<mode>2_<rounding>.
8586 (frndintxf2_<rounding>_i387): Likewise. Change to
8587 frndint<mode>2_<rounding>_i387.
8588 (<rounding_insn>xf2): Likewise.
8589 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
8590 !flag_trapping_math instead of flag_unsafe_math_optimizations for
8591 x87. Test TARGET_ROUND || !flag_trapping_math ||
8592 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
8593 SSE. Use ROUND_NO_EXC in constant operand of
8594 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
8595 for 387 instead of extending and truncating.
8597 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
8598 Julia Koval <julia.koval@intel.com>
8610 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
8611 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
8612 all registers, except for function return registers if there are
8613 no caller-saved registers.
8614 (ix86_set_func_type): New function.
8615 (ix86_set_current_function): Call ix86_set_func_type to set
8616 no_caller_saved_registers and func_type. Call reinit_regs if
8617 caller-saved registers are changed. Don't allow MPX, SSE, MMX
8618 nor x87 instructions in interrupt handler nor function with
8619 no_caller_saved_registers attribute.
8620 (ix86_function_ok_for_sibcall): Return false if there are no
8621 caller-saved registers.
8622 (type_natural_mode): Don't warn ABI change for MMX in interrupt
8624 (ix86_function_arg_advance): Skip for callee in interrupt handler.
8625 (ix86_function_arg): Return special arguments in interrupt handler.
8626 (ix86_promote_function_mode): Promote pointer to word_mode only
8627 for normal functions.
8628 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
8630 (ix86_epilogue_uses): New function.
8631 (ix86_hard_regno_scratch_ok): Likewise.
8632 (ix86_save_reg): Preserve all registers in interrupt handler
8633 after reload. Preserve all registers, except for function return
8634 registers, if there are no caller-saved registers after reload.
8635 (find_drap_reg): Always use callee-saved register if there are
8636 no caller-saved registers.
8637 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
8638 for interrupt handler.
8639 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
8640 Emit cld instruction if stringops are used in interrupt handler
8641 or interrupt handler isn't a leaf function.
8642 (ix86_expand_epilogue): Generate interrupt return for interrupt
8643 handler and pop the 'ERROR_CODE' off the stack before interrupt
8644 return in exception handler.
8645 (ix86_expand_call): Disallow calling interrupt handler directly.
8646 If there are no caller-saved registers, mark all registers that
8647 are clobbered by the call which returns as clobbered.
8648 (ix86_handle_no_caller_saved_registers_attribute): New function.
8649 (ix86_handle_interrupt_attribute): Likewise.
8650 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
8652 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
8653 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
8654 accumulation in interrupt function if stack may be realigned to
8656 (EPILOGUE_USES): New.
8657 (function_type): New enum.
8658 (machine_function): Add func_type and no_caller_saved_registers.
8659 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
8660 (interrupt_return): New pattern.
8661 * doc/extend.texi: Document x86 interrupt and
8662 no_caller_saved_registers attributes.
8664 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
8666 PR tree-optimization/52171
8667 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
8668 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
8669 Look for constant strings. Move some code to emit_block_cmp_hints
8671 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
8672 * defaults.h (COMPARE_MAX_PIECES): New macro.
8673 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
8674 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
8675 (clear_by_pieces_1): Don't declare. Move definition before use.
8676 (can_do_by_pieces): New static function.
8677 (can_move_by_pieces): Use it. Return bool.
8678 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
8679 OP. All callers changed. Handle COMPARE_BY_PIECES.
8680 (class pieces_addr); New.
8681 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
8682 pieces_addr::adjust, pieces_addr::increment_address,
8683 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
8685 (class op_by_pieces_d): New.
8686 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
8688 (class move_by_pieces_d, class compare_by_pieces_d,
8689 class store_by_pieces_d): New subclasses of op_by_pieces_d.
8690 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
8691 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
8692 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
8693 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
8694 compare_by_pieces_d::finish_mode): New member functions.
8695 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
8697 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
8698 (emit_block_cmp_hints): New function.
8699 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
8700 use the newly defined classes.
8701 * expr.h (by_pieces_constfn): New typedef.
8702 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
8703 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
8704 (move_by_pieces_ninsns): Don't declare.
8705 (can_move_by_pieces): Change return value to bool.
8706 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
8707 (compare_by_pieces_branch_ratio): New hook.
8708 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
8709 (by_pieces_ninsns): Declare.
8710 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
8712 (default_compare_by_pieces_branch_ratio): New function.
8713 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
8714 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
8715 * doc/tm.texi: Regenerate.
8716 * tree-ssa-strlen.c: Include "builtins.h".
8717 (handle_builtin_memcmp): New static function.
8718 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
8719 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
8721 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8723 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
8724 relevant stmts which are simple and invariant.
8725 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
8726 instead of simple and invariant
8728 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8730 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
8731 (vectorizable_reduction): Check for new relevant state.
8732 (vectorizable_live_operation): vectorize live stmts using
8733 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
8734 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
8735 (vect_stmt_relevant_p): Check for stmts which are only used live.
8736 (process_use): Use of a stmt does not inherit it's live value.
8737 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
8738 (vect_analyze_stmt): Check for new relevant state.
8739 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
8740 outside the loop, but not inside it.
8742 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8744 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
8745 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
8746 (vect_get_vec_def_for_operand): Split out code.
8748 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
8750 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
8752 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8754 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
8756 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8758 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
8760 2016-06-03 Jakub Jelinek <jakub@redhat.com>
8763 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
8764 to noreturn e->callee->decl that has void return type and void
8765 arguments, adjust gimple_call_fntype and remove lhs even if it had
8766 previously addressable type.
8768 2016-06-02 Jeff Law <law@redhat.com>
8770 PR tree-optimization/71328
8771 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
8772 error when checking for a jump back onto the copied path.
8774 2016-06-02 David Malcolm <dmalcolm@redhat.com>
8776 * config/microblaze/microblaze.c (get_branch_target): Add return
8777 NULL_RTX for the non-CALL_P case.
8778 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
8779 (insert_wic): Remove unused local "j".
8781 2016-06-02 Martin Liska <mliska@suse.cz>
8783 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
8785 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
8786 Julia Koval <julia.koval@intel.com>
8788 * function.c (assign_parm_setup_stack): Force source into a
8790 * target.def (function_incoming_arg): Update documentation to
8791 allow arbitrary address computation based on hard register.
8792 * doc/tm.texi: Regenerated.
8794 2016-06-02 Martin Liska <mliska@suse.cz>
8796 * predict.c (combine_predictions_for_bb): Fix first match in
8797 cases where a first predictor contains more than one occurence
8798 in list of predictors. Take the best value in such case.
8800 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8802 PR rtl-optimization/71295
8803 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
8804 offset would go over the size of the inner mode reject it.
8806 2016-06-02 Jakub Jelinek <jakub@redhat.com>
8808 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
8809 x=x,x and v=v,m instead of x=x,m.
8811 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
8812 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
8813 alternative to v=rm,C.
8815 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
8816 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
8817 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
8818 instead of vex for the last two above mentioned alternatives.
8820 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8823 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
8825 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
8827 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
8829 2016-06-01 David Malcolm <dmalcolm@redhat.com>
8831 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
8832 from int to unsigned.
8834 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
8836 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
8837 alternatives, eliminating preferred register class. Add support
8838 for the MTVSRDD instruction in ISA 3.0.
8839 (vsx_splat_v4si_internal): Use splat_input_operand instead of
8840 reg_or_indexed_operand.
8841 (vsx_splat_v4sf_internal): Likewise.
8843 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
8846 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
8847 for loading up all 0's or all 1's.
8849 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
8851 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
8853 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
8855 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
8857 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
8858 * gcc.c (set_source_date_epoch_envvar): New function, sets
8859 the SOURCE_DATE_EPOCH environment variable to the current time.
8861 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
8863 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
8864 the factor for live Phi nodes.
8866 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
8868 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
8869 * tree-parloops.c (parallelize_loops): likewise.
8870 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
8871 tree_unswitch_outer_loop): likewise.
8873 2016-06-01 Jakub Jelinek <jakub@redhat.com>
8876 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
8877 around creation of the temporary.
8879 2016-06-01 Richard Biener <rguenther@suse.de>
8881 PR tree-optimization/71366
8882 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
8883 (unloop_loops): Move removing edges here ...
8884 (try_unroll_loop_completely): ... from here.
8885 (try_peel_loop): ... and here.
8886 (tree_unroll_loops_completely_1): Track parent loops via
8887 bitmap of header BBs.
8888 (tree_unroll_loops_completely): Adjust for that.
8890 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
8892 * config/rs6000/altivec.h (vec_slv): New macro.
8893 (vec_srv): New macro.
8894 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
8895 (UNSPEC_VSRV): New value.
8898 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
8899 (vsrv): New builtin definition.
8900 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
8901 define argument types for new builtin.
8902 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
8904 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
8907 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
8908 Jocelyn Mayer <l_indien@magic.fr>
8911 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
8912 detect processor family for signature_CENTAUR_ebx.
8913 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
8914 signature_CENTAUR_ebx.
8915 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
8916 <default>: Pass x86-64 for has_longmode.
8918 2016-06-01 Nathan Sidwell <nathan@acm.org>
8920 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
8923 2016-06-01 Richard Biener <rguenther@suse.de>
8925 PR tree-optimization/71261
8926 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
8927 of stmts successfully put in the bool pattern. Remove
8928 single-use restriction.
8929 (adjust_bool_pattern_cast): Add cast at the use site via the
8930 pattern def sequence.
8931 (adjust_bool_pattern): Remove recursion, maintain a hash-map
8932 of patterned defs. Use the pattern def seqence instead of
8933 multiple independent patterns.
8934 (sort_after_uid): New qsort compare function.
8935 (adjust_bool_stmts): New function to process stmts in the bool
8936 pattern in IL order.
8937 (vect_recog_bool_pattern): Adjust.
8938 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
8939 (ifcvt_walk_pattern_tree): Likewise.
8940 (stmt_is_root_of_bool_pattern): Likewise.
8941 (ifcvt_repair_bool_pattern): Likewise.
8942 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
8944 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
8946 * loop-unroll.c (decide_unroll_constant_iterations,
8947 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
8948 likely upper bounds.
8949 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
8951 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
8953 * tree-core.h (enum omp_clause_code): Remove
8954 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
8956 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8958 * config/arm/sync.md (arm_store_exclusive<mode>):
8959 Use 'H' output modifier on operands[2] rather than creating a new
8960 entry in out-of-bounds memory of the operands array.
8961 (arm_store_release_exclusivedi): Likewise.
8963 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8965 * config/arm/arm.c (arm_fusion_enabled_p): New function.
8966 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
8967 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
8968 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
8970 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
8972 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
8973 into account live statements for mask producers.
8975 2016-06-01 Richard Biener <rguenther@suse.de>
8977 PR tree-optimization/71311
8978 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
8979 restrict to non-INTEGER_CST @0.
8981 2016-06-01 Richard Biener <rguenther@suse.de>
8983 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
8984 (relational patterns): Use :c to avoid pattern duplications.
8986 2016-06-01 Richard Biener <rguenther@suse.de>
8988 * genmatch.c (comparison_code_p): New predicate.
8989 (swap_tree_comparison): New function.
8990 (commutate): Add for_vec parameter to append new for entries.
8991 Support commutating relational operators by swapping it alongside
8993 (lower_commutative): Adjust.
8994 (dt_simplify::gen): Do not pass artificial operators to gen
8996 (decision_tree::gen): Do not add artificial operators as parameters.
8997 (parser::parse_expr): Verify operator commutativity when :c is
8998 applied. Allow :C to override this.
8999 * match.pd: Adjust patterns to use :C instead of :c where required.
9001 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
9003 PR tree-optimization/71077
9004 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
9005 the combining step, use boolean_false_node and boolean_true_node
9006 as the designated false/true return values.
9008 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
9010 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
9011 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
9012 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
9015 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
9017 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
9018 of flags impliying the register renaming.
9019 * toplev.c (process_options): Do not imply flag_rename_registers with
9022 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
9024 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
9025 default implementation.
9027 2016-05-31 Nathan Sidwell <nathan@acm.org>
9029 * dwarf2out.c (cur_line_info_table): Add GTY marker.
9031 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
9033 * config/sh/constraints.md (b): Remove constraint.
9034 * config/sh/predicates.md (arith_reg_operand): Remove
9036 * config/sh/sh-modes.def (PDI): Remove.
9037 * config/sh/sh.c (sh_target_reg_class,
9038 sh_optimize_target_register_callee_saved): Remove functions.
9039 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
9040 (sh_expand_epilogue): Update comment.
9041 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
9042 sh_secondary_reload): Remove TARGET_REGS related code.
9043 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
9044 TARGET_REGISTER_P): Remove macros.
9045 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
9046 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
9047 TR1_REG, TR2_REG): Remove constants.
9048 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
9050 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
9052 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
9053 define_expand patterns.
9054 (adddi3_compact): Rename to adddi3.
9055 (subdi3_compact): Rename to subdi3.
9056 (*negdi2): Rename to negdi2.
9057 (*abs<mode>2): Rename to abs<mode>2.
9059 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
9061 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
9062 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
9063 (atomic_sub_fetchsi): ... this new pattern.
9064 (mvtc): Add CC_REG clobber.
9066 2016-05-31 Marek Polacek <polacek@redhat.com>
9068 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
9070 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9072 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
9073 aarch64_fusion_enabled_p to check for fusion capabilities.
9075 2016-05-31 Richard Biener <rguenther@suse.de>
9077 PR tree-optimization/71352
9078 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
9079 minus one and a negate.
9081 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9083 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
9084 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
9086 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
9087 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
9088 Remove use of aarch64_simd_attr_length_move, set length attribute
9090 (*aarch64_be_movoi): Likewise.
9091 (*aarch64_be_movci): Likewise.
9092 (*aarch64_be_movxi): Likewise.
9094 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
9096 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
9097 It no longer does that.
9098 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
9100 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
9102 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
9103 attribute __unused__.
9105 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
9107 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
9108 * config/arm/arm.c (arm_arch_thumb1): Define.
9109 (arm_option_override): Initialize arm_arch_thumb1.
9110 * config/arm/arm.h (arm_arch_thumb1): Declare.
9111 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
9112 support Thumb-1 ISA.
9114 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
9117 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
9118 `Yv' for scalar operand.
9120 2016-05-31 Tom de Vries <tom@codesourcery.com>
9122 PR tree-optimization/69068
9123 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
9124 phis with more than two args.
9126 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
9128 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
9129 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
9132 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
9134 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
9136 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
9138 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
9139 cpu_32, cpu_64, tune_32 and tune_64.
9140 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
9142 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
9144 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
9146 2016-05-30 Andi Kleen <ak@linux.intel.com>
9148 * auto-profile.c (read_profile): Replace asserts with errors
9149 when file does not exist.
9150 * gcov-io.c (gcov_read_words): Dito.
9152 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9154 * tree-cfg.c (print_loop): Print likely upper bounds.
9156 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9158 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
9159 * opts.c (default_options): Enable peel loops at -O3.
9160 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
9161 (try_peel_loop): Do not re-peel already peeled loops;
9162 use likely upper bounds; fix profile updating.
9163 (pass_complete_unroll::execute): Initialize peeled_loops.
9165 2016-05-30 Martin Liska <mliska@suse.cz>
9167 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
9168 computed costs by frequency of BB they belong to.
9169 (get_scaled_computation_cost_at): New function.
9171 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
9172 Marc Glisse <marc.glisse@inria.fr>
9174 PR tree-optimization/71289
9175 * match.pd (-1 / B < A, A > -1 / B): New transformations.
9177 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9179 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
9181 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9183 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
9184 for peeled copies; avoid underflow when updating estimates; correctly
9187 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
9189 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
9190 r236875. Corrected oe3 to oe2 as obvious.
9192 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
9196 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
9197 that inserted stmt will not dominate stmts that defines its operand.
9198 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
9199 (rewrite_expr_tree_parallel): Likewise.
9201 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
9204 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
9205 all fields including stmt_to_insert are swapped.
9207 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9209 * predict.h (force_edge_cold): Declare.
9210 * predict.c (force_edge_cold): New function.
9211 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
9213 (canonicalize_loop_induction_variables): Fix formating.
9215 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
9217 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
9218 (visium_expand_copysign): Use gen_int_mode directly.
9219 (visium_compute_frame_size): Minor tweaks.
9221 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9223 * tree-vect-loop.c (vect_analyze_loop_2): Use
9224 likely_max_stmt_executions_int.
9226 2016-05-30 Tom de Vries <tom@codesourcery.com>
9228 PR tree-optimization/69067
9229 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
9231 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
9234 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
9235 New peepholes to remove unneeded fild/fistp pairs.
9236 (define_peephole2 atomic_loaddi_fpu): Ditto.
9238 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9240 * predict.c (maybe_hot_frequency_p): Avoid division.
9242 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
9244 * doc/install.texi: Use https for shop.fsf.org.
9246 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9248 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
9249 likely_max_stmt_executions_int.
9251 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9253 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
9254 likely_max_stmt_executions_int.
9256 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9258 * profile.c (compute_branch_probabilities): Do not report hitrates
9260 (branch_prob): Report hitrates here.
9261 * predict.c (gimple_predict_edge): Do not assert profile status;
9262 fix formatting issues.
9264 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9266 * predict.c (edge_predicted_by_p): New function.
9267 (predict_paths_for_bb): Do not put multiple predictions of the same type
9270 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9272 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
9275 2016-05-28 Alan Modra <amodra@gmail.com>
9277 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
9279 2016-05-28 Alan Modra <amodra@gmail.com>
9281 PR rtl-optimization/71275
9282 * ira.c (ira): Free dominance info.
9284 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
9286 * doc/sourcebuild.texi: New address for upstream Go repository.
9288 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
9290 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
9291 (TARGET_ARM_V7M): Likewise.
9293 2016-05-26 Jeff Law <law@redhat.com>
9295 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
9296 (thread_across_edge): Remove calls to find_jump_threads_backwards.
9297 * passes.def: Add jump threading passes before DOM/VRP.
9298 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
9299 argument to a basic block from an edge. Remove tests which are
9301 (pass_data_thread_jumps, class pass_thread_jumps): New.
9302 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
9303 (make_pass_thread_jumps): Likewise.
9304 * tree-pass.h (make_pass_thread_jumps): Declare.
9306 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
9308 * config/visium/visium-protos.h (split_double_move): Rename into...
9309 (visium_split_double_move): ...this.
9310 (visium_split_double_add): Declare.
9311 * config/visium/visium.c (split_double_move): Rename into...
9312 (visium_split_double_move): ...this.
9313 (visium_split_double_add): New function.
9314 (visium_expand_copysign): Renumber operands for consistency.
9315 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
9316 (DFmode move splitter): Likewise.
9317 (*addi3_insn): Split by means of visium_split_double_add.
9318 (*adddi3_insn_flags): Delete.
9319 (*plus_plus_sltu<subst_arith>): New insn.
9320 (*subdi3_insn): Split by means of visium_split_double_add.
9321 (subdi3_insn_flags): Delete.
9322 (*minus_minus_sltu<subst_arith>): New insn.
9323 (*negdi2_insn): Split by means of visium_split_double_add.
9324 (*negdi2_insn_flags): Delete.
9326 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
9328 * configure.ac: Treat a --with-headers option without argument
9329 the same as the default (i.e. consult sys-include directory).
9330 * configure: Regenerate.
9332 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9334 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
9335 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
9337 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
9338 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
9340 2016-05-27 Jiong Wang <jiong.wang@arm.com>
9343 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
9344 tree-stdarg analysis results.
9345 (aarch64_setup_incoming_varargs): Likewise.
9347 2016-05-27 Jiong Wang <jiong.wang@arm.com>
9349 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
9350 va_list_gpr_counter_field and va_list_fpr_counter_field.
9352 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
9355 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
9356 * config/aarch64/aarch64.c
9357 (aarch64_cannot_change_mode_class): Remove function.
9358 * config/aarch64/aarch64-protos.h
9359 (aarch64_cannot_change_mode_class): Remove.
9361 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9363 * cfgloop.c (record_niter_bound): Record likely upper bounds.
9364 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
9365 get_likely_max_loop_iterations_int): New.
9366 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
9367 any_likely_upper_bound.
9368 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
9370 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
9371 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
9373 (unroll_loop_constant_iterations): Likewise.
9374 (unroll_loop_runtime_iterations): Likewise.
9375 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
9376 * lto-streamer-out.c (output_cfg): Likewise.
9377 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
9379 (canonicalize_loop_induction_variables): Dump likely upper bounds.
9380 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
9381 (likely_max_loop_iterations): New.
9382 (likely_max_loop_iterations_int): New.
9383 (likely_max_stmt_executions): New.
9384 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
9385 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
9386 likely_max_stmt_executions): Declare.
9388 2016-05-27 Marek Polacek <polacek@redhat.com>
9391 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
9393 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9395 * config/s390/s390.md (2x risbg splitters): Use
9396 reg_overlap_mentioned_p instead of rtx_equal_p.
9398 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
9400 * combine.c (make_compound_operation): Take known zero bits into
9401 account when checking for possible zero_extend.
9403 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9405 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
9406 Use const_int_operand for operand 2 predicate. Simplify expand code
9409 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
9412 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
9415 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9417 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
9418 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
9419 that returns CC_SESWPmode and CC_ZESWPmode.
9420 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
9422 (aarch64_rtx_costs): Likewise.
9424 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
9426 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
9427 for ISA 3.0 min/max support.
9428 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
9429 conditional move support.
9430 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
9431 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
9433 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
9434 conditional moves where the comparison type is different from move
9436 (fp_minmax): New code iterator for smin/smax.
9437 (minmax): New code attributes for min/max.
9438 (SMINMAX): Likewise.
9439 (smax<mode>3): Combine min, max insns into one insn using the
9440 fp_minmax code iterator. Add support for ISA 3.0 min/max
9441 instructions that don't need -ffast-math.
9442 (s<minmax><mode>3): Likewise.
9443 (smax<mode>3_vsx): Likewise.
9444 (smin<mode>3): Likewise.
9445 (s<minmax><mode>3_vsx): Likewise.
9446 (smin<mode>3_vsx): Likewise.
9447 (pre-VSX min/max splitters): Likewise.
9448 (s<minmax><mode>3_fpr): Likewise.
9449 (movsfcc): Rewrite floating point conditional moves to combine
9450 SFmode/DFmode into a single insn.
9451 (mov<mode>cc): Likewise.
9452 (movdfcc): Likewise.
9453 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
9454 SFDF2 iterators to handle all combinations.
9455 (fseldfsf4): Likewise.
9456 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
9457 (fseldfdf4): Likewise.
9458 (fselsfdf4): Likewise.
9459 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
9460 comparison instructions that set a 0/-1 mask, and use it for
9461 floating point conditional move via XXSEL.
9462 (fpmask<mode>): Likewise.
9463 (xxsel<mode>): Likewise.
9464 * config/rs6000/predicates.md (min_max_operator): Delete, no
9466 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
9467 instructions that generate a 0/-1 mask for use with XXSEL.
9468 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
9469 say whether floating point min/max is available, either through
9470 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
9471 (TARGET_MINMAX_DF): Likewise.
9473 2016-05-27 Alan Modra <amodra@gmail.com>
9475 PR rtl-optimization/71275
9476 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
9477 for update_equiv_regs and combine_and_move_insns.
9479 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
9481 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
9482 if_then_else or cond RTXes to calculate attribute value.
9483 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
9484 <attr "length_immediate>: Ditto.
9485 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
9486 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
9487 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
9488 <attr "type">: Ditto.
9489 <attr "prefix_data16">: Ditto.
9490 <attr "prefix_extra">: Ditto.
9491 <attr "length_immediate">: Ditto.
9492 <attr "prefix">: Ditto.
9493 (vec_set<mode>_0) <attr "isa">: Ditto.
9494 <attr "prefix_extra">: Ditto.
9495 <attr "length_immediate">: Ditto.
9496 <attr "prefix">: Ditto.
9497 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
9498 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
9499 (sse2_storelpd) <attr "prefix_data16">: Ditto.
9500 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
9501 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
9502 <attr "length_immediate">: Ditto.
9503 <attr "prefix">: Ditto.
9504 (sse2_movsd) <attr "length_immediate">: Ditto.
9505 <attr "prefix">: Ditto.
9506 (vec_concatv2df) <attr "isa">: Ditto.
9507 <attr "prefix">: Ditto.
9508 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
9509 (*vec_extractv2di_1) <attr "isa">: Ditto.
9510 <attr "type">: Ditto.
9511 <attr "length_immediate">: Ditto.
9512 <attr "prefix_rex">: Ditto.
9513 <attr "prefix_extra">: Ditto.
9514 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
9515 <attr "prefix_extra">: Ditto.
9516 <attr "length_immediate">: Ditto.
9517 (vec_concatv2di) <attr "isa">: Ditto.
9518 <attr "prefix_extra">: Ditto.
9519 <attr "length_immediate">: Ditto.
9520 <attr "prefix">: Ditto.
9522 2016-05-26 Martin Liska <mliska@suse.cz>
9524 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
9526 (operator+): Likewise.
9527 (operator-): Likewise.
9528 (comp_cost::operator+=): Likewise.
9529 (comp_cost::operator-=): Likewise.
9530 (comp_cost::operator/=): Likewise.
9531 (comp_cost::operator*=): Likewise.
9532 (operator<): Likewise.
9533 (operator==): Likewise.
9534 (operator<=): Likewise.
9536 (infinite_cost_p): Likewise.
9537 (add_costs): Likewise.
9538 (sub_costs): Likewise.
9539 (compare_costs): Likewise.
9540 (set_group_iv_cost): Use the newly introduced functions.
9541 (get_address_cost): Likewise.
9542 (get_shiftadd_cost): Likewise.
9543 (force_expr_to_var_cost): Likewise.
9544 (split_address_cost): Likewise.
9545 (ptr_difference_cost): Likewise.
9546 (difference_cost): Likewise.
9547 (get_computation_cost_at): Likewise.
9548 (determine_group_iv_cost_generic): Likewise.
9549 (determine_group_iv_cost_address): Likewise.
9550 (determine_group_iv_cost_cond): Likewise.
9551 (autoinc_possible_for_pair): Likewise.
9552 (determine_group_iv_costs): Likewise.
9553 (cheaper_cost_pair): Likewise.
9554 (iv_ca_recount_cost): Likewise.
9555 (iv_ca_set_no_cp): Likewise.
9556 (iv_ca_set_cp): Likewise.
9557 (iv_ca_cost): Likewise.
9558 (iv_ca_new): Likewise.
9559 (iv_ca_dump): Likewise.
9560 (iv_ca_narrow): Likewise.
9561 (iv_ca_prune): Likewise.
9562 (iv_ca_replace): Likewise.
9563 (try_add_cand_for): Likewise.
9564 (try_improve_iv_set): Likewise.
9565 (find_optimal_iv_set): Likewise.
9567 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
9569 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
9570 that internal functions will clobber all caller-saved registers.
9572 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
9574 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
9575 Return a better case_values_threshold when optimizing.
9577 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
9579 * config/aarch64/aarch64-simd.md (aarch64_combinez):
9580 Add ? to integer variant.
9581 (aarch64_combinez_be): Likewise.
9583 2016-05-26 Jakub Jelinek <jakub@redhat.com>
9585 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
9586 instead of x constraint.
9587 (vcvtps2ph256<mask_name>): Likewise.
9589 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
9590 alternative. Formatting fix.
9592 * config/i386/sse.md
9593 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
9595 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
9596 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
9597 maybe_evex prefix instead of vex.
9598 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
9599 EXT_REX_SSE_REG_P (op0) case in the splitter.
9601 2016-05-25 Jeff Law <law@redhat.com>
9603 PR tree-optimization/71272
9604 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
9605 Update comments. Add test for empty path.
9607 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
9609 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
9610 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
9611 special case builtin.
9612 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
9613 code for ALTIVEC_BUILTIN_VEC_CMPNE.
9614 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
9615 for __builtin_vec_cmpne.
9617 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
9619 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
9620 redundant test and bail out if the type of the new operand is not
9621 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
9623 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
9625 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
9626 (x_ix86_target_flags_explicit): Remove.
9627 * config/i386/i386.c (ix86_function_specific_save): Do not copy
9628 x_ix86_target_flags_explicit.
9629 (ix86_function_specific_restore): Ditto.
9631 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
9632 H.J. Lu <hongjiu.lu@intel.com>
9635 * common/config/i386/i386-common.c
9636 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
9637 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
9638 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
9639 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
9640 (-mgeneral-regs-only): Add new option.
9641 * config/i386/i386.c (ix86_option_override_internal): Don't enable
9642 x87 instructions if only general registers are allowed.
9643 (ix86_target_string): Add ix86_flags argument. Handle additional
9644 flags options through ix86_flags argument. Update all callers.
9645 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
9647 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9649 PR rtl-optimization/66940
9650 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
9651 decrementing desired_val will not overflow before performing these
9654 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
9656 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
9657 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
9658 * config/i386/i386.c (enum ix86_builtins): Add
9659 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
9660 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
9661 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
9662 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
9663 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
9664 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
9665 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
9666 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
9667 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
9668 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
9669 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
9670 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
9671 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
9672 __builtin_ia32_cvtps2dq512_mask.
9673 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
9674 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
9675 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
9676 * config/i386/sse.md
9677 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
9679 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
9680 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
9682 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
9683 (avx512f_vec_pack_sfix_v8df): New define_expand.
9684 (avx512f_roundpd512): Rename to ...
9685 (avx512f_round<castmode>512): ... this. Change iterator.
9686 (avx512f_roundps512_sfix): New define_expand.
9687 (round<mode>2_sfix): Change iterator.
9689 2016-05-25 Nick Clifton <nickc@redhat.com>
9691 * config/msp430/msp430.c (msp430_attr): Produce an error if a
9692 static interrupt handler is detected.
9693 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
9694 default linker script.
9695 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
9696 the low part of a symbolic pointer.
9698 2016-05-25 Richard Biener <rguenther@suse.de>
9700 PR tree-optimization/71261
9701 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
9702 interesting stmt instead of immediate uses when looking
9703 for the use operand to replace.
9705 2016-05-25 Martin Liska <mliska@suse.cz>
9707 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
9709 2016-05-25 Richard Biener <rguenther@suse.de>
9711 PR tree-optimization/71264
9712 * tree-vect-stmts.c (vect_init_vector): Properly deal with
9715 2016-05-25 Martin Liska <mliska@suse.cz>
9717 PR tree-optimization/71239
9718 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
9719 if DECL_SIZE is NULL.
9721 2016-05-25 Richard Biener <rguenther@suse.de>
9723 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
9724 * tree-if-conv.c (pass_data_if_conversion): Use it.
9726 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
9728 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
9729 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
9730 * varpool.c (varpool_node::get_availability): Likewise.
9732 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9734 * config/rs6000/altivec.md (VNEG iterator): New iterator for
9735 VNEGW/VNEGD instructions.
9736 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
9737 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
9738 support for ISA 3.0 VNEGW/VNEGD instructions.
9740 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
9742 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
9743 pointers inside OACC_DATA regions.
9744 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
9745 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
9746 (gimplify_adjust_omp_clauses): Fix typo in comment.
9748 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9750 * config/rs6000/altivec.md (VParity): New mode iterator for vector
9751 parity built-in functions.
9752 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
9754 (p9v_parity<mode>2): Likewise.
9755 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
9757 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
9758 (parity<mode>2): ISA 3.0 expander for vector parity.
9759 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
9761 (BU_P9_64BIT_MISC_0): Likewise.
9762 (BU_P9_MISC_0): Likewise.
9763 (BU_P9V_AV_1): Likewise.
9764 (BU_P9V_AV_2): Likewise.
9765 (BU_P9V_AV_3): Likewise.
9766 (BU_P9V_AV_P): Likewise.
9767 (BU_P9V_VSX_1): Likewise.
9768 (BU_P9V_OVERLOAD_1): Likewise.
9769 (BU_P9V_OVERLOAD_2): Likewise.
9770 (BU_P9V_OVERLOAD_3): Likewise.
9771 (VCTZB): Add vector count trailing zeros support.
9775 (VPRTYBD): Add vector parity support.
9776 (VPRTYBQ): Likewise.
9777 (VPRTYBW): Likewise.
9778 (VCTZ): Add overloaded vector count trailing zeros support.
9779 (VPRTYB): Add overloaded vector parity support.
9780 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9781 overloaded vector count trailing zeros and parity instructions.
9782 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
9783 vector parity support.
9784 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
9785 trailing zeros support.
9786 (vec_cntlz): Likewise.
9787 (vec_vctzb): Likewise.
9788 (vec_vctzd): Likewise.
9789 (vec_vctzh): Likewise.
9790 (vec_vctzw): Likewise.
9791 (vec_vprtyb): Add ISA 3.0 vector parity support.
9792 (vec_vprtybd): Likewise.
9793 (vec_vprtybw): Likewise.
9794 (vec_vprtybq): Likewise.
9795 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9796 the ISA 3.0 vector count trailing zeros and vector parity built-in
9799 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
9801 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
9802 when there is stmt_to_insert.
9804 2016-05-24 Martin Sebor <msebor@redhat.com>
9807 * tree.h (complete_or_array_type_p): New inline function.
9809 2016-05-24 Jakub Jelinek <jakub@redhat.com>
9811 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
9812 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
9813 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
9815 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
9816 Limit 1st alternative to noavx isa, split 2nd alternative into one
9817 noavx and one avx alternative, use *x and Bm in the former and
9818 x and m in the latter.
9820 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
9821 of sse4 for the first alternative, drop %v from the template
9822 and d operand modifier. Split second alternative into one sse4_noavx
9823 and one avx alternative, use *x instead of *v in the former and v
9824 instead of *v in the latter.
9825 (*sse4_1_extractps): Use noavx isa instead of * for the first
9826 alternative, drop %v from the template. Split second alternative into
9827 one noavx and one avx alternative, use *x instead of *v in the
9828 former and v instead of *v in the latter.
9829 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
9830 with noavx and the last one with avx.
9831 (sse4_1_phminposuw): Guard first alternative with noavx isa,
9832 split the second one into one noavx and one avx alternative,
9833 use *x and Bm in the former and x and m in the latter one.
9834 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
9837 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
9838 first two alternatives to noavx, use *x instead of *v in the second
9839 one, add avx alternative without *.
9840 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
9841 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
9842 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
9844 2016-05-24 Jeff Law <law@redhat.com>
9846 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
9847 New function, extracted from...
9848 (fsm_find_control_statement_thread_paths): Here. Use the new function.
9849 Allow simple copies and constant initializations in the SSA chain.
9851 2016-05-24 Marek Polacek <polacek@redhat.com>
9854 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
9857 2016-05-24 Jakub Jelinek <jakub@redhat.com>
9860 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
9861 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
9862 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
9863 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
9864 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
9866 2016-05-24 Richard Biener <rguenther@suse.de>
9868 PR tree-optimization/71240
9869 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
9872 2016-05-24 Richard Biener <rguenther@suse.de>
9874 PR tree-optimization/71230
9875 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
9877 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9879 * tree-vectorizer.h (vectorizable_comparison): Delete.
9880 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
9881 PURE_SLP_STMT check.
9882 * tree-vect-stmts.c (vectorizable_call): Likewise.
9883 (vectorizable_simd_clone_call): Likewise.
9884 (vectorizable_conversion): Likewise.
9885 (vectorizable_assignment): Likewise.
9886 (vectorizable_shift): Likewise.
9887 (vectorizable_operation): Likewise.
9888 (vectorizable_load): Likewise.
9889 (vectorizable_condition): Likewise.
9890 (vectorizable_store): Likewise. Assert that we don't have
9892 (vectorizable_comparison): Make static. Remove redundant
9893 PURE_SLP_STMT check.
9894 (vect_transform_stmt): Assert that we always have an slp_node
9897 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9899 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
9900 operands[2] against 1 with comparison against CONST1_RTX.
9901 (<shift>di3_neon): Likewise.
9902 * config/arm/predicates.md (const0_operand): Replace with comparison
9905 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9907 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
9908 operands[2] against 1 with comparison against CONST1_RTX.
9909 (ashrdi3): Likewise.
9910 (lshrdi3): Likewise.
9911 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
9913 (ashrsi3): Likewise.
9914 (lshrsi3): Likewise.
9915 (rotrsi3): Likewise.
9916 (define_split above *compareqi_eq0): Likewise.
9917 (define_split above "prologue"): Likewise.
9918 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
9919 * config/arm/predicates.md (shift_operator): Likewise.
9920 (shift_nomul_operator): Likewise.
9921 (sat_shift_operator): Likewise.
9922 (thumb1_cmp_operand): Likewise.
9923 (const_neon_scalar_shift_amount_operand): Replace manual range
9924 check with IN_RANGE.
9925 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
9926 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
9928 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9930 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
9931 with HOST_WIDE_INT_1.
9933 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
9934 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
9935 (arm_canonicalize_comparison): Likewise.
9936 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
9938 (thumb1_size_rtx_costs): Likewise.
9939 (vfp_const_double_index): Replace cast of 1 to unsigned
9940 HOST_WIDE_INT with HOST_WIDE_INT_1U.
9941 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
9943 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
9944 HOST_WIDE_INT with HOST_WIDE_INT_1U.
9945 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
9946 HOST_WIDE_INT with HOST_WIDE_INT_1.
9948 2016-05-24 Marek Polacek <polacek@redhat.com>
9950 * tree-cfg.h (should_remove_lhs_p): New predicate.
9951 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
9952 * gimplify.c (gimplify_modify_expr): Likewise.
9953 * tree-cfg.c (verify_gimple_call): Likewise.
9954 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
9955 * gimple-fold.c: Include "tree-cfg.h".
9956 (gimple_fold_call): Use should_remove_lhs_p.
9958 2016-05-24 Richard Biener <rguenther@suse.de>
9960 PR tree-optimization/71253
9961 * cfganal.h (control_dependences): Make robust against edge
9963 (control_dependences::control_dependences): Remove edge_list argument.
9964 (control_dependences::get_edge): Remove.
9965 (control_dependences::get_edge_src): Add.
9966 (control_dependences::get_edge_dest): Likewise.
9967 (control_dependences::m_el): Make a vector of edge src/dest index.
9968 * cfganal.c (control_dependences::find_control_dependence): Adjust.
9969 (control_dependences::control_dependences): Likewise.
9970 (control_dependences::~control_dependence): Likewise.
9971 (control_dependences::get_edge): Remove.
9972 (control_dependences::get_edge_src): Add.
9973 (control_dependences::get_edge_dest): Likewise.
9974 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
9976 (perform_tree_ssa_dce): Adjust.
9977 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
9979 (pass_loop_distribution::execute): Adjust. Do loop destroying
9980 conditional on changed.
9982 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9985 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
9986 return. Reindent transformation comment and mention the ARM state
9989 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
9992 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
9993 after build_and_add_sum creates new use stmt.
9995 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9997 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
9998 load_lanes/grouped_load classification comes first. Don't check
9999 whether the vectorization factor is a multiple of the group size
10002 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
10004 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
10005 GROUP_GAP for single-element interleaving.
10006 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
10009 2016-05-24 Richard Biener <rguenther@suse.de>
10011 PR middle-end/70434
10013 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
10014 bases which are accessed with non-invariant indices.
10015 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
10016 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
10018 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
10020 PR middle-end/71170
10021 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
10022 (add_to_ops_vec): Add stmt_to_insert.
10023 (add_repeat_to_ops_vec): Init stmt_to_insert.
10024 (insert_stmt_before_use): New.
10025 (transform_add_to_multiply): Remove mult_stmt insertion and add it
10027 (get_ops): Init stmt_to_insert.
10028 (maybe_optimize_range_tests): Likewise.
10029 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
10030 (rewrite_expr_tree_parallel): Likewise.
10031 (reassociate_bb): Likewise.
10033 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10036 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
10037 ISA 3.0 xxperm fusion alternative.
10038 (altivec_vperm_v8hiv16qi): Likewise.
10039 (altivec_vperm_<mode>_uns_internal): Likewise.
10040 (vperm_v8hiv4si): Likewise.
10041 (vperm_v16qiv8hi): Likewise.
10043 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
10044 Kelvin Nilsen <kelvin@gcc.gnu.org>
10046 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
10047 vpermr/xxpermr on ISA 3.0.
10048 (altivec_expand_vec_perm_le): Likewise.
10049 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
10050 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
10053 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
10055 * config/i386/i386.h (IS_STACK_MODE): Enable for
10056 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
10057 SSE_FLOAT_MODE_P macros.
10058 * config/i386/i386.c (ix86_preferred_reload_class): Use
10059 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
10060 Cleanup regclass processing for CONST_DOUBLE_P.
10061 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
10062 (ix86_rtx_costs): Remove redundant TARGET_80387 check
10063 with IS_STACK_MODE macro.
10064 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
10066 (*movdf_internal): Use IS_STACK_MODE macro.
10067 (*movsf_internal): Ditto.
10069 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
10071 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
10072 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
10074 2016-05-23 Jeff Law <law@redhat.com>
10076 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
10078 (fsm_find_control_statement_thread_paths): Call it.
10080 2016-05-23 Martin Jambor <mjambor@suse.cz>
10083 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
10084 from_global_constant if t is not NULL.
10086 2016-05-23 Marek Polacek <polacek@redhat.com>
10089 * common.opt (Wswitch-unreachable): New option.
10090 * doc/invoke.texi: Document -Wswitch-unreachable.
10091 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
10094 2016-05-23 Bin Cheng <bin.cheng@arm.com>
10096 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
10097 TMR_INDEX is non-NULL.
10099 2016-05-23 Richard Biener <rguenther@suse.de>
10101 PR tree-optimization/71230
10102 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
10103 (try_special_add_to_ops): ... here. Always test for single-use.
10105 2016-05-23 Martin Jambor <mjambor@suse.cz>
10107 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
10108 default block if a PHI node in the original one would be resized.
10110 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
10112 PR tree-optimization/58135
10113 * tree-vect-slp.c: When group size is not multiple
10114 of vector size, allow splitting of store group at
10117 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
10119 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
10121 2016-05-22 Jakub Jelinek <jakub@redhat.com>
10123 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
10124 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
10125 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
10128 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
10129 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
10130 v constraint instead of x and vinserti32x4 insn.
10132 * config/i386/sse.md (i128vldq): New mode iterator.
10133 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
10134 avx512dq and avx512vl alternatives.
10136 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
10137 constraint, use maybe_evex prefix instead of vex.
10138 (vec_dupv4sf): Use v constraint instead of x for output
10139 operand except for noavx alternative, use Yv constraint
10140 instead of x for input. Use maybe_evex prefix instead of vex.
10141 (*vec_dupv4si): Likewise.
10142 (*vec_dupv2di): Likewise.
10144 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
10146 PR middle-end/40921
10147 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
10148 (linearize_expr_tree): Call try_special_add_to_ops.
10149 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
10151 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10153 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
10154 to computed stack_usage.
10156 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10159 * config/avr/avr.md (define_expand "mov<mode>"): If the source
10160 operand is subreg (symbol_ref) then move the symbol ref to register.
10162 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
10164 * tree.c (array_at_struct_end_p): Look through MEM_REF.
10166 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
10168 PR middle-end/71179
10169 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
10172 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
10174 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
10175 ranges by calling get_single_symbol and tidy up. Look more closely
10176 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
10178 2016-05-20 Jeff Law <law@redhat.com>
10180 * bitmap.c (bitmap_find_bit): Remove useless test.
10182 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
10184 * function.c (thread_prologue_and_epilogue_insns): Commit the
10185 insertion of the epilogue.
10187 2016-05-20 Martin Jambor <mjambor@suse.cz>
10189 PR tree-optimization/70884
10190 * tree-sra.c (initialize_constant_pool_replacements): Do not check
10191 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
10192 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
10193 of constant pool data as a reason for scalarization.
10195 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
10197 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
10198 for naked functions.
10199 (thumb1_expand_prologue): Likewise.
10201 2016-05-20 Nathan Sidwell <nathan@acm.org>
10203 * config/nvptx/nptx.c (nvptx_option_override): Only set
10204 flag_toplevel_reorder, if not explicitly specified. Set
10205 flag_no_common, unless explicitly specified.
10207 2016-05-20 David Malcolm <dmalcolm@redhat.com>
10209 * calls.c (can_implement_as_sibling_call_p): Mark param
10210 reg_parm_stack_space with ATTRIBUTE_UNUSED.
10212 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
10214 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
10215 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
10216 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
10218 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
10219 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
10220 and CASE_CONST_ANY.
10222 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
10224 * config/nvptx/nvptx.md (sincossf3): New pattern.
10226 2016-05-20 David Malcolm <dmalcolm@redhat.com>
10228 * calls.c (maybe_complain_about_tail_call): New function.
10229 (initialize_argument_information): Call
10230 maybe_complain_about_tail_call when clearing *may_tailcall.
10231 (can_implement_as_sibling_call_p): Call
10232 maybe_complain_about_tail_call when returning false.
10233 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
10234 ensure try_tail_call is set. Call maybe_complain_about_tail_call
10235 if tail-call optimization fails.
10236 * cfgexpand.c (expand_call_stmt): Initialize
10237 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
10238 * gimple-pretty-print.c (dump_gimple_call): Dump
10239 gimple_call_must_tail_p.
10240 * gimple.c (gimple_build_call_from_tree): Call
10241 gimple_call_set_must_tail with the value of
10242 CALL_EXPR_MUST_TAIL_CALL.
10243 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
10244 (gimple_call_set_must_tail): New function.
10245 (gimple_call_must_tail_p): New function.
10246 * print-tree.c (print_node): Update printing of TREE_STATIC
10247 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
10248 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
10249 trailing comment listing applicable flags.
10250 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
10252 2016-05-20 David Malcolm <dmalcolm@redhat.com>
10254 * calls.c (expand_call): Move "Rest of purposes for tail call
10255 optimizations to fail" to...
10256 (can_implement_as_sibling_call_p): ...this new function, and
10257 split into multiple "if" statements.
10259 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
10261 * cfgloop.h (expected_loop_iterations_unbounded,
10262 expected_loop_iterations): Unconstify.
10263 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
10264 profile with known upper bound; return 3 when profile is absent.
10265 (expected_loop_iterations): Update.
10267 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
10269 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
10270 and get_max_loop_iterations_int.
10272 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
10274 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
10275 realistic upper bounds here.
10277 2016-05-20 Jakub Jelinek <jakub@redhat.com>
10280 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
10281 calls if the LHS is variable length or has addressable type.
10282 If targets[0]->decl is a noreturn call with void return type and
10283 zero arguments, adjust fntype and remove lhs in that case.
10285 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
10287 PR tree-optimization/71079
10288 PR tree-optimization/71206
10289 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
10291 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10293 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
10294 (get_vec_alignment_for_array_decl): Likewise.
10295 (get_vec_alignment_for_record_decl): Likewise.
10296 (increase_alignment::execute): Move code to find alignment to
10297 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
10298 (type_align_map): New hash_map.
10300 2016-05-20 Richard Guenther <rguenther@suse.de>
10302 PR tree-optimization/29756
10303 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
10304 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
10305 * fold-const.c (operand_equal_p): Likewise.
10306 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
10307 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
10308 * tree-inline.c (estimate_operator_cost): Likewise.
10309 * tree-pretty-print.c (dump_generic_node): Likewise.
10310 * tree-ssa-operands.c (get_expr_operands): Likewise.
10311 * cfgexpand.c (expand_debug_expr): Likewise.
10312 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
10313 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
10314 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
10315 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
10316 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
10317 (execute_update_addresses_taken): Do it.
10319 2016-05-20 Richard Biener <rguenther@suse.de>
10321 PR tree-optimization/71185
10322 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
10323 register operations.
10325 2016-05-20 Richard Biener <rguenther@suse.de>
10327 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
10328 gimple_seq_add_seq_without_update.
10329 (release_bb_predicate): Assert we have no operands to free.
10330 (if_convertible_loop_p_1): Calculate post dominators later.
10331 Do not free BB predicates here.
10332 (combine_blocks): Do not recompute BB predicates.
10333 (version_loop_for_if_conversion): Save BB predicates around
10336 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10338 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
10339 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
10340 code. Ignore sibcalls on EDGE_IGNORE edges.
10341 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
10342 on edges for sibcalls that run without prologue. The rest of the
10343 function is combined from...
10344 (fix_fake_fallthrough_edge): ... this, and ...
10345 (try_shrink_wrapping): ... a part of this. Remove the bb_with
10346 function argument, make it a local variable.
10348 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
10350 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
10351 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
10352 for 32-bit mode and SEH for 64-bit.
10353 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
10354 TARGET_64BIT_DEFAULT.
10356 2016-05-19 Ryan Burn <contact@rnburn.com>
10358 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
10359 * gengtype.c (open_base_files): Add cilk.h to ifiles.
10361 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
10363 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
10364 force pending loads from memory.
10366 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
10368 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
10369 (UNSPEC_DARN_32): New unspec constant.
10370 (UNSPEC_DARN_RAW): New unspec constant.
10371 (darn_32): New instruction.
10372 (darn_raw): New instruction.
10373 (darn): New instruction.
10374 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
10375 support and documentation for this macro.
10376 (BU_P9_MISC_1): New macro definition.
10377 (BU_P9_64BIT_MISC_0): New macro definition.
10378 (BU_P9_MISC_0): New macro definition.
10379 (darn_32): New builtin definition.
10380 (darn_raw): New builtin definition.
10381 (darn): New builtin definition.
10382 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
10383 RS6000_BUILTIN_0 directives to surround each occurrence of
10384 #include "rs6000-builtin.def".
10385 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
10386 RS6000_BTM_64BIT flags to the returned mask, depending on
10388 (def_builtin): Correct an error in the assignments made to the
10389 debugging variable attr_string.
10390 (rs6000_expand_builtin): Add support for no-operand built-in
10392 (builtin_function_type): Remove fatal_error assertion that is no
10394 (rs6000_common_init_builtins): Add support for no-operand built-in
10396 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
10398 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
10400 (RS6000_BTM_64BIT): New macro definition.
10401 * doc/extend.texi: Document __builtin_darn (void),
10402 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
10405 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
10407 * tree-vect-loop.c (vect_analyze_loop_2): Use also
10408 max_loop_iterations_int.
10410 2016-05-19 Marek Polacek <polacek@redhat.com>
10412 PR tree-optimization/71031
10413 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
10414 condition and adjust the code a bit.
10416 2016-05-19 Martin Liska <mliska@suse.cz>
10418 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
10419 auto_vec instead of vec.
10421 2016-05-19 Martin Liska <mliska@suse.cz>
10423 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
10425 2016-05-19 Martin Liska <mliska@suse.cz>
10427 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
10429 2016-05-19 Martin Liska <mliska@suse.cz>
10431 * ipa-pure-const.c (set_function_state): Remove an existing
10433 (remove_node_data): Do not free it as it's released
10434 in set_function_state.
10436 2016-05-19 Martin Liska <mliska@suse.cz>
10438 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
10441 2016-05-19 Martin Liska <mliska@suse.cz>
10443 * omp-simd-clone.c (simd_clone_adjust): Release vector.
10445 2016-05-19 Martin Liska <mliska@suse.cz>
10447 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
10448 an auto_vec instead of re-creating it.
10450 2016-05-19 Martin Liska <mliska@suse.cz>
10452 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
10453 auto_vec instead of vec.
10455 2016-05-19 Martin Liska <mliska@suse.cz>
10457 * lto-section-in.c (lto_get_section_data): Call
10458 lto_check_version with additional argument.
10459 * lto-streamer.c (lto_check_version): Add new argument.
10460 * lto-streamer.h (lto_check_version): Likewise.
10462 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10464 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
10465 Don't add cost of inner memory when handling sign-extended loads.
10467 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
10469 PR rtl-optimization/71148
10470 * cse.c (cse_main): Free dominance info.
10471 (rest_of_handle_cse): Don't free dominance info.
10472 (rest_of_handle_cse2): Likewise.
10473 (rest_of_handle_cse_after_global_opts): Likewise.
10475 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10478 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
10479 NULL_TREE early if NEON is not available. Remove now redundant check
10480 in ARM_CHECK_BUILTIN_MODE.
10482 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
10485 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
10486 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
10487 * doc/cpp.texi: Document new macros.
10489 2016-05-19 Bin Cheng <bin.cheng@arm.com>
10491 PR tree-optimization/69848
10492 * tree-vect-loop.c (vectorizable_reduction): Don't factor
10493 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
10495 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10497 * function.c (thread_prologue_and_epilogue_insn): Move the
10498 "goto epilogue_done" one block later.
10500 2016-05-19 Richard Biener <rguenther@suse.de>
10502 PR tree-optimization/70729
10503 * passes.def: Move LIM pass before PRE. Remove no longer
10504 required copyprop and move first DCE out of the loop pipeline.
10506 2016-05-18 David Malcolm <dmalcolm@redhat.com>
10509 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
10510 (OBJS-libcommon-target): ...here.
10511 * opts-common.c: Include spellcheck.h.
10512 (cmdline_handle_error): Build a vec of valid options and use it
10513 to suggest provide hints for misspelled arguments.
10515 2016-05-18 Jakub Jelinek <jakub@redhat.com>
10518 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
10519 lhs if it has TREE_ADDRESSABLE type.
10521 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
10524 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
10525 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
10527 2016-05-18 Martin Jambor <mjambor@suse.cz>
10530 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
10531 input for NOP_EXPR pass-through functions.
10532 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
10533 aggregate global constant VAR_DECLs in constant jump functions.
10535 2016-05-18 Martin Jambor <mjambor@suse.cz>
10538 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
10539 from TREE_READONLY parameters.
10541 2016-05-18 Martin Jambor <mjambor@suse.cz>
10544 * cgraph.h (cgraph_indirect_call_info): New field
10545 guaranteed_unmodified.
10546 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
10547 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
10549 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
10550 pass the parameter value to ipa_find_agg_cst_for_param.
10551 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
10552 guaranteed_unmodified, store AA results there instead of bailing out
10554 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
10555 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
10556 (find_constructor_constant_at_offset): New function.
10557 (ipa_find_agg_cst_from_init): Likewise.
10558 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
10559 static initializers of contants, report back through a new paameter
10560 from_global_constant if that was the case.
10561 (try_make_edge_direct_simple_call): Also pass parameter value to
10562 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
10564 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
10565 (ipa_read_indirect_edge_info): Likewise.
10566 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
10567 (ipa_load_from_parm_agg): Likewise.
10569 2016-05-18 Jiong Wang <jiong.wang@arm.com>
10571 PR rtl-optimization/71150
10572 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
10575 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
10578 * config/rs6000/constraints.md (wE constraint): New constraint
10579 for a vector constant that can be loaded with XXSPLTIB.
10580 (wM constraint): New constraint for a vector constant of a 1's.
10581 (wS constraint): New constraint for a vector constant that can be
10582 loaded with XXSPLTIB and a vector sign extend instruction.
10583 * config/rs6000/predicates.md (xxspltib_constant_split): New
10584 predicates for wE/wS constraints.
10585 (xxspltib_constant_nosplit): Likewise.
10586 (easy_vector_constant): Add support for constants that can be
10587 loaded via XXSPLTIB.
10588 (all_ones_constant): New predicate for vector constant with all
10590 (splat_input_operand): Add support for ISA 3.0 word splat operations.
10591 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
10592 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
10593 instruction and possibly with a sign extension.
10594 (output_vec_const_move): Add support for XXSPLTIB. If we are
10595 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
10596 instead of XXLXOR/XXLORC.
10597 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
10599 (rs6000_legitimize_reload_address): Likewise.
10600 (rs6000_output_move_128bit): Use output_vec_const_move to emit
10602 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
10603 combine VSX_M and VSX_M2 into one iterator.
10604 (VSX_M2): Likewise.
10605 (VSINT_84): New iterators for loading constants with XXSPLTIB.
10606 (VSINT_842): Likewise.
10607 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
10608 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
10609 XXSPLTIB instruction.
10610 (xxspltib_<mode>_nosplit): Likewise.
10611 (xxspltib_<mode>_split): New insn to load up constants with
10612 XXSPLTIB and a sign extend instruction.
10613 (vsx_mov<mode>): Replace single move that handled all vector types
10614 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
10615 moves (when -mvsx-timode is in effect) into the main vector
10616 moves. Eliminate separate moves for <VSr> <VSa>, where the
10617 preferred register class (<VSr>) is listed first, and the
10618 secondary register class (<VSa>) is listed second with a '?' to
10619 discourage use. Prefer loading 0/-1 in any VSX register for ISA
10620 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
10621 that if the register was involved in a slow operation, the
10622 clear/set operation does not wait for the slow operation to
10623 finish. Adjust the length attributes for 32-bit mode. Use
10624 rs6000_output_move_128bit and drop the use of the string
10625 instructions for 32-bit movti when -mvsx-timode is in effect. Use
10626 spacing so that the alternatives and attributes don't generate
10627 long lines, and put things in columns, so that it is easier to
10628 match up the operands and attributes with the insn alternatives.
10629 (vsx_mov<mode>_64bit): Likewise.
10630 (vsx_mov<mode>_32bit): Likewise.
10631 (vsx_movti_64bit): Fold movti into normal vector moves.
10632 (vsx_movti_32bit): Likewise.
10633 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
10634 splat instructions.
10635 (vsx_splat_v4si_internal): Likewise.
10636 (vsx_splat_v4sf_internal): Likewise.
10637 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
10638 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
10639 extend vector elements.
10640 (vsx_sign_extend_hi_<mode>): Likewise.
10641 (vsx_sign_extend_si_v2di): Likewise.
10642 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
10644 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
10645 constraints. Add trailing period to wL documentation.
10647 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
10649 PR middle-end/71020
10650 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
10651 * tree-dfa.c (replace_abnormal_ssa_names): New function.
10652 * tree-call-cdce.c: Include tree-dfa.h.
10653 (can_guard_call_p): New function, extracted from...
10654 (can_use_internal_fn): ...here.
10655 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
10657 (shrink_wrap_one_built_in_call): Likewise.
10658 (use_internal_fn): Likewise.
10659 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
10660 and return void. Call replace_abnormal_ssa_names.
10661 (pass_call_cdce::execute): Check can_guard_call_p during the
10662 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
10663 will always change something.
10665 2016-05-18 Martin Jambor <mjambor@suse.cz>
10668 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
10669 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
10671 2016-05-18 Martin Jambor <mjambor@suse.cz>
10674 * ipa-inline.h (condition): New field size.
10675 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
10676 for comaprison and store it into the new condition.
10677 (evaluate_conditions_for_known_args): Use condition size to check
10678 access sizes for all but CHANGED conditions.
10679 (unmodified_parm_1): New parameter size_p, store access size into it.
10680 (unmodified_parm): Likewise.
10681 (unmodified_parm_or_parm_agg_item): Likewise.
10682 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
10683 (set_cond_stmt_execution_predicate): Extract access sizes and store
10684 them to conditions.
10685 (set_switch_stmt_execution_predicate): Likewise.
10686 (will_be_nonconstant_expr_predicate): Likewise.
10687 (will_be_nonconstant_predicate): Likewise.
10688 (inline_read_section): Stream condition size.
10689 (inline_write_summary): Likewise.
10691 2016-05-18 Richard Biener <rguenther@suse.de>
10693 * tree-ssa-loop-im.c (determine_max_movement): Properly add
10694 condition cost to PHI cost instead of total_cost.
10696 2016-05-18 Martin Liska <mliska@suse.cz>
10699 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
10702 2016-05-18 Richard Biener <rguenther@suse.de>
10704 * lto-streamer.h (LTO_major_version): Bump to 6.
10706 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
10708 * function.c (make_split_prologue_seq, make_prologue_seq,
10709 make_epilogue_seq): New functions, factored out from...
10710 (thread_prologue_and_epilogue_insns): Here.
10712 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
10714 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
10715 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
10716 of before. Add a comment.
10718 2016-05-18 Bin Cheng <bin.cheng@arm.com>
10720 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
10721 expression pointer, not pointer to the pointer.
10723 2016-05-18 Jakub Jelinek <jakub@redhat.com>
10725 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
10726 (avx2_pbroadcast<mode>): Add another alternative with v instead
10727 of x constraints in it, using <pbroadcast_evex_isa> isa.
10728 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
10730 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
10731 constraint x instead of v in second alternative, add avx512bw
10734 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
10735 constraint x instead of v in second alternative, add avx512bw
10738 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
10739 constraint x instead of v in second alternative, add avx512bw
10742 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
10743 avx512bw alternative.
10745 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
10747 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
10748 array to 128 chars.
10749 (define_insn "*andnottf3"): Ditto.
10750 (define_insn "*<code><mode>3"/any_logic): Ditto.
10751 (define_insn "*<code>tf3"/any_logic): Ditto.
10752 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
10753 operand to block AVX-512VL insn variant emit when it is not enabled.
10755 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
10757 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
10758 constraint fot SF mode.
10760 2016-05-18 Petr Murzin <petr.murzin@intel.com>
10761 Kirill Yukhin <kirill.yukhin@intel.com>
10763 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
10765 (define_insn "rsqrt14<mode>"): Ditto.
10766 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
10767 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
10768 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
10769 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
10770 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
10772 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
10773 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
10774 * config/i386/i386.c (ix86_print_operand): Expand check for size
10775 override codes for Intel syntax.
10777 2016-05-18 Richard Biener <rguenther@suse.de>
10779 PR tree-optimization/71168
10780 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
10781 initialization earlier.
10783 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
10785 * config/aarch64/aarch64-simd.md
10786 (aarch64_reduc_plus_internal<mode>): Rename to...
10787 (reduc_plus_scal): ...This, and remove previous implementation.
10789 2016-05-18 Richard Biener <rguenther@suse.de>
10791 * passes.def: Put late dse and cd_dce in canonical order.
10793 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
10795 * ipa-inline-transform.c (preserve_function_body_p): Look for
10796 first non-thunk clone.
10797 (save_function_body): Save into first non-thunk.
10798 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
10800 (lto_output_node): Inline thunks don't need body in every
10802 * lto-streamer-in.c: Do not fixup thunk clones.
10803 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
10805 * tree-inline.c (copy_bb): Be prepared for target node to be new after
10808 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
10810 PR middle-end/63586
10811 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
10812 (reassociate_bb): Call transform_add_to_multiply.
10814 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
10816 * config/aarch64/aarch64.c (all_extensions): Removed unused
10819 2016-05-17 Nathan Sidwell <nathan@acm.org>
10821 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
10822 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
10824 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
10826 PR tree-optimization/54579
10827 PR middle-end/55299
10828 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
10830 2016-05-17 Marek Polacek <polacek@redhat.com>
10833 * tree-inline.c (expand_call_inline): Call
10834 maybe_remove_unused_call_args.
10836 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
10838 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
10839 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
10840 * doc/md.texi (fmin@var{m}3): Likewise.
10842 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
10844 * match.pd (X & C): New transformation.
10846 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
10848 * match.pd (~X & Y): New transformation.
10850 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
10852 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
10853 information for new SSA_NAME.
10854 (simplify_conversion_using_ranges): Get range through get_range_info
10855 instead of get_value_range.
10857 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10859 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
10860 Remove inline assembly.
10861 (vmvn_s16): Likewise.
10862 (vmvn_s32): Likewise.
10863 (vmvn_u8): Likewise.
10864 (vmvn_u16): Likewise.
10865 (vmvn_u32): Likewise.
10866 (vmvnq_s8): Likewise.
10867 (vmvnq_s16): Likewise.
10868 (vmvnq_s32): Likewise.
10869 (vmvnq_u8): Likewise.
10870 (vmvnq_u16): Likewise.
10871 (vmvnq_u32): Likewise.
10872 (vmvn_p8): Likewise.
10873 (vmvnq_p16): Likewise.
10875 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10877 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
10879 (vmul_n_s16): Likewise.
10880 (vmul_n_s32): Likewise.
10881 (vmul_n_u16): Likewise.
10882 (vmul_n_u32): Likewise.
10883 (vmulq_n_f32): Likewise.
10884 (vmulq_n_f64): Likewise.
10885 (vmulq_n_s16): Likewise.
10886 (vmulq_n_s32): Likewise.
10887 (vmulq_n_u16): Likewise.
10888 (vmulq_n_u32): Likewise.
10890 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10892 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
10893 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
10895 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10897 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
10898 to *aarch64_fma4_elt_from_dup<mode>.
10899 (*aarch64_fnma4_elt_to_128df): Rename to
10900 *aarch64_fnma4_elt_from_dup<mode>.
10901 * config/aarch64/arm_neon.h (vfma_n_f64): New.
10902 (vfms_n_f32): Likewise.
10903 (vfms_n_f64): Likewise.
10904 (vfmsq_n_f32): Likewise.
10905 (vfmsq_n_f64): Likewise.
10907 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
10909 * wide-int.h: Change fixed_wide_int_storage from class to struct.
10911 2016-05-17 Richard Biener <rguenther@suse.de>
10913 PR tree-optimization/71132
10914 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
10915 Only add control dependences for blocks in the loop.
10916 (build_rdg): Adjust.
10917 (generate_code_for_partition): Return whether loop should
10918 be destroyed and delay that.
10919 (distribute_loop): Likewise.
10920 (pass_loop_distribution::execute): Record loops to be destroyed
10921 and perform delayed destroying of loops.
10923 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10926 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
10928 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10930 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
10932 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
10935 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
10936 insertion point for instructions generated by validize_mem.
10938 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10940 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
10943 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10945 * config/aarch64/aarch64.c
10946 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
10947 rather than a macro.
10949 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10951 * doc/invoke.texi (AArch64 Options): Various updates.
10953 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10955 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
10956 into instrumentation thunks.
10957 * cif-code.def (CIF_CHKP): New.
10959 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
10961 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
10963 2016-05-16 Martin Jambor <mjambor@suse.cz>
10965 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
10966 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
10968 2016-05-16 Marek Polacek <polacek@redhat.com>
10970 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
10973 2016-05-16 Martin Jambor <mjambor@suse.cz>
10976 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
10977 the outlined kernel function.
10979 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
10981 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
10982 (ISA_HAS_DLSA): Ditto.
10984 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
10986 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
10988 2016-05-16 Nathan Sidwell <nathan@acm.org>
10990 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
10991 (nvptx_name_replacement): Restore. Add comment.
10992 (write_fn_proto, write_fn_proto_from_insn,
10993 nvptx_output_call_insn): Restore
10994 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
10996 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10998 * config/aarch64/aarch64.md
10999 (add<mode>3_compareC_cconly_imm): Remove use of %w.
11000 (add<mode>3_compareC_imm): Likewise.
11001 (<optab>si3_uxtw): Split into register and immediate variants.
11002 (andsi3_compare0_uxtw): Likewise.
11003 (and<mode>3_compare0): Likewise.
11004 (and<mode>3nr_compare0): Likewise.
11005 (stack_protect_test_<mode>): Don't use %x for memory operands.
11007 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
11009 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
11011 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
11013 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
11014 Split integer shifts into shift_reg and bfm.
11015 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
11016 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
11017 (ror<mode>3_insn): Likewise.
11018 (<optab>si3_insn_uxtw): Likewise.
11019 (<optab><mode>3_insn): Change to rotate_imm.
11020 (extr<mode>5_insn_alt): Likewise.
11021 (extrsi5_insn_uxtw): Likewise.
11022 (extrsi5_insn_uxtw_alt): Likewise.
11024 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
11026 * doc/tm.texi: Regenerate.
11027 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
11028 (TARGET_INVALID_RETURN_TYPE): Remove.
11029 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
11030 TARGET_INVALID_RETURN_TYPE.
11031 * target.def (invalid_parameter_type): Remove.
11032 (invalid_return_type): Remove.
11034 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
11036 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
11037 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
11039 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
11041 (preserve_function_body_p): No need to preserve function body
11042 * cif-codes.def (CIF_THUNK): Remove.
11043 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
11045 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
11047 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
11049 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
11051 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
11054 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
11056 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
11057 (inline_small_functions): Do not look for function symbol when
11060 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
11062 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
11065 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
11066 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11067 Jiong Wang <jiong.wang@arm.com>
11069 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
11070 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
11071 Define __ARM_FP16_ARGS when appropriate.
11072 * config/arm/arm.c (arm_invalid_parameter_type): Remove
11074 (arm_invalid_return_type): Likewise.
11075 (TARGET_INVALID_PARAMETER_TYPE): Remove.
11076 (TARGET_INVALID_RETURN_TYPE): Remove.
11077 (aapcs_vfp_sub_candidate): Allow HFmode.
11078 (aapcs_vfp_allocate): Add comment. Support HFmode.
11079 (aapcs_vfp_allocate_return_reg): Likewise.
11080 (struct aapcs_cp_arg_layout): Slightly reword comments for
11081 is_return_candidate and allocate_return_reg.
11082 (output_mov_vfp): Update assert.
11083 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
11085 (arm_invalid_parameter_type): Remove.
11086 (amr_invalid_return_type): Remove.
11087 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
11088 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
11089 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
11091 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
11093 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
11094 * config/aarch64/arch64-protos.h
11095 (aarch64_legitimize_reload_address): Remove.
11096 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
11099 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
11101 * configure.ac: Add ACX_NONCANONICAL_HOST.
11102 * configure: Regenerate.
11103 * Makefile.in: Set host_noncanonical.
11105 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
11108 * config/i386/i386.md (*movtf_internal): Before register allocation,
11109 do not allow FP constants for CM_MEDIUM memory model, allow only
11110 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
11111 (*movxf_internal): Ditto.
11112 (*movdf_internal): Ditto.
11113 (*movsf_internal): Ditto.
11115 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
11117 PR rtl-optimization/67483
11118 * combine.c (make_compound_operation): Don't call extract_left_shift
11119 with negative shift amounts.
11121 2016-05-13 Jakub Jelinek <jakub@redhat.com>
11124 * fold-const.c (fold_checksum_tree): Allow modification
11125 of TYPE_ALIAS_SET during folding.
11127 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
11128 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
11129 (ix86_split_to_parts): Likewise. Fix up formatting.
11131 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
11133 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
11134 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
11137 2016-05-13 Nathan Sidwell <nathan@acm.org>
11139 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
11140 (nvptx_name_replacement): Delete.
11141 (write_fn_proto, write_fn_proto_from_insn,
11142 nvptx_output_call_insn): Remove nvptx_name_replacement call.
11143 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
11144 * langhooks.c (add_builtin_funcction_common): Call
11145 targetm.mangle_decl_assembler_name.
11147 * config/nvptx/nvptx.c (write_fn_proto): Handle
11148 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
11150 2016-05-13 Martin Liska <mliska@suse.cz>
11152 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
11153 and PRIu64 in printf format.
11155 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11157 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
11160 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11162 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
11163 Change --param max-completely-peeled-times to
11164 --param max-completely-peel-times in dump file printing.
11166 2016-05-13 Richard Biener <rguenther@suse.de>
11168 PR tree-optimization/42587
11169 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
11170 (find_bswap_or_nop_1): Likewise.
11171 (bswap_replace): Likewise.
11173 2016-05-13 Martin Liska <mliska@suse.cz>
11175 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
11176 Initialize a variable with default value.
11178 2016-05-13 Martin Liska <mliska@suse.cz>
11180 * doc/invoke.texi: Enhance explanation of error recovery
11183 2016-05-13 Martin Liska <mliska@suse.cz>
11185 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
11186 (struct cost_pair): Change inv_expr_id (int) to inv_expr
11187 (iv_inv_expr_ent *).
11188 (struct iv_inv_expr_ent): Comment struct fields.
11189 (sort_iv_inv_expr_ent): New function.
11190 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
11191 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
11192 a hash_map between iv_inv_expr_ent and number of usages.
11193 (niter_for_exit): Fix coding style.
11194 (tree_ssa_iv_optimize_init): Use renamed variable.
11195 (determine_base_object): Fix coding style.
11196 (alloc_iv): Likewise.
11197 (find_interesting_uses_outside): Likewise.
11198 (add_candidate_1): Likewise.
11199 (add_standard_iv_candidates): Likewise.
11200 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
11201 (prepare_decl_rtl): Fix coding style.
11202 (get_address_cost): Likewise.
11203 (get_shiftadd_cost): Likewise.
11204 (force_expr_to_var_cost): Likewise.
11205 (compare_aff_trees): Likewise.
11206 (get_expr_id): Restructure the function.
11207 (get_loop_invariant_expr_id): Renamed to
11208 get_loop_invariant_expr.
11209 (get_computation_cost_at): Replace usage of inv_expr_id with
11211 (get_computation_cost): Likewise.
11212 (determine_group_iv_cost_generic): Likewise.
11213 (determine_group_iv_cost_address): Likewise.
11214 (iv_period): Fix coding style.
11215 (iv_elimination_compare_lt): Likewise.
11216 (may_eliminate_iv): Likewise.
11217 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
11219 (determine_group_iv_costs): Dump invariant expressions.
11220 (iv_ca_recount_cost): Use the newly added hash_map.
11221 (iv_ca_set_remove_invariants): Fix coding style.
11222 (iv_ca_set_add_invariants): Fix coding style.
11223 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
11225 (iv_ca_set_cp): Likewise.
11226 (iv_ca_new): Initialize the newly added hash_map and remove
11227 initialization of fields.
11228 (iv_ca_free): Delete the hash_map.
11229 (iv_ca_dump): Dump invariant expressions.
11230 (iv_ca_extend): Fix coding style.
11231 (try_add_cand_for): Likewise.
11232 (create_new_ivs): Dump information about # of avg iterations and
11233 # of used invariant expressions.
11234 (rewrite_use_compare): Fix coding style.
11235 (free_loop_data): Set default value for max_inv_expr_id.
11237 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
11239 * cse.c (rest_of_handle_cse): Use cleanup_cfg
11240 returned value cse_cfg_altered computation.
11241 (rest_of_handle_cse2): Likewise.
11242 (rest_of_handle_cse_after_global_opts): Likewise.
11244 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11247 * config/arm/arm.c (arm32_output_mi_thunk): New.
11248 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
11249 to split Thumb1 vs TARGET_32BIT functionality.
11250 (arm_thumb1_mi_thunk): New.
11252 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11254 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
11257 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11260 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
11262 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
11264 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
11265 (expand_builtin_trap): Emit a regular call.
11266 (set_builtin_user_assembler_name): Remove obsolete cases.
11267 * dse.c (scan_insn): Adjust.
11268 * except.c: Include calls.h.
11269 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
11270 emit a regular call to setjmp.
11271 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
11272 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
11273 (emit_block_move_via_libcall): Delete.
11274 (block_move_fn): Delete.
11275 (init_block_move_fn): Likewise.
11276 (emit_block_move_libcall_fn): Likewise.
11277 (emit_block_op_via_libcall): New function.
11278 (set_storage_via_libcall): Tidy up and use memset builtin.
11279 (block_clear_fn): Delete.
11280 (init_block_clear_fn): Likewise.
11281 (clear_storage_libcall_fn): Likewise.
11282 (expand_assignment): Call emit_block_move_via_libcall.
11283 Do not include gt-expr.h.
11284 * expr.h (emit_block_op_via_libcall): Declare.
11285 (emit_block_copy_via_libcall): New inline function.
11286 (emit_block_move_via_libcall): Likewise.
11287 (emit_block_comp_via_libcall): Likewise.
11288 (block_clear_fn): Delete.
11289 (init_block_move_fn): Likewise.
11290 (init_block_clear_fn): Likewise.
11291 (emit_block_move_via_libcall): Likewise.
11292 (set_storage_via_libcall): Add default parameter value.
11293 * libfuncs.h (enum libfunc_index): Remove obsolete values.
11294 (abort_libfunc): Delete.
11295 (memcpy_libfunc): Likewise.
11296 (memmove_libfunc): Likewise.
11297 (memcmp_libfunc): Likewise.
11298 (memset_libfunc): Likewise.
11299 (setbits_libfunc): Likewise.
11300 (setjmp_libfunc): Likewise.
11301 (longjmp_libfunc): Likewise.
11302 (profile_function_entry_libfunc): Likewise.
11303 (profile_function_exit_libfunc): Likewise.
11304 (gcov_flush_libfunc): Likewise.
11305 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
11306 and DECL_VISIBILITY on the declaration.
11307 (init_optabs): Do not initialize obsolete libfuncs.
11308 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
11309 * tree-core.h (ECF_RET1): Define.
11310 (ECF_TM_PURE): Adjust.
11311 (ECF_TM_BUILTIN): Likewise.
11312 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
11313 (build_common_builtin_nodes): Initialize abort builtin.
11314 Add ECF_RET1 on memcpy, memmove and memset builtins.
11315 Pass final flags for alloca and alloca_with_align builtins.
11316 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
11318 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
11319 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
11320 set_storage_via_libcall and call emit_block_copy_via_libcall.
11322 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
11324 * config/i386/i386.md (*call_got_x32): Change operand 0 to
11325 DImode before it is passed to ix86_output_call_operand.
11326 (*call_value_got_x32): Ditto for operand 1.
11328 2016-05-12 Jiong Wang <jiong.wang@arm.com>
11330 PR rtl-optimization/70904
11331 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
11332 reload for wide mode.
11334 2016-05-12 Marek Polacek <polacek@redhat.com>
11337 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
11338 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
11339 * langhooks.h (incomplete_type_error): Likewise.
11340 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
11341 parameter, pass it down to incomplete_type_error.
11342 * tree.h (size_in_bytes): New inline overload.
11343 (size_in_bytes_loc): Renamed from size_in_bytes.
11345 2016-05-12 Richard Biener <rguenther@suse.de>
11347 PR tree-optimization/71059
11348 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
11349 nary before looking up or entering the expression into the VN
11351 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
11352 Make sure to re-use NARYs without result as inserted by
11355 2016-05-12 Richard Biener <rguenther@suse.de>
11357 PR tree-optimization/71062
11358 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
11360 * tree-ssa-structalias.c (set_uids_in_ptset): Set
11361 vars_contains_restrict if the var is a restrict tag.
11362 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
11363 do not disambiguate pointers against it.
11364 (dump_points_to_solution): Re-structure and adjust for new
11365 vars_contains_restrict flag.
11366 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
11368 2016-05-12 Martin Liska <mliska@suse.cz>
11370 * doc/invoke.texi: Explain connection between
11371 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
11373 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
11375 PR tree-optimization/71006
11376 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
11377 consider COND_EXPR as a mask producer.
11379 2016-05-12 Marek Polacek <polacek@redhat.com>
11382 * opts.c (common_handle_option): Detect missing argument for --help^.
11384 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11387 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
11388 when popping the PC and within an interrupt handler routine.
11389 Add missing tab to output of "ldmfd".
11390 (output_return_instruction): Output LDMFD with SP update rather
11391 than POP when returning from interrupt handler.
11393 2016-05-12 Jakub Jelinek <jakub@redhat.com>
11395 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
11396 TARGET_64BIT && TARGET_AVX512DQ.
11397 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
11398 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
11399 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
11400 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
11401 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
11402 (*vec_extractv4si_zext): Add avx512dq alternative.
11403 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
11404 use v instead of x constraint in other alternatives where possible.
11406 * config/i386/sse.md (sse2_loadld): Use v instead of x
11407 constraint in alternatives 0,1,4.
11409 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
11410 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
11411 v constraints instead of x and <pinsr_evex_isa> isa attribute.
11414 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
11415 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
11416 is not emitted unless TARGET_AVX512BW.
11417 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
11418 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
11419 for the result operand.
11421 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
11422 constraint instead of x in avx alternatives. Use maybe_evex instead
11425 * config/i386/constraints.md (Yv): New constraint.
11426 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
11427 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
11428 * config/i386/i386.md (avx512fvecmode): New mode attr.
11429 (*pushtf): Use v constraint instead of x.
11430 (*movtf_internal): Likewise. For TARGET_AVX512VL and
11431 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
11432 (*absneg<mode>2): Use Yv constraint instead of x constraint.
11433 (*absnegtf2_sse): Likewise.
11434 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
11435 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
11436 avx512f alternatives.
11437 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
11439 2016-05-12 Richard Biener <rguenther@suse.de>
11441 PR tree-optimization/71060
11442 * tree-data-ref.c (initialize_data_dependence_relation): Do not
11443 require exact match of DR_BASE_OBJECT but only matching address and
11446 2016-05-12 Richard Biener <rguenther@suse.de>
11448 PR tree-optimization/70986
11449 * cfganal.c: Include cfgloop.h.
11450 (dfs_find_deadend): Prefer to take edges exiting loops.
11452 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11454 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
11455 compile and run time.
11457 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
11460 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
11462 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
11464 * config/i386/i386.c (legitimize_pic_address): Use
11465 copy_to_suggested_reg instead of gen_movsi.
11467 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
11469 * config/rs6000/predicates.md (quad_memory_operand): Move most of
11470 the code into quad_address_p and call it to share code with
11471 vsx_quad_dform_memory_operand.
11472 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
11474 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
11475 bit instead of being a separate word. Split -mpower9-dform into
11476 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
11477 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
11478 for the register class supporting 128-bit quad word memory offsets.
11479 (mode_supports_vsx_dform_quad): Helper function to return if the
11480 register class uses quad word memory offsets.
11481 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
11482 (rs6000_debug_reg_global): Always print if we are using LRA or not.
11483 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
11484 instructions are enabled, set up the appropriate addr_masks for
11486 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
11487 -mpower9-dform-scalar, instead of -mpower9-dform.
11488 (rs6000_option_override_internal): Split -mpower9-dform into two
11489 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
11490 -mpower9-dform switch sets or clears both. If we are not using
11491 the LRA register allocator, do not enable -mpower9-dform-vector by
11492 default. If we are using LRA, enable -mpower9-dform-vector and
11493 -mvsx-timode if it is appropriate. Issue a warning if either
11494 -mpower9-dform-vector or -mvsx-timode are explicitly used without
11496 (quad_address_offset_p): New helper function to return if the
11497 offset is legal for quad word memory instructions.
11498 (quad_address_p): New function to determin if GPR or vector
11499 register quad word memory addresses are legal.
11500 (mem_operand_gpr): Validate quad word address offsets.
11501 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
11502 d-form (register + offset) instructions.
11503 (offsettable_ok_by_alignment): Likewise.
11504 (rs6000_legitimate_offset_address_p): Likewise.
11505 (legitimate_lo_sum_address_p): Likewise.
11506 (rs6000_legitimize_address): Likewise.
11507 (rs6000_legitimize_reload_address): Add more debug statements for
11509 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
11510 d-form instructions.
11511 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
11512 d-form instructions. Distinguish different cases in debug
11513 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
11514 d-form instructions.
11515 (rs6000_preferred_reload_class): Likewise.
11516 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
11517 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
11518 of the ISA 2.06 indexed memory instructions.
11519 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
11520 use them to save/restore the saved vector registers instead of
11521 using Altivec instructions.
11522 (rs6000_emit_epilogue): Likewise.
11523 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
11524 (rs6000_opt_masks): Split -mpower9-dform into
11525 -mpower9-dform-scalar and -mpower9-dform-vector.
11526 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
11528 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
11529 ISA 3.0 vector indexed memory instructions, and fold the code into
11530 the normal mov<mode> patterns.
11531 (p9_vecstore_<mode>): Likewise.
11532 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
11534 (vsx_movti_64bit): Likewise.
11535 (vsx_movti_32bit): Likewise.
11536 * config/rs6000/constraints.md (wO constraint): New constraint for
11537 ISA 3.0 vector d-form support.
11538 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
11539 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
11540 include -mpower9-dform-vector until we switch over to LRA.
11541 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
11542 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
11543 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
11544 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
11545 for -mpower9-dform and -mlra.
11546 * doc/md.texi (wO constraint): Document wO constraint.
11548 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
11550 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
11551 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
11552 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
11553 Move handling of non-insn arguments inline into the sole user:
11554 (output_trans_func): ...here.
11555 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
11556 in emitted function prototype.
11557 (output_internal_insn_latency_func): Ditto. Simplify.
11558 (output_internal_maximal_insn_latency_func): Ditto. Delete
11559 always-unused argument.
11560 (output_insn_latency_func): Ditto.
11561 (output_maximal_insn_latency_func): Ditto.
11563 2016-05-11 Richard Biener <rguenther@suse.de>
11565 PR tree-optimization/71055
11566 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
11567 sth with precision not equal to access size verify we don't chop
11570 2016-05-11 Richard Biener <rguenther@suse.de>
11573 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
11574 (dwarf2out_finish): Move retry_incomplete_types call ...
11575 (dwarf2out_early_finish): ... here.
11577 2016-05-11 Richard Biener <rguenther@suse.de>
11579 PR middle-end/71002
11580 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
11581 if the langhook insists on it.
11582 * fold-const.c (make_bit_field_ref): Add arg for the original
11583 reference and preserve its alias-set.
11584 (decode_field_reference): Take exp by reference and adjust it
11585 to the original memory reference.
11586 (optimize_bit_field_compare): Adjust callers.
11587 (fold_truth_andor_1): Likewise.
11588 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
11590 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
11592 PR middle-end/70807
11593 * cfgrtl.h (delete_insn_and_edges): Now return bool.
11594 * cfgrtl.c (delete_insn_and_edges): Likewise.
11595 * config/i386/i386.c (convert_scalars_to_vector): Remove
11597 * cse.c (cse_insn): Compute cse_cfg_altered.
11598 (delete_trivially_dead_insns): Likewise.
11599 (cse_cc_succs): Likewise.
11600 (rest_of_handle_cse): Free dominance info if required.
11601 (rest_of_handle_cse2): Likewise.
11602 (rest_of_handle_cse_after_global_opts): Likewise.
11604 2016-05-11 Alan Modra <amodra@gmail.com>
11606 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
11607 abi_v4_pass_in_fpr): New functions.
11608 (rs6000_function_arg_boundary): Exclude complex IBM long double
11609 from 64-bit alignment when ABI_V4.
11610 (rs6000_function_arg, rs6000_function_arg_advance_1,
11611 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
11613 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
11615 PR rtl-optimization/71028
11616 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
11617 jump with just a return in the fallthrough block if the branch
11618 block contains just a return as well.
11620 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
11622 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
11623 * match.pd ((X & Y) ^ Y): ... this.
11624 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
11625 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
11627 2016-05-10 David Malcolm <dmalcolm@redhat.com>
11629 * read-md.c (require_char_ws): New function.
11630 (read_string): Simplify using require_char_ws.
11631 (handle_constants): Likewise.
11632 (handle_enum): Likewise.
11633 (handle_file): Likewise.
11634 * read-md.h (require_char_ws): New declaration.
11635 * read-rtl.c (read_conditions): Simplify using require_char_ws.
11636 (read_mapping): Likewise.
11637 (read_rtx_code): Likewise.
11638 (read_nested_rtx): Likewise.
11640 2016-05-10 James Norris <jnorris@codesourcery.com>
11642 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
11643 if offloading is enabled and -fopenacc or -fopenmp is specified.
11644 (CRTOFFLOADEND): Likewise.
11645 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
11646 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
11648 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
11650 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
11651 gotoff_operand code paths. Use copy_to_suggested_regs and
11652 expand_simple_binop where appropriate. Cleanup.
11654 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
11657 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
11659 (dimode_scalar_chain::vector_const_cost): New.
11660 (dimode_scalar_chain::compute_convert_gain): Handle constants.
11661 (dimode_scalar_chain::convert_op): Likewise.
11662 (dimode_scalar_chain::convert_insn): Likewise.
11664 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
11666 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
11667 unary operation, not a binary one.
11669 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
11671 PR middle-end/70877
11672 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
11673 calls with type casted fndecl.
11675 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
11677 PR tree-optimization/70786
11678 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
11679 * calls.c (initialize_argument_information): Bind bounds
11680 with corresponding args passed by reference.
11682 2016-05-10 Jakub Jelinek <jakub@redhat.com>
11685 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
11686 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
11687 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
11690 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11693 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
11694 code for a zero scale factor.
11695 (vsx_xvcvdpuxds_scale): Likewise.
11697 2016-05-10 David Malcolm <dmalcolm@redhat.com>
11699 * diagnostic-show-locus.c (layout::layout): Call show_ruler
11700 if show_ruler_p was set on the context.
11701 (layout::show_ruler): New method.
11702 * diagnostic.h (struct diagnostic_context): Add field
11705 2016-05-10 Richard Biener <rguenther@suse.de>
11707 PR tree-optimization/71039
11708 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
11709 (chk_uses): New function.
11710 (propagate_with_phi): Verify we can safely replicate the lhs of an
11711 aggregate assignment on all incoming edges.
11713 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
11715 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
11717 (rx_atomic_sequence): New class.
11718 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
11719 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
11721 (rx_atomic_sequence::rx_atomic_sequence,
11722 rx_atomic_sequence::~rx_atomic_sequence): New functions.
11723 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
11724 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
11725 CTRLREG_INTB): New constants.
11726 (FETCHOP): New code iterator.
11727 (fethcop_name, fetchop_name2): New iterator code attributes.
11728 (QIHI): New mode iterator.
11729 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
11730 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
11731 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
11733 2016-05-10 Martin Liska <mliska@suse.cz>
11735 * tree-inline.c (remap_dependence_clique): Do not remap
11736 debugging statements.
11738 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11740 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
11741 ("*fixuns_truncdfdi2_z13")
11742 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
11743 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
11744 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
11746 2016-05-10 Richard Biener <rguenther@suse.de>
11748 PR tree-optimization/70497
11749 PR tree-optimization/28367
11750 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
11752 (visit_reference_op_load): ... here.
11753 (vn_reference_lookup_3): Use it to handle subreg-like accesses
11754 with simplified BIT_FIELD_REFs.
11755 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
11756 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
11759 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
11761 * dwarf2out.c (add_abstract_origin_attribute): Adjust
11762 documentation comment. For BLOCK nodes, add a
11763 DW_AT_abstract_origin attribute that points to the DIE generated
11764 for the origin BLOCK.
11765 (gen_lexical_block_die): Call add_abstract_origin_attribute for
11766 blocks from inlined functions.
11768 2016-05-10 Alan Modra <amodra@gmail.com>
11771 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
11772 regrename modifying insns saving lr before __morestack call.
11773 * config/rs6000/rs6000.md (split_stack_return): Similarly for
11774 insns restoring lr after __morestack call.
11776 2016-05-09 Jakub Jelinek <jakub@redhat.com>
11778 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
11779 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
11781 * config/i386/sse.md (vec_interleave_high<mode>,
11782 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
11783 <avx512>_vpermt2var<mode>3_maskz): Likewise.
11785 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11787 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
11788 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
11789 parallel reassociation for power8 and forward.
11791 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
11793 * config/i386/i386.md (absneg splitters with general regs): Use
11794 general_reg_operand predicate.
11795 (btsq peephole2): Use x86_64_immediate_operand to check if new
11796 value is suitable for immediate operand. Generate emitted insn
11797 using RTL expressions.
11798 (btcq peephole2): Ditto.
11799 (btrq peephole2): Ditto. Generate correct immediate operand
11802 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
11804 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
11807 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
11809 * tree-affine.c (wide_int_constant_multiple_p): Add missing
11810 pointer dereference.
11812 2016-05-09 Richard Biener <rguenther@suse.de>
11814 PR tree-optimization/70985
11815 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
11816 op0 isn't a gimple register.
11818 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
11820 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
11821 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
11822 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
11823 (i6400_fpu_mult): New cpu units.
11824 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
11825 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
11826 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
11827 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
11828 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
11829 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
11830 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
11831 (i6400_msa_long_float4, i6400_msa_long_float5)
11832 (i6400_msa_long_float8, i6400_msa_fdiv_df)
11833 (i6400_msa_fdiv_sf): New reservations.
11834 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
11835 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
11836 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
11837 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
11838 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
11839 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
11840 (msa_short_cmp, msa_short_float2, msa_short_logic3)
11841 (msa_short_store4, msa_long_load, msa_short_store)
11842 (msa_long_logic, msa_long_float2, msa_long_float4)
11843 (msa_long_float5, msa_long_float8, msa_long_mult)
11844 (msa_long_fdiv, msa_long_div): New reservations.
11846 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
11847 Sameera Deshpande <sameera.deshpande@imgtec.com>
11848 Matthew Fortune <matthew.fortune@imgtec.com>
11849 Graham Stott <graham.stott@imgtec.com>
11850 Chao-ying Fu <chao-ying.fu@imgtec.com>
11852 * config.gcc: Add MSA header file for mips*-*-* target.
11853 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
11854 (Ubv8i, Urv8): New constraints.
11855 * config/mips/mips-ftypes.def: Add function types for MSA
11857 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
11858 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
11859 * config/mips/mips-msa.md: New file.
11860 * config/mips/mips-protos.h
11861 (mips_split_128bit_const_insns): New prototype.
11862 (mips_msa_idiv_insns): Likewise.
11863 (mips_split_128bit_move): Likewise.
11864 (mips_split_128bit_move_p): Likewise.
11865 (mips_split_msa_copy_d): Likewise.
11866 (mips_split_msa_insert_d): Likewise.
11867 (mips_split_msa_fill_d): Likewise.
11868 (mips_expand_msa_branch): Likewise.
11869 (mips_const_vector_same_val_p): Likewise.
11870 (mips_const_vector_same_bytes_p): Likewise.
11871 (mips_const_vector_same_int_p): Likewise.
11872 (mips_const_vector_shuffle_set_p): Likewise.
11873 (mips_const_vector_bitimm_set_p): Likewise.
11874 (mips_const_vector_bitimm_clr_p): Likewise.
11875 (mips_msa_vec_parallel_const_half): Likewise.
11876 (mips_msa_output_division): Likewise.
11877 (mips_ldst_scaled_shift): Likewise.
11878 (mips_expand_vec_cond_expr): Likewise.
11879 * config/mips/mips.c (enum mips_builtin_type): Add
11880 MIPS_BUILTIN_MSA_TEST_BRANCH.
11881 (mips_gen_const_int_vector_shuffle): New prototype.
11882 (mips_const_vector_bitimm_set_p): New function.
11883 (mips_const_vector_bitimm_clr_p): Likewise.
11884 (mips_const_vector_same_val_p): Likewise.
11885 (mips_const_vector_same_bytes_p): Likewise.
11886 (mips_const_vector_same_int_p): Likewise.
11887 (mips_const_vector_shuffle_set_p): Likewise.
11888 (mips_symbol_insns): Forbid loading symbols via immediate for
11890 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
11892 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
11894 (mips_lx_address_p): Add support load indexed address for MSA.
11895 (mips_address_insns): Add calculation of instructions needed for
11896 stores and loads for MSA.
11897 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
11898 CONST_VECTOR for MSA and let it fall through.
11899 (mips_ldst_scaled_shift): New function.
11900 (mips_subword_at_byte): Likewise.
11901 (mips_msa_idiv_insns): Likewise.
11902 (mips_legitimize_move): Validate MSA moves.
11903 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
11904 calculation of costs for MSA division.
11905 (mips_split_move_p): Check if MSA moves need splitting.
11906 (mips_split_move): Split MSA moves if necessary.
11907 (mips_split_128bit_move_p): New function.
11908 (mips_split_128bit_move): Likewise.
11909 (mips_split_msa_copy_d): Likewise.
11910 (mips_split_msa_insert_d): Likewise.
11911 (mips_split_msa_fill_d): Likewise.
11912 (mips_output_move): Handle MSA moves.
11913 (mips_expand_msa_branch): New function.
11914 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
11915 Reinstate 'y' modifier.
11916 (mips_file_start): Add MSA .gnu_attribute.
11917 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
11919 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
11920 (mips_class_max_nregs): Add register size for MSA supported mode.
11921 (mips_cannot_change_mode_class): Allow conversion between MSA
11922 vector modes and TImode.
11923 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
11925 (mips_secondary_reload_class): Force MSA loads/stores via memory.
11926 (mips_preferred_simd_mode): Add preffered modes for MSA.
11927 (mips_vector_mode_supported_p): Add MSA supported modes.
11928 (mips_autovectorize_vector_sizes): New function.
11929 (mips_msa_output_division): Likewise.
11930 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
11931 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
11932 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
11933 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
11934 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
11935 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
11936 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
11937 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
11938 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
11939 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
11940 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
11941 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
11942 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
11943 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
11944 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
11945 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
11946 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
11947 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
11948 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
11949 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
11950 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
11951 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
11952 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
11953 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
11954 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
11955 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
11956 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
11957 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
11958 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
11959 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
11960 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
11961 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
11962 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
11963 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
11964 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
11965 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
11966 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
11967 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
11968 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
11969 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
11970 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
11971 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
11972 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
11973 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
11974 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11975 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11976 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11977 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11978 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11979 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11980 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11981 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11982 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
11983 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
11984 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
11985 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
11986 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
11987 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
11988 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
11989 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
11990 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
11991 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
11992 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
11993 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
11994 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
11995 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
11996 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
11997 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
11998 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
11999 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
12000 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
12001 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
12002 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
12003 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
12004 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
12005 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
12006 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
12007 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
12008 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
12009 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
12010 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
12011 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
12012 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
12013 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
12014 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
12015 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
12016 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
12017 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
12018 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
12019 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
12020 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
12021 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
12022 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
12023 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
12024 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
12025 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
12026 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
12027 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
12028 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
12029 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
12030 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
12031 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
12032 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
12033 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
12034 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
12035 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
12036 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
12037 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
12038 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
12039 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
12040 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
12041 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
12042 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
12043 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
12044 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
12045 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
12046 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
12047 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
12048 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
12049 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
12050 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
12051 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
12052 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
12053 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
12054 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
12055 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
12056 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
12057 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
12058 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
12059 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
12060 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
12061 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
12062 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
12063 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
12064 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
12065 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
12066 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
12067 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
12068 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
12069 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
12070 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
12071 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
12072 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
12073 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
12074 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
12075 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
12076 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
12077 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
12078 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
12079 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
12080 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
12082 (mips_get_builtin_decl_index): New array.
12083 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
12084 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
12085 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
12086 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
12087 (mips_init_builtins): Initialize mips_get_builtin_decl_index
12089 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
12091 (mips_expand_builtin_insn): Prepare operands for
12092 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
12093 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
12094 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
12095 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
12096 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
12097 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
12098 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
12099 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
12100 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
12101 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
12102 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
12103 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
12104 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
12105 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
12106 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
12107 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
12108 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
12109 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
12110 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
12111 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
12112 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
12113 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
12114 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
12115 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
12116 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
12117 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
12118 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
12119 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
12120 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
12121 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
12122 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
12123 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
12124 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
12125 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
12126 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
12127 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
12128 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
12129 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
12130 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
12131 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
12132 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
12133 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
12134 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
12135 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
12136 These are set implicitly and an error is reported if overridden.
12137 (mips_expand_builtin_msa_test_branch): New function.
12138 (mips_expand_msa_shuffle): Likewise.
12139 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
12140 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
12141 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
12142 (mips_expand_vec_unpack): Add support for MSA.
12143 (mips_expand_vector_init): Likewise.
12144 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
12145 instead of const0_rtx.
12146 (mips_msa_vec_parallel_const_half): New function.
12147 (mips_gen_const_int_vector): Likewise.
12148 (mips_gen_const_int_vector_shuffle): Likewise.
12149 (mips_expand_msa_cmp): Likewise.
12150 (mips_expand_vec_cond_expr): Likewise.
12151 * config/mips/mips.h
12152 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
12153 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
12155 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
12156 (ISA_HAS_MSA): New macro.
12157 (UNITS_PER_MSA_REG): Likewise.
12158 (BITS_PER_MSA_REG): Likewise.
12159 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
12160 (MSA_REG_FIRST): New macro.
12161 (MSA_REG_LAST): Likewise.
12162 (MSA_REG_NUM): Likewise.
12163 (MSA_REG_P): Likewise.
12164 (MSA_REG_RTX_P): Likewise.
12165 (MSA_SUPPORTED_MODE_P): Likewise.
12166 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
12167 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
12168 * config/mips/mips.md: Include mips-msa.md.
12169 (alu_type): Add simd_add.
12170 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
12171 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
12172 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
12173 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
12174 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
12175 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
12176 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
12177 simd_move, simd_load, simd_store. Choose "multi" for moves
12179 (qword_mode): New attribute.
12180 (insn_count): Add instruction count for quad moves.
12181 Increase the count for MIPS SIMD division.
12182 (UNITMODE): Add UNITMODEs for vector types.
12183 (addsub): New code iterator.
12184 * config/mips/mips.opt (mmsa): New option.
12185 * config/mips/msa.h: New file.
12186 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
12188 * config/mips/mti-linux.h: Likewise.
12189 * config/mips/predicates.md
12190 (const_msa_branch_operand): New constraint.
12191 (const_uimm3_operand): Likewise.
12192 (const_uimm4_operand): Likewise.
12193 (const_uimm5_operand): Likewise.
12194 (const_uimm8_operand): Likewise.
12195 (const_imm5_operand): Likewise.
12196 (aq10b_operand): Likewise.
12197 (aq10h_operand): Likewise.
12198 (aq10w_operand): Likewise.
12199 (aq10d_operand): Likewise.
12200 (const_m1_operand): Likewise.
12201 (reg_or_m1_operand): Likewise.
12202 (const_exp_2_operand): Likewise.
12203 (const_exp_4_operand): Likewise.
12204 (const_exp_8_operand): Likewise.
12205 (const_exp_16_operand): Likewise.
12206 (const_vector_same_val_operand): Likewise.
12207 (const_vector_same_simm5_operand): Likewise.
12208 (const_vector_same_uimm5_operand): Likewise.
12209 (const_vector_same_uimm6_operand): Likewise.
12210 (const_vector_same_uimm8_operand): Likewise.
12211 (par_const_vector_shf_set_operand): Likewise.
12212 (reg_or_vector_same_val_operand): Likewise.
12213 (reg_or_vector_same_simm5_operand): Likewise.
12214 (reg_or_vector_same_uimm6_operand): Likewise.
12215 * doc/extend.texi (MIPS SIMD Architecture Functions): New
12217 * doc/invoke.texi (-mmsa): Document new option.
12219 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12221 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
12222 * configure: Regenerate.
12223 * config.in: Regenerate.
12224 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
12225 on -fvtable-verify.
12226 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
12227 (ENDFILE_VTV_SPEC): Define.
12229 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
12231 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
12232 registers in all interrupt handlers if necessary.
12233 (rl78_option_override): Add warning.
12234 (MUST_SAVE_MDUC_REGISTERS): New macro.
12235 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
12236 * config/rl78/rl78.c (check_mduc_usage): New function.
12237 (mduc_regs): New structure to hold MDUC register data.
12238 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
12239 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
12240 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
12241 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
12242 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
12243 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
12245 2016-05-09 Bin Cheng <bin.cheng@arm.com>
12247 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
12248 (tree-ssa-loop-niter.h): Ditto.
12249 (idx_within_array_bound, ref_within_array_bound): New functions.
12250 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
12251 Factor out check on writable base object to ...
12252 (base_object_writable): ... here.
12254 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12256 * config/arm/arm.md (probe_stack): Add modes to set source
12259 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
12261 * regrename.c (base_reg_class_for_rename): New static function.
12262 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
12264 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
12266 * cgraph.c (thunk_adjust): Export.
12267 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
12268 * cgraphunit.c (thunk_adjust): Export.
12269 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
12271 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
12273 * tree-inline.c (expand_call_inline): Expand thunks inline.
12275 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
12278 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
12279 (*sse2_vd_cvtss2sd): Ditto.
12280 * config/i386/i386.md
12281 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
12282 Generate *sse2_vd_cvtsd2ss pattern.
12283 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
12284 Generate *sse2_vd_cvtss2sd pattern.
12286 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
12288 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
12289 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
12292 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
12294 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
12295 * config/sh/sh.c: Define and declare variables on first use throughout
12297 (current_function_interrupt): Change to bool type.
12298 (frame_insn): Rename to emit_frame_insn and update users.
12299 (push_regs): Use bool for 'interrupt_handler' argument.
12300 (save_schedule_s): Remove.
12301 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
12302 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
12303 targetm.asm_out.unaligned_op.di.
12304 (gen_far_branch): Remove redundant forward declaration.
12305 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
12306 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
12307 (sh_set_return_address, sh_function_ok_for_sibcall,
12308 scavenge_reg): Update comments.
12309 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
12310 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
12311 (sh_attr_renesas_p): Remove unnecessary parentheses.
12312 (branch_dest): Simplify.
12313 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
12314 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
12315 (CUMULATIVE_ARGS): Change macro to typedef.
12316 (current_function_interrupt): Change to bool type.
12317 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
12318 Surround with __cplusplus ifdef.
12319 (sh_compare_op0, sh_compare_op1): Remove.
12320 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
12322 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
12324 * config/arm/arm.md: (arch): Add neon.
12325 (arch_enabled): Return yes for arch neon when TARGET_NEON.
12326 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
12327 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
12328 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
12329 attributes for alt renumbering. Mark alt 3 as non-predicable.
12330 (thumb2_movdf_vfp): Likewise.
12332 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
12334 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
12335 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
12336 (*andqi_1): Add preferred_for_speed attribute to disparage
12337 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
12338 (*<code>qi_1): Ditto.
12339 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
12340 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
12341 (*ashlqi3_1): Ditto.
12342 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
12343 Add preferred_for_size attribute to disparage alternative 0 and
12344 preferred_for_speed attribute to disparage alternative 1 for
12345 TARGET_PARTIAL_REG_STALL targets.
12347 2016-05-07 Tom de Vries <tom@codesourcery.com>
12349 PR tree-optimization/70956
12350 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
12353 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
12355 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
12356 * config/sh/sh.c (sh_cbranch_distance): Implement it.
12357 * config/sh/sh.md (branch_zero): Remove define_attr.
12358 (define_delay): Disable delay slot if branch distance is one insn.
12360 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
12362 * config/i386/i386.md (LEAMODE): New mode attribute.
12363 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
12364 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
12365 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
12366 operand 2 predicate.
12367 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
12368 (*lea<mode>_general_3): Ditto.
12369 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
12371 2016-05-06 Jakub Jelinek <jakub@redhat.com>
12373 * genmddump.c (main): Convert argv from char ** to const char **.
12375 2016-05-06 David Malcolm <dmalcolm@redhat.com>
12377 * coretypes.h (OVERRIDE): New macro.
12378 (FINAL): New macro.
12380 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
12382 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
12383 allow coalescing if the types are compatible.
12385 2016-05-06 David Malcolm <dmalcolm@redhat.com>
12387 * pass_manager.h (pass_manager::register_pass_name): New method.
12388 (pass_manager::get_pass_by_name): New method.
12389 (pass_manager::create_pass_tab): New method.
12390 (pass_manager::m_name_to_pass_map): New field.
12391 * passes.c (name_to_pass_map): Delete global in favor of field
12392 "m_name_to_pass_map" of pass_manager.
12393 (register_pass_name): Rename from a function to...
12394 (pass_manager::register_pass_name): ...this method, updating
12395 for renaming of global "name_to_pass_map" to field
12396 "m_name_to_pass_map".
12397 (create_pass_tab): Rename from a function to...
12398 (pass_manager::create_pass_tab): ...this method, updating
12399 for renaming of global "name_to_pass_map" to field.
12400 (get_pass_by_name): Rename from a function to...
12401 (pass_manager::get_pass_by_name): ...this method.
12402 (enable_disable_pass): Convert use of get_pass_by_name to
12403 a method call, locating the pass_manager singleton.
12405 2016-05-06 David Malcolm <dmalcolm@redhat.com>
12407 * genattr-common.c (main): Convert argv from char ** to const char **.
12408 * genattr.c (main): Likewise.
12409 * genattrtab.c (main): Likewise.
12410 * genautomata.c (initiate_automaton_gen): Likewise.
12412 * gencodes.c (main): Likewise.
12413 * genconditions.c (main): Likewise.
12414 * genconfig.c (main): Likewise.
12415 * genconstants.c (main): Likewise.
12416 * genemit.c (main): Likewise.
12417 * genenums.c (main): Likewise.
12418 * genextract.c (main): Likewise.
12419 * genflags.c (main): Likewise.
12420 * genmddeps.c (main): Likewise.
12421 * genopinit.c (main): Likewise.
12422 * genoutput.c (main): Likewise.
12423 * genpeep.c (main): Likewise.
12424 * genpreds.c (main): Likewise.
12425 * genrecog.c (main): Likewise.
12426 * gensupport.c (init_rtx_reader_args_cb): Likewise.
12427 (init_rtx_reader_args): Likewise.
12428 * gensupport.h (init_rtx_reader_args_cb): Likewise.
12429 (init_rtx_reader_args): Likewise.
12430 * gentarget-def.c (main): Likewise.
12431 * read-md.c (read_md_files): Likewise.
12432 * read-md.h (read_md_files): Likewise.
12434 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
12436 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
12437 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
12438 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
12439 Remove unused predicate.
12440 (register_and_not_fp_reg_operand): Ditto.
12442 2016-05-06 Martin Liska <mliska@suse.cz>
12444 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
12445 instead of vec as the vector is local to the function.
12447 2016-05-06 Jakub Jelinek <jakub@redhat.com>
12449 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
12450 avx512bw alternative.
12452 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
12453 before the ashr<mode>3 pattern.
12455 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
12456 v instead of x in vex or maybe_vex alternatives, use
12457 maybe_evex instead of vex in prefix.
12459 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
12460 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
12461 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
12462 in vex or maybe_vex alternatives, use maybe_evex instead of vex
12465 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
12466 v instead of x in vex or maybe_vex alternatives, use
12467 maybe_evex instead of vex in prefix.
12469 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
12470 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
12471 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
12472 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
12473 alternatives, use maybe_evex instead of vex in prefix.
12475 * config/i386/sse.md (vec_interleave_lowv4sf,
12476 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
12477 v instead of x in vex or maybe_vex alternatives, use
12478 maybe_evex instead of vex in prefix.
12480 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
12481 v instead of x in vex or maybe_vex alternatives, use
12482 maybe_evex instead of vex in prefix.
12484 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
12485 v constraint instead of x.
12487 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
12489 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
12490 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
12493 2016-05-06 Richard Biener <rguenther@suse.de>
12495 PR tree-optimization/70948
12496 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12497 Properly clobber all fields of va_list for __builtin_va_start.
12499 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
12502 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
12503 loop latch destination.
12505 2016-05-06 Martin Liska <mliska@suse.cz>
12507 * tree-ssa-uninit.c: Apply manual changes
12508 to the GNU coding style.
12509 (prune_uninit_phi_opnds): Rename from
12510 prune_uninit_phi_opnds_in_unrealizable_paths.
12512 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12514 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
12515 mspace): Remove deprecated options.
12516 * doc/invoke.texi (SH options): Remove -mspace.
12518 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12520 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
12522 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12524 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
12525 corresponding combine split pattern.
12527 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12530 * config/sh/predicates.md (long_displacement_mem_operand): New.
12531 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
12532 Add movi20, movi20s alternatives. Adjust length attribute for
12534 (movsi_ie): Allow for any FPU. Adjust length attribute for
12536 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
12537 attribute for alternatives.
12538 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
12539 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
12540 length attribute for alternatives.
12542 2016-05-06 Richard Biener <rguenther@suse.de>
12544 PR tree-optimization/70960
12545 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
12547 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12550 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
12551 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
12553 2016-05-06 Marek Polacek <polacek@redhat.com>
12556 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
12558 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12561 * config/sh/sh.md (*rotcr): Add another variant.
12563 2016-05-06 Richard Biener <rguenther@suse.de>
12565 PR middle-end/70931
12566 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
12568 2016-05-06 Richard Biener <rguenther@suse.de>
12570 PR middle-end/70941
12571 * fold-const.c (split_tree): Always convert to the original type
12574 2016-05-06 Richard Biener <rguenther@suse.de>
12576 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
12577 (fwprop_addr): Likewise.
12579 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
12582 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
12584 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
12585 * config/i386/i386.md (push mem splitter): Use find_constant_src in
12586 the splitter condition.
12587 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
12588 the splitter condition.
12589 (FP float_extend load splitter): Ditto.
12591 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
12593 * config/i386/i386.md (peehole2 patterns): Change true_regnum
12594 to REGNO in all peephole2 patterns.
12595 (post-reload splitters): Change true_regnum to REGNO in
12596 post-reload splitters.
12597 (zero_extend splitters): Use general_reg_operand and
12598 nonimmediate_gr_operand predicates.
12600 2016-05-05 Jakub Jelinek <jakub@redhat.com>
12602 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
12603 v constraint instead of x.
12605 2016-05-05 Alan Modra <amodra@gmail.com>
12608 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
12609 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
12610 TARGET_NO_FP_IN_TOC for -mrelocatable.
12611 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
12612 TARGET_RELOCATABLE test.
12613 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12614 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12615 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
12616 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12617 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12618 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
12619 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12620 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12621 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
12622 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
12624 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
12625 (rs6000_stack_info): Likewise.
12626 (rs6000_elf_asm_out_constructor): Likewise.
12627 (rs6000_elf_asm_out_destructor): Likewise.
12628 (rs6000_elf_declare_function_name): Likewise.
12629 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
12630 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
12633 2016-05-05 Alan Modra <amodra@gmail.com>
12635 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
12637 2016-05-05 Alan Modra <amodra@gmail.com>
12639 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
12640 out-of-line gpr restore for one or two regs if that would add
12643 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
12646 * config/i386/i386.md
12647 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
12648 Change to post-epilogue_completed late splitter. Use sse_reg_operand
12649 as operand 0 predicate.
12650 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
12652 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
12653 Ditto. Emit the pattern using RTX.
12655 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
12656 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
12657 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
12658 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
12660 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
12661 sse_reg_operand as operand 0 predicate.
12663 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
12664 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
12665 instead of gen_rtx_REG.
12666 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
12669 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12671 * function.c (emit_use_return_register_into_block): Delete.
12672 (gen_return_pattern): Delete.
12673 (emit_return_into_block): Delete.
12674 (active_insn_between): Delete.
12675 (convert_jumps_to_returns): Delete.
12676 (emit_return_for_exit): Delete.
12677 (thread_prologue_and_epilogue_insns): Delete all code dealing with
12678 simple_return for shrink-wrapped blocks.
12679 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
12680 end of blocks that need one.
12681 (get_unconverted_simple_return): Delete.
12682 (convert_to_simple_return): Delete.
12683 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
12684 (convert_to_simple_return): Ditto.
12686 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12688 * cfgcleanup.c (bb_is_just_return): New function.
12689 (try_optimize_cfg): Simplify jumps to return, branches to return,
12690 and branches around return.
12692 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12694 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
12695 branch to a return.
12697 2016-05-04 Jakub Jelinek <jakub@redhat.com>
12701 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
12702 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
12703 assert flags & OEP_HASH_CHECK, instead of asserting it
12704 never happens. Handle TARGET_EXPR.
12705 * fold-const.c (operand_equal_p): For hash verification,
12706 or in OEP_HASH_CHECK into flags.
12708 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
12710 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
12712 (compute_samebase_partition_bases): Fix typo.
12714 2016-05-04 Jakub Jelinek <jakub@redhat.com>
12716 * config/i386/sse.md (vec_interleave_highv8sf,
12717 vec_interleave_lowv8sf, vec_interleave_highv4df,
12718 vec_interleave_lowv4df): Remove constraints from expanders.
12720 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
12722 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
12724 * tree-inline.c (expand_call_inline): Fix path dealing with
12725 making lhs of call statement undefined.
12727 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
12729 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
12730 Check availability on NODE, too.
12731 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
12732 (cgraph_node::call_for_symbol_and_aliases): Likewise.
12733 (varpool_node::call_for_symbol_and_aliase): Likewise.
12734 * ipa-pure-const.c (add_new_function): Analyze all bodies.
12735 (propagate_pure_const): Propagate across interposable functions, too.
12736 (skip_function_for_local_pure_const): Do not skip interposable bodies
12738 (pass_local_pure_const::execute): Update.
12740 2016-05-04 Marek Polacek <polacek@redhat.com>
12742 * doc/invoke.texi: Document -Wdangling-else.
12744 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
12746 * config.gcc: Error out when conflicting multilib is detected. Do not
12747 loop over multilibs since no combination is legal.
12749 2016-05-04 Alan Modra <amodra@gmail.com>
12751 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
12752 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
12753 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
12756 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
12758 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
12759 Clean up p5600 comments.
12761 2016-05-04 Richard Biener <rguenther@suse.de>
12763 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
12764 constructor simplifications.
12765 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
12767 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
12769 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
12770 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
12771 result.set_rtx is null instead of aborting.
12772 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
12774 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
12775 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
12776 *mov<mode>_store_postinc): New patterns.
12778 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
12780 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
12781 as commutative. Check both conversions are NOP.
12782 ((A & B) OP (C & B)): Remove.
12784 2016-05-04 Alan Modra <amodra@gmail.com>
12786 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
12788 2016-05-04 Alan Modra <amodra@gmail.com>
12791 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
12792 when cr2,3,4 are all fixed regs.
12794 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
12796 PR rtl-optimization/57193
12797 * opts.c (default_options_table): Revert OPT_frename_registers change.
12798 * doc/invoke.texi (-frename-registers, -O2): Likewise.
12800 2016-05-03 Martin Sebor <msebor@redhat.com>
12803 * builtins.c (fold_builtin_FILE): New function.
12804 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
12805 (fold_builtin_0): Call them.
12806 * gimplify.c (gimplify_call_expr): Remove the handling of
12807 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
12810 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
12811 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
12815 * doc/extend.texi (Function Names as Strings): Update __func__,
12816 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
12819 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12820 Richard Biener <rguenther@suse.de>
12822 PR tree-optimization/70916
12823 * tree-if-conv.c: Include cfganal.h.
12824 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
12825 and remove_fake_exit_edges around the optimization pass.
12827 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
12829 * cgraph.c (symbol_table::create_edge): Set inline_failed.
12830 (cgraph_edge::make_direct): Likewise.
12831 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
12832 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
12833 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
12834 (CIF_THUNK): New code.
12835 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
12836 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
12837 (compute_inline_parameters): Set inline_failed for thunks.
12838 (inline_analyze_function): Cleanup.
12839 * ipa-inline.c (can_inline_edge_p): Do not deal with
12840 call_stmt_cannot_inline_p.
12841 (can_early_inline_edge_p): Likewise.
12842 (early_inliner): Initialize inline_failed.
12843 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
12845 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
12847 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
12848 from nonimm_ssenomem_operand.
12849 (nonimm_ssenomem_operand): New predicate.
12850 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
12851 as operand 0 predicate.
12852 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
12853 Disable unsupported alternatives using "enabled" attribute.
12854 Use register_ssemem_operand as operand 0 predicate.
12855 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
12857 2016-05-03 Marek Polacek <polacek@redhat.com>
12860 * input.c (expansion_point_location): New function.
12861 * input.h (expansion_point_location): Declare.
12863 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
12865 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
12866 occurence with frame_offset_ ones.
12868 2016-05-03 Alan Modra <amodra@gmail.com>
12870 PR rtl-optimization/70890
12871 * ira.c (combine_and_move_insns): When moving def_insn, remove
12872 equivs on use_insn.
12874 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
12876 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
12877 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
12878 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
12879 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
12881 2016-05-03 Alan Modra <amodra@gmail.com>
12883 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
12884 for SAVE_MULTIPLE/STORE_MULTIPLE.
12886 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12888 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
12889 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
12891 2016-05-03 Richard Biener <rguenther@suse.de>
12893 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
12895 (gimplify_arg): Likewise.
12896 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
12897 re-writing the result to a decl if required.
12898 (internal_get_tmp_var): Add allow_ssa parameter
12899 and override into_ssa with it.
12900 (get_formal_tmp_var): Adjust.
12901 (get_initialized_tmp_var): Add allow_ssa parameter.
12902 (gimplify_arg): Add allow_ssa parameter and avoid generating
12903 SSA names for the result false.
12904 (gimplify_call_expr): If the call may return twice do not
12905 gimplify parameters into SSA.
12906 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
12907 (gimplify_modify_expr): Adjust assert. For noreturn calls
12908 with a SSA name LHS adjust its def.
12909 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
12910 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
12911 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
12912 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
12913 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
12914 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
12915 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
12916 (optimize_target_teams): Do not allow SSA names for clause operands.
12917 (gimplify_expr): Likewise for where we mark the result addressable.
12918 * passes.def (pass_init_datastructures): Remove.
12919 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
12920 (rewrite_stmt): Likewise.
12921 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
12922 (replace_locals_op): Replace SSA names.
12923 (copy_gimple_seq_and_replace_locals): Init src_cfun.
12924 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
12925 * cgraph.c (release_function_body): Free CFG annotations only
12926 when we have a CFG. Simplify.
12927 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
12928 force_gimple_operand instead of get_initialized_tmp_var.
12929 * tree-pass.h (make_pass_init_datastructures): Remove.
12930 * tree-ssa.c (execute_init_datastructures): Remove.
12931 (pass_data_init_datastructures): Likewise.
12932 (class pass_init_datastructures): Likewise.
12933 (make_pass_init_datastructures): Likewise.
12934 * omp-low.c (create_omp_child_function): Init SSA data structures.
12935 (grid_expand_target_grid_body): Likewise.
12936 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
12937 name before adding it to names_to_release.
12938 (remove_bb): Always release SSA defs.
12939 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
12940 before dereferencing it.
12941 * cgraphunit.c (init_lowered_empty_function): Always
12942 int SSA data structures.
12943 * tree-ssanames.c (release_defs): Remove assert that we are in
12945 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
12947 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12948 Uros Bizjak <ubizjak@gmail.com>
12950 PR rtl-optimization/70467
12951 * config/i386/predicates.md (x86_64_hilo_int_operand,
12952 x86_64_hilo_general_operand): New predicates.
12953 * config/i386/constraints.md (Wd): New constraint.
12954 * config/i386/i386.md (mode attr di): Use Wd instead of e.
12955 (general_hilo_operand): New mode attr.
12956 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
12957 instead of <general_operand>.
12958 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
12959 x86_64_hilo_general_operand instead of <general_operand>.
12961 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12963 PR tree-optimization/70916
12964 * tree-if-conv.c (constant_or_ssa_name): Removed.
12965 (fold_build_cond_expr): Use is_gimple_val instead of
12966 constant_or_ssa_name.
12968 PR tree-optimization/70916
12969 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
12970 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
12973 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
12974 (optimize_atomic_bit_test_and): New function.
12975 (pass_fold_builtins::execute): Use it.
12976 * optabs.def (atomic_bit_test_and_set_optab,
12977 atomic_bit_test_and_complement_optab,
12978 atomic_bit_test_and_reset_optab): New optabs.
12979 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
12980 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
12981 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
12982 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
12983 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
12984 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
12985 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
12986 * doc/md.texi (atomic_bit_test_and_set@var{mode},
12987 atomic_bit_test_and_complement@var{mode},
12988 atomic_bit_test_and_reset@var{mode}): Document.
12989 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
12990 atomic_bit_test_and_complement<mode>,
12991 atomic_bit_test_and_reset<mode>): New expanders.
12992 (atomic_bit_test_and_set<mode>_1,
12993 atomic_bit_test_and_complement<mode>_1,
12994 atomic_bit_test_and_reset<mode>_1): New insns.
12996 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
12998 PR rtl-optimization/70687
12999 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
13000 instead of unsigned HOST_WIDE_INT.
13002 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
13004 PR rtl-optimization/44281
13005 * hard-reg-set.h (struct target_hard_regs): New field
13006 x_fixed_nonglobal_reg_set.
13007 (fixed_nonglobal_reg_set): New macro.
13008 * reginfo.c (init_reg_sets_1): Initialize it.
13009 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
13011 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
13013 2016-05-03 Bin Cheng <bin.cheng@arm.com>
13015 PR tree-optimization/56541
13016 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
13017 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
13018 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
13019 (any_complicated_phi): new static variable.
13020 (aggressive_if_conv): delete.
13021 (if_convertible_phi_p): support phis with more than two arguments.
13022 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
13023 critical pred edges.
13024 (ifcvt_split_critical_edges): support phis with more than two
13025 arguments by checking new parameter. only split critical edges
13027 (tree_if_conversion): handle simd pragma marked loop using new
13028 local variable aggressive_if_conv. check any_complicated_phi.
13030 2016-05-03 Bin Cheng <bin.cheng@arm.com>
13032 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
13035 2016-05-03 Bin Cheng <bin.cheng@arm.com>
13037 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
13040 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
13042 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
13043 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
13044 define_insn_and_split.
13045 (mulsi3_i): New define_insn_and_split.
13046 (mulsi3_call): Convert to define_insn.
13047 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
13048 Remove constraints.
13050 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
13052 * machmode.h (mode_complex): Add support to give the complex mode
13054 (GET_MODE_COMPLEX_MODE): Likewise.
13055 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
13056 stored by build_complex_type and gfc_build_complex_type instead of
13057 trying to figure out the appropriate mode based on the size. Raise
13058 an assertion error, if the type was not set.
13059 * genmodes.c (struct mode_data): Add field for the complex type of
13061 (blank_mode): Likewise.
13062 (make_complex_modes): Remember the complex mode created in the
13064 (emit_mode_complex): Write out the mode_complex array to map a
13065 type mode to the complex version.
13066 (emit_insn_modes_c): Likewise.
13067 * tree.c (build_complex_type): Set the complex type to use before
13068 calling layout_type.
13069 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
13070 support for __float128 complex datatypes.
13071 (rs6000_hard_regno_mode_ok): Likewise.
13072 (rs6000_setup_reg_addr_masks): Likewise.
13073 (rs6000_complex_function_value): Likewise.
13074 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
13075 __float128 and __ibm128 complex.
13076 (FLOAT128_IBM_P): Likewise.
13077 (ALTIVEC_ARG_MAX_RETURN): Likewise.
13078 * doc/extend.texi (Additional Floating Types): Document that
13079 -mfloat128 must be used to enable __float128. Document complex
13080 __float128 and __ibm128 support.
13082 2016-05-02 Jakub Jelinek <jakub@redhat.com>
13085 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
13086 char/short arguments promoted to int because of promote_prototypes.
13088 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
13090 * config/i386/predicates.md (register_ssemem_operand): New predicate.
13091 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
13092 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
13093 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
13094 alternatives using "enabled" attribute. Use register_ssemem_operand
13095 as operand 1 predicate.
13096 (*cmpi<unord>xf_i387): Split XFmode pattern from
13097 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
13098 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
13099 *absneg<mode>2_i387. Disable unsupported alternatives using
13100 "enabled" attribute.
13101 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
13103 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
13105 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
13107 (oacc_loop_process): Check mask for loop termination.
13109 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
13111 * cif-code.def (CIF_THUNK): Add.
13112 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
13115 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
13117 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
13118 (dump_inline_summary): Dump it.
13119 (fp_expression_p): New predicate.
13120 (estimate_function_body_sizes): Use it.
13121 (inline_merge_summary): Merge fp_expressions.
13122 (inline_read_section): Read fp_expressions.
13123 (inline_write_summary): Write fp_expressions.
13124 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
13125 codegen boundary if either caller or callee is !fp_expressions.
13126 * ipa-inline.h (inline_summary): Add fp_expressions.
13127 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
13128 to fp_expressions be sure the fp generation flags are updated.
13130 2016-05-02 Jakub Jelinek <jakub@redhat.com>
13132 PR rtl-optimization/70467
13133 * cse.c (cse_insn): Handle no-op MEM moves after folding.
13135 PR rtl-optimization/70467
13136 * ipa-pure-const.c (check_call): Handle internal calls even in
13137 ipa mode like in local mode.
13139 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
13141 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
13143 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
13145 * match.pd (X u< X, X u> X): New transformations.
13147 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
13149 * flag-types.h (enum warn_strict_overflow_code): Move ...
13150 * coretypes.h: ... here.
13151 * fold-const.h (fold_overflow_warning): Declare.
13152 * fold-const.c (fold_overflow_warning): Make non-static.
13153 (fold_comparison): Move the transformation of X +- C1 CMP C2
13154 into X CMP C2 -+ C1 ...
13155 * match.pd: ... here.
13156 * gimple-fold.c (fold_stmt_1): Protect with
13157 fold_defer_overflow_warnings.
13159 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
13161 * omp-low.c (struct oacc_loop): Add 'inner' field.
13162 (new_oacc_loop_raw): Initialize it to zero.
13163 (oacc_loop_fixed_partitions): Initialize it.
13164 (oacc_loop_auto_partitions): Partition outermost loop to outermost
13165 available partitioning.
13167 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
13169 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
13171 (umulsidi3): Likewise.
13172 (indirect_jump): Fix jump instruction assembly patterns.
13174 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
13177 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
13178 (nvptx_function_value): Assert non-NULL cfun.
13180 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
13182 PR rtl-optimization/70886
13183 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
13185 * cselib.h (rtx_equal_for_cselib_1): Declare.
13186 (rtx_equal_for_cselib_p: New inline function.
13187 * cselib.c (rtx_equal_for_cselib_p): Delete.
13188 (rtx_equal_for_cselib_1): Make public.
13190 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
13192 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
13193 (register_mixssei387nonimm_operand): Remove predicate.
13194 * config/i386/i386.md (*fop_<mode>_comm): Merge from
13195 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
13196 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
13197 for TARGET_MIX_SSE_I387 alternatives.
13198 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
13199 Disable unsupported alternatives using "enabled" attribute. Use
13200 nonimm_ssenomem_operand as operand 1 predicate. Also check
13201 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
13203 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13205 * tree.c (cst_and_fits_in_hwi): Simplify.
13207 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13209 * tree.h (wi::to_wide): New function.
13210 * expr.c (expand_expr_real_1): Use wi::to_wide.
13211 * fold-const.c (int_const_binop_1): Likewise.
13212 (extract_muldiv_1): Likewise.
13214 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13216 * wide-int.h: Update offset_int and widest_int documentation.
13217 (WI_SIGNED_SHIFT_RESULT): New macro.
13218 (wi::binary_shift): Define signed_shift_result_type for
13219 shifts on offset_int- and widest_int-like types.
13220 (generic_wide_int): Support <<= and >>= if << and >> are supported.
13221 * tree.h (int_bit_position): Use shift operators instead of wi::
13223 * alias.c (adjust_offset_for_component_ref): Likewise.
13224 * expr.c (get_inner_reference): Likewise.
13225 * fold-const.c (fold_comparison): Likewise.
13226 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
13227 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
13228 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13229 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13230 (stmt_kills_ref_p): Likewise.
13231 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
13232 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
13233 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13234 (ao_ref_init_from_vn_reference): Likewise.
13236 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13238 * wide-int.h: Update offset_int and widest_int documentation.
13239 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
13240 (wi::binary_traits): Allow ordered comparisons between offset_int and
13241 offset_int, between widest_int and widest_int, and between either
13242 of these types and basic C types.
13243 (operator <, <=, >, >=): Define for the same combinations.
13244 * tree.h (tree_int_cst_lt): Use comparison operators instead
13245 of wi:: comparisons.
13246 (tree_int_cst_le): Likewise.
13247 * gimple-fold.c (fold_array_ctor_reference): Likewise.
13248 (fold_nonarray_ctor_reference): Likewise.
13249 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
13250 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
13251 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
13252 * tree-sra.c (completely_scalarize): Likewise.
13253 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
13254 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
13255 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
13256 (check_for_binary_op_overflow): Likewise.
13257 (search_for_addr_array): Likewise.
13258 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
13260 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
13262 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
13263 (arc_save_restore): Likewise.
13264 (arc_dwarf_register_span): Likewise.
13265 (arc_output_pic_addr_const): Initialize suffix variable.
13267 2016-05-02 Martin Liska <mliska@suse.cz>
13269 * symbol-summary.h (function_summary::function_summary):
13270 Remove checking assert for all cgraph nodes.
13271 (function_summary::get): Check summary_uid.
13272 (symtab_insertion): Check summary_uid.
13274 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
13276 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
13277 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
13278 bmaskn instruction.
13279 (arc_dwarf_register_span): Remove enum keyword.
13280 (compact_memory_operand_p): New function.
13281 * config/arc/arc.h (reg_class): Add code density register classes.
13282 (REG_CLASS_NAMES): Likewise.
13283 (REG_CLASS_CONTENTS): Likewise.
13284 * config/arc/arc.md (*movqi_insn): Add code density instructions.
13285 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
13286 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
13287 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
13288 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
13290 (h, Rcd, Rsd, Rzd): New register constraints.
13291 (T): Use compact_memory_operand_p function.
13292 * config/arc/predicates.md (compact_load_memory_operand): Remove.
13294 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
13296 * config/sh/sh.md (*negnegt, *movtt): Remove.
13298 2016-05-02 Marek Polacek <polacek@redhat.com>
13299 Tom de Vries <tom@codesourcery.com>
13301 PR tree-optimization/70700
13302 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
13303 bigger than FIRST_REF_NODE.
13305 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
13308 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
13310 (prepare_cbranch_operands): Don't use scratch register. Assume that
13311 function is used when pseudos can be created.
13312 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
13313 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
13314 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
13315 define_expand. Allow it only when pseudos can be created.
13316 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
13318 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
13320 * config/i386/constraints.md (BC): Only allow -1 operands.
13321 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
13322 Add "enabled" attribute. Update XI mode attribute calculation.
13323 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
13324 (*movoi_internal_avx): Update XI mode attribute calculation.
13325 (*movti_internal): Ditto.
13327 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
13329 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
13330 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
13332 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
13334 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
13335 statement on instruction code. Remove trailing spaces.
13336 (altivec_expand_stv_builtin): Likewise.
13338 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
13340 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
13341 (TARGET_FPU_DOUBLE): Simplify.
13342 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
13343 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
13344 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
13345 with 'TARGET_FPU_DOUBLE'.
13346 * config/sh/sh.md: Likewise.
13348 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
13350 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
13351 SH_DIV_STR_FOR_SIZE): Remove.
13352 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
13353 SH_DIV_STR_FOR_SIZE): Remove.
13355 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
13357 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
13358 logical_reg_operand): Delete.
13359 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
13360 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
13361 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
13362 match_operand and match_test.
13363 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
13364 variables on their first use. Return bool values.
13365 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
13366 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
13367 arith_reg_operand for input operand. Remove empty constraints.
13369 (*xorsi3_compact): Rename to xorsi3.
13370 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
13371 (*zero_extend<mode>si2_disp_mem): Update comment.
13374 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
13376 * config/sh/t-sh: Remove SH5 support.
13377 * config.gcc: Likewise.
13378 * configure: Likewise.
13380 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13382 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
13384 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
13386 * config/sh/sh.c (register_sh_passes, sh_option_override,
13387 sh_print_operand, prepare_move_operands,
13388 sh_can_follow_jump): Remove TARGET_SH1 checks.
13389 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
13390 PROMOTE_MODE): Likewise.
13391 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
13394 2016-04-30 Alan Modra <amodra@gmail.com>
13396 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
13397 restoring when fixed_reg_p, but allow out-of-line or stmw save.
13398 Check for user regs later to avoid unnecessary looping over regs.
13399 Merge user reg check with non-saved reg check. Don't force
13400 inline VR restore when static chain used.
13401 (rs6000_frame_related): Omit eh_frame info for user regs when
13403 (fixed_regs_p): Delete.
13405 2016-04-30 Alan Modra <amodra@gmail.com>
13407 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
13408 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
13411 2016-04-30 Alan Modra <amodra@gmail.com>
13414 * config/rs6000/rs6000.c (fixed_reg_p): New function.
13415 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
13418 2016-04-30 Alan Modra <amodra@gmail.com>
13420 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
13421 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
13422 flag_pic test for Darwin.
13424 2016-04-30 Alan Modra <amodra@gmail.com>
13426 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
13427 throw_calls_crossed.
13428 (REG_FREQ_CALLS_CROSSED): Delete.
13429 (REG_N_THROWING_CALLS_CROSSED): Delete.
13430 * regstat.c (regstat_bb_compute_ri): Don't calculate
13431 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
13432 (dump_reg_info): Don't print call cross frequency.
13433 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
13434 and REG_N_THROWING_CALLS_CROSSED.
13436 2016-04-30 Alan Modra <amodra@gmail.com>
13438 * regs.h (struct reg_info_t): Delete live_length.
13439 (REG_LIVE_LENGTH): Delete macro.
13440 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
13441 local_live, local_processed and local_live_last_luid params.
13442 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
13444 (regstat_compute_ri): Adjust for above. Don't set
13446 (dump_reg_info): Don't print live length.
13447 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
13448 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
13449 Localize loop_depth var.
13451 2016-04-30 Alan Modra <amodra@gmail.com>
13453 * ira.c (enum valid_equiv): New.
13454 (validate_equiv_mem): Return enum.
13455 (update_equiv_mem): Create replacement in more cases.
13456 (add_store_equivs): Update validate_equiv_mem call.
13458 2016-04-30 Alan Modra <amodra@gmail.com>
13460 * ira.c (combine_and_move_insns): Rather than scanning insns,
13461 use DF infrastucture to find use and def insns.
13463 2016-04-30 Alan Modra <amodra@gmail.com>
13465 ira.c (combine_and_move_insns): Move invariant conditions..
13466 (ira.c): ..to here. Call combine_and_move_insns before
13467 add_store_equivs. Call grow_reg_equivs later. Allocate
13468 req_equiv later using max_reg_num() rather than global max_regno.
13469 (contains_replace_regs): Delete.
13470 (add_store_equivs): Remove contains_replace_regs test.
13472 2016-04-30 Alan Modra <amodra@gmail.com>
13474 * ira.c (struct equiv_mem_data): New.
13475 (equiv_mem, equiv_mem_modified): Delete static vars.
13476 (validate_equiv_mem_from_store): Use "data" param to communicate..
13477 (validate_equiv_mem): ..from here.
13479 2016-04-30 Alan Modra <amodra@gmail.com>
13481 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
13483 (update_reg_equivs): ..here. Move allocation and freeing of
13484 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
13485 end_alias_analysis to..
13488 2016-04-30 Alan Modra <amodra@gmail.com>
13490 * ira.c (pdx_subregs): Delete.
13491 (struct equivalence): Add pdx_subregs field.
13492 (set_paradoxical_subreg): Remove pdx_subregs param. Update
13493 pdx_subregs access.
13494 (update_equiv_regs): Don't create or free pdx_subregs. Update
13495 pdx_subregs access.
13497 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13499 * config/rs6000/altivec.h: Change definitions of vec_xl and
13501 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
13502 (LD_ELEMREV_V2DI): New.
13503 (LD_ELEMREV_V4SF): New.
13504 (LD_ELEMREV_V4SI): New.
13505 (LD_ELEMREV_V8HI): New.
13506 (LD_ELEMREV_V16QI): New.
13507 (ST_ELEMREV_V2DF): New.
13508 (ST_ELEMREV_V2DI): New.
13509 (ST_ELEMREV_V4SF): New.
13510 (ST_ELEMREV_V4SI): New.
13511 (ST_ELEMREV_V8HI): New.
13512 (ST_ELEMREV_V16QI): New.
13515 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13516 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
13517 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
13518 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
13519 (altivec_expand_builtin): Add handling for
13520 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
13521 (rs6000_invalid_builtin): Add error-checking for
13522 RS6000_BTM_P9_VECTOR.
13523 (altivec_init_builtins): Define builtins used to implement vec_xl
13525 (rs6000_builtin_mask_names): Define power9-vector.
13526 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
13527 (RS6000_BTM_P9_VECTOR): Define.
13528 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
13529 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
13530 (vsx_ld_elemrev_v2df): Likewise.
13531 (vsx_ld_elemrev_v4sf): Likewise.
13532 (vsx_ld_elemrev_v4si): Likewise.
13533 (vsx_ld_elemrev_v8hi): Likewise.
13534 (vsx_ld_elemrev_v16qi): Likewise.
13535 (vsx_st_elemrev_v2df): Likewise.
13536 (vsx_st_elemrev_v2di): Likewise.
13537 (vsx_st_elemrev_v4sf): Likewise.
13538 (vsx_st_elemrev_v4si): Likewise.
13539 (vsx_st_elemrev_v8hi): Likewise.
13540 (vsx_st_elemrev_v16qi): Likewise.
13541 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
13544 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
13546 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
13548 (simplify_control_stmt_condition_1): ... here. Recurse into
13549 BIT_AND_EXPRs and BIT_IOR_EXPRs.
13551 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
13554 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
13555 (zero_extendqi<mode>2_dot): Revert earlier conversion from
13556 define_insn_and_split to define_insn.
13557 (zero_extendqi<mode>2_dot2): Same.
13558 (extendqi<mode>2_dot): Same.
13559 (extendqi<mode>2_dot2): Same.
13561 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13563 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
13564 (probe_stack): New expander.
13565 (probe_stack_<mode>): New insn pattern.
13567 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13569 * config/i386/i386.md
13570 (operations with memory inputs setting flags peephole2):
13571 Remove uneeded REG_P checks. Cleanup pattern generation.
13573 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
13575 * tree-vect-loop.c (vect_transform_loop): Fix
13576 nb_iterations_upper_bound computation for vectorized loop.
13578 2016-04-29 Marek Polacek <polacek@redhat.com>
13579 Jakub Jelinek <jakub@redhat.com>
13582 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
13583 TARGET_EXPR_SLOT as a base.
13585 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
13587 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
13588 with 'rCm2' constraints to limit possible immediate size.
13589 (*load_zeroextendqisi_update): Likewise.
13590 (*load_signextendqisi_update): Likewise.
13591 (*loadhi_update): Likewise.
13592 (*load_zeroextendhisi_update): Likewise.
13593 (*load_signextendhisi_update): Likewise.
13594 (*loadsi_update): Likewise.
13595 (*loadsf_update): Likewise.
13597 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13599 * config/i386/predicates.md (constm1_operand): Fix comparison.
13601 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
13603 * testsuite/gcc.target/arc/ieee_eq.c: New test.
13605 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
13607 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
13608 remaining SH5 related settings.
13609 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
13610 shmedia_prepare_call_address): Delete.
13611 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
13612 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
13613 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
13614 UNSUPPORTED_SH2A): Remove m5 checks.
13615 (sh_divide_strategy_e): Remove SH5 division strategies.
13616 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
13617 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
13619 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
13621 * config/s390/s390.c (s390_rtx_costs): Update documentation.
13623 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13625 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
13626 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
13627 Change lder to ldr.
13628 * config/s390/vector.md ("mov<mode>"): Likewise.
13630 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
13632 * config/s390/constraints.md ("U", "W"): Invoke
13633 s390_mem_constraint with "ZR" and "ZT".
13634 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
13635 addresses when using LRA. Accept also short displacements for S
13636 and T constraints. Do not check for long displacement target for
13637 S and T constraints.
13638 (s390_mem_constraint): Remove handling of U and W constraints.
13639 * config/s390/s390.md (various patterns): Remove the short
13640 displacement constraints (Q and R) if a long displacement
13641 constraint is present. Add longdisp as required CPU capability.
13642 * config/s390/vector.md: Likewise.
13643 * config/s390/vx-builtins.md: Likewise.
13645 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13648 * reload1.c (reload): Call finish_spills before
13649 restarting reload loop. Skip select_reload_regs
13650 if update_eliminables_and_spill returns true.
13652 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
13654 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
13655 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
13656 (umulhisi3_imm): Update predicates and constraint letters.
13657 (umulhisi3_reg): Declare instruction as commutative.
13658 * config/arc/constraints.md (J12, J16): New constraints.
13659 * config/arc/predicates.md (short_unsigned_const_operand): New
13661 (arc_short_operand): Likewise.
13662 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
13664 2016-04-29 Richard Biener <rguenther@suse.de>
13666 PR tree-optimization/13962
13667 PR tree-optimization/65686
13668 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
13669 * tree-ssa-alias.c (ptrs_compare_unequal): New function
13670 using PTA to compare pointers.
13671 * match.pd: Add pattern for pointer equality compare simplification
13672 using ptrs_compare_unequal.
13674 2016-04-29 Richard Biener <rguenther@suse.de>
13676 * stor-layout.c (layout_type): Do not build a pointer-to-element
13679 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13681 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
13682 Use SWI mode iterator. Use general_reg_operand predicate.
13683 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
13684 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
13687 2016-04-29 Jakub Jelinek <jakub@redhat.com>
13689 PR middle-end/70843
13690 * fold-const.c (operand_equal_p): Don't verify hash value equality
13692 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
13695 2016-04-28 Jakub Jelinek <jakub@redhat.com>
13698 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
13699 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
13700 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
13701 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
13702 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
13704 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13706 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
13707 to info. Don't initialize separate fields to 0. Clean up
13710 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13712 * config/i386/i386.md (peephole2s for operations with memory inputs):
13713 Use SWI mode iterator.
13714 (peephole2s for operations with memory outputs): Ditto.
13715 Do not check for stack checking probe.
13717 (probe_stack): Remove expander.
13719 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13720 Andrew Burgess <andrew.burgess@embecosm.com>
13722 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
13723 operands as 32-bits.
13725 2016-04-28 Jason Merrill <jason@redhat.com>
13727 * gdbinit.in: Skip line-map.h.
13729 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13730 Andrew Burgess <andrew.burgess@embecosm.com>
13732 * config/arc/arc.c (arc_conditional_register_usage): Take
13733 TARGET_RRQ_CLASS into account.
13734 (arc_print_operand): Support printing 'p' and 's' operands.
13735 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
13737 (TARGET_RRQ_CLASS): Define.
13738 (IS_POWEROF2_OR_0_P): Define.
13739 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
13741 (*tst_movb): New define_insn.
13742 (*tst): Avoid recognition if it could prevent '*tst_movb'
13743 combination; replace c/CnL with c/Chs alternative.
13744 (*tst_bitfield_tst): New define_insn.
13745 (*tst_bitfield_asr): New define_insn.
13746 (*tst_bitfield): New define_insn.
13747 (andsi3_i): Add Rrq variant.
13748 (extzv): New define_expand.
13749 (insv): New define_expand.
13750 (*insv_i): New define_insn.
13751 (*movb): New define_insn.
13752 (*movb_signed): New define_insn.
13753 (*movb_high): New define_insn.
13754 (*movb_high_signed): New define_insn.
13755 (*movb_high_signed + 1): New define_split pattern.
13756 (*mrgb): New define_insn.
13757 (*mrgb + 1): New define_peephole2 pattern.
13758 (*mrgb + 2): New define_peephole2 pattern.
13759 * config/arc/arc.opt (mbitops): New option for nps400, uses
13760 TARGET_NPS_BITOPS_DEFAULT.
13761 * config/arc/constraints.md (q): Make register class conditional.
13762 (Rrq): New register constraint.
13763 (Chs): New constraint.
13764 (Clo): New constraint.
13765 (Chi): New constraint.
13766 (Cbf): New constraint.
13767 (Cbn): New constraint.
13768 (C18): New constraint.
13769 (Cbi): New constraint.
13771 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13773 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
13775 (bitmap_intersection_of_preds): Ditto.
13776 (bitmap_union_of_succs): Ditto.
13777 (bitmap_union_of_preds): Ditto.
13778 * sbitmap.c (do_popcount): Delete.
13779 (BITMAP_DEBUGGING): Delete.
13780 (sbitmap_verify_popcount): Delete.
13781 (sbitmap_alloc): Don't initialize the popcount field.
13782 (sbitmap_alloc_with_popcount): Delete.
13783 (sbitmap_resize): Don't resize the popcount array.
13784 (sbitmap_vector_alloc): Don't initialize the popcount field.
13785 (bitmap_copy): Don't copy the popcount array.
13786 (bitmap_clear): Don't clear the popcount array.
13787 (bitmap_clear): Delete the popcount array handling.
13788 (bitmap_ior_and_compl): Delete the popcount assert.
13789 (bitmap_not): Ditto.
13790 (bitmap_and_compl): Ditto.
13791 (bitmap_and): Delete the popcount array handling.
13792 (bitmap_xor): Ditto.
13793 (bitmap_ior): Ditto.
13794 (bitmap_or_and): Delete the popcount assert.
13795 (bitmap_and_or): Ditto.
13796 (popcount_table): Delete.
13797 (sbitmap_elt_popcount): Delete.
13798 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
13799 (bitmap_set_bit): Delete the popcount assert.
13800 (bitmap_clear_bit): Ditto.
13801 (sbitmap_free): Don't free the popcount array.
13802 (sbitmap_alloc_with_popcount): Delete declaration.
13803 (sbitmap_popcount): Ditto.
13805 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13806 Andrew Burgess <andrew.burgess@embecosm.com>
13808 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
13809 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
13810 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
13811 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
13812 * config/arc/arc.opt (mcmem): New option.
13813 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
13814 supply length for r/m alternative.
13815 (*extendqisi2_ac): Likewise.
13816 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
13818 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
13819 (movhi_insn): Likewise.
13820 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
13821 (*zero_extendqihi2_i): Add r/Ucm alternative.
13822 (*zero_extendqisi2_ac): Likewise.
13823 (*zero_extendhisi2_i): Likewise.
13824 * config/arc/constraints.md (Uex): New memory constraint.
13825 (Ucm): New define_constraint.
13826 * config/arc/predicates.md (long_immediate_loadstore_operand):
13827 Return 0 for MEM with cmem_address address.
13828 (cmem_address_0): New predicates.
13829 (cmem_address_1): Likewise.
13830 (cmem_address_2): Likewise.
13831 (cmem_address): Likewise.
13833 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13835 * config/rs6000/rs6000.c (machine_function): Rename
13836 insn_chain_scanned_p to spe_insn_chain_scanned_p.
13837 (rs6000_stack_info): Adjust.
13839 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13840 Andrew Burgess <andrew.burgess@embecosm.com>
13842 * config/arc/constraints.md (Usd): Convert to define_constraint.
13846 2016-04-28 Jakub Jelinek <jakub@redhat.com>
13849 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
13850 Add new peephole2 where the first insn is *mov<mode>_or instead of
13851 *mov<mode>_internal.
13853 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
13855 * tracer.c (bb_seen): Make static.
13857 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
13859 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
13860 support, setup defaults.
13861 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
13862 * config/arc/arc.c (arc_init): Add NPS400 support.
13863 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
13864 (TARGET_ARC700): NPS400 is also an ARC700.
13865 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
13867 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13870 * config/nds32/nds32.md (casesi): Don't access the operands array
13873 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13875 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
13876 (or $-1,reg peephole2): Ditto.
13877 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
13879 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
13881 * doc/extend.texi (Common Function Attributes) [optimize]:
13882 Discourage use of the optimize attribute.
13884 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
13886 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
13887 special case builtin.
13888 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
13889 ALTIVEC_BUILTIN_VEC_ADDE.
13890 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13891 support for ALTIVEC_BUILTIN_VEC_ADDE.
13892 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13893 for __builtin_vec_adde.
13895 2016-04-28 Jakub Jelinek <jakub@redhat.com>
13897 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
13898 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
13900 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13903 * doc/sourcebuild.texi (Effective-Target Keywords, Other
13904 attributes): Document cilkplus_runtime.
13906 2016-04-28 Martin Jambor <mjambor@suse.cz>
13908 * tree-cfg.c (verify_expr): Verify that local declarations belong to
13909 this function. Call verify_expr on MEM_REFs and bases of other
13910 handled_components.
13912 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13914 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
13915 for WORD_REGISTER_OPERATIONS to runtime check.
13917 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13919 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
13921 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13923 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
13924 big-endian compilation.
13925 * config/arc/arc.md (addf3): Likewise.
13926 (subdf3): Likewise.
13927 (muldf3): Likewise.
13929 2016-04-28 Richard Biener <rguenther@suse.de>
13931 PR tree-optimization/70840
13932 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
13933 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
13934 Mark x * pow(x,c) -> pow(x,c+1) commutative.
13935 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
13937 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13939 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
13940 and explain why in a comment.
13942 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13944 * config/arc/arc.md (cpu_facility): Add fpx variant.
13945 (subdf3): Prohibit use reverse sub when assist operations option
13947 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
13948 instructions only when FPX is enabled.
13949 * testsuite/gcc.target/arc/trsub.c: New test.
13951 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13953 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
13954 mult_operator when calculating "type" attribute.
13955 (*fop_<mode>_1_i387): Ditto.
13956 (*fop_xf_1_i387): Ditto.
13957 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
13958 Use std::swap to swap operands. Use RTL expressions to generate
13961 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13962 Joern Rennecke <joern.rennecke@embecosm.com>
13964 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
13966 (emit_pic_move): Remove.
13967 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
13968 * config/arc/arc.c (emit_pic_move): Removed.
13969 (TARGET_HAVE_TLS): Define.
13970 (arc_conditional_register_usage): Test for arc_tp_regno.
13971 (arc_print_operand, arc_print_operand_address): Handle TLS
13973 (arc_needs_pcl_p): New function.
13974 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
13975 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
13976 (arc_raw_symbolic_reference_mentioned_p): Likewise.
13977 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
13978 (arc_legitimize_tls_address): Likewise.
13979 (DTPOFF_ZERO_SYM): Define.
13980 (arc_legitimize_pic_address): Make it static, handle TLS cases.
13981 (arc_output_pic_addr_const): Print TLS unspecs.
13982 (prepare_pic_move): New function, replaces emit_pic_move.
13983 (arc_legitimate_constant_p): Handle TLS unspecs.
13984 (arc_legitimate_address_p): Likewise.
13985 (arc_rewrite_small_data_p): Use assert for TLS constants.
13986 (prepare_move_operands): Use prepare_pic_move.
13987 (arc_legitimize_address): Legitimize tls addresses.
13988 (arc_epilogue_uses): Check for arc_tp_regno.
13989 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
13990 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
13992 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
13994 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
13995 %(arc_tls_extra_start_spec).
13996 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
13997 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
13999 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
14000 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
14001 (UNSPEC_TLS_OFF): Add.
14003 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
14004 (get_thread_pointersi): New patterns.
14005 * config/arc/arc.opt (mtp-regno): New option.
14006 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
14007 (move_dest_operand): Likewise.
14008 * configure: Regenerate.
14009 * configure.ac: Add arc*-*-* case to test for tls.
14010 * doc/invoke.texi (ARC options): Document mtp-regno.
14012 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
14014 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
14015 the new ARC HS SIMD instructions.
14016 (arc_preferred_simd_mode): New function.
14017 (arc_autovectorize_vector_sizes): Likewise.
14018 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
14019 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
14020 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
14021 (arc_init_builtins): Add new SIMD builtin types.
14022 (arc_split_move): Handle 64 bit vector moves.
14023 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
14024 (TARGET_PLUS_QMACW): Define.
14025 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
14026 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
14027 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
14028 (VSUBADD4H): New builtins.
14029 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
14030 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
14032 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
14033 Matthias Klose <doko@debian.org>
14035 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
14037 2016-04-28 Richard Biener <rguenther@suse.de>
14039 PR middle-end/70777
14040 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
14043 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
14045 * common/config/sh/sh-common.c: Remove SH5 support.
14046 * config/sh/constraints.md: Likewise.
14047 * config/sh/config/sh/elf.h: Likewise.
14048 * config/sh/linux.h: Likewise.
14049 * config/sh/netbsd-elf.h: Likewise.
14050 * config/sh/predicates.md: Likewise.
14051 * config/sh/sh-c.c: Likewise.
14052 * config/sh/sh-protos.h: Likewise.
14053 * config/sh/sh.c: Likewise.
14054 * config/sh/sh.h: Likewise.
14055 * config/sh/sh.md: Likewise.
14056 * config/sh/sh.opt: Likewise.
14057 * config/sh/sync.md: Likewise.
14058 * config/sh/sh64.h: Delete.
14059 * config/sh/shmedia.h: Likewise.
14060 * config/sh/shmedia.md: Likewise.
14061 * config/sh/sshmedia.h: Likewise.
14062 * config/sh/t-netbsd-sh5-64: Likewise.
14063 * config/sh/t-sh64: Likewise.
14064 * config/sh/ushmedia.h: Likewise.
14066 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
14068 * config/i386/i386.md (sign_extend to memory peephole2s): Use
14069 general_reg_operand instead of register_operand predicate.
14071 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14073 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
14075 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
14077 * match.pd (A - B > A, A + B < A): New transformations.
14079 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
14081 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
14082 which defaults to true. Emit an outer pair of parentheses only if
14083 EMIT_PARENS. When continuing a chain of && or || (or & or |),
14084 don't emit parentheses for the right-hand operand.
14086 2016-04-27 Jeff Law <law@redhat.com>
14088 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
14090 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14092 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
14093 (altivec_lvx_<mode>_internal): Document.
14094 (altivec_lvx_<mode>_2op): New define_insn.
14095 (altivec_lvx_<mode>_1op): Likewise.
14096 (altivec_lvx_<mode>_2op_si): Likewise.
14097 (altivec_lvx_<mode>_1op_si): Likewise.
14098 (altivec_stvx_<mode>): Remove.
14099 (altivec_stvx_<mode>_internal): Document.
14100 (altivec_stvx_<mode>_2op): New define_insn.
14101 (altivec_stvx_<mode>_1op): Likewise.
14102 (altivec_stvx_<mode>_2op_si): Likewise.
14103 (altivec_stvx_<mode>_1op_si): Likewise.
14104 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14105 Expand vec_ld and vec_st during parsing.
14106 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
14108 (altivec_expand_stvx_be): Likewise.
14109 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
14110 address-masking behavior in RTL.
14111 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
14112 address-masking behavior in RTL.
14113 (altivec_expand_builtin): Change builtin code arguments for calls
14114 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
14115 (insn_is_swappable_p): Avoid incorrect swap optimization in the
14116 presence of lvx/stvx patterns.
14117 (alignment_with_canonical_addr): New function.
14118 (alignment_mask): Likewise.
14119 (find_alignment_op): Likewise.
14120 (recombine_lvx_pattern): Likewise.
14121 (recombine_stvx_pattern): Likewise.
14122 (recombine_lvx_stvx_patterns): Likewise.
14123 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
14124 stvx patterns from expand.
14125 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
14127 (vector_altivec_store_<mode>): Likewise.
14129 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
14131 * config/aarch64/aarch64.md
14132 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
14133 remove the "fp" attributes.
14134 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
14135 add the "simd" attributes.
14136 (*movdf_aarch64): Likewise.
14137 (*movtf_aarch64): Remove the "fp" attributes.
14138 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
14139 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
14141 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14143 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
14144 rtx to rtx_code_label *.
14145 * rtl.h (maybe_set_first_label_num): Likewise.
14147 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14149 * df-core.c (df_add_problem): Make the problem param be const.
14150 (df_remove_problem): Make local "problem" be const.
14151 * df-problems.c (problem_RD): Make const.
14152 (problem_LR): Likewise.
14153 (problem_LIVE): Likewise.
14154 (problem_MIR): Likewise.
14155 (problem_CHAIN): Likewise.
14156 (problem_WORD_LR): Likewise.
14157 (problem_NOTE): Likewise.
14158 (problem_MD): Likewise.
14159 * df-scan.c (problem_SCAN): Likewise.
14160 * df.h (struct df_problem): Make field "dependent_problem" be
14162 (struct dataflow): Likewise for field "problem".
14163 (df_add_problem): Make param const.
14165 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
14167 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
14168 inter-unit moves to/from vector registers are enabled. Do not disable
14171 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14173 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
14174 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
14176 (enum df_problem_id): ...this new enum.
14177 (struct df_problem): Convert field "id" from "int" to
14178 enum df_problem_id.
14180 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14182 * rtl.def: Update comment for "things in the instruction chain" to
14183 reflect the removal of the leading "i" field for INSN_UID in
14184 r210360. Fix bogus apostrophe.
14186 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
14188 * config/i386/i386.md
14189 (lea arith with mem operand + setcc peephole2): Set operator mode.
14191 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
14194 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
14195 (dimode_scalar_to_vector_candidate_p): This.
14196 (timode_scalar_to_vector_candidate_p): New function.
14197 (scalar_to_vector_candidate_p): Likewise.
14198 (timode_check_non_convertible_regs): Likewise.
14199 (timode_remove_non_convertible_regs): Likewise.
14200 (remove_non_convertible_regs): Likewise.
14201 (remove_non_convertible_regs): Renamed to ...
14202 (dimode_remove_non_convertible_regs): This.
14203 (scalar_chain::~scalar_chain): Make it virtual.
14204 (scalar_chain::compute_convert_gain): Make it pure virtual.
14205 (scalar_chain::mark_dual_mode_def): Likewise.
14206 (scalar_chain::convert_insn): Likewise.
14207 (scalar_chain::convert_registers): Likewise.
14208 (scalar_chain::add_to_queue): Make it protected.
14209 (scalar_chain::emit_conversion_insns): Likewise.
14210 (scalar_chain::replace_with_subreg): Likewise.
14211 (scalar_chain::replace_with_subreg_in_insn): Likewise.
14212 (scalar_chain::convert_op): Likewise.
14213 (scalar_chain::convert_reg): Likewise.
14214 (scalar_chain::make_vector_copies): Likewise.
14215 (scalar_chain::convert_registers): New pure virtual function.
14216 (class dimode_scalar_chain): New class.
14217 (class timode_scalar_chain): Likewise.
14218 (scalar_chain::mark_dual_mode_def): Renamed to ...
14219 (dimode_scalar_chain::mark_dual_mode_def): This.
14220 (timode_scalar_chain::mark_dual_mode_def): New function.
14221 (timode_scalar_chain::convert_insn): Likewise.
14222 (dimode_scalar_chain::convert_registers): Likewise.
14223 (scalar_chain::compute_convert_gain): Renamed to ...
14224 (dimode_scalar_chain::compute_convert_gain): This.
14225 (scalar_chain::replace_with_subreg): Renamed to ...
14226 (dimode_scalar_chain::replace_with_subreg): This.
14227 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
14228 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
14229 (scalar_chain::make_vector_copies): Renamed to ...
14230 (dimode_scalar_chain::make_vector_copies): This.
14231 (scalar_chain::convert_reg): Renamed to ...
14232 (dimode_scalar_chain::convert_reg ): This.
14233 (scalar_chain::convert_op): Renamed to ...
14234 (dimode_scalar_chain::convert_op): This.
14235 (scalar_chain::convert_insn): Renamed to ...
14236 (dimode_scalar_chain::convert_insn): This.
14237 (scalar_chain::convert): Call convert_registers.
14238 (convert_scalars_to_vector): Change to scalar_chain pointer to
14239 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
14240 in 32-bit mode. Delete scalar_chain pointer. Call
14241 free_dominance_info in 64-bit mode.
14242 (pass_stv::gate): Remove TARGET_64BIT check.
14243 (ix86_option_override): Put the 64-bit STV pass before the CSE
14246 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
14248 * dwarf2out.h (struct dw_loc_descr_node): Remove the
14249 dw_loc_frame_offset field.
14250 * dwarf2out.c (new_loc_descr): Likewise.
14251 (resolve_args_picking_1): Turn the VISITED hash set into a
14252 FRAME_OFFSET hash map. Use it to associate a frame offset to
14253 visited nodes. Remove uses of the CHECKING_P macro.
14254 (resolve_args_picking): Update call to resolve_args_picking_1.
14256 2016-04-27 Martin Liska <mliska@suse.cz>
14258 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
14259 (free_loop_data): Release vuses of groups.
14261 2016-04-27 Bin Cheng <bin.cheng@arm.com>
14263 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
14264 instead of redundant use_id and boolean have_use_for.
14265 (struct iv_use): Change sub_id into group_id. Remove field next.
14266 Move fields: related_cands, n_map_members, cost_map and selected
14268 (struct iv_group): ... here. New structure.
14269 (struct iv_common_cand): Use structure declaration directly.
14270 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
14271 (MAX_CONSIDERED_USES): Rename macro to ...
14272 (MAX_CONSIDERED_GROUPS): ... here.
14273 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
14274 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
14275 (dump_uses): Rename to ...
14276 (dump_groups): ... here. Update all uses.
14277 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
14278 (find_induction_variables): Refactor format of dump information.
14279 (record_sub_use): Delete.
14280 (record_use): Update all uses.
14281 (record_group): New function.
14282 (record_group_use, find_interesting_uses_op): Call above functions.
14284 (find_interesting_uses_cond): Ditto.
14285 (group_compare_offset): New function.
14286 (split_all_small_groups): Rename to ...
14287 (split_small_address_groups_p): ... here. Update all uses.
14288 (split_address_groups): Update all uses.
14289 (find_interesting_uses): Refactor format of dump information.
14290 (add_candidate_1): Update all uses. Remove redundant check on iv,
14292 (add_candidate, record_common_cand): Remove redundant assert.
14293 (add_iv_candidate_for_biv): Update use.
14294 (add_iv_candidate_derived_from_uses): Update all uses.
14295 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
14296 (alloc_use_cost_map): Ditto.
14297 (set_use_iv_cost, get_use_iv_cost): Rename to ...
14298 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
14299 (determine_use_iv_cost_generic): Ditto.
14300 (determine_group_iv_cost_generic): Ditto.
14301 (determine_use_iv_cost_address): Ditto.
14302 (determine_group_iv_cost_address): Ditto.
14303 (determine_use_iv_cost_condition): Ditto.
14304 (determine_group_iv_cost_cond): Ditto.
14305 (determine_use_iv_cost): Ditto.
14306 (determine_group_iv_cost): Ditto.
14307 (set_autoinc_for_original_candidates): Update all uses.
14308 (find_iv_candidates): Update all uses. Refactor dump information.
14309 (determine_use_iv_costs): Ditto.
14310 (determine_iv_costs): Ditto.
14311 (iv_ca_cand_for_use): Rename to ...
14312 (iv_ca_cand_for_group): ... here. Update all uses.
14313 (iv_ca_add_use, iv_ca_add_group): Ditto.
14314 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
14315 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
14316 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
14317 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
14318 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
14319 (create_new_iv, adjust_iv_update_pos): Ditto.
14320 (rewrite_use_address): Delete.
14321 (rewrite_use_address_1): Rename to ...
14322 (rewrite_use_address): ... here.
14323 (rewrite_use_compare): Update all uses.
14324 (rewrite_use): Delete.
14325 (rewrite_uses): Rename to ...
14326 (rewrite_groups): ... here. Update all uses.
14327 (remove_unused_ivs, free_loop_data): Update all uses.
14328 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
14330 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14332 * rtlanal.c (nonzero_bits1): Convert preprocessor check
14333 for WORD_REGISTER_OPERATIONS to runtime check.
14335 2016-04-27 Richard Biener <rguenther@suse.de>
14338 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
14339 aggregate_value_p to determine if a function result is
14340 returned by reference.
14341 (ipa_pta_execute): Functions having their address taken are
14342 not automatically nonlocal.
14344 2016-04-27 Jakub Jelinek <jakub@redhat.com>
14347 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
14348 * fold-const.c (operand_equal_p): If flag_checking and
14349 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
14350 and if it returns non-zero, assert iterative_hash_expr on both
14353 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
14355 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
14357 2016-04-27 Nick Clifton <nickc@redhat.com>
14359 PR middle-end/49889
14360 * varasm.c (merge_weak): Generate an error if an attempt is made
14361 to convert a non-weak static function into a weak, public function.
14363 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14365 * params.def (MAX_PARTITION_SIZE): New param.
14366 * doc/invoke.texi: Document lto-max-partition.
14368 2016-04-27 Richard Biener <rguenther@suse.de>
14371 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
14372 function cummulating used_from_other_partition, externally_visible
14373 and force_output from aliases.
14374 (refered_from_nonlocal_var): Likewise.
14375 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
14376 node flags properly.
14378 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
14380 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
14381 (-Wmemset-elt-size): New item.
14383 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
14386 * stor-layout.h (internal_reference_types): Delete.
14387 * stor-layout.c (reference_types_internal): Likewise.
14388 (internal_reference_types): Likewise.
14389 (layout_type) <REFERENCE_TYPE>: Adjust.
14391 2016-04-27 Jakub Jelinek <jakub@redhat.com>
14394 * tree.h (inchash::add_expr): Add FLAGS argument.
14395 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
14396 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
14397 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
14398 Formatting fix. Adjust recursive calls. For tcc_comparison,
14399 if swap_tree_comparison (code) is smaller than code, hash that
14400 and arguments in the other order. Hash CONVERT_EXPR the same
14401 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
14402 of ADDR_EXPR of decl as the decl itself. Add or remove
14403 OEP_ADDRESS_OF from recursive flags as needed. For
14404 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
14405 operands commutatively and only the third one normally.
14406 For internal CALL_EXPR hash in CALL_EXPR_IFN.
14408 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
14410 * config/rtems.h (LIB_SPEC): Add -latomic.
14412 2016-04-27 Joel Sherrill <joel@rtems.org>
14414 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
14415 xilink.ld and flags not relevant to RTEMS.
14417 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
14419 * toplev.c (backend_init_target): Avoid calling init_reload when using
14422 2016-04-26 Jakub Jelinek <jakub@redhat.com>
14424 * reorg.c (try_merge_delay_insns): Declare i and j inside the
14425 for loops rather than one for the whole function.
14427 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
14429 * match.pd (X + CST CMP X): New transformation.
14431 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
14433 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
14434 * fold-const.c (fold_binary_loc): Remove 2 transformations
14435 superseded by match.pd.
14436 * match.pd (x+x -> x*2): Generalize to integers.
14438 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
14440 * config/i386/i386.md (operation on memory peephole): Duplicate an
14441 existing peephole and adapt it to match lea rather than an operation
14444 PR rtl-optimization/57193
14445 * opts.c (default_options_table): Add OPT_frename_registers at -O2
14447 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
14449 2016-04-26 Bin Cheng <bin.cheng@arm.com>
14451 * tree-if-conv.c (any_pred_load_store): New static variable.
14452 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
14453 any_pred_load_store instead of and_mask_load_store.
14454 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
14455 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
14456 (combine_blocks, tree_if_conversion): Ditto.
14458 2016-04-26 Bin Cheng <bin.cheng@arm.com>
14460 PR tree-optimization/70771
14461 PR tree-optimization/70775
14462 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
14463 virtual PHI nodes. Delete parameter.
14464 (if_convertible_loop_p_1): Delete argument to above function.
14465 (predicate_all_scalar_phis): Delete code handling single-argument
14467 (tree_if_conversion): Mark and update virtual SSA.
14469 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14472 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
14473 (x86_elf_aligned_common): Rename to ...
14474 (x86_elf_aligned_decl_common): ... this.
14475 Add decl arg. Switch to .lbss for largecomm object. Use
14476 LARGECOMM_SECTION_ASM_OP.
14477 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
14479 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
14480 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
14482 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14483 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
14485 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14488 * config/i386/i386.c (SECTION_LARGE): Define.
14489 (x86_64_elf_select_section): Set it for large data/bss sections.
14490 Only clear SECTION_WRITE for .lrodata.
14491 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
14493 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
14494 * varasm.c (default_elf_asm_named_section): Grow flagchars.
14495 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
14497 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
14498 * doc/tm.texi: Regenerate.
14500 2016-04-26 Jakub Jelinek <jakub@redhat.com>
14503 * configure.ac (--enable-checking): Document extra flag, for
14504 non-release builds default to --enable-checking=yes,extra.
14505 If misc checking and extra checking, define CHECKING_P to 2 instead
14507 * common.opt (fchecking=): Add.
14508 * doc/invoke.texi (-fchecking=): Document.
14509 * doc/install.texi: Document --enable-checking changes.
14510 * configure: Regenerated.
14511 * config.in: Regenerated.
14513 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14515 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
14516 attribute instead of which_alternative.
14517 * config/i386/sse.md (*mov<mode>_internal): Ditto.
14518 Use EXT_REX_SSE_REG_P where appropriate.
14520 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14522 * config/i386/predicates.md (const0_operand): Do not match
14523 const_wide_int code.
14524 (const1_operand): Ditto.
14526 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14528 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
14529 for SSE constm1 operands and TARGET_AVX512VL.
14530 (*movti_internal): Ditto.
14531 (*mov<mode>_or): Use constm1_operand predicate.
14532 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
14533 for SSE vector_all_ones operands and TARGET_AVX512VL.
14534 * config/i386/predicates.md (constm1_operand): New predicate.
14535 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
14536 emission of constant -1 load.
14538 2016-04-25 Jason Merrill <jason@redhat.com>
14540 * gdbinit.in: Skip is-a.h.
14542 * attribs.c (register_scoped_attributes): Fix logic.
14543 * attribs.h: Declare register_scoped_attributes.
14545 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14547 * config/rs6000/rs6000-builtin.def: Correct pasto error for
14548 stxvd2x and stxvw4x built-in functions.
14550 2016-04-25 DJ Delorie <dj@redhat.com>
14552 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
14553 (ashrhi3): Likewise.
14554 (lshrhi3): Likewise.
14556 2016-04-25 Richard Biener <rguenther@suse.de>
14558 PR tree-optimization/70780
14559 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
14560 wasn't visited yet.
14561 (compute_antic): Mark blocks with abnormal preds as visited as
14562 they have a final empty antic-in solution already.
14564 2016-04-25 Michael Collison <michael.collison@linaro.org>
14566 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
14568 2016-04-25 Michael Collison <michael.collison@linaro.org>
14570 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
14571 mode is VQI to improve mixed mode vectorization.
14572 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
14573 define_insn to match low half of signed vaddw.
14574 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
14575 define_insn to match high half of signed vaddw.
14576 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
14577 define_insn to match low half of unsigned vaddw.
14578 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
14579 define_insn to match high half of unsigned vaddw.
14580 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
14581 (arm_simd_check_vect_par_cnst_half_p): Likewise.
14582 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
14584 (arm_simd_check_vect_par_cnst_half_p): Likewise.
14585 * config/arm/predicates.md (vect_par_constant_high): Support
14586 big endian and simplify by calling
14587 arm_simd_check_vect_par_cnst_half
14588 (vect_par_constant_low): Likewise.
14590 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14592 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
14593 predicate for operand 2.
14595 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
14596 H.J. Lu <hongjiu.lu@intel.com>
14598 * config/i386/i386-protos.h (standard_sse_constant_p): Add
14599 machine_mode argument.
14600 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
14601 constm1_rtx operands. For VOIDmode constants, get mode from
14602 pred_mode. Check mode size if the mode is supported by ABI.
14603 (standard_sse_constant_opcode): Do not use standard_constant_p.
14604 Strictly check ABI support for all-ones operands.
14605 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
14606 immediates. Update calls to standard_sse_constant_p.
14607 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
14608 (ix86_rtx_costs): Ditto.
14609 * config/i386/i386.md (*movxi_internal_avx512f): Use
14610 nonimmediate_or_sse_const_operand instead of vector_move_operand.
14611 Use (v,BC) alternative instead of (v,C). Use register_operand
14612 checks instead of MEM_P.
14613 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
14614 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
14615 isa attribute. Use register_operand checks instead of MEM_P.
14616 (*movti_internal): Use nonimmediate_or_sse_const_operand for
14617 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
14618 alternative and corresponding sse2 isa attribute.
14619 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
14620 to standard_sse_constant_p.
14621 (FP constant splitters): Ditto.
14622 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
14624 * config/i386/predicates.md (constm1_operand): Remove.
14625 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
14626 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
14627 vector_all_ones_operand instead of constm1_operand.
14629 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14631 * print-rtl.c (print_rtx_insn_vec): New function.
14632 * print-rtl.h: New prototype.
14633 * store-motion.c (struct st_expr): Make avail_stores a vector.
14634 (st_expr_entry): Adjust.
14635 (free_st_expr_entry): Likewise.
14636 (print_store_motion_mems): Likewise.
14637 (find_moveable_store): Likewise.
14638 (compute_store_table): Likewise.
14639 (delete_store): Likewise.
14640 (build_store_vectors): Likewise.
14642 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14644 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
14646 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14648 * vec.h (vec_safe_contains): New function.
14649 (vec::contains): Likewise.
14650 (vec::begin): Likewise.
14651 (vec::end): Likewise.
14653 2016-04-23 Jakub Jelinek <jakub@redhat.com>
14656 * cfgexpand.c (expand_stack_vars): Fix typo.
14658 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
14660 * system.h (list, map, set, vector): Include conditionally.
14661 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
14662 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
14663 * ipa-icf.c (INCLUDE_LIST): Define.
14664 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
14665 * config/sh/sh.c (INCLUDE_VECTOR): Define.
14666 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
14667 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
14668 * cp/logic.cc (INCLUDE_LIST): Define.
14669 * fortran/trans-common.c (INCLUDE_MAP): Define.
14671 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
14673 * auto-profile.c: Remove <string.h> include.
14674 * ipa-icf-gimple.c: Remove <list> include.
14675 * diagnostic.c: Remove <new> include.
14676 * genmatch.c: Likewise.
14677 * pretty-print.c: Likewise.
14678 * toplev.c: Likewise
14679 * c/c-objc-common.c: Likewise.
14680 * cp/error.c: Likewise.
14681 * fortran/error.c: Likewise.
14683 2016-04-22 Richard Biener <rguenther@suse.de>
14685 * lto-streamer-in.c (input_ssa_names): Do not allocate
14686 GIMPLE_NOP for all SSA names.
14687 * lto-streamer-out.c (output_ssa_names): Do not output
14688 SSA names that should have been released.
14690 2016-04-22 Richard Biener <rguenther@suse.de>
14692 PR tree-optimization/70740
14693 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
14696 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
14699 * config/i386/predicates.md (call_insn_operand): Replace
14700 sibcall_memory_operand with memory_operand.
14702 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
14704 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
14705 has_single_use() tests.
14706 (register_edge_assert_for_1): Likewise.
14707 (find_assert_locations_1): Check the liveness bitmap instead of
14708 checking has_single_use().
14710 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
14713 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
14714 Extract AVX-512BW constraint from AVX.
14716 2016-04-21 Richard Biener <rguenther@suse.de>
14718 PR tree-optimization/70725
14719 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
14720 for phi_convertible_by_degenerating_args.
14721 (predicate_all_scalar_phis): Handle single-argument PHIs.
14723 2016-04-21 Richard Biener <rguenther@suse.de>
14725 PR middle-end/70747
14726 * fold-const.c (fold_comparison): Return properly typed
14729 2016-04-21 Bin Cheng <bin.cheng@arm.com>
14731 PR tree-optimization/70715
14732 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
14733 after expanding BASE using expand_simple_operations.
14735 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
14737 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
14738 New transformations.
14740 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
14742 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
14744 2016-04-20 Jan Hubicka <jh@suse.cz>
14746 * ipa-inline.c (can_inline_edge_p): Pass caller info to
14747 ultiimate_alias_target.
14748 (update_callee_keys): Likewise.
14749 (lookup_recursive_calls): Likewise.
14750 (speculation_useful_p): Likewise.
14752 2016-04-20 Jan Hubicka <jh@suse.cz>
14755 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
14756 (set_nothrow_flag_1): ... this; handle interposition correctly;
14757 recurse on aliases and thunks.
14758 (cgraph_node::set_nothrow_flag): New.
14759 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
14760 functions compiled with non-call exceptions that binds to current
14762 (propagate_nothrow): Be safe WRT interposition.
14763 * cgraph.h (set_nothrow_flag): Update prototype.
14765 2016-04-18 Jan Hubicka <jh@suse.cz>
14767 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
14768 max_loop_iterations_int.
14769 (tree_unswitch_outer_loop): Likewise.
14771 2016-04-20 Bin Cheng <bin.cheng@arm.com>
14773 PR tree-optimization/69489
14774 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
14775 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
14776 Revise dump message.
14777 (if_convertible_bb_p): Remove check on edge count of basic block's
14780 2016-04-20 Bin Cheng <bin.cheng@arm.com>
14782 PR tree-optimization/56625
14783 PR tree-optimization/69489
14784 * tree-data-ref.h (DR_INNERMOST): New macro.
14785 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
14786 hashing struct innermost_loop_behavior.
14787 (ref_DR_map): Remove.
14788 (innermost_DR_map): New map.
14789 (baseref_DR_map): Revise comment.
14790 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
14791 to innermost_DR_map accroding to its innermost loop behavior.
14792 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
14793 to its innermost loop behavior.
14794 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
14795 Add initialization for innermost_DR_map. Record memory reference
14796 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
14797 have innermost loop behavior.
14798 (if_convertible_loop_p): Remove release for ref_DR_map. Release
14801 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
14803 * config/i386/i386.md (*lea<mode>_general_1): Rename from
14804 *lea_general_1. Use explicit SWI12 mode interator.
14805 (*lea<mode>_general_2): Rename from *lea_general_2.
14806 Use explicit SWI12 mode interator.
14807 (*lea<mode>_general_3): Rename from *lea_general_3.
14808 Use explicit SWI12 mode interator.
14809 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
14810 Use explicit SWI12 mode interator.
14811 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
14812 Use explicit SWI48 mode interator.
14814 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
14816 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
14817 Short-cut unaligned load and store cases. Handle all integer
14819 (ix86_expand_vector_move_misalign): Short-cut unaligned load
14820 and store cases. Call ix86_avx256_split_vector_move_misalign
14821 directly without checking mode class.
14823 2016-04-20 Andrew Pinski <apinski@cavium.com>
14824 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14827 * config/aarch64/aarch64.md (sibcall): Force call
14828 address to be DImode for ILP32.
14829 (sibcall_value): Likewise.
14831 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
14833 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
14835 2016-04-20 Richard Biener <rguenther@suse.de>
14837 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
14838 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
14839 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
14840 (maybe_push_res_to_seq): Adjust.
14841 * gimple-fold.c (maybe_build_generic_op): Likewise.
14843 2016-04-20 Marek Polacek <polacek@redhat.com>
14845 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
14848 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
14850 * config/i386/sse.md (vec_unpacks_lo_hi): Always
14851 use kmovw to support AVX512F target.
14853 2016-04-20 Bin Cheng <bin.cheng@arm.com>
14855 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
14857 2016-04-20 Marek Polacek <polacek@redhat.com>
14859 PR tree-optimization/70725
14860 * tree-if-conv.c (is_false_predicate): New function.
14861 (predicate_mem_writes): Use it.
14863 2016-04-20 Richard Biener <rguenther@suse.de>
14865 PR tree-optimization/70726
14866 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
14867 shift amounts from a pattern stmt operand.
14869 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14872 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
14873 stack_restore_from_fpr pattern when restoring r15.
14874 (s390_optimize_prologue): Strip away the memory barrier in the
14875 parallel when trying to get rid of restore insns.
14876 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
14877 definition for loading the stack pointer from an FPR. Compared to
14878 the normal move insn this pattern includes a full memory barrier.
14880 2016-04-19 Jakub Jelinek <jakub@redhat.com>
14882 PR middle-end/70680
14883 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
14884 implicitly linear or lastprivate iterator on the outer context.
14886 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
14888 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
14890 * config/i386/i386.md (ssememalign): Removed.
14891 * config/i386/sse.md: Remove ssememalign attribute from patterns.
14893 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
14896 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
14897 const short * to __builtin_ia32_loaddquhi512_mask.
14898 (_mm512_maskz_loadu_epi16): Likewise.
14899 (_mm512_mask_storeu_epi16): Pass short * to
14900 __builtin_ia32_storedquhi512_mask.
14901 (_mm512_mask_loadu_epi8): Pass const char * to
14902 __builtin_ia32_loaddquqi512_mask.
14903 (_mm512_maskz_loadu_epi8): Likewise.
14904 (_mm512_mask_storeu_epi8): Pass char * to
14905 __builtin_ia32_storedquqi512_mask.
14906 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
14907 const double * to __builtin_ia32_loadupd512_mask.
14908 (_mm512_mask_loadu_pd): Likewise.
14909 (_mm512_maskz_loadu_pd): Likewise.
14910 (_mm512_storeu_pd): Pass double * to
14911 __builtin_ia32_storeupd512_mask.
14912 (_mm512_mask_storeu_pd): Likewise.
14913 (_mm512_loadu_ps): Pass const float * to
14914 __builtin_ia32_loadups512_mask.
14915 (_mm512_mask_loadu_ps): Likewise.
14916 (_mm512_maskz_loadu_ps): Likewise.
14917 (_mm512_storeu_ps): Pass float * to
14918 __builtin_ia32_storeups512_mask.
14919 (_mm512_mask_storeu_ps): Likewise.
14920 (_mm512_mask_loadu_epi64): Pass const long long * to
14921 __builtin_ia32_loaddqudi512_mask.
14922 (_mm512_maskz_loadu_epi64): Likewise.
14923 (_mm512_mask_storeu_epi64): Pass long long *
14924 to __builtin_ia32_storedqudi512_mask.
14925 (_mm512_loadu_si512): Pass const int * to
14926 __builtin_ia32_loaddqusi512_mask.
14927 (_mm512_mask_loadu_epi32): Likewise.
14928 (_mm512_maskz_loadu_epi32): Likewise.
14929 (_mm512_storeu_si512): Pass int * to
14930 __builtin_ia32_storedqusi512_mask.
14931 (_mm512_mask_storeu_epi32): Likewise.
14932 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
14933 char * to __builtin_ia32_storedquqi256_mask.
14934 (_mm_mask_storeu_epi8): Likewise.
14935 (_mm256_mask_loadu_epi16): Pass const short * to
14936 __builtin_ia32_loaddquhi256_mask.
14937 (_mm256_maskz_loadu_epi16): Likewise.
14938 (_mm_mask_loadu_epi16): Pass const short * to
14939 __builtin_ia32_loaddquhi128_mask.
14940 (_mm_maskz_loadu_epi16): Likewise.
14941 (_mm256_mask_loadu_epi8): Pass const char * to
14942 __builtin_ia32_loaddquqi256_mask.
14943 (_mm256_maskz_loadu_epi8): Likewise.
14944 (_mm_mask_loadu_epi8): Pass const char * to
14945 __builtin_ia32_loaddquqi128_mask.
14946 (_mm_maskz_loadu_epi8): Likewise.
14947 (_mm256_mask_storeu_epi16): Pass short * to.
14948 __builtin_ia32_storedquhi256_mask.
14949 (_mm_mask_storeu_epi16): Pass short * to.
14950 __builtin_ia32_storedquhi128_mask.
14951 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
14952 const double * to __builtin_ia32_loadupd256_mask.
14953 (_mm256_maskz_loadu_pd): Likewise.
14954 (_mm_mask_loadu_pd): Pass onst double * to
14955 __builtin_ia32_loadupd128_mask.
14956 (_mm_maskz_loadu_pd): Likewise.
14957 (_mm256_mask_storeu_pd): Pass double * to
14958 __builtin_ia32_storeupd256_mask.
14959 (_mm_mask_storeu_pd): Pass double * to
14960 __builtin_ia32_storeupd128_mask.
14961 (_mm256_mask_loadu_ps): Pass const float * to
14962 __builtin_ia32_loadups256_mask.
14963 (_mm256_maskz_loadu_ps): Likewise.
14964 (_mm_mask_loadu_ps): Pass const float * to
14965 __builtin_ia32_loadups128_mask.
14966 (_mm_maskz_loadu_ps): Likewise.
14967 (_mm256_mask_storeu_ps): Pass float * to
14968 __builtin_ia32_storeups256_mask.
14969 (_mm_mask_storeu_ps): ass float * to
14970 __builtin_ia32_storeups128_mask.
14971 (_mm256_mask_loadu_epi64): Pass const long long * to
14972 __builtin_ia32_loaddqudi256_mask.
14973 (_mm256_maskz_loadu_epi64): Likewise.
14974 (_mm_mask_loadu_epi64): Pass const long long * to
14975 __builtin_ia32_loaddqudi128_mask.
14976 (_mm_maskz_loadu_epi64): Likewise.
14977 (_mm256_mask_storeu_epi64): Pass long long * to
14978 __builtin_ia32_storedqudi256_mask.
14979 (_mm_mask_storeu_epi64): Pass long long * to
14980 __builtin_ia32_storedqudi128_mask.
14981 (_mm256_mask_loadu_epi32): Pass const int * to
14982 __builtin_ia32_loaddqusi256_mask.
14983 (_mm256_maskz_loadu_epi32): Likewise.
14984 (_mm_mask_loadu_epi32): Pass const int * to
14985 __builtin_ia32_loaddqusi128_mask.
14986 (_mm_maskz_loadu_epi32): Likewise.
14987 (_mm256_mask_storeu_epi32): Pass int * to
14988 __builtin_ia32_storedqusi256_mask.
14989 (_mm_mask_storeu_epi32): Pass int * to
14990 __builtin_ia32_storedqusi128_mask.
14991 * config/i386/i386-builtin-types.def (PCSHORT): New.
14992 (PINT64): Likewise.
14993 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
14994 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
14995 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
14996 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
14997 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
14998 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
14999 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
15000 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
15001 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
15002 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
15003 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
15004 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
15005 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
15006 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
15007 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
15008 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
15009 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
15010 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
15011 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
15012 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
15013 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
15014 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
15015 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
15016 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
15017 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
15018 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
15019 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
15020 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
15021 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
15022 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
15023 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
15024 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
15025 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
15026 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
15027 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
15028 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
15029 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
15030 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
15031 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
15032 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
15033 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
15034 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
15035 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
15036 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
15037 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
15038 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
15039 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
15040 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
15041 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
15043 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
15044 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
15046 (ix86_expand_vector_move_misalign): Likewise.
15047 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
15048 to scalar function prototype for unaligned load/store builtins.
15049 (ix86_expand_special_args_builtin): Updated.
15050 * config/i386/sse.md (UNSPEC_LOADU): Removed.
15051 (UNSPEC_STOREU): Likewise.
15052 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
15053 (VI_ULOADSTORE_F_AVX512VL): Likewise.
15054 (ssescalarsize): Handle V4TI, V2TI and V1TI.
15055 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
15056 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
15057 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
15058 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
15059 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
15060 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
15061 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
15062 (<avx512>_storedqu<mode>_mask): Likewise.
15063 (*sse4_2_pcmpestr_unaligned): Likewise.
15064 (*sse4_2_pcmpistr_unaligned): Likewise.
15065 (*mov<mode>_internal): Renamed to ...
15066 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
15067 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
15068 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
15069 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
15071 2016-04-19 Richard Biener <rguenther@suse.de>
15073 PR tree-optimization/70171
15074 * tree-ssa-phiprop.c: Include stor-layout.h.
15075 (phiprop_insert_phi): Handle the aggregate copy case.
15076 (propagate_with_phi): Likewise.
15078 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
15080 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
15081 instead of simplify_gen_subreg (... , 0).
15082 (ix86_delegitimize_address): Ditto.
15083 (ix86_split_divmod): Ditto.
15084 (ix86_split_copysign_const): Ditto.
15085 (ix86_split_copysign_var): Ditto.
15086 (ix86_expand_args_builtin): Ditto.
15087 (ix86_expand_round_builtin): Ditto.
15088 (ix86_expand_special_args_builtin): Ditto.
15089 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
15090 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
15091 (udivmodqi4): Ditto.
15092 (absneg splitters): Ditto.
15093 (*jcc_bt<mode>_1): Ditto.
15095 2016-04-19 Richard Biener <rguenther@suse.de>
15097 PR tree-optimization/70724
15098 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
15099 restoring out from ...
15100 (free_scc_vn): ... here.
15101 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
15102 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
15104 (pass_fre::execute): Restore SSA info.
15106 2016-04-19 Richard Biener <rguenther@suse.de>
15108 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
15109 * gimple-walk.c (walk_gimple_op): Initialize it.
15110 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
15111 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
15112 remapping SSA names of defs.
15113 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
15116 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
15118 PR middle-end/70689
15119 * lra-constraints.c (equiv_substition_p): New.
15120 (process_alt_operands): Use it.
15121 (swap_operands): Swap it.
15122 (curr_insn_transform): Update it.
15124 2016-04-18 Michael Matz <matz@suse.de>
15126 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
15127 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
15128 * tree-core.h (tree_type_common.align): Use bit-field.
15129 (tree_type_common.spare): New.
15130 (tree_decl_common.off_align): Make smaller.
15131 (tree_decl_common.align): Use bit-field.
15133 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
15134 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
15135 (scan_sharing_clauses): Ditto.
15136 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
15137 (omp_finish_file): Ditto.
15138 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
15139 (layout_decl): Ditto.
15140 (relayout_decl): Ditto.
15141 (finalize_record_size): Use SET_TYPE_ALIGN.
15142 (finalize_type_size): Ditto.
15143 (finish_builtin_struct): Ditto.
15144 (layout_type): Ditto.
15145 (initialize_sizetypes): Ditto.
15146 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
15147 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
15148 (lookup_field_for_decl): Use SET_DECL_ALIGN.
15149 (get_chain_field): Ditto.
15150 (get_trampoline_type): Ditto.
15151 (get_nl_goto_field): Ditto.
15152 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
15154 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
15155 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
15156 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
15157 (build_qualified_type): Use SET_TYPE_ALIGN.
15158 (build_aligned_type, build_range_type_1): Ditto.
15159 (build_atomic_base): Ditto.
15160 (build_common_tree_nodes): Ditto.
15161 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
15162 (expand_one_stack_var_at): Ditto.
15163 * coverage.c (build_var): Use SET_DECL_ALIGN.
15164 * except.c (init_eh): Ditto.
15165 * function.c (assign_parm_setup_block): Ditto.
15166 * symtab.c (increase_alignment_1): Ditto.
15167 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
15168 * tree-vect-stmts.c (ensure_base_align): Ditto.
15169 * varasm.c (align_variable): Ditto.
15170 (assemble_variable): Ditto.
15171 (build_constant_desc): Ditto.
15172 (output_constant_def_contents): Ditto.
15174 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
15175 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
15176 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
15177 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
15178 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
15180 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
15183 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
15184 replace %vmovsd with "%vmovq".
15185 (vec_concatv2df): Likewise.
15187 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
15189 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
15190 (*vec_extractv2si_0): Ditto.
15191 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
15192 (zero_extended_scalar_load_operand splitters): Ditto.
15193 (vec_extract splitters): Ditto.
15194 (*vec_extractv4si_0_zext): Ditto.
15195 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
15196 and lowpart_subreg.
15197 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
15198 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
15199 (*sse4_1_extractps): Use lowpart_subreg.
15200 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
15202 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15204 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
15206 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
15207 Mention Solaris 11 packaging changes.
15208 Update gas and gld requirements.
15209 Remove reference to pre-Solaris 10 bug.
15210 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
15212 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
15215 2016-04-17 Jan Hubicka <jh@suse.cz>
15217 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
15218 max_loop_iterations_int.
15220 2016-04-18 Richard Biener <rguenther@suse.de>
15222 PR tree-optimization/43434
15223 * tree-ssa-structalias.c (struct vls_data): New.
15224 (visit_loadstore): Handle all pointer-based accesses.
15225 (compute_dependence_clique): Compute a bitmap of restrict tags
15226 assigned bases and pass it to visit_loadstore.
15228 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
15231 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
15232 armv8.1-a and armv8.1-a+crc.
15234 2016-04-18 Richard Biener <rguenther@suse.de>
15236 PR tree-optimization/70701
15237 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
15238 references after translating through a memcpy.
15240 2016-04-18 Richard Biener <rguenther@suse.de>
15242 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
15243 (compute_antic): ... here. For partial antic use regular
15244 postorder and scrap iteration.
15245 (compute_partial_antic_aux): Remove unused return value.
15246 (init_pre): Do not allocate postorder.
15247 (fini_pre): Do not free postorder.
15249 2016-04-18 Richard Biener <rguenther@suse.de>
15251 PR middle-end/37870
15252 * expmed.c (extract_bit_field_1): Remove broken case
15253 using a wider MODE_INT mode.
15255 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
15257 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
15258 unless compiling with at least GCC-4.8.
15260 2016-04-17 Jan Hubicka <jh@suse.cz>
15263 * graphite.c (graphite_finalize): Update call to
15264 tree_estimate_probability.
15265 * predict.h (tree_estimate_probability): Update prototype.
15267 2016-04-17 Jan Hubicka <jh@suse.cz>
15269 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
15270 (tree_estimate_probability): Likewise.
15271 (pass_profile::execute): Update.
15272 (report_predictor_hitrates): New function.
15273 * profile.c (compute_branch_probabilities): Use it.
15274 * predict.h (report_predictor_hitrates): Declare.
15276 2016-04-17 Jan Hubicka <jh@suse.cz>
15279 * cgraph.h (cgraph_node::set_const_flag,
15280 cgraph_node::set_pure_flag): Update prototype to return bool;
15282 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
15283 of interposable symbol are interposable, too.
15284 (cgraph_set_const_flag_1): Rename to ...
15285 (set_const_flag_1): ... this one; change to self recursive function
15286 instead of call_for_symbol_thunks_and_aliases. Handle correctly
15287 clearnig the flag in all variants and also virtual thunks of const
15288 functions are pure; track if any change was done.
15289 (cgraph_node::set_const_flag): Update.
15290 (struct set_pure_flag_info): New struct.
15291 (cgraph_set_pure_flag_1): Rename to ...
15292 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
15293 rather than pointer encoded flags; track if any changes was done;
15294 handle correctly clearning flag and setting flag of aliases already
15296 (cgraph_node::set_pure_flag): Update.
15297 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
15299 2016-04-17 Tom de Vries <tom@codesourcery.com>
15302 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
15303 backslash in label.
15305 2016-04-17 Tom de Vries <tom@codesourcery.com>
15307 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
15308 '{}<> ' as escape-for-record.
15310 2016-04-17 Tom de Vries <tom@codesourcery.com>
15312 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
15315 2016-04-17 Tom de Vries <tom@codesourcery.com>
15318 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
15319 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
15320 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
15321 * passes.c (finish_optimization_passes): Only call
15322 finish_graph_dump_file if dfi->graph_dump_initialized.
15323 (execute_function_dump, pass_init_dump_file): Use
15324 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
15326 2016-04-17 Tom de Vries <tom@codesourcery.com>
15328 PR tree-optimization/70256
15329 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
15330 (debug_varmap): New function.
15332 2016-04-17 Tom de Vries <tom@codesourcery.com>
15335 * passes.c (pass_manager::register_pass): Propagate pflags.
15337 2016-04-17 Tom de Vries <tom@codesourcery.com>
15340 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
15341 * passes.c (pass_manager::pass_manager): Declare and init p_start in
15342 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
15343 check if it's equal to p_start.
15344 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
15346 2016-04-15 Jan Hubicka <jh@suse.cz>
15349 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
15350 function does not bind to current def.
15351 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
15352 handle conservatively calls to functions that does not need to bind
15354 (check_call): Update call of worse_state.
15355 (ignore_edge_for_nothrow): Update.
15356 (ignore_edge_for_pure_const): Likewise.
15357 (propagate_pure_const): Update calls to worse_state.
15358 (skip_function_for_local_pure_const): Reformat comments.
15360 2016-04-15 Jan Hubicka <jh@suse.cz>
15363 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
15364 (cgraph_node::function_symbol): Likewise.
15365 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
15366 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
15367 (symtab_node::ultimate_alias_target): Add REF parameter.
15368 (symtab_node::binds_to_current_def_p): Declare.
15369 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
15370 (cgraph_node::function_symbol): Likewise.
15371 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
15372 (cgraph_node::get_availability): Likewise.
15373 (cgraph_edge::binds_to_current_def_p): New inline function.
15374 (varpool_node::get_availability): Add REF parameter.
15375 (varpool_node::ultimate_alias_target): Likewise.
15376 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
15377 (symtab_node::binds_to_current_def_p): Likewise.
15378 * varpool.c (varpool_node::get_availability): Likewise.
15380 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
15383 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
15384 Fix mode size check.
15386 2016-04-15 Jakub Jelinek <jakub@redhat.com>
15388 * BASE-VER: Set to 7.0.0.
15390 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
15392 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
15394 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15396 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
15397 architecture revisions.
15399 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
15401 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
15402 * config/i386/i386.c (ix86_using_red_zone): No longer static.
15403 * config/i386/i386.md (stack decrement to push peepholes): Guard
15404 with !x86_using_red_zone ().
15406 2016-04-15 Jakub Jelinek <jakub@redhat.com>
15409 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
15410 to dump_generic_node.
15411 (NIY): Pass also flags to do_niy.
15413 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
15415 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
15416 (simd_clone_vector_of_formal_parm_types)
15417 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
15418 (simd_clone_mangle, simd_clone_create)
15419 (simd_clone_adjust_return_type, create_tmp_simd_array)
15420 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
15421 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
15422 (ipa_simd_modify_function_body, simd_clone_linear_addend)
15423 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
15424 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
15425 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
15426 * omp-simd-clone.c: ... this new file.
15427 (simd_clone_vector_of_formal_parm_types): Make it static.
15428 * Makefile.in (OBJS): Add omp-simd-clone.o.
15430 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
15433 * config/i386/sse.md: Use proper memory operand modifiers.
15436 2016-04-15 Richard Biener <rguenther@suse.de>
15437 Alan Modra <amodra@gmail.com>
15439 PR tree-optimization/70130
15440 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
15441 when alignment stays not the same and no not use the realign
15444 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
15447 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15448 direct move handlers for KFmode. Change TFmode handlers test from
15449 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
15451 2016-04-14 Jakub Jelinek <jakub@redhat.com>
15454 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
15455 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
15456 (inlined_polymorphic_ctor_dtor_block_p): Use it.
15457 * tree-ssa-live.c (remove_unused_scope_block_p): When
15458 in_ctor_dtor_block, avoid discarding not just BLOCKs with
15459 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
15460 block_ultimate_origin is FUNCTION_DECL.
15461 (remove_unused_locals): If current_function_decl is
15462 polymorphic_ctor_dtor_p, pass initial true to
15463 remove_unused_scope_block_p' is_ctor_dtor_block.
15465 2016-04-14 Martin Sebor <msebor@redhat.com>
15470 * doc/extend.texi (Variable Length): Revert.
15472 2016-04-14 Marek Polacek <polacek@redhat.com>
15473 Jan Hubicka <hubicka@ucw.cz>
15476 * tree.c (verify_type): Disable the canonical type of main variant
15479 2016-04-14 Jason Merrill <jason@redhat.com>
15481 * cfgexpand.c, expr.c: Revert previous change.
15483 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
15485 PR middle-end/70643
15486 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
15487 when building a mem ref for the incoming reduction variable.
15489 2016-04-14 Richard Biener <rguenther@suse.de>
15491 PR tree-optimization/70614
15492 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
15493 loop if the evolution dropped to chrec_dont_know.
15494 (interpret_condition_phi): Likewise.
15496 2016-04-14 Richard Biener <rguenther@suse.de>
15498 PR tree-optimization/70623
15499 * tree-ssa-pre.c (changed_blocks): Make global ...
15500 (compute_antic): ... local here. Move and fix worklist
15501 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
15502 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
15503 worklist handling, dump when ANTIC_IN changed.
15504 (compute_partial_antic_aux): Remove worklist handling.
15505 (init_pre): Do not compute post dominators. Add a comment about
15506 the CFG order chosen.
15507 (fini_pre): Do not free post dominators.
15509 2016-04-13 Martin Sebor <msebor@redhat.com>
15514 * doc/extend.texi (Variable Length): Document C++ specifics.
15516 2016-04-13 Jakub Jelinek <jakub@redhat.com>
15519 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
15520 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
15521 eh edges have been purged.
15524 * tree-sra.c (create_access_replacement,
15525 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
15527 * tree-pretty-print.c (dump_fancy_name): New function.
15528 (dump_decl_name, dump_generic_node): Use it.
15530 2016-04-13 Jason Merrill <jason@redhat.com>
15532 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
15533 * expr.c (expand_expr_real_1): Likewise.
15535 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
15537 * config/i386/i386.md (kunpckhi): Swap operands.
15538 (kunpcksi): Likewise.
15539 (kunpckdi): Likewise.
15540 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
15541 (vec_pack_trunc_<mode>): Likewise.
15543 2016-04-13 Jakub Jelinek <jakub@redhat.com>
15546 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
15548 PR middle-end/70633
15549 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
15550 gimplification turns some element into non-constant.
15553 * rtl.h (convert_memory_address_addr_space_1): New prototype.
15554 * explow.c (convert_memory_address_addr_space_1): No longer static,
15555 add NO_EMIT argument and don't call convert_modes if true, pass
15556 it down recursively, remove break after return.
15557 (convert_memory_address_addr_space): Adjust caller.
15558 * simplify-rtx.c (simplify_unary_operation_1): Call
15559 convert_memory_address_addr_space_1 instead of convert_memory_address,
15560 if it returns NULL, don't simplify.
15562 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
15565 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
15567 2016-04-12 Jakub Jelinek <jakub@redhat.com>
15569 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15570 Bump the upper SIMDLEN limits, so that if the return type or
15571 characteristic type if the return type is void can be passed in
15572 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
15575 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
15578 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
15579 Do not use "=" constraint on an input constraint.
15580 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
15581 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
15582 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
15583 generates (neg (abs ...)) instead of (abs ...).
15585 2016-04-12 Jakub Jelinek <jakub@redhat.com>
15587 PR rtl-optimization/70596
15588 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
15589 just invalidate LRA data and reset them. Adjust dump wording.
15591 2016-04-12 Martin Liska <mliska@suse.cz>
15594 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
15596 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
15598 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
15599 max_loop_iterations_int.
15600 (tree_unswitch_outer_loop): Likewise.
15601 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
15602 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
15604 2016-04-12 Tom de Vries <tom@codesourcery.com>
15606 PR tree-optimization/68756
15607 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
15608 instead of new_name.
15610 2016-04-12 Jakub Jelinek <jakub@redhat.com>
15612 PR tree-optimization/70602
15613 * tree-sra.c (generate_subtree_copies): Don't write anything into
15614 constant pool decls.
15616 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
15617 regardless whether there are depend clauses or not.
15619 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
15622 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
15623 target attribute and pragma from changing the -mfloat128
15624 and -mfloat128-hardware options.
15626 * doc/extend.texi (Additional Floating Types): Document PowerPC
15627 __float128 restrictions.
15629 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15632 * config/aarch64/driver-aarch64.c
15633 (aarch64_get_extension_string_for_isa_flags): New.
15634 (arch_extension): Rename to...
15635 (aarch64_arch_extension): ...This.
15636 (ext_to_feat_string): Rename to...
15637 (aarch64_extensions): ...This.
15638 (aarch64_core_data): Keep track of architecture extension flags.
15639 (cpu_data): Rename to...
15640 (aarch64_cpu_data): ...This.
15641 (aarch64_arch_driver_info): Keep track of architecture extension
15643 (get_arch_name_from_id): Rename to...
15644 (get_arch_from_id): ...This, change return type.
15645 (host_detect_local_cpu): Update and reformat for renames, handle
15646 extensions through common infrastructure.
15648 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15651 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
15652 track of a canonical flag name.
15653 (all_extensions): Likewise.
15654 (arch_to_arch_name): Also track extension flags enabled by the arch.
15655 (all_architectures): Likewise.
15656 (aarch64_parse_extension): Move to here.
15657 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
15659 (aarch64_rewrite_selected_cpu): Update for above change.
15660 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
15661 are handled, such that the single explicit value enabled by an
15662 extension is kept seperate from the implicit values it also enables.
15663 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
15665 (aarch64_parse_extension): New.
15666 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
15667 here to config/aarch64/aarch64-protos.h.
15668 (aarch64_parse_extension): Move from here to
15669 common/config/aarch64/aarch64-common.c.
15670 (aarch64_option_print): Update.
15671 (aarch64_declare_function_name): Likewise.
15672 (aarch64_start_file): Likewise.
15673 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
15674 the canonical flag for extensions.
15675 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
15678 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15680 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
15683 2016-04-09 Tom de Vries <tom@codesourcery.com>
15685 PR tree-optimization/68953
15686 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
15687 first to last subscript.
15689 2016-04-09 Jakub Jelinek <jakub@redhat.com>
15691 PR tree-optimization/70586
15692 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
15695 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
15699 PR tree-optimization/70373
15700 PR middle-end/70533
15701 PR middle-end/70534
15702 PR middle-end/70535
15703 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
15704 clauses for acc parallel reductions as necessary. Error on those
15706 * omp-low.c (scan_sharing_clauses): Don't install variables which
15707 are used in acc parallel reductions.
15708 (lower_rec_input_clauses): Remove dead code.
15709 (lower_oacc_reductions): Add support for reference reductions.
15710 (lower_reduction_clauses): Remove dead code.
15711 (lower_omp_target): Don't remap variables appearing in acc parallel
15713 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
15715 2016-04-08 Jakub Jelinek <jakub@redhat.com>
15717 PR middle-end/70593
15718 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
15719 with multiple SSA_NAME defs, force the outputs other than first
15720 to be live before calling live_track_process_def on each output.
15722 PR rtl-optimization/70574
15723 * fwprop.c (forward_propagate_and_simplify): Don't add
15724 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
15725 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
15726 paradoxical subregs within *loc.
15728 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
15730 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
15731 -ftree-parallelize-loops={0,1}.
15732 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
15733 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
15734 * config/ia64/hpux.h (LIB_SPEC): Likewise.
15735 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
15736 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
15738 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
15741 * asan.c (instrument_derefs): If we get unknown location, extract it
15742 with EXPR_LOCATION.
15743 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
15745 2016-04-08 Tom de Vries <tom@codesourcery.com>
15747 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
15748 implicit firstprivate clause.
15750 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15753 * config/arm/thumb2.md (tst + branch-> lsls + branch
15754 peephole below *orsi_not_shiftsi_si): Require that condition
15755 register is dead after the peephole.
15756 (second peephole after the above): Likewise.
15758 2016-04-08 Alan Modra <amodra@gmail.com>
15761 * builtins.c (fold_builtin_classify): For IBM extended precision,
15762 look at just the high-order double to test for NaN.
15763 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
15764 test just the high double for Inf but both doubles for subnormal
15767 2016-04-07 Jakub Jelinek <jakub@redhat.com>
15769 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
15770 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
15771 node->simdclone->mask_mode != VOIDmode masks.
15772 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
15773 earlier, use it instead of node->simdclone.
15774 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15775 Set clonei->mask_mode.
15777 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
15780 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
15781 Pass it through to cp_parser_already_scoped_statement.
15782 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
15783 it through to cp_parser_statement.
15784 (cp_parser_statement): Pass IF_P through to
15785 cp_parser_iteration_statement.
15786 (cp_parser_pragma): Adjust call to
15787 cp_parser_iteration_statement.
15789 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
15792 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
15793 resolve a future -Wparentheses warning.
15794 * omp-low.c (scan_sharing_clauses): Likewise.
15795 * tree-parloops.c (eliminate_local_variables): Likewise.
15797 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
15799 PR rtl-optimization/70398
15800 * lra-constraints.c (process_address_1): Check zero scale and code
15801 for reloading with zero scale.
15803 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
15805 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
15806 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
15808 2016-04-06 Jakub Jelinek <jakub@redhat.com>
15810 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15811 Add support for AVX512F clones, include them by default for
15812 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
15813 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
15816 PR middle-end/70550
15817 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
15818 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
15819 firstprivate clauses.
15820 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
15821 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
15822 (lower_omp_target): Set TREE_NO_WARNING for
15823 non-addressable possibly uninitialized vars which are copied into
15824 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
15826 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
15828 * config/pa/predicates.md (integer_store_memory_operand): Accept
15829 REG+D operands with a large offset when reload_in_progress is true.
15830 (floating_point_store_memory_operand): Likewise.
15832 2016-04-05 Jakub Jelinek <jakub@redhat.com>
15835 * match.pd (nested int casts): Limit to GIMPLE.
15837 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
15840 * ipa-devirt.c (maybe_record_node): Fix comment; use
15841 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
15843 2016-04-05 Jakub Jelinek <jakub@redhat.com>
15845 PR rtl-optimization/70542
15846 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
15847 if there are any uses other than insn or debug insns.
15849 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
15850 Jakub Jelinek <jakub@redhat.com>
15852 PR tree-optimization/70509
15853 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
15854 Shift HOST_WIDE_INT_1U instead of 1.
15856 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
15858 PR tree-optimization/70509
15859 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
15860 of the vector base type for index.
15862 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
15865 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
15867 2016-04-05 Richard Biener <rguenther@suse.de>
15869 PR tree-optimization/70526
15870 * tree-sra.c (build_ref_for_offset): Use prev_base to
15871 extract the alias pointer type.
15873 2016-04-05 Richard Biener <rguenther@suse.de>
15875 * dse.c (struct store_info): Remove alias_set member.
15876 (struct read_info_type): Likewise.
15877 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
15878 spill_deleted, clear_alias_set_lookup): Remove.
15879 (get_group_info): Remove dead base == NULL_RTX case.
15880 (dse_step0): Remove initialization of removed variables.
15881 (delete_dead_store_insn): Reomve alias set dumping.
15882 (free_read_records): Remove alias_set handling.
15883 (canon_address): Remove alias_set_out parameter.
15884 (record_store): Remove spill_alias_set, it's always zero.
15885 (check_mem_read_rtx): Likewise.
15886 (dse_step2): Rename from ...
15887 (dse_step2_nospill): ... this. Adjust.
15888 (scan_stores): Rename from ...
15889 (scan_stores_nospill): ... this.
15890 (scan_reads): Rename from ...
15891 (scan_reads_nospill): ... this.
15892 (scan_stores_spill, scan_reads_spill): Remove.
15893 (dse_step3_scan): Remove for_spills argument which is always false.
15894 (dse_step3): Likewise.
15895 (dse_step5): Rename from ...
15896 (dse_step5_nospill): ... this. Remove alias_set handling.
15897 (rest_of_handle_dse): Adjust.
15899 2016-04-05 Jakub Jelinek <jakub@redhat.com>
15902 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
15903 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
15904 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
15905 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
15907 2016-04-05 Richard Biener <rguenther@suse.de>
15909 PR middle-end/70499
15910 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
15911 non-register type temporaries into SSA.
15913 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
15916 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
15917 calls when sanitizing.
15918 (possible_polymorphic_call_target_p): Fix formatting.
15920 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15921 Jakub Jelinek <jakub@redhat.com>
15923 PR middle-end/70457
15924 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
15925 to ensure a call statement is compatible with a built-in's
15927 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
15930 2016-04-04 Richard Biener <rguenther@suse.de>
15932 PR rtl-optimization/70484
15933 * rtl.h (canon_output_dependence): Declare.
15934 * alias.c (canon_output_dependence): New function.
15935 * dse.c (record_store): Use canon_output_dependence rather
15936 than canon_true_dependence.
15938 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
15941 * cgraph.h (symtab_node::copy_visibility_from): New function.
15942 * symtab.c (symtab_node::copy_visibility_from): New function.
15943 * ipa-visibility.c (optimize_weakref): New function.
15944 (function_and_variable_visibility): Use it.
15946 2016-04-04 Martin Liska <mliska@suse.cz>
15949 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
15950 value that is really in range handled by SBR instruction.
15951 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
15952 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
15953 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
15955 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
15959 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
15960 set, but not for SP_REG operands.
15962 2016-04-02 Martin Sebor <msebor@redhat.com>
15965 * fold-const.c (maybe_nonzero_address): New function.
15966 (fold_comparison): Call it. Fold equality and relational
15967 expressions involving null pointers.
15968 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
15970 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
15972 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
15973 the "Y" constraint (scalar FP 0.0 immediate).
15975 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
15976 Add the "const_double" to the list of operand constraints.
15978 2016-04-01 Jakub Jelinek <jakub@redhat.com>
15980 PR rtl-optimization/70467
15981 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
15982 If low word of the last operand is 0, just emit addition/subtraction
15985 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15988 * config/s390/s390.c (s390_expand_insv): Check for everything
15989 constant instead of just VOIDmode stuff.
15991 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15994 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
15996 2016-04-01 Nathan Sidwell <nathan@acm.org>
15998 * tree.def (TRY_CATCH_EXPR): Correct documentation.
16000 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
16002 PR rtl-optimization/70461
16003 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
16006 2016-03-31 Martin Liska <mliska@suse.cz>
16009 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
16010 a tree value or an immediate integer value to a buffer
16011 that is eventually copied to a BRIG section.
16012 (emit_immediate_operand): Call the function here.
16013 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
16014 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
16015 of class' fields that are removed.
16016 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
16017 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
16018 m_brig_repr_size fields.
16020 2016-03-31 Martin Liska <mliska@suse.cz>
16023 * hsa-gen.c (hsa_function_representation::update_dominance): New
16025 (convert_addr_to_flat_segment): Likewise.
16026 (gen_hsa_memory_set): New alignment argument.
16027 (gen_hsa_ctor_assignment): Likewise.
16028 (gen_hsa_insns_for_single_assignment): Provide alignment
16029 to gen_hsa_ctor_assignment.
16030 (gen_hsa_insns_for_direct_call): Add new argument.
16031 (expand_lhs_of_string_op): New function.
16032 (expand_string_operation_builtin): Likewise.
16033 (expand_memory_copy): New function.
16034 (expand_memory_set): New function.
16035 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
16036 (convert_switch_statements): Change signature.
16037 (generate_hsa): Use a return value of the function.
16038 (pass_gen_hsail::execute): Do not call
16039 convert_switch_statements here.
16040 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
16041 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
16042 (hsa_function_representation::update_dominance): New function.
16044 2016-03-31 Martin Liska <mliska@suse.cz>
16047 * hsa-brig.c (emit_directive_variable): Emit alignment
16048 according to hsa_symbol::m_align.
16049 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
16050 (dump_hsa_symbol): Dump alignment of HSA symbols.
16051 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
16052 (gen_hsa_addr_with_align): New function.
16053 (hsa_bitmemref_alignment): Use newly added function.
16054 (gen_hsa_insns_for_load): Likewise.
16055 (gen_hsa_insns_for_store): Likewise.
16056 (gen_hsa_memory_copy): New argument added.
16057 (gen_hsa_insns_for_single_assignment): Respect
16058 alignment for assignments processed via gen_hsa_memory_copy.
16059 (gen_hsa_insns_for_direct_call): Likewise.
16060 (gen_hsa_insns_for_return): Likewise.
16061 (gen_function_def_parameters): Set default alignment.
16062 * hsa.c (hsa_object_alignment): New function.
16063 (hsa_byte_alignment): Pasted function.
16064 * hsa.h (hsa_symbol::m_align): New field.
16066 2016-03-31 Bin Cheng <bin.cheng@arm.com>
16068 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
16069 scratch field for goto case.
16071 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
16073 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
16075 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
16078 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
16079 (scalar_chain::convert_insn): Call convert_op for reg
16080 moves to handle undefined registers.
16082 2016-03-31 Nathan Sidwell <nathan@acm.org>
16085 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
16086 Assert we don't want to move backwards.
16088 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
16091 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
16093 2016-03-31 Jakub Jelinek <jakub@redhat.com>
16095 PR rtl-optimization/70460
16096 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
16097 with operand from REG_LABEL_OPERAND, instead substitute
16098 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
16099 Don't do anything for REG_NON_LOCAL_GOTO jumps.
16101 2016-03-31 Martin Liska <mliska@suse.cz>
16103 * passes.c (execute_one_pass): Do not call
16104 todo_after for a discarded function.
16106 2016-03-31 Bin Cheng <bin.cheng@arm.com>
16108 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
16109 (no_cost, infinite_cost): Initialize the new field.
16110 (get_computation_cost_at): Record setup cost.
16111 (determine_use_iv_cost_address): Skip cost computation for sub
16112 uses if we can estimate it without losing accuracy.
16114 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
16116 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
16118 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
16119 max_loop_iterations_int.
16120 (tree_unswitch_outer_loop): Likewise.
16121 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
16122 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
16124 2016-03-30 Richard Biener <rguenther@suse.de>
16126 PR middle-end/70450
16127 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
16129 2016-03-30 Jakub Jelinek <jakub@redhat.com>
16132 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
16133 in gen_blendm expander.
16135 2016-03-30 Nick Clifton <nickc@redhat.com>
16138 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
16139 case where we are already provided with an SImode SUBREG.
16141 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
16144 * config/i386/i386.c (ix86_expand_epilogue): Properly check
16145 conflict between DRAP register and __builtin_eh_return.
16147 2016-03-30 Michael Matz <matz@suse.de>
16148 Richard Biener <rguenther@suse.de>
16151 * ipa-polymorphic-call.c (struct type_change_info): Change
16152 speculative to an unsigned allowing to limit the work we do.
16153 (csftc_abort_walking_p): New inline function..
16154 (check_stmt_for_type_change): Limit the number of may-defs
16155 skipped for speculative devirtualization to
16156 max-speculative-devirt-maydefs.
16157 * params.def (max-speculative-devirt-maydefs): New param.
16158 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
16160 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
16163 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
16166 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
16168 PR tree-optimization/59124
16169 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
16170 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
16172 2016-03-29 Jeff Law <law@redhat.com>
16174 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
16176 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16178 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
16181 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
16183 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
16184 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
16185 gcrt0.o if linking dynamically.
16187 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16190 * ipa-devirt.c (methods_equal_p): New function.
16191 (compare_virtual_tables): Use it.
16192 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
16193 * cgraphclones.c (clone_function_name_1): Use
16194 symbol_table::symbol_suffix_separator.
16195 * coverage.c (build_var): Likewise.
16196 * symtab.c (symbol_table::symbol_suffix_separator): New.
16198 2016-03-29 Jakub Jelinek <jakub@redhat.com>
16200 PR rtl-optimization/70429
16201 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
16202 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
16203 mode != result_mode.
16206 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
16208 PR tree-optimization/70405
16209 * ssa-iterators.h (num_imm_uses): Add missing braces.
16211 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
16213 PR rtl-optimization/68695
16214 * ira-color.c (allocno_copy_cost_saving): New.
16215 (improve_allocation): Use it.
16217 2016-03-29 Richard Henderson <rth@redhat.com>
16219 PR middle-end/70355
16220 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
16222 2016-03-29 Richard Biener <rguenther@suse.de>
16224 PR middle-end/70424
16225 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
16226 use alignment returned by get_pointer_alignment_1 if it is
16227 bigger than BITS_PER_UNIT.
16228 * builtins.c (get_pointer_alignment_1): Do not return true
16229 for alignment extracted from SSA info.
16231 2016-03-28 James Bowman <james.bowman@ftdichip.com>
16233 * config/ft32/ft32.opt (mnodiv): New.
16234 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
16235 * doc/invoke.texi (FT32 Options -mnodiv): New.
16237 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
16240 * config/i386/i386.md (define_split, andn): Fix modes.
16242 2016-03-26 Richard Biener <rguenther@suse.de>
16243 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16246 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
16248 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
16249 as 2nd argument to cl_optimization_restore().
16251 2016-03-25 Richard Henderson <rth@redhat.com>
16254 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
16255 * config/aarch64/aarch64-protos.h: Declare it.
16256 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
16258 2016-03-25 Alan Modra <amodra@gmail.com>
16261 * config/rs6000/constraints.md (j): Simplify.
16262 * config/rs6000/predicates.md (easy_fp_constant): Exclude
16264 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
16265 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
16266 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
16267 in all constraint alternatives.
16268 (movtd_64bit_nodm): Delete "j" constraint alternative.
16270 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
16272 * tree-ssa-propagate.c: Enhance docs for
16273 SSA_PROP_NOT_INTERESTING.
16275 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
16277 * doc/extend.texi: Fix typo in documentation to pure attribute.
16279 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
16282 * config/pa/pa.md (bswapdi2): Use a scratch register.
16284 2016-03-24 Richard Henderson <rth@redhat.com>
16286 PR middle-end/69845
16287 * fold-const.c (extract_muldiv_1): Correct test for multiplication
16290 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
16292 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
16293 using ix86_expand_binary_operator instead of gen_andsi3.
16295 2016-03-24 Richard Biener <rguenther@suse.de>
16297 PR tree-optimization/70396
16298 * tree-vect-stmts.c (vectorizable_comparison): Use
16299 get_vectype_for_scalar_type.
16301 2016-03-24 Richard Biener <rguenther@suse.de>
16303 PR middle-end/70370
16304 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
16305 with register bases.
16307 2016-03-24 Richard Biener <rguenther@suse.de>
16309 PR tree-optimization/70372
16310 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
16311 build_all_ones_cst to also handle vector types correctly.
16313 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16316 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
16319 2016-03-23 Marek Polacek <polacek@redhat.com>
16322 * doc/invoke.texi: Document -Wignored-attributes.
16324 2016-03-23 Bin Cheng <bin.cheng@arm.com>
16326 PR tree-optimization/69042
16327 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
16328 parameter from 30 to 40.
16330 2016-03-23 Bin Cheng <bin.cheng@arm.com>
16332 PR tree-optimization/69042
16333 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
16334 for use with constant offset stripped in base.
16336 2016-03-23 Richard Biener <rguenther@suse.de>
16338 PR middle-end/70251
16339 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
16340 mode compatibility check.
16341 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16343 2016-03-23 Jeff Law <law@redhat.com>
16345 PR tree-optimization/64058
16346 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
16348 (struct ssa_conflicts): Move up earlier in the file.
16349 (conflicts_, var_map_): New static variables.
16350 (initialize_conflict_count): New function to initialize the
16351 CONFLICT_COUNT field for each conflict pair.
16352 (compare_pairs): Lazily initialize the conflict count and use it
16353 as the first tie-breaker.
16354 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
16355 and wipe conflicts_ and map_ around the call to qsort. Remove
16356 special case for 2 coalesce pairs.
16357 * bitmap.c (bitmap_count_unique_bits): New function.
16358 (bitmap_count_bits_in_word): New function, extracted from
16360 (bitmap_count_bits): Use bitmap_count_bits_in_word.
16361 * bitmap.h (bitmap_count_unique_bits): Declare it.
16363 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
16366 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
16367 transparent alias chain for decl assembler name.
16368 * config/sol2.c (solaris_assemble_visibility): Likewise.
16370 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16372 * config/arm/arm1020e.md (1020call_op): Reduce reservation
16374 (v10_fdivs): Likewise.
16375 (v10_fdivd): Likewise.
16377 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16380 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
16381 to not call fclose twice on file.
16383 2016-03-23 Jakub Jelinek <jakub@redhat.com>
16385 PR tree-optimization/70354
16386 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
16387 oprnd0 is wider than oprnd1 and there is a cast from the wider
16388 type to oprnd1, mask it with the mask of the narrower type.
16391 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
16392 Optimize TARGET_STV splitters, if high or low word of last argument
16395 2016-03-22 Jeff Law <law@redhat.com>
16398 tree-ssa-threadbackward.c
16399 (fsm_find_control_statement_thread_paths): Correctly distinguish
16400 between old style jump threads vs FSM jump threads.
16402 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
16405 * config/i386/i386.c (scalar_chain::convert_op): Support
16406 uninitialized register usage case.
16408 2016-03-22 Richard Biener <rguenther@suse.de>
16410 PR middle-end/70251
16411 * genmatch.c (gen_transform): Adjust last parameter to a three-state
16413 (capture::gen_transform): ... to change behavior when substituting
16414 a condition into cond or not-cond expr context.
16415 (dt_simplify::gen_1): Adjust.
16416 * gimple-match-head.c: Include gimplify.h for unshare_expr.
16417 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
16418 last change and instead change to
16419 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
16420 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16422 2016-03-22 Anthony Green <green@moxielogic.com>
16424 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
16425 issue for moxiebox targets.
16426 (CC1PLUS_SPEC): Ditto.
16428 2016-03-22 Richard Biener <rguenther@suse.de>
16430 PR middle-end/70333
16431 * fold-const.c (extract_muldiv_1): Properly perform multiplication
16434 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
16436 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
16438 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
16441 * config/i386/i386.c (def_builtin): Handle
16442 OPTION_MASK_ISA_AVX512VL to be and-ed with other
16444 (const struct builtin_description bdesc_special_args[]):
16445 Remove duplicate ISA bits.
16447 2016-03-22 Jakub Jelinek <jakub@redhat.com>
16450 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
16451 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
16452 in a way that works also for AVX512BW.
16455 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
16456 instead of source if operands[1] is xmm16 and above and
16457 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
16458 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
16461 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
16462 on assign if (*from_p) is a comparison, set it to
16463 TREE_NO_WARNING (*from_p).
16465 2016-03-21 Jakub Jelinek <jakub@redhat.com>
16467 PR middle-end/70326
16468 * lra.c (restore_scratches): Ignore deleted insns.
16470 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
16471 Jakub Jelinek <jakub@redhat.com>
16473 PR tree-optimization/70317
16474 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
16477 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
16480 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
16481 of ix86_expand_move.
16483 (movti): Use general_operand for operand 1 predicate.
16485 2016-03-21 Martin Liska <mliska@suse.cz>
16487 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
16489 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
16491 2016-03-21 Martin Liska <mliska@suse.cz>
16494 * ipa-icf.c (sem_function::parse): Skip static
16495 constructors and destructors.
16497 2016-03-21 Jakub Jelinek <jakub@redhat.com>
16500 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
16501 function-like macro, peek following token(s) if it is followed
16502 by CPP_OPEN_PAREN token with optional padding in between, and
16503 if not, don't treat it like a macro.
16505 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
16506 Alexander Monakov <amonakov@ispras.ru>
16508 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
16509 for the stabs debug format.
16511 2016-03-21 Richard Biener <rguenther@suse.de>
16513 PR tree-optimization/70310
16514 * tree-vect-generic.c (expand_vector_condition): Fold the built
16517 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
16520 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
16521 Block third alternative for AVX-512VL target,
16523 2016-03-21 Martin Liska <mliska@suse.cz>
16526 * hsa-brig.c (emit_function_directives): Mark unemitted
16527 global variables for emission.
16528 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
16529 (get_symbol_for_decl): Likewise.
16530 * hsa.h (struct hsa_symbol): New flag.
16532 2016-03-21 Richard Biener <rguenther@suse.de>
16534 PR tree-optimization/70288
16535 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
16536 we do not estimate unsimplified all-constant conditionals or
16537 switches as optimized away.
16539 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
16541 PR rtl-optimization/69102
16542 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
16543 when we have a readonly dependency context.
16545 2016-03-18 Jeff Law <law@redhat.com>
16547 PR rtl-optimization/70263
16548 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
16549 (update_equiv_regs): When trying to move a store to after the insn
16550 that sets the source of the store, make sure the store occurs after
16551 the insn that sets the source of the store. When successful note
16552 the REG_EQUIV note created in the dump file.
16554 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
16555 Bernd Schmidt <bschmidt@redhat.com>
16557 * doc/extend.texi: Document more potential problems with basic asms.
16559 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
16561 PR rtl-optimization/70278
16562 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
16565 2016-03-18 Jason Merrill <jason@redhat.com>
16567 * calls.c (load_register_parameters): Fix zero size sibcall logic.
16569 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
16571 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
16572 values to 128b regs.
16574 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
16576 PR tree-optimization/70252
16577 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
16578 boolean vector has a proper number of elements.
16579 (supportable_narrowing_operation): Likewise.
16581 2016-03-18 Tom de Vries <tom@codesourcery.com>
16584 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
16586 2016-03-18 Jakub Jelinek <jakub@redhat.com>
16588 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
16589 instead of replace_rtx for DEBUG_INSNs.
16591 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
16593 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
16594 load type reservations.
16596 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
16599 * config/pa/constraints.md: Revert 2015-02-13 change. Use
16600 define_constraint for "Q" and "T" constraints.
16602 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
16604 Tweak the pipeline model for Exynos M1
16606 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
16609 2016-03-17 David Malcolm <dmalcolm@redhat.com>
16612 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
16613 where one or both locations aren't within a line_map.
16615 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
16618 * opts.c (finish_options): Don't set flag_pie to the default if
16619 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
16622 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
16624 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
16625 true as ALL_REGS argument to replace_rtx.
16627 2016-03-17 Richard Biener <rguenther@suse.de>
16630 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
16633 2016-03-17 Jakub Jelinek <jakub@redhat.com>
16636 * rtl.h (replace_rtx): Add ALL_REGS argument.
16637 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
16638 equality and assert mode is the same, instead of just rtx pointer
16640 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
16641 true as ALL_REGS argument to replace_rtx.
16643 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
16645 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
16646 for boolean vector with vector mode only.
16647 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16649 2016-03-17 Nick Clifton <nickc@redhat.com>
16652 * config/rx/rx.c (rx_print_integer): Print negative constants in
16655 2016-03-17 Jakub Jelinek <jakub@redhat.com>
16658 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
16660 2016-03-16 Richard Henderson <rth@redhat.com>
16661 Richard Biener <rguenth@suse.de>
16663 PR middle-end/70240
16664 PR middle-end/68215
16666 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
16667 first operand as is_gimple_condexpr.
16669 PR middle-end/70240
16670 PR middle-end/68215
16672 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
16673 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
16674 Do not gimplify the result.
16675 (do_unop): Adjust call to tree_vec_extract.
16676 (do_binop): Likewise.
16677 (do_compare): Likewise.
16678 (do_plus_minus): Likewise.
16679 (do_negate): Likewise.
16680 (expand_vector_condition): Likewise.
16681 (do_cond): Likewise.
16683 2016-03-16 Richard Henderson <rth@redhat.com>
16686 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
16687 (aarch64_classify_address): Use it.
16688 (aarch64_legitimize_address): Force all subexpressions of PLUS
16689 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
16691 2016-03-16 Jakub Jelinek <jakub@redhat.com>
16692 Richard Biener <rguenth@suse.de>
16695 * rtlanal.c (replace_rtx): For REG, if from is a REG,
16696 return to even if only REGNO is equal, and assert
16699 2016-03-11 Jeff Law <law@redhat.com>
16701 PR rtl-optimization/70224
16702 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
16704 2016-03-16 Richard Henderson <rth@redhat.com>
16706 PR middle-end/70199
16707 * function.h (struct function): Add has_forced_label_in_static.
16708 * gimplify.c (force_labels_r): Set it.
16709 * lto-streamer-in.c (input_struct_function_base): Read it.
16710 * lto-streamer-out.c (output_struct_function_base): Write it.
16711 * tree-inline.c (has_label_address_in_static_1): Remove.
16712 (copy_forbidden): Remove fndecl parameter; test
16713 has_forced_label_in_static.
16714 (inline_forbidden_p): Update call to copy_forbidden.
16715 (tree_versionable_function_p): Likewise.
16716 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
16717 (chkp_versioning): Likewise.
16718 * tree-inline.h (copy_forbidden): Update decl.
16720 2016-03-16 Marek Polacek <polacek@redhat.com>
16723 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
16724 function being thunked if the result type doesn't have fixed size.
16725 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
16726 doesn't have fixed size.
16728 2016-03-16 Bin Cheng <bin.cheng@arm.com>
16730 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
16731 reporting malformed loop nest.
16733 2016-03-16 Tom de Vries <tom@codesourcery.com>
16736 * ipa-devirt.c (possible_polymorphic_call_targets): Move
16737 nodes.length () == 1 test to before first nodes[0] access.
16739 2016-03-16 Tom de Vries <tom@codesourcery.com>
16741 PR tree-optimization/68715
16742 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
16743 single_pred_p test.
16745 2016-03-16 Tom de Vries <tom@codesourcery.com>
16747 PR tree-optimization/68809
16748 * graphite-scop-detection.c (same_close_phi_node): Test if result types
16751 2016-03-16 Carlos O'Donell <carlos@redhat.com>
16752 Sandra Loosemore <sandra@codesourcery.com>
16754 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
16755 on leaf attribute. Mention ELF interposition problems.
16757 2016-03-16 Alan Modra <amodra@gmail.com>
16759 PR rtl-optimization/69195
16760 PR rtl-optimization/47992
16761 * ira.c (indirect_jump_optimize): Ignore artificial defs.
16764 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
16767 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
16769 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16771 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
16773 2016-03-15 Jakub Jelinek <jakub@redhat.com>
16775 PR rtl-optimization/70222
16776 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
16777 optimization if mode is different from result_mode, queue up masking
16778 of the result in outer_op. Formatting fix.
16780 PR middle-end/70239
16781 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
16784 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16786 PR rtl-optimization/69032
16787 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
16788 looping backwards over basic block insns.
16790 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16793 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
16794 to non-speculative when propagating trap bits.
16796 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16798 PR rtl-optimization/63384
16799 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
16800 DEBUG_INSN_P insns.
16802 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16805 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
16806 factored out from ...
16807 (sched_analyze_insn): ... here.
16808 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
16809 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
16810 get_implicit_reg_pending_clobbers in it.
16811 (setup_id_reg_sets): Use setup_id_implicit_regs.
16812 (deps_init_id): Ditto.
16814 2016-03-15 Tom de Vries <tom@codesourcery.com>
16817 * cgraph.c (cgraph_node::get_body): Save, reset and restore
16819 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
16820 execute_function_dump.
16821 (execute_one_pass): Don't dump function if it will be dumped after ipa
16824 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
16826 * genrecog.c (match_pattern_2): If pred is NULL don't call
16827 safe_predicate_mode on it.
16829 2016-03-14 Jakub Jelinek <jakub@redhat.com>
16831 PR middle-end/70219
16832 * lra-constraints.c (delete_move_and_clobber): Change assertion
16833 to also allow dregno == 0.
16835 2016-03-14 Richard Henderson <rth@redhat.com>
16838 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
16839 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
16840 (reassociate_bb): Use optimize_vec_cond_expr; avoid
16841 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
16844 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
16847 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
16849 (lra_create_live_ranges_1): initialize hard register biggest_mode to
16851 * lra-constraints.c (split_reg): For hard regs, try to find the
16852 biggest single-register mode used in the function.
16854 2016-03-14 Richard Biener <rguenther@suse.de>
16856 PR tree-optimization/56365
16857 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
16858 constants to compare against.
16860 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
16863 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
16864 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
16865 (define_split for the GPR case): Use int_reg_operand instead of
16866 gpc_reg_operand for the output.
16868 2016-03-14 Tom de Vries <tom@codesourcery.com>
16870 PR tree-optimization/70045
16871 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
16872 create_empty_if_region_on_edge argument.
16874 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
16876 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
16877 (STACK_CHECK_PROTECT): Likewise.
16878 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16879 (STACK_CHECK_PROTECT): Likewise.
16880 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16881 (STACK_CHECK_PROTECT): Likewise.
16882 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
16883 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16884 (STACK_CHECK_PROTECT): Likewise.
16886 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
16888 PR rtl-optimization/69307
16889 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
16890 registers in modes that span more than one register.
16892 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
16895 * lra-constraints.c (delete_move_and_clobber): New.
16896 (remove_inheritance_pseudos): Use it.
16898 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
16901 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
16902 the libcall is LCT_THROW.
16903 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
16904 for the checking routine.
16906 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16909 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
16910 optimization if we have direct move.
16911 (roundu32<mode>2_fprs): Likewise.
16913 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
16916 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
16918 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
16919 Arguments swapped. All callers changed. Take reg_renumber into
16920 account, and Calculate and compare register ranges for hard regs.
16922 2016-03-11 Jeff Law <law@redhat.com>
16924 PR tree-optimization/70190
16925 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16926 Handle cases where we can not extract the taken edge, even though we
16927 found a constant value.
16929 PR tree-optimization/64058
16930 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
16931 (num_coalesce_pairs): Move up earlier in file.
16932 (find_coalesce_pair): Initialize the INDEX field for each pair
16934 (compare_pairs): No longer sort on the elements in each pair.
16935 Instead break ties with the index of the coalesce pair.
16937 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16940 * config/aarch64/aarch64-protos.h
16941 (aarch64_save_restore_target_globals): New prototype.
16942 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
16943 Call the above when popping pragma.
16944 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
16946 (aarch64_set_current_function): Rewrite using the above.
16948 2016-03-11 Jakub Jelinek <jakub@redhat.com>
16950 PR tree-optimization/70177
16951 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
16952 (extract_ops_from_tree): ... this. In the 2 argument
16953 overload remove _1 suffix.
16954 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
16955 (extract_ops_from_tree): ... this.
16956 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
16958 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
16959 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
16960 extract_ops_from_tree instead of 2 operand one.
16962 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
16964 PR tree-optimization/70013
16965 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
16966 for constant-pool entries.
16968 2016-03-11 Jakub Jelinek <jakub@redhat.com>
16970 PR rtl-optimization/70174
16971 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
16972 followed by gen_lowpart on force_reg instead of just gen_lowpart.
16974 PR tree-optimization/70169
16975 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
16976 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
16979 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
16980 Jakub Jelinek <jakub@redhat.com>
16983 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
16984 of uninitialized values.
16986 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16988 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
16990 ("*trunctddd2"): New pattern definition.
16991 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
16994 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16996 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
16997 definitions for BFP and DFP rounding modes.
16998 ("fixuns_truncdddi2", "fixuns_trunctddi2")
16999 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
17000 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
17001 ("fix_trunctf<mode>2"): Use the new constants instead of magic
17004 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17006 * config/s390/constraints.md: Adjust comment.
17007 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
17008 s390_decompose_addrstyle_without_index.
17009 * config/s390/predicates.md (shift_count_or_setmem_operand):
17010 Rename to setmem_operand.
17011 * config/s390/s390-protos.h
17012 (s390_decompose_shift_count): Rename to
17013 s390_decompose_addrstyle_without_index.
17014 * config/s390/s390.c (s390_decompose_shift_count)
17015 (s390_mem_constraint, print_shift_count_operand)
17016 (print_operand_address, print_operand): Rename
17017 s390_decompose_shift_count to
17018 s390_decompose_addrstyle_without_index and rename
17019 print_shift_count_operand to print_addrstyle_operand troughout the
17021 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
17022 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
17023 Rename shift_count_or_setmem_operand to setmem_operand.
17024 * config/s390/vx-builtins.md ("vec_insert<mode>")
17025 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
17028 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
17031 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
17032 Handle overlapping retval and newval.
17034 2016-03-10 Nick Clifton <nickc@redhat.com>
17037 * config/aarch64/aarch64.c
17038 (aarch64_override_options_after_change_1): When forcing
17039 flag_omit_frame_pointer to be true, use a special value that can
17040 be detected if this function is called again, thus preventing
17041 flag_omit_leaf_frame_pointer from being forced to be false.
17043 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17045 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
17046 Set x_flag_omit_leaf_frame_pointer when handling
17047 -momit-leaf-frame-pointer.
17049 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
17052 * cgraph.c (cgraph_node::dump): Dump split_part and
17053 indirect_call_target.
17054 * cgraph.h (cgraph_node): Add indirect_call_target flag.
17055 * ipa.c (has_addr_references_p): Cleanup.
17056 (is_indirect_call_target_p): New.
17057 (walk_polymorphic_call_targets): Do not mark virtuals that may be
17058 called indirectly as local.
17059 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
17061 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
17064 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
17065 on cxa_pure_virtual.
17067 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
17070 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
17072 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
17075 * tree.c (need_assembler_name_p): Only record main variant type names.
17077 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
17080 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
17081 Always define to 0 or 1.
17082 (TARGET_FIX_ERR_A53_843419): New macro.
17083 * config/aarch64/aarch64-elf-raw.h
17084 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
17085 * config/aarch64/aarch64-linux.h: Likewise.
17086 * config/aarch64/aarch64.c
17087 (aarch64_override_options_after_change_1): Do not default
17088 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
17090 (aarch64_attributes): Handle fix-cortex-a53-843419.
17091 (aarch64_can_inline_p): Likewise.
17092 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
17094 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
17095 Jakub Jelinek <jakub@redhat.com>
17097 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
17098 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
17099 DECL_COMMONS if flag_unconstrained_commons is set.
17100 * tree-dfa.c (get_ref_base_and_extent): Likewise.
17101 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
17102 (funconstrained-commons): Document.
17104 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
17106 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
17107 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
17109 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
17111 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
17112 has a proper number of elements.
17114 2016-03-10 Alan Modra <amodra@gmail.com>
17116 PR rtl-optimization/69195
17117 PR rtl-optimization/47992
17118 * ira.c (recorded_label_ref): Delete.
17119 (update_equiv_regs): Return void.
17120 (indirect_jump_optimize): New function.
17121 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
17122 before regstat_compute_ri. Don't rebuild_jump_labels here.
17123 Delete update_regstat.
17125 2016-03-10 Richard Biener <rguenther@suse.de>
17127 PR tree-optimization/70128
17128 * tree-ssa-structalias.c (set_uids_in_ptset): Set
17129 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
17131 2016-03-09 Jakub Jelinek <jakub@redhat.com>
17133 PR tree-optimization/70152
17134 * tree-sra.c (replace_removed_params_ssa_names): Copy over
17135 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
17138 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
17139 instead of gen_sse2_loadlpd.
17140 * config/i386/sse.md (*vec_concatv2df): Rename to...
17141 (vec_concatv2df): ... this.
17143 PR tree-optimization/70127
17144 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
17146 2016-03-09 David Malcolm <dmalcolm@redhat.com>
17150 * diagnostic-show-locus.c (compatible_locations_p): New function.
17151 (layout::layout): Sanitize ranges using compatible_locations_p.
17153 2016-03-09 David Malcolm <dmalcolm@redhat.com>
17157 * diagnostic-show-locus.c (layout_range::layout_range): Replace
17158 location_range param with three const expanded_locations * and a
17160 (layout::layout): Replace call to
17161 rich_location::lazily_expand_location with get_expanded_location.
17162 Extract the range and perform location expansion here, passing
17163 the results to the layout_range ctor.
17164 * diagnostic.c (source_range::debug): Delete.
17165 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
17166 of rich_location::get_expanded_location.
17167 * gcc-rich-location.c (get_range_for_expr): Delete.
17168 (gcc_rich_location::add_expr): Reimplement to avoid the
17169 rich_location::add_range overload that took a location_range,
17170 passing a location_t instead.
17172 2016-03-09 Richard Biener <rguenther@suse.de>
17173 Jakub Jelinek <jakub@redhat.com>
17175 PR tree-optimization/70138
17176 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
17177 Also skip vect_double_reduction_def.
17179 2016-03-09 Jakub Jelinek <jakub@redhat.com>
17182 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
17183 if the operand is "m".
17185 2016-03-09 Nathan Sidwell <nathan@acm.org>
17187 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
17189 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
17191 * config/i386/i386.c (processor_target_table): Fix cost table
17192 intialization order for znver1.
17194 2016-03-08 Jakub Jelinek <jakub@redhat.com>
17196 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
17197 - becuase -> because.
17198 * ipa-reference.c (ignore_module_statics): Likewise.
17199 * cgraph.c (cgraph_node::get_body): Likewise.
17200 * ipa-inline.c (early_inliner): Likewise.
17201 * ipa-devirt.c (types_same_for_odr): Likewise.
17202 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
17203 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
17205 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17207 * tree-ssa-math-opts.c: Fix typo in comment.
17209 2016-03-08 Jakub Jelinek <jakub@redhat.com>
17212 * config/i386/i386.c (scalar_chain::make_vector_copies,
17213 scalar_chain::convert_reg): Call end_sequence in between
17214 get_insns and emit_conversion_insns rather than after both
17217 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
17220 * config/i386/i386.h (machine_function): Add
17221 pc_thunk_call_expanded flag.
17222 (ix86_pc_thunk_call_expanded): New define.
17223 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
17224 (*set_got): Rename insn pattern from set_got.
17225 (*set_got_labelled): Rename inst pattern from set_got_labelled.
17226 * config/i386/i386.c (ix86_compute_frame_layout): Use
17227 ix86_pc_thunk_call_expanded to prevent red-zone.
17229 2016-03-07 Martin Jambor <mjambor@suse.cz>
17231 * hsa.h (hsa_get_ctor_statements): Declare.
17232 (hsa_get_dtor_statements): Likewise.
17233 (hsa_get_kernel_dispatch_type): Likewise.
17234 * hsa.c (hsa_get_ctor_statements): New function.
17235 (hsa_get_dtor_statements): Likewise.
17236 (hsa_get_kernel_dispatch_type): Likewise.
17237 * hsa-brig.c (hsa_cdtor_statements): Removed.
17238 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
17239 hsa_get_dtor_statements.
17240 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
17241 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
17243 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
17245 * config/arm/arm-cores.def (cortex-r8): New.
17246 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
17247 * config/arm/arm-tune.md: Likewise.
17248 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
17250 2016-03-07 Martin Sebor <msebor@redhat.com>
17252 PR rtl-optimization/19705
17253 * doc/invoke.texi (Options That Control Optimization): Clarify
17254 -fno-branch-count-reg.
17256 2016-02-26 Richard Biener <rguenther@suse.de>
17257 Jeff Law <law@redhat.com>
17259 PR tree-optimization/69740
17260 * cfghooks.c (remove_edge): Request loop fixups if we delete
17261 an edge that might turn an irreducible loop into a natural
17263 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
17264 Move after definition of loops_state_clear.
17266 2016-03-07 Bin Cheng <bin.cheng@arm.com>
17268 PR rtl-optimization/69052
17269 * rtlanal.c (commutative_operand_precedence): Set higher precedence
17272 2016-03-07 Tom de Vries <tom@codesourcery.com>
17274 PR tree-optimization/70116
17275 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
17276 is_tm_ending stmts and ubsan/asan internal functions.
17277 (find_duplicate): Use it. Don't test is_tm_ending here.
17279 2016-03-07 Richard Biener <rguenther@suse.de>
17281 PR tree-optimization/70115
17282 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
17283 (propagate_constants_for_unrolling): Use replace_uses_by.
17285 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
17287 PR middle-end/69916
17288 * omp-low.c (struct oacc_loop): Add ifns.
17289 (new_oacc_loop_raw): Initialize it.
17290 (finish_oacc_loop): Clear mask & flags if no ifns.
17291 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
17292 (oacc_loop_xform_loop): Add ifns arg & adjust.
17293 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
17295 2016-03-07 Richard Henderson <rth@redhat.com>
17298 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
17299 (insert_value_copy_on_edge): Likewise.
17301 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17303 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
17305 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17308 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
17310 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
17312 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
17314 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
17316 Fix sseimul type attribute.
17317 * config/i386/znver1.md
17318 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
17319 znver1_sseimul_avx256_load) : Fix the type attribute.
17320 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
17321 pipe usage and latency.
17323 2016-03-05 Jakub Jelinek <jakub@redhat.com>
17326 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
17327 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
17330 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
17333 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
17335 PR rtl-optimization/69941
17336 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
17337 the reg share its mode.
17339 2016-03-04 Jeff Law <law@redhat.com>
17341 PR tree-optimization/69196
17342 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17343 If the both SSA_NAMEs are anonymous, then consider them unassociated
17344 and include the PHI in the statement count.
17346 2016-03-05 Tom de Vries <tom@codesourcery.com>
17348 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
17349 construct in oacc routine. Check for oacc region in oacc routine.
17351 2016-03-04 Jakub Jelinek <jakub@redhat.com>
17354 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
17355 2016-02-22 changes, instead don't recurse if RECUR is already true.
17356 Don't change *dynamic_check if RECUR. Adjust recursive caller
17357 to pass true to the new argument.
17358 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
17361 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
17362 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
17364 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
17366 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
17368 PR rtl-optimization/57676
17369 * lra-assigns.c (lra_assign): Guard test for maximum iterations
17370 with flag_checking.
17372 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
17374 * tree-vect-patterns.c (search_type_for_mask): Handle
17375 comparison of booleans.
17377 2016-03-04 Jakub Jelinek <jakub@redhat.com>
17379 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
17383 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
17384 all other ops that have dw_val_class_die_ref operands,
17385 and DW_OP_GNU_entry_value.
17387 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17389 PR rtl-optimization/69904
17390 * config/arm/arm.c (arm_cannot_copy_insn_p):
17391 Return true for load-exclusive instructions.
17393 2016-03-03 Jakub Jelinek <jakub@redhat.com>
17396 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
17397 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
17398 the pattern no matter if it is used just by non-pattern, pattern
17400 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
17401 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
17402 oprnd1 def_stmt is in pattern, don't look through it.
17404 2016-03-03 Marek Polacek <polacek@redhat.com>
17406 PR middle-end/70050
17407 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
17409 2016-03-03 Martin Liska <mliska@suse.cz>
17411 PR tree-optimization/70043
17412 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
17413 previous statement if we see a debug statement.
17415 2016-03-03 Richard Biener <rguenther@suse.de>
17417 PR tree-optimization/55936
17418 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
17419 parameter and guard unsafe equivalence use.
17420 (vrp_evaluate_conditional_warnv_with_ops): Always use
17421 safe equivalences but not via the quadratic compare_names
17424 2016-03-03 Michael Collison <michael.collison@linaro.org>
17427 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
17428 for operand 1 to s_register_operand. Change predicate for operand
17429 2 to arm_not_immediate_operand.
17431 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
17433 * doc/tm.texi: Regenerated.
17435 2016-03-02 Richard Henderson <rth@redhat.com>
17438 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
17439 simplification when all args are positive non-fixed registers.
17441 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17443 * target.def (lra_p): Specify that new ports should use LRA.
17445 2016-03-02 Jakub Jelinek <jakub@redhat.com>
17448 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
17449 gimplify_type_sizes the type they refer to.
17450 (omp_notice_variable): Handle reference vars to VLAs.
17451 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
17452 reference to VLA decls in the second pass instead of first pass.
17454 2016-03-02 Tom de Vries <tom@codesourcery.com>
17456 PR tree-optimization/68659
17457 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
17458 new_expr == NULL_TREE.
17459 (get_new_name): Handle ADDR_EXPR.
17461 2016-03-02 Bin Cheng <bin.cheng@arm.com>
17463 PR rtl-optimization/69052
17464 * loop-invariant.c (canonicalize_address): New function.
17465 (inv_can_prop_to_addr_use): Check validity of address expression
17466 which is canonicalized by above function.
17468 2016-03-02 Alan Modra <amodra@gmail.com>
17471 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
17474 2016-03-02 Jakub Jelinek <jakub@redhat.com>
17477 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
17478 (*movhi_internal): Put mask moves from and to memory separately
17479 from moves from/to GPRs.
17481 2016-03-02 Richard Biener <rguenther@suse.de>
17483 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
17484 GENERIC expressions in GIMPLE.
17486 2016-03-02 Richard Biener <rguenther@suse.de>
17488 * config/i386/i386.c (type_natural_mode): Fix typo.
17490 2016-03-02 Nick Clifton <nickc@redhat.com>
17492 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
17494 2016-03-02 Richard Biener <rguenther@suse.de>
17495 Uros Bizjak <ubizjak@gmail.com>
17498 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
17500 2016-03-02 Richard Biener <rguenther@suse.de>
17502 PR middle-end/67278
17503 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
17505 2016-03-02 Marek Polacek <polacek@redhat.com>
17508 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
17509 "is promoted to" warning.
17511 2016-03-01 DJ Delorie <dj@redhat.com>
17513 * config.gcc: Deprecate mep-*.
17515 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
17517 PR middle-end/70025
17518 * lra-constraints.c (regno_val_use_in): New.
17519 (match_reload): Use it instead of regno_use_in.
17521 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
17523 PR rtl-optimization/70007
17524 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
17525 references present in REG_EQUAL notes attached to non-SET patterns.
17527 2016-03-01 Jeff Law <law@redhat.com>
17529 PR tree-optimization/69196
17530 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17531 Appropriately clamp the number of statements to copy when the
17532 thread path does not traverse a loop backedge.
17534 PR tree-optimization/69196
17535 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17536 Do count some PHIs in the thread path against the insn count. Decrease
17537 final statement count by one as the control statement in the last
17538 block will get removed. Remove special cased code for handling PHIs
17541 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
17544 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
17545 asm dialect alternatives to explicit GOTPCREL calls.
17547 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
17550 * ira.c (do_reload): Issue warning for generic stack checking here...
17551 * reload1.c (reload): ...instead of here and streamline it.
17553 2016-03-01 Nick Clifton <nickc@redhat.com>
17555 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
17557 2016-03-01 Richard Biener <rguenther@suse.de>
17559 PR tree-optimization/69983
17560 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
17561 types and fall back to operand_equal_p.
17563 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17566 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17568 * config/s390/constraints.md ("jm8"): New constraint.
17569 * config/s390/predicates.md ("const_int_8bitset_operand"): New
17571 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
17573 ("*setmem_long<setmem_and>"): New pattern.
17574 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
17576 ("*setmem_long_31z<setmem_and>"): New pattern.
17577 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
17578 New substitution rules with the required attributes.
17581 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17584 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17586 * gensupport.c (process_substs_on_one_elem): Split loop to
17587 complete mark_operands_used_in_match_dup on all expressions in the
17589 (adjust_operands_numbers): Inline into process_substs_on_one_elem
17590 and remove function.
17592 2016-03-01 Richard Biener <rguenther@suse.de>
17594 PR middle-end/70022
17595 * fold-const.c (fold_indirect_ref_1): Fix range checking for
17596 vector BIT_FIELD_REF extract.
17598 2016-03-01 Richard Biener <rguenther@suse.de>
17600 PR tree-optimization/69994
17601 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
17603 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
17605 PR tree-optimization/69956
17606 * tree-vect-stmts.c (supportable_widening_operation): Support
17607 multi-step conversion of boolean vectors.
17608 (supportable_narrowing_operation): Likewise.
17610 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17612 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
17615 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17617 * config/s390/subst.md (DSI_VI): New mode iterator.
17618 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
17619 * config/s390/vector.md ("vec_set<mode>"): Move expander before
17620 the insn definition.
17621 ("*vec_set<mode>"): Change predicate and add alternative to
17622 support only either register or const_int operands as element
17624 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
17626 ("vec_extract<mode>"): New expander.
17627 ("*vec_extract<mode>"): New insn definition supporting reg and
17628 const_int element selectors.
17629 ("*vec_extract<mode>_plus"): New insn definition supporting
17630 reg+const_int element selectors.
17631 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
17632 following expander+insn definition.
17633 ("<vec_shifts_name><mode>3"): New expander.
17634 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
17636 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17638 * config/s390/s390.md ("*tabort_1"): Change predicate to
17639 nonmemory_operand. Add a second alternative to cover
17640 register as well as const int operands.
17641 ("*tabort_1_plus"): New pattern definition.
17643 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17645 * config/s390/s390.md ("*ashrdi3_cc_31")
17646 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
17647 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
17648 Merge insn definitions into ...
17649 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
17650 New pattern definition.
17651 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
17652 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
17653 ("*ashr<mode>3_and"): Merge insn definitions into ...
17654 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
17655 New pattern definition.
17656 * config/s390/subst.md ("addr_style_op_cc_subst")
17657 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
17658 substitutions patterns plus attributes.
17659 Add ashiftrt to SUBST iterator.
17661 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17663 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
17664 op2 to nonmemory_operand.
17665 ("*<shift>di3_31", "*<shift>di3_31_and"):
17666 Merge into single pattern definition ...
17667 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
17668 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
17669 pattern definition ...
17670 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
17671 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
17674 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17676 * config/s390/predicates.md (const_int_6bitset_operand): New
17678 * config/s390/s390.md: Include subst.md.
17679 ("rotl<mode>3"): New expander.
17680 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
17682 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
17683 * config/s390/subst.md: New file.
17685 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17687 * config/s390/s390.md ("op_type", "atype", "length" attributes):
17688 Remove RRR type. It doesn't really exist.
17689 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
17691 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
17692 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
17693 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
17694 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
17695 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
17696 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
17697 `enabled' attribute.
17699 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17701 * gensupport.c (process_substs_on_one_elem): Split loop to
17702 complete mark_operands_used_in_match_dup on all expressions in the
17704 (adjust_operands_numbers): Inline into process_substs_on_one_elem
17705 and remove function.
17707 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
17710 * config/sparc/sparc.c (NWORDS_UP): Rename to...
17711 (CEIL_NWORDS): ...this. Use CEIL macro.
17712 (compute_fp_layout): Adjust to above renaming.
17713 (function_arg_union_value): Likewise.
17714 (sparc_arg_partial_bytes): Likewise.
17715 (sparc_function_arg_advance): Likewise.
17717 2016-02-29 Jeff Law <law@redhat.com>
17719 PR tree-optimization/70005
17720 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
17721 where an object with a boolean range is compared against a value
17724 PR tree-optimization/69999
17725 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
17726 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
17729 2016-02-29 Richard Biener <rguenther@suse.de>
17731 PR tree-optimization/69994
17732 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
17733 (get_unary_op): Look through nop conversions.
17734 (ops_equal_values_p): New function, look for equality diregarding
17736 (eliminate_plus_minus_pair): Use ops_equal_values_p
17737 (repropagate_negates): Do not use get_unary_op here.
17739 2016-02-29 Martin Liska <mliska@suse.cz>
17741 * system.h: Poison ENABLE_CHECKING macro.
17743 2016-02-29 Martin Liska <mliska@suse.cz>
17745 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
17746 is presented in dump flags.
17747 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
17748 (hsa_regalloc): Likewise.
17750 2016-02-19 Richard Biener <rguenther@suse.de>
17752 PR tree-optimization/69980
17753 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
17754 permutation of those we need to keep.
17756 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
17759 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
17760 (NWORDS_UP): ...this
17761 (init_cumulative_args): Minor tweaks.
17762 (sparc_promote_function_mode): Likewise.
17763 (scan_record_type): Delete.
17764 (traverse_record_type): New function template.
17765 (classify_data_t): New structure type.
17766 (classify_registers): New inline function.
17767 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
17768 exhausted. Instantiate traverse_record_type on classify_registers and
17769 deal with the case of a structure passed in slot #15 with no FP field
17771 (assign_data_t): New structure type.
17772 (compute_int_layout): New static function.
17773 (compute_fp_layout): Likewise.
17774 (count_registers): New inline function.
17775 (assign_int_registers): New static function.
17776 (assign_fp_registers): Likewise.
17777 (assign_registers): New inline function.
17778 (function_arg_record_value_1): Delete.
17779 (function_arg_record_value_2): Likewise.
17780 (function_arg_record_value_3): Likewise.
17781 (function_arg_record_value): Adjust to above changes. Instantiate
17782 traverse_record_type on count_registers to first count the number of
17783 registers to be used and then on assign_registers to assign them.
17784 (function_arg_union_value): Adjust to above renaming.
17785 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
17786 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
17787 case of a structure passed in slot #15
17788 (sparc_function_arg_advance): Likewise.
17789 (function_arg_padding): Minor tweak.
17791 2016-02-29 Richard Biener <rguenther@suse.de>
17793 PR tree-optimization/69720
17794 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
17795 the adjustment_def path for possibly vectorized defs.
17796 (vect_create_epilog_for_reduction): Handle vectorized initial
17799 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
17801 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
17803 2016-02-27 Jeff Law <law@redhat.com>
17806 2016-02-26 Richard Biener <rguenther@suse.de>
17807 Jeff Law <law@redhat.com>
17809 PR tree-optimization/69740
17810 * cfghooks.c (remove_edge): Request loop fixups if we delete
17811 an edge that might turn an irreducible loop into a natural
17814 2016-02-27 Jakub Jelinek <jakub@redhat.com>
17816 PR rtl-optimization/69896
17817 * tree-vect-generic.c (get_compute_type): Avoid single element
17820 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
17822 Rename the AArch64 tuning option and related functions to enable the
17823 Newton series for the reciprocal square root to reflect its
17824 approximative characteristic.
17826 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
17827 function to "aarch64_emit_approx_rsqrt".
17828 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
17829 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
17830 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
17831 (xgene1_tunings): Likewise.
17832 (use_rsqrt_p): Likewise.
17833 (aarch64_emit_swrsqrt): Use new function name.
17834 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
17835 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
17836 text explaining this option.
17837 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
17839 2016-02-26 Jakub Jelinek <jakub@redhat.com>
17842 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
17843 complain about -mallow-movmisalign without -mvsx if
17844 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
17846 2016-02-26 Joel Sherrill <joel@rtems.org>
17848 * config.gcc: Add x86_64-*-rtems*.
17849 * config/i386/rtems-64.h: New file.
17851 2016-02-26 Joel Sherrill <joel@rtems.org>
17853 * config.gcc: Add aarch64-*-rtems*.
17854 * config/aarch64/rtems.h: New file.
17856 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
17859 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
17860 shift amount using %h. Add comment.
17862 2016-02-26 Richard Biener <rguenther@suse.de>
17863 Jeff Law <law@redhat.com>
17865 PR tree-optimization/69740
17866 * cfghooks.c (remove_edge): Request loop fixups if we delete
17867 an edge that might turn an irreducible loop into a natural
17870 2016-02-26 Martin Jambor <mjambor@suse.cz>
17872 PR middle-end/69920
17873 * tree-sra.c (sra_modify_assign): Do not remove loads of
17874 uninitialized aggregates to SSA_NAMEs.
17876 2016-02-26 Richard Henderson <rth@redhat.com>
17879 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
17880 pseudo in case the target rtx matches the source of the left
17883 2016-02-26 Martin Jambor <mjambor@suse.cz>
17886 * hsa.h (hsa_type_packed_p): Declare.
17887 * hsa.c (hsa_type_packed_p): New function.
17888 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
17890 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
17891 * hsa-brig.c (emit_basic_insn): Likewise.
17893 2016-02-26 Martin Jambor <mjambor@suse.cz>
17896 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
17898 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
17900 2016-02-26 Martin Jambor <mjambor@suse.cz>
17902 * hsa.h (is_a_helper): New overload for hsa_op_immed for
17903 hsa_op_with_type operands.
17904 (hsa_unsigned_type_for_type): Declare.
17905 * hsa.c (hsa_unsigned_type_for_type): New function.
17906 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
17907 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
17908 the finalizer. Do not emit extra move.
17910 2016-02-26 Martin Jambor <mjambor@suse.cz>
17912 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
17913 atomic operations in private segment.
17915 2016-02-26 Martin Jambor <mjambor@suse.cz>
17917 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
17918 statements to wi->info. Also disallow omp simd constructs.
17919 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
17920 for not gridifying. Dump special string for omp_for.
17922 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17925 * config/aarch64/aarch64.c (aarch64_set_current_function):
17926 Save/restore target globals when switching to
17927 target_option_default_node.
17929 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17932 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
17933 Return 0 if !SHIFT_COUNT_TRUNCATED.
17935 2016-02-26 Jakub Jelinek <jakub@redhat.com>
17936 Eric Botcazou <ebotcazou@adacore.com>
17938 PR rtl-optimization/69891
17939 * dse.c (scan_insn): If we can't figure out memset arguments
17940 or they are non-constant, call clear_rhs_from_active_local_stores.
17942 2016-02-26 Martin Liska <mliska@suse.cz>
17944 * doc/extend.texi: Mention clog10, clog10f an clog10l
17945 in Builtins section.
17947 2016-02-26 Martin Liska <mliska@suse.cz>
17949 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
17951 (resolve_args_picking_1): Likewise.
17952 * dwarf2out.h (struct GTY): Likewise.
17954 2016-02-26 Martin Liska <mliska@suse.cz>
17956 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
17957 with flag_checking.
17958 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
17960 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
17961 Martin Liska <mliska@suse.cz>
17963 * doc/install.texi: Mention --enable-valgrind-annotations.
17965 2016-02-26 Richard Biener <rguenther@suse.de>
17967 PR tree-optimization/69551
17968 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
17969 looking through aliases adjust DECL_PT_UID to refer to the
17970 ultimate alias target.
17972 2016-02-25 Martin Liska <mliska@suse.cz>
17974 PR middle-end/69919
17975 * alloc-pool.c (after_memory_report): New variable.
17976 * alloc-pool.h (base_pool_allocator ::release): Do not use
17977 the infrastructure if after_memory_report.
17978 * toplev.c (toplev::main): Mark after memory report.
17980 2016-02-25 Richard Biener <rguenther@suse.de>
17982 PR tree-optimization/48795
17983 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
17985 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
17988 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
17989 offloading is enabled and -fopenacc or -fopenmp is specified.
17990 (CRTOFFLOADEND): Likewise.
17991 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
17992 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
17993 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
17994 (offload_objects_file_name): New static var.
17995 (tool_cleanup): Remove offload_objects_file_name file.
17996 (find_offloadbeginend): Replace with ...
17997 (find_crtoffloadtable): ... this.
17998 (run_gcc): Remove offload_argc and offload_argv.
17999 Get offload_objects_file_name from -foffload-objects=... option.
18000 Read names of object files with offload from this file, pass them to
18001 compile_images_for_offload_targets. Don't call find_offloadbeginend and
18002 don't pass offloadbegin and offloadend to the linker. Don't pass
18003 offload non-LTO files to the linker, because now they're not claimed.
18005 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
18008 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
18009 on builtin_unreachable.
18011 2016-02-25 Jakub Jelinek <jakub@redhat.com>
18013 PR rtl-optimization/69896
18014 * regcprop.c: Include cfgrtl.h.
18015 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
18016 than remembered mode, either delete it (if noop_move_p), or
18017 treat like copy_p but not noop_p instruction.
18019 2016-02-24 Jakub Jelinek <jakub@redhat.com>
18022 * dwarf2out.c (gen_variable_die): Work around buggy LTO
18023 - allow NULL decl for Fortran DW_TAG_common_block variables.
18025 2016-02-24 Jason Merrill <jason@redhat.com>
18027 * common.opt (flifetime-dse): Add -flifetime-dse=1.
18029 2016-02-24 Richard Biener <rguenther@suse.de>
18030 Jakub Jelinek <jakub@redhat.com>
18032 PR middle-end/69760
18033 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
18034 conditionally executed ops to well-defined overflow behavior.
18036 2016-02-24 Jakub Jelinek <jakub@redhat.com>
18038 PR middle-end/69915
18039 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
18042 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18044 PR rtl-optimization/69886
18045 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
18046 argument. Use it when checking validity of set instructions.
18047 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
18048 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
18050 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
18051 * store-motion.c (find_moveable_store): Update
18052 can_assign_to_reg_without_clobbers_p callsite.
18054 2016-02-24 Richard Biener <rguenther@suse.de>
18056 PR middle-end/68963
18057 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
18059 (record_nonwrapping_iv): Do not fall back to the low/high bound
18060 for non-constant IV bases if the stmt is not always executed.
18062 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18064 * config/arm/arm-cores.def (cortex-a32): New entry.
18065 * config/arm/arm-tables.opt: Regenerate.
18066 * config/arm/arm-tune.md: Regenerate.
18067 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
18068 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
18069 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
18070 for -mcpu and -mtune.
18072 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18075 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
18076 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
18077 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
18078 (atomic_loaddi_1): Delete.
18079 (atomic_loaddi): Rewrite expander using the above changes.
18081 2016-02-24 Jakub Jelinek <jakub@redhat.com>
18084 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
18087 2016-02-24 Jakub Jelinek <jakub@redhat.com>
18088 Richard Biener <rguenth@suse.de>
18090 PR middle-end/69909
18091 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
18092 set_mem_attributes if tem is SSA_NAME which got expanded
18095 2016-02-24 Richard Biener <rguenther@suse.de>
18097 PR tree-optimization/69907
18098 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
18099 end of permutations for BB vectorization.
18101 2016-02-24 Christian Bruel <christian.bruel@st.com>
18103 * config/arm/arm-c.c (arm_option_override): Initialize
18104 target_option_current_node.
18105 * config/arm/arm.c (arm_pragma_target_parse): Replace
18106 build_target_option_node call by target_option_current_node.
18107 Set target_option_current_node.
18110 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
18113 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
18114 define_insn_and_split to define_insn.
18115 (zero_extendqi<mode>2_dot2): Same.
18116 (extendqi<mode>2_dot): Same.
18117 (extendqi<mode>2_dot2): Same.
18119 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
18121 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
18122 and add bypass for AES{D,E} and AESMC pairs.
18123 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
18126 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
18128 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
18129 series for reciprocal square root in Exynos M1.
18131 2016-02-23 Martin Sebor <msebor@redhat.com>
18134 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
18135 __builtin_alloca_with_align.
18137 2016-02-23 Richard Henderson <rth@redhat.com>
18139 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
18140 (ix86_register_pragmas): Remove __seg_tls.
18141 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
18142 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
18143 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
18144 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
18145 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
18146 * doc/extend.texi (__seg_tls): Remove item.
18148 2016-02-23 Richard Biener <rguenther@suse.de>
18150 * alloc-pool.h (struct allocation_object): Make id member
18151 conditional on CHECKING_P again.
18152 (get_instance): Adjust.
18153 (base_pool_allocator): Likewise.
18155 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
18157 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
18158 (parallelize_loops): In OpenACC kernels mode, set n_threads to
18160 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
18162 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
18164 2016-02-23 Richard Biener <rguenther@suse.de>
18166 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
18167 * bitmap.h (struct bitmap_usage): Likewise.
18168 (bitmap_move): Declare.
18169 * bitmap.c (register_overhead): Take size_t argument.
18170 (bitmap_move): New function.
18171 * df-problems.c (df_rd_transfer_function): Use bitmap_move
18172 to properly account overhead.
18173 * tree.c (free_node): Use tree_size.
18175 2016-02-23 Jakub Jelinek <jakub@redhat.com>
18178 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
18179 when inverting comparison.
18182 * common.opt (Wunreachable-code): Add Warning flag.
18184 2016-02-23 Mark Wielaard <mjw@redhat.com>
18185 Jakub Jelinek <jakub@redhat.com>
18188 * cgraphunit.c (check_global_declaration): Check main_input_filename
18189 and DECL_SOURCE_FILE are not NULL.
18191 2016-02-23 Martin Jambor <mjambor@suse.cz>
18193 PR tree-optimization/69666
18194 * tree-sra.c (sra_modify_assign): Do not attempt to create
18195 default_def replacements for unscalarizable regions.
18197 2016-02-20 Mark Wielaard <mjw@redhat.com>
18200 * cgraphunit.c (check_global_declaration): Check level of
18201 warn_unused_const_variable and main_input_filename.
18202 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
18203 (-Wunused-variable): For C implies -Wunused-const-variable=1.
18204 (-Wunused-const-variable): Explain levels 1 and 2.
18206 2016-02-22 Jakub Jelinek <jakub@redhat.com>
18209 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
18210 identical arguments. Formatting and spelling fixes.
18213 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
18218 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
18219 and m68k-devices.def.
18220 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
18221 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
18223 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
18225 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
18226 and HImode registers.
18228 2016-02-22 Richard Biener <rguenther@suse.de>
18230 PR tree-optimization/69882
18231 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
18232 preserve permutations present because of gaps.
18233 (vect_supported_load_permutation_p): Always continue checking
18234 permutations after vect_attempt_slp_rearrange_stmts.
18236 2016-02-22 Bin Cheng <bin.cheng@arm.com>
18238 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
18239 min_profitable_estimate, rather than min_profitable_iters.
18241 2016-02-22 Jakub Jelinek <jakub@redhat.com>
18244 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
18245 SImode for last match_operand.
18247 2016-02-22 Martin Liska <mliska@suse.cz>
18249 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
18250 return bitsize - 1 as the return value.
18252 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
18256 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
18257 Handle negative shift counts.
18258 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
18259 force_reg on the shift constant.
18260 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
18261 (lshrsi3_d): Handle negative shift counts.
18263 2016-02-22 Richard Biener <rguenther@suse.de>
18264 Tom de Vries <tom@codesourcery.com>
18266 * graph.c: Include dumpfile.h.
18267 (print_graph_cfg): Split into three overloads.
18268 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
18270 2016-02-22 Tom de Vries <tom@codesourcery.com>
18272 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
18275 2016-02-22 Richard Biener <rguenther@suse.de>
18278 * ipa-inline-transform.c (inline_call): When not updating
18279 overall summaries adjust self size by the growth estimate.
18280 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
18281 hash-set, do not update overall summaries here. Renamed from ...
18282 (inline_to_all_callers): ... this which is now wrapping the
18283 above and performing delayed overall summary update.
18284 (early_inline_small_functions): Delay updating of the overall
18287 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
18289 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
18292 2016-02-19 Jakub Jelinek <jakub@redhat.com>
18295 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
18296 :%* in %:gt() argument.
18297 (greater_than_spec_func): Adjust for expecting only numbers,
18298 if there are more than two numbers, compare the last two.
18300 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
18302 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
18303 -Wnarrowing with -std.
18305 2016-02-19 Jakub Jelinek <jakub@redhat.com>
18308 * expr.c (store_field): Don't use bit-field path if exp is
18309 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
18310 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
18311 and the assignment can be performed by bitwise copy. Formatting
18314 PR middle-end/69838
18315 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
18316 call copy_reg_eh_region_note_forward on before and/or after sequences
18317 and remove note from insn if it no longer can throw.
18320 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
18321 if TARGET_AVX512BW.
18323 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18325 * config/s390/vector.md: Add missing commutative operand markers
18326 to the patterns which qualify for one.
18327 * config/s390/vx-builtins.md: Likewise.
18329 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18331 * config/s390/vector.md (VI, VI_QHS): Add single element vector
18332 types to mode iterators.
18333 (vec_double): ... and mode attribute.
18334 * config/s390/vx-builtins.md (non_vec_int): Likewise.
18336 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18338 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
18339 Change the predicate of op2 from nonimmediate to general and let
18340 reload fix it if necessary.
18342 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18344 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
18346 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18348 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
18351 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18353 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
18354 * config/s390/s390.c (s390_expand_vec_movstr): New function.
18355 * config/s390/s390.md ("movstr<P:mode>"): Call
18356 s390_expand_vec_movstr.
18358 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18360 * config/s390/s390.md: Add missing output modifier for operand 1
18361 to print it as address properly.
18363 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18365 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
18366 * config/s390/2964.md: New file.
18367 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
18368 of insn grouping attributes depending on the CPU level.
18369 (s390_get_unit_mask): New function.
18370 (s390_sched_score): Remove the OOO from the scheduling macros.
18371 Add loop to calculate a score for the instruction mix.
18372 (s390_sched_reorder): Likewise plus improve debug output.
18373 (s390_sched_variable_issue): Rename macros as above. Calculate
18374 the unit distances after actually scheduling an insn. Improve
18376 (s390_sched_init): Clear last_scheduled_unit_distance array.
18377 * config/s390/s390.md: Include 2964.md.
18379 2016-02-18 Jakub Jelinek <jakub@redhat.com>
18382 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
18383 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
18384 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
18385 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
18386 *avx512f_<code>v8div16qi2_mask_1): New insns.
18388 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
18391 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
18394 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
18395 earlyclobber from target. Use wF constraint for fused memory
18397 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
18399 2016-02-18 Jakub Jelinek <jakub@redhat.com>
18400 Martin Liska <mliska@suse.cz>
18403 * cfgexpand.c (asan_sanitize_stack_p): New function.
18404 (partition_stack_vars): Use the function.
18405 (expand_stack_vars): Likewise.
18406 (defer_stack_allocation): Likewise.
18407 (expand_used_vars): Likewise.
18409 2016-02-18 Richard Biener <rguenther@suse.de>
18411 PR middle-end/69553
18412 * fold-const.c (operand_equal_p): Properly compare offsets for
18413 IMAGPART_EXPR and ARRAY_REF.
18415 2016-02-18 Nick Clifton <nickc@redhat.com>
18419 * config/arm/arm.c (arm_option_override_internal): Disable
18420 interworking if the target does not support thumb instructions.
18421 (arm_reload_in_hi): Handle the case where a register to register
18422 move needs reloading because there is no simple pattern to handle
18424 (arm_reload_out_hi): Likewise.
18426 2016-02-18 Richard Biener <rguenther@suse.de>
18428 PR middle-end/69854
18429 * match.pd: Don't use fold_binary or fold_unary for folding
18432 2016-02-17 Jakub Jelinek <jakub@redhat.com>
18435 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
18436 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
18437 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
18438 warn on gimple_no_warning_p statements.
18440 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
18442 * doc/extend.texi (C++ Attributes): Correct description of
18443 warn_unused type attribute.
18445 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18447 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
18448 correct instruction.
18450 2016-02-17 Richard Biener <rguenther@suse.de>
18452 PR rtl-optimization/69609
18453 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
18454 (find_traces_1_round): When ending a trace update cached priority
18456 (bb_to_key): Use cached priority when available.
18457 (copy_bb): Initialize cached priority.
18458 (reorder_basic_blocks_software_trace_cache): Likewise.
18460 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18463 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
18465 (aarch64_comparison_operator): Break overly long line into two.
18466 (aarch64_comparison_operation): Likewise.
18467 * config/aarch64/aarch64.md (cstorecc4): Use
18468 aarch64_comparison_operator_mode instead of
18469 aarch64_comparison_operator.
18470 (cstore<mode>4): Likewise.
18471 (aarch64_cstore<mode>): Likewise.
18472 (*cstoresi_insn_uxtw): Likewise.
18473 (cstore<mode>_neg): Likewise.
18474 (*cstoresi_neg_uxtw): Likewise.
18476 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18479 * config/arm/predicates.md (arm_comparison_operator_mode):
18481 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
18482 instead of arm_comparison_operator.
18483 (*mov_negscc): Likewise.
18484 (*mov_notscc): Likewise.
18485 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
18486 (*thumb2_mov_negscc): Likewise.
18487 (*thumb2_mov_negscc_strict_it): Likewise.
18488 (*thumb2_mov_notscc): Likewise.
18489 (*thumb2_mov_notscc_strict_it): Likewise.
18491 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
18493 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
18494 Add missing return.
18496 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
18498 * config/visium/visium.c (machine_libfunc_index): New enum.
18499 (machine_libfuncs): New structure.
18500 (visium_libfuncs): New static variable.
18501 (TARGET_INIT_LIBFUNCS): Define to...
18502 (visium_init_libfuncs): ...this. New function.
18503 (expand_block_move_4): Use the appropriate libfunc.
18504 (expand_block_move_2): Likewise.
18505 (expand_block_move_1): Likewise.
18506 (expand_block_set_4): Likewise.
18507 (expand_block_set_2): Likewise.
18508 (expand_block_set_1): Likewise.
18509 (visium_trampoline_init): Likewise.
18511 2016-02-17 Nick Clifton <nickc@redhat.com>
18513 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
18514 TI's devices.csv file as of March 2016.
18516 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
18519 * opts-global.c (handle_common_deferred_options): Introduce and
18520 initialize two global variables to remember command-line options
18521 specifying a stack-limiting register.
18522 * opts.h: Add extern declarations of the two new global variables.
18523 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
18524 variable based on the values of the two new global variables.
18526 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18529 * common.opt (Wnonnull-compare): New warning.
18530 * doc/invoke.texi (-Wnonnull): Remove text about comparison
18531 of arguments against NULL.
18532 (-Wnonnull-compare): Document.
18533 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
18534 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
18535 * passes.def (pass_warn_nonnull_compare): Add.
18536 * gimple-ssa-nonnull-compare.c: New file.
18538 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18540 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
18541 AARCH64_EXTRA_TUNE_RECIP_SQRT.
18543 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18545 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
18546 reciprocal sqrt for -mlow-precision-recip-sqrt.
18548 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18549 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18551 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
18552 always use lane loads to construct non-constant vectors.
18554 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18556 * config/aarch64/aarch64.md
18557 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
18558 constraints for operand 3.
18559 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
18561 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18562 Richard Biener <rguenther@suse.de>
18564 PR tree-optimization/69820
18565 * tree-vect-patterns.c (type_conversion_p): Return false if
18566 *orig_type is unsigned single precision or boolean.
18567 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
18570 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18572 PR rtl-optimization/69764
18573 PR rtl-optimization/69771
18574 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
18575 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
18577 2016-02-16 Richard Biener <rguenther@suse.de>
18579 PR tree-optimization/69776
18580 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
18582 (indirect_refs_may_alias_p): Likewise.
18583 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
18584 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
18585 according to tbaa_p.
18586 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
18587 (optimize_stmt): For redundant store discovery do not allow tbaa.
18589 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
18591 PR tree-optimization/69714
18592 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
18593 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
18595 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
18597 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
18598 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
18599 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
18600 * config/arc/arc.c (arc_init): Check FPU options.
18601 (get_arc_condition_code): Handle new CC_FPU* modes.
18602 (arc_select_cc_mode): Likewise.
18603 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
18604 register pair only. Allow access for ARCv2 accumulator.
18605 (gen_compare_reg): Whenever we have FPU support use FPU compare
18607 (arc_reorg): Don't generate brcc insns when FPU compare
18608 instructions are involved.
18609 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
18610 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
18611 floating point emulation.
18612 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
18613 (REVERSE_CONDITION): Add new CC_FPU* modes.
18614 (TARGET_FP_SP_BASE): Define.
18615 (TARGET_FP_DP_BASE): Likewise.
18616 (TARGET_FP_SP_FUSED): Likewise.
18617 (TARGET_FP_DP_FUSED): Likewise.
18618 (TARGET_FP_SP_CONV): Likewise.
18619 (TARGET_FP_DP_CONV): Likewise.
18620 (TARGET_FP_SP_SQRT): Likewise.
18621 (TARGET_FP_DP_SQRT): Likewise.
18622 (TARGET_FP_DP_AX): Likewise.
18623 * config/arc/arc.md (ARCV2_ACC): New constant.
18624 (type): New fpu type attribute.
18625 (SDF): Conditional iterator.
18626 (cstore<mode>, cbranch<mode>): Change expand condition.
18627 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
18628 handles FPU/FPX cases as well.
18629 * config/arc/arc.opt (mfpu): New option.
18630 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
18632 (adddf3, muldf3, subdf3): Removed.
18633 * config/arc/predicates.md (proper_comparison_operator): Recognize
18635 * config/arc/fpu.md: New file.
18636 * doc/invoke.texi (ARC Options): Document mfpu option.
18638 2016-02-16 Richard Biener <rguenther@suse.de>
18640 PR rtl-optimization/69291
18641 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
18642 noce_operand_ok check.
18644 2016-02-16 Tom de Vries <tom@codesourcery.com>
18647 * omp-low.c (simd_clone_create): Remove call to
18648 symtab->call_cgraph_insertion_hooks.
18650 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18652 PR tree-optimization/69802
18653 * tree-ssa-reassoc.c (update_range_test): If op is
18654 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
18655 op == 1 test of precision 1 integral op, otherwise handle
18656 that case as op itself. Fix up formatting.
18657 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
18660 2016-02-16 Richard Biener <rguenther@suse.de>
18662 PR tree-optimization/69586
18663 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
18664 types for conversion sources.
18666 2016-02-16 Richard Biener <rguenther@suse.de>
18668 PR middle-end/69801
18669 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
18670 mask OEP_ADDRESS_OF.
18672 2016-02-16 Alan Modra <amodra@gmail.com>
18675 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
18676 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
18677 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
18679 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
18680 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
18681 (p8_fmrgow_<mode>): Likewise.
18682 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
18684 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
18685 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
18686 to use movdi_internal64. Remove op0_di.
18687 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
18689 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
18691 Add support for the FCCMP insn types
18693 * config/aarch64/aarch64.md (fccmp): Change insn type.
18694 (fccmpe): Likewise.
18695 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
18696 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
18697 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
18698 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
18699 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
18700 * config/arm/types.md (fccmps): Add new insn type.
18701 (fccmpd): Likewise.
18703 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
18705 * alias.c (get_alias_set): Fix a typo in comment.
18707 2016-02-15 Richard Biener <rguenther@suse.de>
18709 PR tree-optimization/69595
18710 * match.pd: Complete range test simplification to true.
18712 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
18714 PR rtl-optimization/69648
18715 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
18716 pic_offset_table_rtx.
18718 PR rtl-optimization/69752
18719 * ira.c (update_equiv_regs): When looking for more than a single SET,
18720 also take other side effects into account.
18722 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
18724 * config/s390/s390.c (s390_function_profiler): Add a new sequence
18725 for z900+ CPUs in 31-bit mode.
18727 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
18729 * common/config/s390/s390-common.c (s390_supports_split_stack):
18731 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
18732 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
18733 * config/s390/s390.c (struct machine_function): New field
18734 split_stack_varargs_pointer.
18735 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
18736 in s390_emit_prologue.
18737 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
18739 (morestack_ref): New global.
18740 (SPLIT_STACK_AVAILABLE): New macro.
18741 (s390_expand_split_stack_prologue): New function.
18742 (s390_live_on_entry): New function.
18743 (s390_va_start): Use split-stack vararg pointer if appropriate.
18744 (s390_asm_file_end): Emit the split-stack note sections.
18745 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
18746 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
18747 (UNSPECV_SPLIT_STACK_CALL): New unspec.
18748 (UNSPECV_SPLIT_STACK_DATA): New unspec.
18749 (split_stack_prologue): New expand.
18750 (split_stack_space_check): New expand.
18751 (split_stack_data): New insn.
18752 (split_stack_call): New expand.
18753 (split_stack_call_*): New insn.
18754 (split_stack_cond_call): New expand.
18755 (split_stack_cond_call_*): New insn.
18757 2016-02-15 Richard Biener <rguenther@suse.de>
18759 PR tree-optimization/69783
18760 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
18761 Add trivially correct cases.
18763 2016-02-15 Tom de Vries <tom@codesourcery.com>
18766 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
18768 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
18770 2016-02-15 Richard Biener <rguenther@suse.de>
18772 PR tree-optimization/69776
18773 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
18774 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
18775 indicate whether we can use TBAA to disambiguate against stores.
18776 Use alias-set zero if not.
18777 (visit_reference_op_store): Do not use TBAA when looking up
18779 * tree-ssa-pre.c (compute_avail): Use TBAA here.
18780 (eliminate_dom_walker::before_dom_children): But not when looking
18781 up redundant stores.
18783 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
18785 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
18787 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
18789 * config/i386/znver1.md
18790 (znver1_pop, znver1_pop_mem,
18791 znver1_load_imov_double_store,
18792 znver1_load_imov_direct_store,
18793 znver1_load_imov_direct_load,
18794 znver1_load_imov_double_load): Add new.
18795 (znver1_insn, znver1_insn_load): Add icmov type.
18796 (znver1_sseavx_fma,
18797 znver1_sseavx_fma_load,
18799 znver1_avx256_fma_load): Fix pipe usage.
18801 2016-02-14 Alan Modra <amodra@gmail.com>
18804 * reload.c (find_reloads_address_1): For pre/post-inc/dec
18805 with an invalid hard reg, reload just the reg not the entire
18806 pre/post-inc/dec address expression.
18808 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
18811 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
18812 fixed R1_REG scratch reg.
18813 (sibcall_value_pcrel_fdpic): Likewise.
18815 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
18819 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
18821 2016-02-12 Walter Lee <walt@tilera.com>
18823 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
18824 * config/tilegx/t-tilegx: Likewise.
18826 2016-02-12 David Malcolm <dmalcolm@redhat.com>
18829 * diagnostic-show-locus.c (struct line_span): New struct.
18830 (layout::get_first_line): Delete.
18831 (layout::get_last_line): Delete.
18832 (layout::get_num_line_spans): New member function.
18833 (layout::get_line_span): Likewise.
18834 (layout::print_heading_for_line_span_index_p): Likewise.
18835 (layout::get_expanded_location): Likewise.
18836 (layout::calculate_line_spans): Likewise.
18837 (layout::m_first_line): Delete.
18838 (layout::m_last_line): Delete.
18839 (layout::m_line_spans): New field.
18840 (layout::layout): Update comment. Replace m_first_line and
18841 m_last_line with m_line_spans, replacing their initialization
18842 with a call to calculate_line_spans.
18843 (diagnostic_show_locus): When printing source lines and
18844 annotations, rather than looping over a single span
18845 of lines, instead loop over each line_span within
18846 the layout, with an inner loop over the lines within them.
18847 Call the context's start_span callback when changing line spans.
18848 * diagnostic.c (diagnostic_initialize): Initialize start_span.
18849 (diagnostic_build_prefix): Break out the building of the location
18850 part of the string into...
18851 (diagnostic_get_location_text): ...this new function, rewriting
18852 it from nested ternary expressions to a sequence of "if"
18854 (default_diagnostic_start_span_fn): New function.
18855 * diagnostic.h (diagnostic_start_span_fn): New typedef.
18856 (diagnostic_context::start_span): New field.
18857 (default_diagnostic_start_span_fn): New prototype.
18859 2016-02-12 David Malcolm <dmalcolm@redhat.com>
18862 * gcc.c (driver::finalize): Fix cleanup of "specs".
18864 2016-02-12 David Malcolm <dmalcolm@redhat.com>
18868 * gcc.c (driver::driver): Initialize m_option_suggestions.
18869 (driver::~driver): Clean up m_option_suggestions.
18870 (suggest_option): Convert to...
18871 (driver::suggest_option): ...this, and split out into
18872 driver::build_option_suggestions and find_closest_string.
18873 (driver::build_option_suggestions): New function, from
18874 first half of suggest_option. Special-case
18875 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
18876 the sanitizer_opts array. For options of enum types, add the
18877 various enum values to the candidate strings.
18878 (driver::handle_unrecognized_options): Remove "const".
18879 * gcc.h (driver::handle_unrecognized_options): Likewise.
18880 (driver::build_option_suggestions): New decl.
18881 (driver::suggest_option): New decl.
18882 (driver::m_option_suggestions): New field.
18883 * opts-common.c (add_misspelling_candidates): New function.
18884 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
18885 and make non-static.
18886 * opts.h (sanitizer_opts): New array decl.
18887 (add_misspelling_candidates): New function decl.
18888 * spellcheck.c (find_closest_string): New function.
18889 * spellcheck.h (find_closest_string): New function decl.
18891 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18893 PR rtl-optimization/69764
18894 PR rtl-optimization/69771
18895 * optabs.c (expand_binop_directly): For shift_optab_p, force
18896 convert_modes with VOIDmode if xop1 has VOIDmode.
18898 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
18901 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
18902 to correctly determine instrumentation thunks.
18904 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18907 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
18908 type by reference, force lhs on the call.
18911 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
18912 Compute retval and retbnd early in all cases if split_part_return_p
18913 and return_bb is not EXIT. Remove all clobber stmts and reset
18914 all debug stmts that refer to SSA_NAMEs defined in split part,
18915 except if it is retval, in that case replace the old retval with the
18916 lhs of the call to the split part.
18918 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18921 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18923 PR middle-end/66726
18924 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18925 whose result is used in PHI.
18926 (maybe_optimize_range_tests): Likewise.
18927 (final_range_test_p): Likweise.
18929 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18931 PR middle-end/66726
18932 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18933 whose result is used in PHI.
18934 (maybe_optimize_range_tests): Likewise.
18935 (final_range_test_p): Likweise.
18937 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18939 * cgraph.c: Spelling fixes - behaviour -> behavior and
18940 neighbour -> neighbor.
18941 * target.def: Likewise.
18942 * sel-sched.c: Likewise.
18943 * config/mips/mips.c: Likewise.
18944 * config/arc/arc.md: Likewise.
18945 * config/arm/cortex-a57.md: Likewise.
18946 * config/arm/arm.c: Likewise.
18947 * config/arm/neon.md: Likewise.
18948 * config/arm/arm-c.c: Likewise.
18949 * config/vms/vms-c.c: Likewise.
18950 * config/s390/s390.c: Likewise.
18951 * config/i386/znver1.md: Likewise.
18952 * config/i386/i386.c: Likewise.
18953 * config/ia64/hpux-unix2003.h: Likewise.
18954 * config/msp430/msp430.md: Likewise.
18955 * config/rx/rx.c: Likewise.
18956 * config/rx/rx.md: Likewise.
18957 * config/aarch64/aarch64-simd.md: Likewise.
18958 * config/aarch64/aarch64.c: Likewise.
18959 * config/nvptx/nvptx.c: Likewise.
18960 * config/bfin/bfin.c: Likewise.
18961 * config/cris/cris.opt: Likewise.
18962 * config/rs6000/rs6000.c: Likewise.
18963 * target.h: Likewise.
18964 * spellcheck.c: Likewise.
18965 * ira-build.c: Likewise.
18966 * tree-inline.c: Likewise.
18967 * builtins.c: Likewise.
18968 * lra-constraints.c: Likewise.
18969 * explow.c: Likewise.
18970 * hwint.h: Likewise.
18971 * targhooks.c: Likewise.
18972 * tree-vect-data-refs.c: Likewise.
18973 * expr.c: Likewise.
18974 * doc/tm.texi: Likewise.
18975 * doc/extend.texi: Likewise.
18976 * doc/install.texi: Likewise.
18977 * doc/md.texi: Likewise.
18978 * tree-ssa-tail-merge.c: Likewise.
18979 * sched-int.h: Likewise.
18980 * match.pd: Likewise.
18981 * sched-ebb.c: Likewise.
18982 * target.def (omit_struct_return_reg): Likewise.
18983 * gimple-ssa-isolate-paths.c: Likewise.
18984 (find_implicit_erroneous_behaviour): Renamed to...
18985 (find_implicit_erroneous_behavior): ... this.
18986 (find_explicit_erroneous_behaviour): Renamed to...
18987 (find_explicit_erroneous_behavior): ... this.
18988 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
18990 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
18992 PR rtl-optimization/64682
18993 PR rtl-optimization/69567
18994 PR rtl-optimization/69737
18995 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
18996 in I2 as well, just lose it.
18998 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19000 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
19002 (aarch64_last_printed_tune_string): Likewise.
19003 (aarch64_declare_function_name): Only output .arch assembler
19004 directive if it will be different from the previously output
19005 directive. Same for .tune comment but only if -dA is set.
19006 (aarch64_start_file): New function.
19007 (TARGET_ASM_FILE_START): Define.
19009 2016-02-11 David Malcolm <dmalcolm@redhat.com>
19012 * Makefile.in (PLUGIN_HEADERS): Add params.list.
19014 2016-02-11 Jakub Jelinek <jakub@redhat.com>
19017 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
19018 -Wmaybe-uninitialized warning.
19020 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
19023 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
19025 2016-02-11 Richard Biener <rguenther@suse.de>
19027 PR rtl-optimization/69291
19028 * ifcvt.c (noce_try_store_flag_constants): Do not allow
19029 subexpressions affected by changing the result.
19031 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
19034 * lra-constraints.c (curr_insn_transform): Find in/out operands
19035 for secondary memory moves. Update dups.
19037 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
19039 PR tree-optimization/69652
19040 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
19041 to nested loop, did source re-formatting, skip debug statements,
19042 add check on statement with volatile operand, remove dead scalar
19045 2016-02-10 Jakub Jelinek <jakub@redhat.com>
19046 Patrick Palka <ppalka@gcc.gnu.org>
19050 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
19051 calls if the return type is TREE_ADDRESSABLE.
19052 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
19053 * ipa-split.c (split_function): Fix doubled "we" in comment.
19054 Use void return type for the split part even if
19055 !split_point->split_part_set_retval.
19057 2016-02-10 Bin Cheng <bin.cheng@arm.com>
19059 PR tree-optimization/68021
19060 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
19061 when computing the value of biv cand by itself.
19063 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
19065 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
19066 (cortexa57_tunings): Likewise.
19067 (cortexa72_tunings): Likewise.
19068 (arch_macro_fusion_pair_p): Add support for AES fusion.
19069 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
19070 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
19071 Allow virtual registers before reload so early scheduling works.
19072 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
19073 correct latency and pipeline.
19074 (cortex_a57_crypto_complex): Likewise.
19075 (cortex_a57_crypto_xor): Likewise.
19076 (define_bypass): Add AES bypass.
19078 2016-02-10 Richard Biener <rguenther@suse.de>
19080 PR tree-optimization/69726
19081 * passes.def: Add DCE pass before late uninit.
19082 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
19083 really fixup if-conversions job.
19085 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
19087 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
19088 (arm_cortex_a57_tune): Likewise.
19089 (aarch_macro_fusion_pair_p): Add support for AES fusion.
19090 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
19092 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
19094 * timevar.def (TV_PHASE_DBGINFO): Delete.
19095 (TV_PHASE_CHECK_DBGINFO): Likewise.
19096 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
19098 2016-02-10 Richard Biener <rguenther@suse.de>
19100 PR tree-optimization/69719
19101 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
19102 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
19104 2016-02-09 Andrew Pinski <apinski@cavium.com>
19107 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
19108 get_vcond_mask_icode returns false.
19110 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
19113 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
19114 an ADDIS that adds a pointer to a large constant that sets the
19115 upper16 bits with a load operation.
19117 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
19120 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
19122 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
19124 (vzipq_s16): Likewise.
19125 (vzipq_s32): Likewise.
19126 (vzipq_f32): Likewise.
19127 (vzipq_u8): Likewise.
19128 (vzipq_u16): Likewise.
19129 (vzipq_u32): Likewise.
19130 (vzipq_p8): Likewise.
19131 (vzipq_p16): Likewise.
19133 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
19136 * config/arm/arm.c (neon_endian_lane_map): New function.
19137 (neon_vector_pair_endian_lane_map): New function.
19138 (arm_evpc_neon_vuzp): Allow for big endian lane order.
19139 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
19141 (vuzpq_s16): Likewise.
19142 (vuzpq_s32): Likewise.
19143 (vuzpq_f32): Likewise.
19144 (vuzpq_u8): Likewise.
19145 (vuzpq_u16): Likewise.
19146 (vuzpq_u32): Likewise.
19147 (vuzpq_p8): Likewise.
19148 (vuzpq_p16): Likewise.
19150 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
19153 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
19156 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
19158 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
19159 truncate const_int operand 1 to QImode.
19161 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
19163 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
19164 corresponding to an abnormal edge.
19166 2016-02-09 Tom de Vries <tom@codesourcery.com>
19168 PR tree-optimization/69599
19169 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
19171 (find_func_aliases_for_builtin_call, find_func_clobbers)
19172 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
19175 2016-02-09 Richard Biener <rguenther@suse.de>
19177 PR tree-optimization/69715
19178 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
19179 LHS on calls as non-rewritable.
19181 2016-02-09 Tom de Vries <tom@codesourcery.com>
19184 * lto-wrapper.c (append_diag_options): New function.
19185 (compile_offload_image): Call append_diag_options.
19187 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
19190 * doc/extend.texi (Flag Output Operands): Correct sectioning.
19191 Minor copy-edit to fix verb tenses.
19193 2016-02-08 Jakub Jelinek <jakub@redhat.com>
19195 PR tree-optimization/69209
19196 * ipa-split.c (split_function): If split part is not
19197 returning retval, retval has gimple type but is not
19198 gimple value, force it into a SSA_NAME first.
19200 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
19202 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
19205 2016-02-08 Jason Merrill <jason@redhat.com>
19208 * convert.c (convert_to_integer_1): Check dofold on truncation
19210 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
19211 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
19212 Rename from *_nofold.
19213 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
19214 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
19216 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
19219 * tree.c (build_common_tree_nodes): Remove short_double argument.
19220 All callers changed.
19221 * tree.h (build_common_tree_nodes): Adjust declaration.
19222 * doc/invoke.texi (-fshort-double): Remove documentation.
19223 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19224 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
19225 * lto-wrapper.c (merge_and_complain, append_compiler_options)
19226 (append_linker_options): Don't handle OPT_fshort_double.
19228 PR rtl-optimization/68730
19229 * lra-remat.c (insn_to_cand_activation): New static variable.
19230 (lra_remat): Allocate and free it.
19231 (create_cand): New arg activation. Initialize a field in
19232 insn_to_cand_activation if it is nonnull.
19233 (create_cands): Pass the activation insn to create_cand when making
19234 a candidate involving an output reload. Reorganize code a little.
19235 (do_remat): Keep track of active status of candidates in a separate
19238 2016-02-08 Richard Biener <rguenther@suse.de>
19240 PR tree-optimization/69719
19241 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
19242 Properly use absolute of the difference of the two offsets to
19243 compare or adjust the segment length.
19245 2016-02-08 Richard Biener <rguenther@suse.de>
19246 Jeff Law <law@redhat.com>
19249 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
19250 types for anonymous SSA names.
19252 2016-02-08 Richard Biener <rguenther@suse.de>
19254 PR rtl-optimization/69274
19255 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
19257 2016-02-08 Jeff Law <law@redhat.com>
19259 PR tree-optimization/65917
19260 * tree-ssa-dom.c (record_temporary_equivalences): Record both
19261 equivalences from if (x == y) style conditionals.
19262 (loop_depth_of_name): Remove.
19263 (record_equality): Remove loop depth check.
19264 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
19265 (const_and_copies::record_const_or_copy_raw): New member function.
19266 * tree-ssa-scopedtables.c
19267 (const_and_copies::record_const_or_copy_raw): New, factored out of
19268 (const_and_copies::record_const_or_copy): Call new member function.
19270 2016-02-05 Jeff Law <law@redhat.com>
19272 PR tree-optimization/68541
19273 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
19274 (count_stmts_in_block): New function.
19275 (poor_ifcvt_candidate_code): Likewise.
19276 (is_feasible_trace): Add some heuristics to determine when path
19277 splitting is profitable.
19278 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
19279 is a diamond with a single exit.
19281 2016-02-05 Martin Sebor <msebor@redhat.com>
19284 * doc/invoke.texi: Update -Wplacement-new to take an optional
19287 2016-02-06 Richard Henderson <rth@redhat.com>
19290 * tree.c (tree_nop_conversion_p): Do not strip casts into or
19291 out of non-standard address spaces.
19293 2016-02-05 Jakub Jelinek <jakub@redhat.com>
19295 PR rtl-optimization/69691
19296 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
19298 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
19300 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
19301 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
19302 (*ieee128_mfvsrd_64bit): Likewise.
19303 (*ieee128_mfvsrd_32bit): Likewise.
19305 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
19309 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
19311 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
19312 instrumented_version.
19314 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
19316 * doc/invoke.texi (Optimize Options): In table of --param options
19317 rename second occurrence of tracer-min-branch-ratio to
19318 tracer-min-branch-probability, rename
19319 tracer-min-branch-ratio-feedback to
19320 tracer-min-branch-probability-feedback and clarify description,
19321 rename sched-spec-state-edge-prob-cutoff to
19322 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
19323 to selsched-insns-to-rename, rename lto-minpartition to
19324 lto-min-partition, delete reorder-blocks-duplicate and
19325 reorder-blocks-duplicate-feedback.
19327 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19329 * config/s390/s390.c (s390_register_info_set_ranges): Remove
19332 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
19334 * doc/extend.texi: S/390: Correct some typos.
19336 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19338 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
19340 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19343 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
19344 (s390_register_info_gprtofpr): Use new macros above.
19345 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
19347 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
19348 its name. Adjust restore and save gpr ranges.
19349 (s390_register_info_set_ranges): New function.
19350 (s390_register_info): Use new macros above. Call
19351 s390_register_info_set_ranges.
19352 (s390_optimize_register_info): Likewise.
19353 (s390_hard_regno_rename_ok): Use new macros.
19354 (s390_hard_regno_scratch_ok): Likewise.
19355 (s390_emit_epilogue): Likewise.
19356 (s390_can_use_return_insn): Likewise.
19357 (s390_optimize_prologue): Likewise.
19358 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
19360 2016-02-05 Jakub Jelinek <jakub@redhat.com>
19363 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
19365 (ix86_option_override_internal): Disable TARGET_STV even for
19366 -m{incoming,preferred}-stack-boundary=3.
19368 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19370 * config.gcc: Mark deprecated rtems targets as obsolete.
19372 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
19374 PR rtl-optimization/64682
19375 PR rtl-optimization/69567
19376 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
19377 before I2 only if the register is both used and set in I2.
19379 2016-02-04 DJ Delorie <dj@redhat.com>
19381 * config/msp430/msp430.c (msp430_start_function): Add function type.
19383 2016-02-04 Jakub Jelinek <jakub@redhat.com>
19386 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
19388 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
19390 PR rtl-optimization/69577
19392 2015-10-29 Richard Henderson <rth@redhat.com>
19396 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
19397 sse check to the exact conditions of PR 67609.
19399 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
19402 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
19403 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
19404 not allowed into the traditional Altivec registers.
19405 (movtd_64bit_nodm): Likewise.
19406 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
19408 2016-02-04 David Malcolm <dmalcolm@redhat.com>
19410 * config/aarch64/cortex-a57-fma-steering.c
19411 (aarch64_register_fma_steering): Remove "static" from arguments
19414 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
19417 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
19418 twice when complex.
19420 2016-02-04 Mike Frysinger <vapier@gentoo.org>
19422 * doc/invoke.texi: Delete -mno-fma4.
19424 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
19426 PR rtl-optimization/69577
19427 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
19428 (find_subregs_of_mode): Update accordingly. Iterate over partial
19431 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
19433 * config/arm/arm-protos.h (neon_reinterpret): Remove.
19434 * config/arm/arm.c (neon_reinterpret): Remove.
19435 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
19436 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
19437 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
19438 vreinterpretti): Remove.
19439 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
19440 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
19441 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
19442 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
19443 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
19444 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
19445 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
19446 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
19447 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
19448 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
19449 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
19450 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
19451 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
19452 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
19453 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
19454 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
19455 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
19456 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
19457 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
19458 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
19459 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
19460 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
19461 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
19462 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
19463 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
19464 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
19465 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
19466 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
19467 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
19468 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
19469 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
19470 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
19471 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
19472 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
19473 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
19474 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
19475 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
19476 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
19477 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
19478 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
19479 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
19480 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
19481 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
19482 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
19483 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
19484 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
19485 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
19486 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
19487 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
19488 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
19489 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
19490 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
19491 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
19492 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
19493 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
19494 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
19495 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
19496 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
19497 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
19498 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
19499 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
19500 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
19501 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
19502 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
19503 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
19504 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
19505 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
19506 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
19507 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
19508 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
19509 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
19510 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
19511 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
19512 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
19513 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
19514 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
19515 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
19516 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
19517 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
19518 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
19519 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
19520 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
19521 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
19522 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
19523 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
19524 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
19525 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
19526 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
19527 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
19528 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
19529 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
19530 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
19531 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
19532 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
19533 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
19534 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
19535 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
19536 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
19537 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
19538 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
19539 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
19540 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
19541 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
19543 2016-02-04 Martin Liska <mliska@suse.cz>
19546 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
19547 that are gimple_store_p.
19548 (maybe_instrument_call): Likewise.
19550 2016-02-04 Bin Cheng <bin.cheng@arm.com>
19552 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
19553 register scaling out of memory reference and comment why.
19555 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19559 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
19560 folding the source of a SET.
19562 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19566 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
19567 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
19569 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
19573 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
19576 2016-02-04 Christian Bruel <christian.bruel@st.com>
19578 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
19579 * config/arm/arm.c (arm_set_current_function): Likewise.
19581 2016-02-04 Jakub Jelinek <jakub@redhat.com>
19582 Ilya Enkovich <enkovich.gnu@gmail.com>
19583 H.J. Lu <hongjiu.lu@intel.com>
19586 * config/i386/i386.c (convert_scalars_to_vector): Remove
19587 stack alignment fixes.
19588 (ix86_option_override_internal): Disable TARGET_STV if stack
19589 might not be aligned enough.
19590 (ix86_minimum_alignment): Assert that TARGET_STV is false.
19592 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
19594 * config/i386/x86-tune.def: Disable default prefetching
19597 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
19598 Vladimir Makarov <vmakarov@redhat.com>
19601 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
19602 in validating fused toc addresses.
19604 2016-02-03 Jakub Jelinek <jakub@redhat.com>
19607 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
19608 range->m_caret fields if range->m_show_caret_p is false.
19611 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
19612 Force oldval into register if it does not satisfy reg_or_short_operand
19613 predicate. Fix up formatting.
19615 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
19616 Alexandre Oliva <aoliva@redhat.com>
19619 * lra-constraints.c (simplify_operand_subreg): Check additionally
19620 address validity after potential reloading.
19621 (process_address_1): Check insns validity. In case of failure do
19624 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
19627 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
19630 2016-02-02 Jakub Jelinek <jakub@redhat.com>
19632 * wide-int.cc (canonize_uhwi): New function.
19633 (wi::divmod_internal): Use it.
19635 2016-02-02 James Norris <jnorris@codesourcery.com>
19637 * gimplify.c (omp_notice_variable): Add usage check.
19639 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
19641 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
19642 like LE, GE, LT, GT when emitting relational operator.
19644 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
19646 * ira-costs.c (find_costs_and_classes): Add extra argument.
19647 * target.def (ira_change_pseudo_allocno_class): Add parameter.
19648 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
19649 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
19650 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
19651 Add best_class parameter, and return it if not ALL_REGS.
19652 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
19654 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
19655 Update target hook.
19657 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
19659 * config/aarch64/aarch64.c
19660 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
19661 (aarch64_ira_change_pseudo_allocno_class): New function.
19663 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
19666 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
19668 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19670 * config/avr/avr.c (avr_option_override): Set
19671 PARAM_ALLOW_STORE_DATA_RACES to 1.
19673 2016-02-02 Richard Biener <rguenther@suse.de>
19675 PR tree-optimization/69595
19676 * match.pd: Add range test simplifications to true/false.
19678 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
19680 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
19681 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
19684 2016-02-02 Richard Biener <rguenther@suse.de>
19686 PR tree-optimization/69606
19687 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
19688 info on the result before moving a stmt.
19690 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
19692 PR middle-end/68542
19693 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
19694 branch with vector comparison.
19695 * config/i386/sse.md (VI48_AVX): New mode iterator.
19696 (define_expand "cbranch<mode>4): Add support for conditional branch
19697 with vector comparison.
19698 * tree-vect-loop.c (optimize_mask_stores): New function.
19699 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
19700 has_mask_store field of vect_info.
19701 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
19702 vectorized loops having masked stores after vec_info destroy.
19703 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
19704 correspondent macros.
19705 (optimize_mask_stores): Add prototype.
19707 2016-02-02 Alan Modra <amodra@gmail.com>
19710 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
19713 2016-02-02 Alan Modra <amodra@gmail.com>
19716 * config/rs6000/rs6000.c (need_toc_init): New var, set it
19717 whenever toc_label_name used.
19718 (rs6000_file_start): Don't set up toc section here,
19719 (rs6000_output_function_epilogue): do so here instead,
19720 (rs6000_xcoff_file_start): and here.
19721 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
19722 (load_toc_aix_di): Likewise.
19724 2016-02-01 Jakub Jelinek <jakub@redhat.com>
19726 PR rtl-optimization/69592
19727 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
19728 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
19729 (num_sign_bit_copies_binary_arith_p): New inline function.
19730 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
19732 2016-02-01 Jeff Law <law@redhat.com>
19734 PR tree-optimization/69580
19735 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
19736 * tree-ssa-threadbackward.c
19737 (fsm_find_control_statement_thread_paths): Do not try to walk
19738 through large PHI nodes.
19740 2016-02-01 Jakub Jelinek <jakub@redhat.com>
19742 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
19743 when count is incremented above limit, don't analyze further
19746 * omp-low.c (oacc_parse_default_dims): Avoid
19747 -Wsign-compare warning, make sure value fits into int
19748 rather than just unsigned int.
19750 2016-02-01 Bin Cheng <bin.cheng@arm.com>
19752 PR tree-optimization/67921
19753 * fold-const.c (split_tree): New parameters. Convert pointer
19754 type variable part to proper type before negating.
19755 (fold_binary_loc): Pass new arguments to split_tree.
19757 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
19759 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
19760 (nvptx_goacc_validate_dims): Extend to handle global defaults.
19761 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
19762 * doc/tm.texti: Rebuilt.
19763 * doc/invoke.texi (fopenacc-dim): Document.
19764 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
19765 (append_compiler_options): Likewise.
19766 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
19767 (oacc_parse_default_dims): New.
19768 (oacc_validate_dims): Add USED arg. Select non-unity default when
19770 (oacc_loop_fixed_partitions): Return mask of used partitions.
19771 (oacc_loop_auto_partitions): Emit dump info.
19772 (oacc_loop_partition): Return mask of used partitions.
19773 (execute_oacc_device_lower): Parse default dimension arg. Adjust
19774 loop partitioning and validation calls.
19776 2016-02-01 Richard Biener <rguenther@suse.de>
19778 PR middle-end/69556
19779 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
19781 2016-02-01 Richard Biener <rguenther@suse.de>
19783 PR tree-optimization/69574
19784 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
19785 of asserting return chrec_dont_know.
19787 2016-02-01 Martin Liska <mliska@suse.cz>
19789 * mem-stats-traits.h: Add copyright header.
19790 * mem-stats.h: Likewise.
19792 2016-02-01 Richard Biener <rguenther@suse.de>
19794 PR tree-optimization/69579
19795 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
19796 Do not propagate through abnormal PHI results.
19798 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
19800 * postreload.c (reload_cse_simplify): Remove dead code.
19802 2016-02-01 Jakub Jelinek <jakub@redhat.com>
19804 PR rtl-optimization/69570
19805 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
19806 if there is more than one set, not if there is a single set.
19808 2016-02-01 Richard Henderson <rth@redhat.com>
19811 * combine.c (make_compound_operation): When looking through a
19812 subreg, make sure to re-extend to the width of the outer mode.
19814 2016-01-30 Jakub Jelinek <jakub@redhat.com>
19816 PR tree-optimization/69546
19817 * wide-int.cc (wi::divmod_internal): For unsigned division
19818 where both operands fit into uhwi, if o1 is 1 and o0 has
19819 msb set, if divident_prec is larger than bits per hwi,
19820 clear another quotient word and return 2 instead of 1.
19821 Similarly for remainder with msb in HWI set, if dividend_prec
19822 is larger than bits per hwi.
19824 2016-01-29 Martin Jambor <mjambor@suse.cz>
19826 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
19827 Use short lowercase names.
19828 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
19829 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
19830 acq_rel one. Protect warning agains segfaults if
19831 get_memory_order_name returns NULL.
19832 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
19833 with release semantics. Do not warn if get_memory_order already did.
19834 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
19835 semantics. Fix check for relaxed or acquire semantics. Do not warn
19836 if get_memory_order already did.
19838 2016-01-29 Sebastian Pop <s.pop@samsung.com>
19840 * doc/install.texi: Document that isl-0.16 is supported.
19842 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
19845 * config/i386/constraints.md (Bm): Describe as special memory
19847 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
19848 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19849 * genpreds.c (struct constraint_data): Add is_special_memory.
19850 (have_special_memory_constraints, special_memory_start): New
19852 (special_memory_end): Ditto.
19853 (add_constraint): Add new arg is_special_memory. Add code to
19854 process its true value. Update have_special_memory_constraints.
19855 (process_define_constraint): Pass the new arg.
19856 (process_define_register_constraint): Ditto.
19857 (choose_enum_order): Process special memory.
19858 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
19859 function insn_extra_special_memory_constraint.
19860 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19861 * gensupport.c (process_rtx): Process
19862 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19863 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
19864 * ira-lives.c (single_reg_class): Use
19865 insn_extra_special_memory_constraint.
19866 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
19867 * lra-constraints.c (process_alt_operands): Ditto.
19868 (curr_insn_transform): Use insn_extra_special_memory_constraint.
19869 * recog.c (asm_operand_ok, preprocess_constraints): Process
19871 * reload.c (find_reloads): Ditto.
19872 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
19873 * stmt.c (parse_input_constraint): Use
19874 insn_extra_special_memory_constraint.
19876 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
19879 * lra-splill.c (lra_final_code_change): Revert r229087 by
19880 removing all sub-registers.
19882 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
19885 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
19887 2016-01-29 Jakub Jelinek <jakub@redhat.com>
19890 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
19891 SSE1, copy target into the temporary reg first before recursing
19894 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
19896 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
19899 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
19901 * ginclude/stdarg.h: Test __cplusplus instead of
19902 __GXX_EXPERIMENTAL_CXX0X__.
19904 2016-01-29 Richard Biener <rguenther@suse.de>
19906 PR tree-optimization/69547
19907 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
19908 Do not mark clobbers necessary.
19909 (mark_all_reaching_defs_necessary_1): Likewise.
19911 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19913 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
19914 declaration name with %qs and print it in both error messages.
19915 Also fix indentation.
19917 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19920 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
19921 trailing blank line from error message.
19923 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
19926 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
19929 2016-01-29 Richard Biener <rguenther@suse.de>
19931 PR middle-end/69537
19932 * match.pd: Allow all integral types when simplifying a
19933 widening or sign-changing conversion.
19935 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19937 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
19938 back to setting codegen_error to fail codegen.
19940 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
19943 * config/i386/constraints.md (C): Only accept constant zero operand.
19944 (BC): New constraint.
19945 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
19946 instead of C constraint.
19947 * doc/md.texi (Machine Constraints): Update description
19950 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
19953 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
19955 2016-01-28 Jakub Jelinek <jakub@redhat.com>
19957 PR middle-end/69542
19958 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
19961 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
19963 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
19964 branches if using guessed profile.
19966 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
19968 * graphite-optimize-isl.c (optimize_isl): Fix dump.
19970 2016-01-28 Richard Henderson <rth@redhat.com>
19973 * config/aarch64/aarch64-modes.def (CC_Cmode): New
19974 * config/aarch64/aarch64-protos.h: Update.
19975 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
19976 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
19977 (aarch64_get_condition_code_1): Handle CC_Cmode.
19978 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
19979 (*add<mode>3_compareC_cconly_imm): New.
19980 (*add<mode>3_compareC_cconly): New.
19981 (*add<mode>3_compareC_imm): New.
19982 (add<mode>3_compareC): New.
19983 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
19984 to be first. Use aarch64_carry_operation.
19985 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
19986 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
19987 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
19988 (subti3): Use subdi3_compare1.
19989 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
19990 (sub<mode>3_compare1): New.
19991 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
19992 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
19993 (*subsi3_carryin_uxtw): Likewise.
19994 (*ngc<mode>, *ngcsi_uxtw): Likewise.
19995 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
19996 * config/aarch64/iterators.md (DWI): New.
19997 * config/aarch64/predicates.md (aarch64_carry_operation): New.
19998 (aarch64_borrow_operation): New.
20000 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
20002 * graphite-optimize-isl.c (optimize_isl): Print a different debug
20003 message when isl does not return a valid schedule.
20005 2016-01-28 Sebastian Pop <s.pop@samsung.com>
20007 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
20008 Remove comments from class declarations: they are already in the code
20011 2016-01-28 Sebastian Pop <s.pop@samsung.com>
20013 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
20015 (ternary_op_to_tree): Same.
20016 (unary_op_to_tree): Same.
20017 (nary_op_to_tree): Same.
20018 (gcc_expression_from_isl_expr_op): Same.
20019 (gcc_expression_from_isl_expression): Same.
20020 (graphite_create_new_loop): Same.
20021 (graphite_create_new_loop_guard): Same.
20022 (build_iv_mapping): Same.
20023 (graphite_create_new_guard): Same.
20024 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
20025 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
20027 2016-01-28 Sebastian Pop <s.pop@samsung.com>
20029 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
20030 instead of setting codegen_error to fail codegen.
20032 2016-01-28 Jason Merrill <jason@redhat.com>
20034 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
20036 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
20038 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
20039 Remove CONST_INT_P check in CCMP cost calculation.
20041 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
20043 * config/aarch64/aarch64.c (generic_vector_cost):
20044 Set vec_permute_cost.
20045 (cortexa57_vector_cost): Likewise.
20046 (exynosm1_vector_cost): Likewise.
20047 (xgene1_vector_cost): Likewise.
20048 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
20049 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
20050 Add vec_permute_cost entry.
20052 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
20054 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
20056 (add<mode>3_compare0): Likewise.
20057 (addsi3_compare0_uxtw): Likewise.
20058 (add<mode>3nr_compare0): Likewise.
20059 (compare_neg<mode>): Likewise.
20060 (<optab><mode>3): Likewise.
20062 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
20064 * tree-vect-stmts.c (vectorizable_comparison): Add
20065 NULL check for vectype.
20067 2016-01-28 Richard Biener <rguenther@suse.de>
20069 PR tree-optimization/69466
20070 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
20071 Account for PHIs we couldn't duplicate.
20073 2016-01-28 Martin Liska <mliska@suse.cz>
20076 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
20077 instead of ENABLE_VALGRIND_CHECKING.
20079 2016-01-27 Richard Henderson <rth@redhat.com>
20082 * lra-remat.c (subreg_regs): New.
20083 (dump_candidates_and_remat_bb_data): Dump it.
20084 (operand_to_remat): Reject if operand in subreg_regs.
20085 (set_bb_regs): Collect subreg_regs.
20086 (lra_remat): Init and free subreg_regs. Compute
20087 calculate_local_reg_remat_bb_data before create_cands.
20089 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
20092 * config/i386/i386.c (ix86_update_stack_boundary): Don't
20093 change stack_alignment_needed for __tls_get_addr call.
20095 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
20097 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
20099 2016-01-27 Jeff Law <law@redhat.com>
20101 PR tree-optimization/68398
20102 PR tree-optimization/69196
20103 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
20104 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
20105 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20106 Only count PHIs in the last block in the path. The others will
20107 const/copy propagate away. Add heuristic to allow more irreducible
20108 subloops to be created when it is likely profitable to do so.
20110 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
20111 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
20112 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
20114 2016-01-27 Jakub Jelinek <jakub@redhat.com>
20117 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
20118 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
20119 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
20120 * tree-streamer-in.c: Include asan.h.
20121 (streamer_get_builtin_tree): For builtins in sanitizer
20122 range call initialize_sanitizer_builtins and retry.
20124 2016-01-27 Ian Lance Taylor <iant@google.com>
20126 * common.opt (fkeep-gc-roots-live): New undocumented option.
20127 * tree-ssa-loop-ivopts.c (add_candidate_1): If
20128 -fkeep-gc-roots-live, skip pointers.
20129 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
20132 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
20135 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
20136 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
20138 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
20141 * configure.ac: NetBSD provides SSP in its C library.
20142 * configure: Updated.
20144 2016-01-27 Richard Biener <rguenther@suse.de>
20146 PR tree-optimization/69166
20147 * tree-vect-loop.c (vect_is_simple_reduction): Always check
20148 reduction code for commutativity / associativity.
20150 2016-01-27 Martin Jambor <mjambor@suse.cz>
20152 PR tree-optimization/69355
20153 * tree-sra.c (analyze_access_subtree): Correct hole detection when
20154 total_scalarization fails.
20156 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
20158 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
20161 2016-01-27 Christian Bruel <christian.bruel@st.com>
20164 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
20165 Move arm_reset_previous_fndecl and set_target_option_current_node in
20166 the conditional part. Call save_restore_target_globals.
20167 * config/arm/arm.c (arm_set_current_function):
20168 Refactor to better support #pragma target and attribute mix.
20169 Call save_restore_target_globals.
20170 * config/arm/arm-protos.h (save_restore_target_globals): New function.
20172 2016-01-27 Martin Liska <mliska@suse.cz>
20174 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
20175 reference for an HSA kernel and its host function.
20177 2016-01-27 Jakub Jelinek <jakub@redhat.com>
20179 PR tree-optimization/69399
20180 * wide-int.h (wi::lrshift): For larger precisions, only
20181 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
20183 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
20185 * config/arc/predicates.md (proper_comparison_operator): Reject
20186 constant-constant comparison.
20188 2016-01-26 Tom de Vries <tom@codesourcery.com>
20190 PR tree-optimization/69110
20191 * tree-data-ref.c (initialize_data_dependence_relation): Handle
20192 DR_NUM_DIMENSIONS == 0.
20194 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
20195 Sebastian Pop <s.pop@samsung.com>
20197 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
20198 isl_ast_op_cond and isl_ast_op_select.
20199 (gcc_expression_from_isl_expr_op): Same.
20201 2016-01-26 Jason Merrill <jason@redhat.com>
20204 * tree.c (recompute_constructor_flags): Split out from
20206 (verify_constructor_flags): New.
20207 * tree.h: Declare them.
20209 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
20211 PR rtl-optimization/69217
20212 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
20213 are no TYPE_FIELDS set for the record type.
20215 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20218 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
20219 toc_label_name unconditionally.
20220 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
20221 SYMBOL_REF string. Use toc_label_name instead of constructing
20223 (rs6000_elf_declare_function_name): Use toc_label_name instead of
20224 constructing LCTOC1.
20226 2016-01-26 Martin Sebor <msebor@redhat.com>
20229 * doc/extend.texi (Common Type Attributes): Move text that talks about
20230 attribute packed from attribute aligned to the section discussing
20231 the former attribute for clarity.
20233 2016-01-26 Richard Henderson <rth@redhat.com>
20235 PR middle-end/60908
20236 * trans-mem.c (tm_region_init): Mark entry block as visited.
20238 2016-01-26 David Malcolm <dmalcolm@redhat.com>
20241 * diagnostic-show-locus.c (layout::print_source_line): Replace
20242 call to pp_newline with call to layout::print_newline.
20243 (layout::print_annotation_line): Likewise.
20244 (layout::move_to_column): Likewise.
20245 (layout::print_any_fixits): After printing any fixits, print a
20246 trailing newline, if necessary.
20247 (layout::print_newline): New method, resetting any colorization
20249 (diagnostic_show_locus): Move the pp_newline to before the
20250 early bailout. Remove dummy block enclosing the layout instance.
20251 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
20252 of pp_newline_and_flush with pp_flush.
20253 (diagnostic_append_note): Delete use of pp_newline.
20254 (diagnostic_append_note_at_rich_loc): Delete.
20255 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
20256 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
20257 when newline characters are added to the buffer.
20259 2016-01-26 Michael Matz <matz@suse.de>
20261 * configure.ac (ac_cv_std_swap_in_utility): New test.
20262 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
20263 * configure: Regenerate.
20264 * config.in: Regenerate.
20266 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
20268 * config/arc/arc.md (cstoresi4): Force operand into register.
20269 (arcset<code>): Fix predicate.
20270 (arcsetltu): Likewise.
20271 (arcsetgeu): Likewise.
20272 (arcsethi): Likewise.
20273 (arcsetls): Likewise.
20275 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20277 PR tree-optimization/69483
20278 * gimple-fold.c (canonicalize_constructor_val): Return NULL
20279 if base has error_mark_node type.
20281 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
20284 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
20285 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
20287 (vget_lane_f16): Handle big-endian.
20288 (vgetq_lane_f16): Likewise.
20289 (vset_lane_f16): Likewise.
20290 (vsetq_lane_f16): Likewise.
20291 * config/arm/iterators.md (VQXMOV): Add V8HF.
20292 (VDQ): Add V4HF and V8HF.
20293 (V_reg): Handle V4HF and V8HF.
20294 (Is_float_mode): Likewise.
20295 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
20296 neon_vdup_nv8hf): New patterns.
20297 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
20298 Use VD_LANE iterator.
20299 (neon_vld1_dup<mode>): Use VQ2 iterator.
20301 2016-01-26 Nathan Sidwell <nathan@acm.org>
20303 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
20304 (set_oacc_fn_attrib): Add IS_KERNEL arg.
20305 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
20306 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
20307 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
20308 (oacc_validate_dims): Add LEVEL arg, don't return level.
20309 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
20310 oacc_validate_dims.
20311 (execute_oacc_device_lower): Adjust, add more dump output.
20312 * tree-ssa-loop.c (gate_oacc_kernels): Use
20313 oacc_fn_attrib_kernels_p.
20314 * tree-parloops.c (create_parallel_loop): Adjust
20315 set_oacc_fn_attrib call.
20317 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20320 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
20321 (append_compiler_options): Handle -fcilkplus.
20322 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
20324 2016-01-26 Nick Clifton <nickc@redhat.com>
20327 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
20328 been marked as DECL_ONE_ONLY but we do not the means to make it
20329 so, then do not allow it to bind locally.
20331 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20334 * opts.h (parse_sanitizer_options): New prototype.
20335 * opts.c (sanitizer_opts): New array.
20336 (parse_sanitizer_options): New function.
20337 (common_handle_option): Use parse_sanitizer_options.
20339 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
20342 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
20343 alignment adjustment to ...
20344 (ix86_update_stack_boundary): Here. Don't over-align stack for
20346 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
20347 if __tls_get_addr is called.
20349 2016-01-26 Christian Bruel <christian.bruel@st.com>
20351 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
20353 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
20355 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
20357 2016-01-26 Richard Biener <rguenther@suse.de>
20359 PR middle-end/69467
20360 * match.pd: Guard X * CST CMP 0 pattern with single_use.
20362 2016-01-26 Richard Biener <rguenther@suse.de>
20364 PR tree-optimization/69452
20365 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
20366 (move_computations_dom_walker::before_dom_children): Rename
20368 (move_computations_worker): This.
20369 (move_computations): Perform an RPO rather than a DOM walk.
20371 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20374 * combine.c (combine_instructions): For REG_EQUAL note with
20375 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
20376 to the underlying register.
20377 * doc/rtl.texi (REG_EQUAL): Document the behavior of
20378 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
20380 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
20383 * config/aarch64/aarch64-builtins.c
20384 (aarch64_init_simd_builtin_types): Do not set structural
20385 equality to __Poly{8,16,64,128}_t types.
20387 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
20389 PR tree-optimization/69400
20390 * wide-int.cc (wi_pack): Take the precision as argument and
20391 perform canonicalization here rather than in the callers.
20392 Use the main loop to handle all full-width HWIs. Add a
20393 zero HWI if in_len isn't a full result.
20394 (wi::divmod_internal): Update accordingly.
20395 (wi::mul_internal): Likewise. Simplify.
20397 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
20398 Sebastian Pop <s.pop@samsung.com>
20400 * graphite-poly.c (apply_poly_transforms): Simplify.
20401 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
20402 (print_isl_map): Same.
20403 (print_isl_union_map): Same.
20404 (print_isl_schedule): New.
20405 (debug_isl_schedule): New.
20406 * graphite-dependences.c (scop_get_reads): Do not call
20407 isl_union_map_add_map that is undocumented isl functionality.
20408 (scop_get_must_writes): Same.
20409 (scop_get_may_writes): Same.
20410 (scop_get_original_schedule): Remove.
20411 (scop_get_dependences): Do not call isl_union_map_compute_flow that
20412 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
20413 (compute_deps): Remove.
20414 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
20415 (debug_schedule_ast): New.
20416 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
20417 set_separate_option.
20418 (graphite_regenerate_ast_isl): Add dump.
20419 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
20420 from scop->transformed_schedule.
20421 (graphite_regenerate_ast_isl): Add more dump.
20422 * graphite-optimize-isl.c (optimize_isl): Set
20423 scop->transformed_schedule. Check whether schedules are equal.
20424 (apply_poly_transforms): Move here.
20425 * graphite-poly.c (apply_poly_transforms): ... from here.
20426 (free_poly_bb): Static.
20427 (free_scop): Static.
20428 (pbb_number_of_iterations_at_time): Remove.
20429 (print_isl_ast): New.
20430 (debug_isl_ast): New.
20431 (debug_scop_pbb): New.
20432 * graphite-scop-detection.c (print_edge): Move.
20433 (print_sese): Move.
20434 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
20435 (build_scop_scattering): Remove.
20436 (create_pw_aff_from_tree): Assert instead of bailing out.
20437 (add_condition_to_pbb): Remove unused code, do not fail.
20438 (add_conditions_to_domain): Same.
20439 (add_conditions_to_constraints): Remove.
20440 (build_scop_context): New.
20441 (add_iter_domain_dimension): New.
20442 (build_iteration_domains): Initialize pbb->iterators.
20443 Call add_conditions_to_domain.
20446 (index_outermost_in_loop): New.
20447 (index_pbb_in_loop): New.
20448 (outermost_pbb_in): New.
20449 (add_in_sequence): New.
20450 (add_outer_projection): New.
20451 (outer_projection_mupa): New.
20452 (add_loop_schedule): New.
20453 (build_schedule_pbb): New.
20454 (build_schedule_loop): New.
20455 (embed_in_surrounding_loops): New.
20456 (build_schedule_loop_nest): New.
20457 (build_original_schedule): New.
20458 (build_poly_scop): Call build_original_schedule.
20459 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
20460 (free_poly_dr): Remove.
20461 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
20462 (free_poly_bb): Remove.
20463 (debug_loop_vec): Remove.
20464 (print_isl_ast): Declare.
20465 (debug_isl_ast): Declare.
20466 (scop_do_interchange): Remove.
20467 (scop_do_strip_mine): Remove.
20468 (scop_do_block): Remove.
20469 (flatten_all_loops): Remove.
20470 (optimize_isl): Remove.
20471 (pbb_number_of_iterations_at_time): Remove.
20472 (debug_scop_pbb): Declare.
20473 (print_schedule_ast): Declare.
20474 (debug_schedule_ast): Declare.
20475 (struct scop): Remove schedule. Add original_schedule,
20476 transformed_schedule.
20477 (free_gimple_poly_bb): Remove.
20478 (print_generated_program): Remove.
20479 (debug_generated_program): Remove.
20480 (unify_scattering_dimensions): Remove.
20481 * sese.c (print_edge): ... here.
20482 (print_sese): ... here.
20483 (debug_edge): ... here.
20484 (debug_sese): ... here.
20485 * sese.h (print_edge): Declare.
20486 (print_sese): Declare.
20487 (dump_edge): Declare.
20488 (dump_sese): Declare.
20490 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
20491 Sebastian Pop <s.pop@samsung.com>
20493 * Makefile.in: Set ISLVER in site.exp.
20495 2016-01-25 Jakub Jelinek <jakub@redhat.com>
20497 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
20498 DECL_VALUE_EXPR of new_var even for the non-array case. Look
20499 through DECL_VALUE_EXPR for expansion.
20501 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
20503 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
20504 the frame info after reload completed.
20506 2016-01-25 Jeff Law <law@redhat.com>
20508 PR tree-optimization/69196
20509 PR tree-optimization/68398
20510 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
20511 tree-ssa-threadupdate.c.
20512 (determine_bb_domination_status): Prototype
20513 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
20514 (determine_bb_domination_status): No longer static.
20515 (valid_jump_thread_path): Remove code to detect characteristics
20516 of the jump thread path not associated with correctness.
20517 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
20518 Correct test for thread path length. Count PHIs for real operands as
20519 statements that need to be copied. Do not count ASSERT_EXPRs.
20520 Look at all the blocks in the thread path. Compute and selectively
20521 filter thread paths based on threading through the latch, threading
20522 a multiway branch or crossing a multiway branch.
20524 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20526 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
20527 decl with __attribute__ ((unused)) annotation.
20529 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
20532 * tree-vect-stmts.c (vectorizable_condition): Check vectype
20533 of operands is compatible with a statement vectype.
20535 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
20537 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
20538 improve wording for mixed storage order support.
20540 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
20542 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
20543 (vcvt_u64_f64): Likewise.
20544 (vcvta_s64_f64): Likewise.
20545 (vcvta_u64_f64): Likewise.
20546 (vcvtm_s64_f64): Likewise.
20547 (vcvtm_u64_f64): Likewise.
20548 (vcvtn_s64_f64): Likewise.
20549 (vcvtn_u64_f64): Likewise.
20550 (vcvtp_s64_f64): Likewise.
20551 (vcvtp_u64_f64): Likewise.
20553 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
20555 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
20556 (arc_init): Check validity mll64 option.
20557 (arc_save_restore): Use double load/store instruction.
20558 (arc_expand_movmem): Likewise.
20559 (arc_split_move): Don't split if we have double load/store
20560 instructions. Returns a boolean.
20561 (arc_process_double_reg_moves): Change function to return boolean
20562 instead of a sequence of instructions.
20563 (arc_dwarf_register_span): New function.
20564 * config/arc/arc-protos.h (arc_split_move): Change prototype.
20565 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
20566 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
20567 (*movdf_insn): Likewise.
20568 * config/arc/arc.opt (mll64): New option.
20569 * config/arc/predicates.md (even_register_operand): New predicate.
20570 * doc/invoke.texi (ARC Options): Add mll64 documentation.
20572 2016-01-25 Richard Biener <rguenther@suse.de>
20575 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
20576 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
20578 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
20580 2016-01-25 Richard Biener <rguenther@suse.de>
20582 PR tree-optimization/69376
20583 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
20585 (VN_INFO_ANTI_RANGE_P): New inline.
20586 (VN_INFO_RANGE_TYPE): Likewise.
20587 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
20588 SSA_NAME_ANTI_RANGE_P.
20589 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
20590 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20591 Properly query VN_INFO_RANGE_TYPE.
20593 2016-01-25 Nick Clifton <nickc@redhat.com>
20596 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
20598 2016-01-23 Tom de Vries <tom@codesourcery.com>
20600 PR tree-optimization/69426
20601 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
20604 2016-01-23 Jakub Jelinek <jakub@redhat.com>
20606 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
20607 "the the" with "the" in the comments.
20608 * ipa-devirt.c (build_type_inheritance_graph,
20609 update_type_inheritance_graph): Likewise.
20610 * tree.c (build_function_type_list_1): Likewise.
20611 * cfgloopmanip.c (scale_loop_profile): Likewise.
20612 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
20613 * gimple-ssa-split-paths.c
20614 (find_block_to_duplicate_for_splitting_paths): Likewise.
20615 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
20616 * expr.c (convert_move): Likewise.
20617 * var-tracking.c (vt_stack_adjustments): Likewise.
20618 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
20619 * tree-vrp.c (test_for_singularity): Likewise.
20621 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
20622 directly instead of building a temporary tree.
20625 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
20626 remove <algorithm> include.
20628 2016-01-22 Jakub Jelinek <jakub@redhat.com>
20631 * config/i386/i386.c: Include dojump.h.
20632 (expand_small_movmem_or_setmem,
20633 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
20635 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
20636 if dynamic_check != -1.
20638 2016-01-21 Jeff Law <law@redhat.com>
20640 PR middle-end/69347
20641 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
20642 record_temporary_equivalences. Rewritten to avoid unnecessary calls
20643 into dominated_by_p.
20644 (cprop_into_successor_phis): Avoid unnecessary tests.
20646 2016-01-22 Richard Henderson <rth@redhat.com>
20649 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
20650 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
20652 2016-01-22 Michael Matz <matz@suse.de>
20654 * system.h (string, algorithm): Include only conditionally.
20655 (new): Include always under C++.
20656 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
20657 * final.c (toplevel): Ditto.
20658 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
20659 * genconditions.c (write_header): Make gencondmd.c define
20661 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
20663 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
20664 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
20666 2016-01-22 Christian Bruel <christian.bruel@st.com>
20669 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
20671 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20674 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
20675 define_insn_and_split. Ensure operands[1] and operands[0] do not
20676 get assigned the same register.
20678 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
20680 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
20682 2016-01-22 Christian Bruel <christian.bruel@st.com>
20684 * config/arm/arm-c.c (arm_pragma_target_parse):
20685 Remove warn_builtin_macro_redefined overwrite.
20687 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
20689 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
20690 flag_non_call_exceptions compatibility.
20692 2016-01-22 Jakub Jelinek <jakub@redhat.com>
20695 * dwarf2out.c (add_child_die_after): New function.
20696 (dwarf_qual_info_t): New type.
20697 (dwarf_qual_info): New variable.
20698 (qualified_die_p): New function.
20699 (modified_type_die): For -fdebug-types-section, ensure
20700 canonical order of qualifiers. Put qualified DIEs adjacent
20701 to the corresponding non-qualified type DIE and search there
20702 for existing qualified DIEs.
20704 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
20706 * doc/extend.texi (scalar_storage_order type attribute): Document
20707 restriction on type punning and aliasing, and remove future tense.
20709 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
20712 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
20715 2016-01-21 Jeff Law <law@redhat.com>
20717 PR middle-end/69347
20718 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
20719 useless call to record_temporary_equivalences.
20720 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
20721 allocate 10 slots in the bb_path vector and let it grow as needed.
20722 (fsm_find_control_statement_thread_paths): Similarly for the next_path
20725 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
20727 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
20729 * configure: Regenerate.
20731 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
20733 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
20734 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
20736 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
20738 PR middle-end/66178
20739 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
20740 drop EXPAND_INITIALIZER.
20741 * rtl.h (contains_symbolic_reference_p): Declare.
20742 * rtlanal.c (contains_symbolic_reference_p): New function.
20743 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
20744 a subtraction into a NOT if symbolic constants are involved.
20746 2016-01-21 Anton Blanchard <anton@samba.org>
20747 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20750 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
20752 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
20755 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
20757 * config/microblaze/microblaze.c
20758 (get_branch_target): New.
20759 (insert_wic_for_ilb_runout): New.
20761 (microblaze_machine_dependent_reorg): New.
20762 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
20763 * config/microblaze/microblaze.md
20764 (UNSPEC_IPREFETCH): Define.
20765 (iprefetch): New pattern
20766 * config/microblaze/microblaze.opt
20767 (mxl-prefetch): New flag.
20769 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
20771 * config/microblaze/microblaze.h
20772 (FIXED_REGISTERS): Update in macro.
20773 (CALL_USED_REGISTERS): Update in macro.
20775 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
20777 PR rtl-optimization/68920
20778 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
20781 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
20783 PR rtl-optimization/68990
20784 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
20785 pseudo instead of inheritance ones.
20787 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
20788 Nick Clifton <nickc@redhat.com>
20792 * config/mips/mips.c (mips_compute_frame_info): Initialise
20793 args_size and hard_frame_pointer_offset fields of the frame
20794 structure before calling mips_global_pointer.
20796 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
20798 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
20800 * configure: Regenerate.
20802 2016-01-21 Richard Biener <rguenther@suse.de>
20804 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
20806 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
20808 * config/s390/s390.c (s390_asm_declare_function_size): Add code
20809 to actually emit the .size directive.
20811 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
20812 Jakub Jelinek <jakub@redhat.com>
20816 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
20817 args array size by one to avoid buffer overflow.
20819 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
20821 * config/s390/s390.md (pool_section_start): Use switch_to_section
20822 to select proper read-only data section instead of hardcoding
20824 (pool_section_end): Use switch_to_section to match the above.
20826 2016-01-21 Richard Biener <rguenther@suse.de>
20828 PR tree-optimization/69378
20829 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
20830 (set_ssa_val_to): Use it for dominance checks taking into
20831 account not executable edges.
20833 2016-01-21 Jakub Jelinek <jakub@redhat.com>
20836 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
20837 for bitsize instead of GET_MODE_PRECISION (mode).
20839 2016-01-20 Martin Sebor <msebor@redhat.com>
20842 * extend.texi (__sync Builtins): Clarify the semantics of
20843 __sync_fetch_and_OP built-ins on pointers.
20844 (__atomic Builtins): Same.
20846 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20847 Sebastian Pop <s.pop@samsung.com>
20849 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
20850 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
20851 (is_valid_rename): Same.
20852 (translate_isl_ast_to_gimple::get_rename): Same.
20853 (translate_isl_ast_to_gimple::rename_all_uses): Same.
20854 (translate_isl_ast_to_gimple::rename_uses): Same.
20855 (get_new_name): Check for close_phi nodes.
20856 (copy_loop_phi_args): Use phi_node_kind.
20857 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
20858 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
20860 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20861 Sebastian Pop <s.pop@samsung.com>
20863 Revert commit r229783.
20864 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
20865 Remove use of parameter_rename_map.
20866 (copy_def): Remove.
20867 (copy_internal_parameters): Remove.
20868 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
20869 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
20870 (free_sese_info): Do not free parameter_rename_map.
20871 (set_rename): Do not use parameter_rename_map.
20872 (rename_uses): Update call to set_rename.
20873 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
20874 * sese.h (parameter_rename_map_t): Remove.
20875 (struct sese_info_t): Remove field parameter_rename_map.
20877 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20878 Sebastian Pop <s.pop@samsung.com>
20880 * graphite-isl-ast-to-gimple.c: Fix comment.
20881 * graphite-scop-detection.c (defined_in_loop_p): New.
20882 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
20883 names defined in loop.
20885 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20886 Sebastian Pop <s.pop@samsung.com>
20888 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
20889 Discard unstructured if-then-else regions.
20891 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20892 Sebastian Pop <s.pop@samsung.com>
20894 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
20895 (cleanup_loop_iter_dom): Remove.
20896 (build_loop_iteration_domains): Remove.
20897 (build_scop_context): Remove.
20898 (build_scop_iteration_domain): Remove.
20899 (add_loop_constraints): New.
20900 (build_iteration_domains): New.
20901 (build_poly_scop): Call build_iteration_domains.
20903 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20904 Sebastian Pop <s.pop@samsung.com>
20906 * graphite-scop-detection.c
20907 (scop_detection::harmful_loop_in_region): Free dom and loops.
20908 (scop_detection::loop_body_is_valid_scop): Free bbs.
20910 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20911 Sebastian Pop <s.pop@samsung.com>
20913 * graphite-scop-detection.c (record_loop_in_sese): New.
20914 (gather_bbs::before_dom_children): Call record_loop_in_sese.
20915 (build_scops): Remove call to build_sese_loop_nests.
20916 * sese.c (sese_record_loop): Remove.
20917 (build_sese_loop_nests): Remove.
20918 (new_sese_info): Remove region->loops.
20919 (free_sese_info): Same.
20920 * sese.h (sese_contains_loop): Same.
20921 (build_sese_loop_nests): Remove.
20922 (sese_contains_loop): Remove.
20924 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20925 Sebastian Pop <s.pop@samsung.com>
20927 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
20928 loop_is_valid_in_scop.
20929 (scop_detection::harmful_stmt_in_region): Renamed
20930 harmful_loop_in_region.
20931 Call loop_is_valid_in_scop.
20933 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20934 Sebastian Pop <s.pop@samsung.com>
20936 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
20939 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20940 Sebastian Pop <s.pop@samsung.com>
20942 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
20943 * graphite.h (struct poly_bb): Remove field is_reduction.
20944 (PBB_IS_REDUCTION): Remove.
20946 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20947 Sebastian Pop <s.pop@samsung.com>
20949 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
20950 (add_pdr_constraints): Same.
20951 (scop_get_reads): Same.
20952 (scop_get_must_writes): Same.
20953 (scop_get_may_writes): Same.
20954 (scop_get_original_schedule): Same.
20955 (extend_schedule): Same.
20956 (apply_schedule_on_deps): Same.
20957 (carries_deps): Same.
20958 (compute_deps): Same.
20959 (scop_get_dependences): Same.
20960 * graphite-isl-ast-to-gimple.c
20961 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
20962 * graphite-optimize-isl.c (get_schedule_for_band): Same.
20963 (get_schedule_for_band_list): Same.
20964 (get_schedule_map): Same.
20965 (apply_schedule_map_to_scop): Same.
20966 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20967 (build_loop_iteration_domains): Same.
20968 (add_condition_to_pbb): Same.
20969 (add_param_constraints): Same.
20970 (pdr_add_memory_accesses): Same.
20971 (pdr_add_data_dimensions): Same.
20973 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
20975 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
20978 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
20980 * common.opt (feliminate-dwarf2-dups): Replace references to
20981 "DWARF 2" with just "DWARF".
20982 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
20983 * doc/extend.texi: Likewise.
20984 * doc/cpp.texi: Likewise.
20985 * doc/invoke.texi: Likewise.
20986 (Option Summary): Add -gdwarf to list of Debugging Options.
20987 (Debugging Options): Document -gdwarf.
20988 * doc/contrib.texi: Spell "DWARF" like that.
20990 2016-01-21 Jakub Jelinek <jakub@redhat.com>
20992 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
20993 warning. Fix up formatting.
20995 PR middle-end/67653
20996 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
20997 attempt to mark memory input operand addressable and
20998 call prepare_gimple_addressable in that case. Don't adjust
20999 input_location for diagnostics, use error_at instead.
21001 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
21003 * config/rs6000/ppc-auxv.h: New file.
21004 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
21005 (cpu_is): Likewise.
21006 (cpu_supports): Likewise.
21007 * config/rs6000/rs6000.c: include "ppc-auxv.h".
21008 (cpu_is_info): New variable.
21009 (cpu_supports_info): Likewise.
21010 (tcb_verification_symbol): Likewise.
21011 (cpu_builtin_p): Likewise.
21012 (cpu_expand_builtin): New function.
21013 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
21014 (rs6000_init_builtins): Likewise.
21015 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
21016 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
21017 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
21018 * configure: Regenerate.
21019 * config.in: Likewise.
21020 * doc/extend.texi (PowerPC Built-in Functions): Document
21021 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
21023 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
21026 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
21028 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
21031 2016-01-20 Richard Henderson <rth@redhat.com>
21037 * tree.c (tm_define_builtin): New.
21038 (find_tm_vector_type): New.
21039 (build_tm_vector_builtins): New.
21040 (build_common_builtin_nodes): Call it.
21042 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
21044 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
21045 (arm_fp_ok): Likewise.
21046 (arm_fp): Likewise.
21047 (arm_crypto): Likewise.
21049 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
21050 Richard Biener <rguenther@suse.de>
21052 PR tree-optimization/69328
21053 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
21054 vectors have same number of elements.
21055 (vectorizable_condition): Fix masked version recognition.
21057 2016-01-20 Richard Biener <rguenther@suse.de>
21059 PR tree-optimization/69345
21060 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
21061 (VN_INFO_PTR_INFO): Likewise.
21062 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
21063 info when it is equal between non-dominating SSA names.
21064 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
21065 Make sure to look at original SSA infos.
21067 2016-01-20 Jeff Law <law@redhat.com>
21070 * config/m68k/predicates.md (pow2_m1_operand): New predicate
21072 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
21073 (pc_or_label_operand): New predicate.
21074 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
21075 tests for small integers that are 2^n - 1.
21077 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
21079 * doc/invoke.texi (Options Summary): Add '.' after @xref.
21081 2016-01-19 Jeff Law <law@redhat.com>
21083 PR middle-end/69347
21084 * tree-ssa-threadbackwards.c
21085 (fsm_find_control_statement_thread_paths): Do not try to lookup
21086 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
21088 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
21090 * doc/lto.texi: Remove text that says only Gold has linker plugin
21093 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
21095 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
21096 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
21097 the DIE accordingly.
21098 (modified_type_die): Add REVERSE parameter and pass it recursively,
21099 as well as to base_type_die. Adjust presence check accordingly.
21100 (base_type_for_mode): Adjust call to modified_type_die.
21101 (add_type_attribute): Add REVERSE parameter and pass it to
21103 (generic_parameter_die): Adjust call to add_type_attribute.
21104 (add_scalar_info): Likewise.
21105 (add_subscript_info): Likewise.
21106 (gen_array_type_die): Likewise.
21107 (gen_descr_array_type_die): Likewise.
21108 (gen_entry_point_die): Likewise.
21109 (gen_enumeration_type_die): Likewise.
21110 (gen_formal_parameter_die): Likewise.
21111 (gen_subprogram_die): Likewise.
21112 (gen_variable_die ): Likewise.
21113 (gen_const_die): Likewise.
21114 (gen_field_die): Likewise.
21115 (gen_pointer_type_die): Likewise.
21116 (gen_reference_type_die): Likewise.
21117 (gen_ptr_to_mbr_type_die): Likewise.
21118 (gen_inheritance_die): Likewise.
21119 (gen_subroutine_type_die): Likewise.
21120 (gen_typedef_die): Likewise.
21121 (force_type_die): Adjust call to modified_type_die.
21123 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
21125 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
21126 flow throughout the file. Fix broken link to Objective-C 2.0
21128 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
21131 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21133 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
21135 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21138 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
21139 (maybe_record_node): Record cxa_pure_virtual as the only possible
21140 target if there are not ohter candidates.
21141 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
21143 2016-01-19 Richard Biener <rguenther@suse.de>
21145 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
21146 (get_memory_order): Likewise.
21148 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
21150 * tree-vect-stmts.c (vectorizable_store): Check
21153 2016-01-19 David Malcolm <dmalcolm@redhat.com>
21156 * gcc.c (driver::decode_argv): Add call to
21157 init_opts_obstack before init_options_struct.
21158 * opts.c (init_opts_obstack): Remove idempotency.
21159 (init_options_struct): Replace call to init_opts_obstack
21160 with a gcc_assert to verify that it has already been called.
21161 * toplev.c (toplev::main): Add call to init_opts_obstack before
21162 calls to init_options_struct.
21163 (toplev::finalize): Move cleanup of opts_obstack next to
21164 cleanup of save_decoded_options, clearing the latter, and
21165 save_decoded_options_count.
21167 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21170 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
21171 attribute to unconditional. Remove %? from output template.
21173 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21174 Jiong Wang <jiong.wang@arm.com>
21176 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
21177 generated from different expand order.
21179 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21181 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
21182 Add support for CCMP costing.
21184 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21186 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
21187 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
21188 (fccmpe<mode>): Likewise.
21189 (fcmp): Rename to fcmp and globalize pattern.
21191 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
21192 (aarch64_gen_ccmp_next): Add FP support.
21194 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21196 * target.def (gen_ccmp_first): Update documentation.
21197 (gen_ccmp_next): Likewise.
21198 * doc/tm.texi (gen_ccmp_first): Update documentation.
21199 (gen_ccmp_next): Likewise.
21200 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
21201 expand_ccmp_expr_1. Improve comments.
21202 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
21203 (ccmp_ior<mode>): Remove pattern.
21204 (cmp<mode>): Remove expand.
21205 (cmp): Globalize pattern.
21206 (cstorecc4): Use cc_register.
21207 (mov<mode>cc): Remove ccmp_cc_register check.
21208 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
21209 Simplify after removal of CC_DNE/* modes.
21210 (aarch64_ccmp_mode_to_code): Remove.
21211 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
21212 In 'k' case use integer as condition.
21213 (aarch64_nzcv_codes): Remove inverted cases.
21214 (aarch64_code_to_ccmode): Remove.
21215 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
21216 comparison with CC register to be used in folowing CCMP/branch/CSEL.
21217 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
21218 pattern. Return the comparison with CC register. Invert conditions
21219 when bitcode is OR.
21220 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
21221 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
21223 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21225 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
21226 instrumented_version.
21228 2016-01-19 Richard Biener <rguenther@suse.de>
21230 PR tree-optimization/69336
21231 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
21232 handled components with get_ref_base_and_extent.
21233 (equal_mem_array_ref_p): Adjust.
21235 2016-01-19 Jakub Jelinek <jakub@redhat.com>
21238 * shrink-wrap.c: Include valtrack.h.
21239 (move_insn_for_shrink_wrap): Add DEBUG argument. If
21240 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
21241 in between insn and where it will be moved to. Call
21242 dead_debug_insert_temp.
21243 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
21244 first and dead_debug_local_finish at the end.
21245 For uses and defs bitmap, handle all regs in between REGNO and
21246 END_REGNO, not just the first one.
21248 2016-01-19 Richard Biener <rguenther@suse.de>
21250 PR tree-optimization/69352
21251 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
21252 (equal_mem_array_ref_p): Constrain size and max size properly.
21253 Compare the reverse flag.
21255 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
21257 * ira.c (ira): Update regstat data if we deleted insns.
21259 2016-01-19 Jakub Jelinek <jakub@redhat.com>
21261 PR rtl-optimization/68955
21262 PR rtl-optimization/64557
21263 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
21264 here. Fix up formatting.
21265 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
21267 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21270 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
21271 assume that the node has body.
21272 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
21275 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21277 * lto-streamer-out.c (lto_output): Do not stream instrumentation
21280 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21282 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
21283 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
21285 2016-01-19 Martin Jambor <mjambor@suse.cz>
21286 Martin Liska <mliska@suse.cz>
21287 Michael Matz <matz@suse.de>
21289 * Makefile.in (OBJS): Add new source files.
21290 (GTFILES): Add hsa.c.
21291 * common.opt (disable_hsa): New variable.
21292 (-Whsa): New warning.
21293 * config.in (ENABLE_HSA): New.
21294 * configure.ac: Treat hsa differently from other accelerators.
21295 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
21296 $enable_offloading.
21297 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
21298 * doc/install.texi (Configuration): Document --with-hsa-runtime,
21299 --with-hsa-runtime-include, --with-hsa-runtime-lib and
21300 --with-hsa-kmt-lib.
21301 * doc/invoke.texi (-Whsa): Document.
21302 (hsa-gen-debug-stores): Likewise.
21303 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
21304 to invoke offload compiler for hsa acclerator.
21305 * opts.c (common_handle_option): Determine whether HSA offloading
21306 should be performed.
21307 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
21308 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
21309 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
21310 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
21311 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
21312 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
21313 GF_OMP_FOR_KIND_GRID_LOOP.
21314 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
21315 (pp_gimple_stmt_1): Likewise.
21316 * gimple-walk.c (walk_gimple_stmt): Likewise.
21317 * gimple.c (gimple_build_omp_grid_body): New function.
21318 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
21319 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
21320 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
21321 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
21322 GF_OMP_TEAMS_GRID_PHONY.
21323 (gimple_statement_omp_single_layout): Updated comments.
21324 (gimple_build_omp_grid_body): New function.
21325 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
21326 (gimple_omp_for_grid_phony): New function.
21327 (gimple_omp_for_set_grid_phony): Likewise.
21328 (gimple_omp_parallel_grid_phony): Likewise.
21329 (gimple_omp_parallel_set_grid_phony): Likewise.
21330 (gimple_omp_teams_grid_phony): Likewise.
21331 (gimple_omp_teams_set_grid_phony): Likewise.
21332 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
21333 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
21334 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
21335 (BUILT_IN_GOMP_TARGET): Updated type.
21336 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
21337 (adjust_for_condition): New function.
21338 (get_omp_for_step_from_incr): Likewise.
21339 (extract_omp_for_data): Moved parts to adjust_for_condition and
21340 get_omp_for_step_from_incr.
21341 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
21342 (fixup_child_record_type): Bail out if receiver_decl is NULL.
21343 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
21344 (scan_omp_parallel): Do not create child functions for phony
21346 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
21347 (scan_omp_1_op): Checking assert we are not remapping to
21348 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
21349 (parallel_needs_hsa_kernel_p): New function.
21350 (expand_parallel_call): Register apprpriate parallel child
21351 functions as HSA kernels.
21352 (grid_launch_attributes_trees): New type.
21353 (grid_attr_trees): New variable.
21354 (grid_create_kernel_launch_attr_types): New function.
21355 (grid_insert_store_range_dim): Likewise.
21356 (grid_get_kernel_launch_attributes): Likewise.
21357 (get_target_argument_identifier_1): Likewise.
21358 (get_target_argument_identifier): Likewise.
21359 (get_target_argument_value): Likewise.
21360 (push_target_argument_according_to_value): Likewise.
21361 (get_target_arguments): Likewise.
21362 (expand_omp_target): Call get_target_arguments instead of looking
21363 up for teams and thread limit.
21364 (grid_expand_omp_for_loop): New function.
21365 (grid_arg_decl_map): New type.
21366 (grid_remap_kernel_arg_accesses): New function.
21367 (grid_expand_target_kernel_body): New function.
21368 (expand_omp): Call it.
21369 (lower_omp_for): Do not emit phony constructs.
21370 (lower_omp_taskreg): Do not emit phony constructs but create for them
21371 a temporary variable receiver_decl.
21372 (lower_omp_taskreg): Do not emit phony constructs.
21373 (lower_omp_teams): Likewise.
21374 (lower_omp_grid_body): New function.
21375 (lower_omp_1): Call it.
21376 (grid_reg_assignment_to_local_var_p): New function.
21377 (grid_seq_only_contains_local_assignments): Likewise.
21378 (grid_find_single_omp_among_assignments_1): Likewise.
21379 (grid_find_single_omp_among_assignments): Likewise.
21380 (grid_find_ungridifiable_statement): Likewise.
21381 (grid_target_follows_gridifiable_pattern): Likewise.
21382 (grid_remap_prebody_decls): Likewise.
21383 (grid_copy_leading_local_assignments): Likewise.
21384 (grid_process_kernel_body_copy): Likewise.
21385 (grid_attempt_target_gridification): Likewise.
21386 (grid_gridify_all_targets_stmt): Likewise.
21387 (grid_gridify_all_targets): Likewise.
21388 (execute_lower_omp): Call grid_gridify_all_targets.
21389 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
21390 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
21391 (tree_omp_clause): Added union field dimension.
21392 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
21393 * tree.c (omp_clause_num_ops): Added number of arguments of
21394 OMP_CLAUSE__GRIDDIM_.
21395 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
21396 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
21397 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
21398 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
21399 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
21400 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
21401 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
21402 * tree-pass.h (make_pass_gen_hsail): Declare.
21403 (make_pass_ipa_hsa): Likewise.
21404 * ipa-hsa.c: New file.
21405 * lto-section-in.c (lto_section_name): Add hsa section name.
21406 * lto-streamer.h (lto_section_type): Add hsa section.
21407 * timevar.def (TV_IPA_HSA): New.
21408 * hsa-brig-format.h: New file.
21409 * hsa-brig.c: New file.
21410 * hsa-dump.c: Likewise.
21411 * hsa-gen.c: Likewise.
21414 * toplev.c (compile_file): Call hsa_output_brig.
21415 * hsa-regalloc.c: New file.
21417 2016-01-18 Jeff Law <law@redhat.com>
21419 PR tree-optimization/69320
21420 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
21421 ranged object, do nothing if the RHS constant is not [0..1].
21422 (optimize_stmt): Comparing a boolean ranged object against a
21423 constant outside [0..1] results in a compile-time constant.
21425 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
21428 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
21430 * doc/invoke.texi (Invoking GCC): Add new section to menu.
21431 (Option Summary): Update to reflect new section and moved options.
21432 (C++ Dialect Options): Move -fstats to new section.
21433 (Debugging Options): Move all dump, statistics, and other GCC
21434 developer options to new section. Rewrite section introduction
21435 and re-order remaining options to put the more basic ones first.
21436 (Optimization Options): Move -fira-verbose and -flto-report* to
21438 (Developer Options): New section incorporating moved options.
21439 * doc/cppopts.texi (-dM): Update cross-reference.
21441 2016-01-18 Richard Henderson <rth@redhat.com>
21444 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
21445 operands to pseudo only if CSE is expected. Split long immediate
21446 operands only after reload, and for the stack pointer.
21447 (*add<GPI>3_pluslong): Remove.
21448 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
21449 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
21450 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
21451 (*add<GPI>3 peepholes): New.
21452 (*add<GPI>3 splitters): New.
21453 * config/aarch64/constraints.md (Upl): New.
21454 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
21456 2016-01-18 Richard Biener <rguenther@suse.de>
21458 PR tree-optimization/69297
21459 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
21461 (vect_bb_vectorization_profitable_p): Clear visited flag again.
21463 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
21465 PR middle-end/68542
21466 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
21467 of mixind vector and scalar types.
21468 (fold_relational_const): Add handling of vector
21469 comparison with boolean result.
21470 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
21471 comparison of vector operands with boolean result for EQ/NE only.
21472 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
21473 (verify_gimple_cond): Likewise.
21474 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
21477 2016-01-18 Joseph Myers <joseph@codesourcery.com>
21479 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
21482 2016-01-18 Richard Biener <rguenther@suse.de>
21484 PR middle-end/69308
21485 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
21487 2016-01-18 Tom de Vries <tom@codesourcery.com>
21489 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
21491 2016-01-18 Tom de Vries <tom@codesourcery.com>
21493 * omp-low.c (set_oacc_fn_attrib): Make extern.
21494 * omp-low.h (set_oacc_fn_attrib): Declare.
21495 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
21496 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
21497 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
21498 Add and handle function parameter oacc_kernels_p.
21499 (find_reduc_addr, get_omp_data_i_param): New function.
21500 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
21501 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
21502 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
21503 Calculate dominance info. Skip loops that are not in a kernels region
21504 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
21505 (pass_parallelize_loops::execute): Call parallelize_loops with
21506 oacc_kernels_p argument.
21507 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
21508 New member function.
21509 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
21510 * passes.def: Add argument to pass_parallelize_loops instantation.
21512 2016-01-18 Tom de Vries <tom@codesourcery.com>
21514 * tree-parloops.c (pass_parallelize_loops::execute): Allow
21515 pass_parallelize_loops to be run outside the loop pipeline.
21517 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
21519 * tree-scalar-evolution.c (follow_copies_to_constant): New.
21520 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
21522 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
21525 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
21526 using get_ref_base_and_extent.
21527 (equal_mem_array_ref_p): New.
21528 (hashable_expr_equal_p): Add call to previous.
21530 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
21533 * tree-sra.c (disqualified_constants, constant_decl_p): New.
21534 (sra_initialize): Allocate disqualified_constants.
21535 (sra_deinitialize): Free disqualified_constants.
21536 (disqualify_candidate): Update disqualified_constants when appropriate.
21537 (create_access): Scan for constant-pool entries as we go along.
21538 (scalarizable_type_p): Add check against type_contains_placeholder_p.
21539 (maybe_add_sra_candidate): Allow constant-pool entries.
21540 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
21541 (initialize_constant_pool_replacements): New.
21542 (sra_modify_assign): Avoid mangling assignments created by previous,
21543 and don't generate writes into constant pool.
21544 (sra_modify_function_body): Call initialize_constant_pool_replacements.
21546 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
21548 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
21549 andnot instruction.
21550 (scalar_chain::convert_op): Likewise.
21551 * config/i386/i386.md (*andndi3_doubleword): New.
21553 2016-01-18 Richard Biener <rguenther@suse.de>
21555 PR tree-optimization/69170
21556 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
21557 building a vector from scalar results of a pattern stmt.
21559 2016-01-18 Jakub Jelinek <jakub@redhat.com>
21561 * haifa-sched.c (autopref_multipass_init): Work around
21562 -Wmaybe-uninitialized warning.
21564 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
21566 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
21567 against the constant 0.
21569 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21571 PR tree-optimization/68799
21572 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
21573 look up phi candidates in the statement-candidate map.
21574 (phi_add_costs): Likewise.
21575 (record_phi_increments): Likewise.
21576 (phi_incr_cost): Likewise.
21577 (ncd_with_phi): Likewise.
21578 (all_phi_incrs_profitable): Likewise.
21580 2016-01-17 Jakub Jelinek <jakub@redhat.com>
21582 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
21583 -Wmaybe-uninitialized warning.
21585 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
21587 * doc/invoke.texi (Invoking GCC): Add new section to menu.
21588 (Option Summary): Update to reflect new section and moved options.
21589 (C++ Dialect Options): Move -fvtable-verify and related options.
21590 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
21591 and profiling-related options.
21592 (Optimization Options): Move profile generation options and
21593 -fstack-protector and related options.
21594 (Instrumentation Options): New section incorporating moved options.
21595 (Code Generation Options): Move -finstrument-functions and
21596 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
21598 2016-01-16 Tom de Vries <tom@codesourcery.com>
21600 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
21602 2016-01-16 Tom de Vries <tom@codesourcery.com>
21604 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
21606 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
21608 * hash-table.h (hash_table::empty): Turn into an inline wrapper
21609 that checks whether the table is already empty. Rename the
21610 original implementation to...
21611 (hash_table::empty_slot): ...this new private function.
21613 2016-01-15 David Malcolm <dmalcolm@redhat.com>
21615 PR diagnostic/68899
21616 * diagnostic-show-locus.c (layout::print_source_line): Move x
21617 offset of line until after call to
21618 get_line_width_without_trailing_whitespace.
21620 2016-01-15 Jeff Law <law@redhat.com>
21622 PR tree-optimization/69270
21623 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
21624 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
21625 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
21626 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
21627 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
21628 ssa_name_has_boolean_range and constant_boolean_node.
21630 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
21632 PR rtl-optimization/69030
21633 * lra-spills.c (remove_pseudos): Check nrefs and make the function
21635 (spill_pseudos): Delete debug insn for dead pseudo.
21636 (lra_spill): Initiate spill_hard_reg and slots memory separately.
21638 2016-01-15 Jiong Wang <jiong.wang@arm.com>
21640 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
21642 (TYPES_UNOPUS): Likewise.
21643 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
21644 builtin type, from UNOP to UNOPUS.
21645 (lbtruncuv4sf): Likewise.
21646 (lbtruncuv2df): Likewise.
21647 (lrounduv2sf): Likewise.
21648 (lrounduv4sf): Likewise.
21649 (lrounduv2df): Likewise.
21650 (lroundusf): Likewise.
21651 (lroundusf): Likewise.
21652 (lceiluv2sf): Likewise.
21653 (lceiluv4sf): Likewise.
21654 (lceiluv2df): Likewise.
21655 (lceilusf): Likewise.
21656 (lceiludf): Likewise.
21657 (lflooruv2sf): Likewise.
21658 (lflooruv4sf): Likewise.
21659 (lflooruv2df): Likewise.
21660 (lfloorusf): Likewise.
21661 (lfloorudf): Likewise.
21662 (lfrintnuv2sf): Likewise.
21663 (lfrintnuv4sf): Likewise.
21664 (lfrintnuv2df): Likewise.
21665 (lfrintnusf): Likewise.
21666 (lfrintnudf): Likewise.
21667 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
21669 (vcvtq_u32_f32): Likewise.
21670 (vcvtq_u64_f64): Likewise.
21671 (vcvta_u32_f32): Likewise.
21672 (vcvtaq_u32_f32): Likewise.
21673 (vcvtaq_u64_f64): Likewise.
21674 (vcvtm_u32_f32): Likewise.
21675 (vcvtmq_u32_f32): Likewise.
21676 (vcvtmq_u64_f64): Likewise.
21677 (vcvtn_u32_f32): Likwise.
21678 (vcvtnq_u32_f32): Likewise.
21679 (vcvtnq_u64_f64): Likewise.
21680 (vcvtp_u32_f32): Likewise.
21681 (vcvtpq_u32_f32): Likewise.
21682 (vcvtpq_u64_f64): Likewise.
21683 (vcvtmd_u64_f64): Likewise.
21684 (vcvtms_u32_f32): Likewise.
21685 (vcvtad_u64_f64): Likewise.
21686 (vcvtas_u32_f32): Likewise.
21687 (vcvtnd_u64_f64): Likewise.
21688 (vcvtns_u32_f32): Likewise.
21689 (vcvtpd_u64_f64): Likewise.
21690 (vcvtps_u32_f32): Likewise.
21692 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21694 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
21695 CSEL of zero_extended registers.
21697 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21699 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
21700 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
21702 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21704 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
21705 false when argument string is not found in the attributes table
21708 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
21711 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
21712 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
21713 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
21714 precision estimate.
21716 2016-01-15 Richard Biener <rguenther@suse.de>
21718 PR tree-optimization/66856
21719 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
21720 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
21721 (vect_create_new_slp_node): Increment stmt reference count.
21722 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
21723 an SLP tree before swapping operands.
21724 (vect_build_slp_tree): Likewise.
21725 (destroy_bb_vec_info): Free stmt info after SLP instances.
21726 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
21727 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
21728 (STMT_VINFO_NUM_SLP_USES): New macro.
21730 2016-01-15 Richard Biener <rguenther@suse.de>
21733 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
21734 (add_linkage_name): ... here.
21735 (gen_typedef_die): Use add_linkage_name_raw instead of
21736 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
21739 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
21741 * gimplify.c (oacc_default_clause): Decode reference and pointer
21742 types for both kernels and parallel regions.
21744 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
21746 PR middle-end/69246
21747 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
21749 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
21751 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
21752 (convert_scalars_to_vector): Likewise.
21754 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
21756 * doc/extend.texi (Type Traits): Fix grammar.
21758 2016-01-15 Martin Jambor <mjambor@suse.cz>
21760 * tree-inline.c (remap_decl): Use existing dclarations if
21761 remapping a type and prevent_decl_creation_for_types.
21762 (replace_locals_stmt): Do an initial remapping of non-VLA typed
21763 decls first. Do real remapping with
21764 prevent_decl_creation_for_types set.
21765 * tree-inline.h (copy_body_data): New field
21766 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
21769 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
21771 * config/s390/s390.opt (mmvcle): More verbose help text.
21773 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
21775 * config/s390/s390.opt: Add period to -mzvector option text.
21777 2016-01-15 Richard Biener <rguenther@suse.de>
21779 PR tree-optimization/68961
21780 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
21781 of invariants in stores again.
21783 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
21785 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
21787 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
21789 * config/i386/i386.c (ix86_expand_branch): Don't split
21790 DI mode xor instruction to SI mode.
21792 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
21795 * ipa-icf.c (sem_function::merge): Virtual functions may become
21796 reachable even if they address is not taken and there are no
21799 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
21801 * lto-streamer-out.c (subtract_estimated_size): New function.
21802 (get_symbol_initial_value): Use it.
21804 2016-01-15 Christian Bruel <christian.bruel@st.com>
21807 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
21808 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
21809 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
21810 use add_builtin_function_ext_scope instead of add_builtin_function.
21811 (neon_set_p, neon_crypto_set_p): Remove.
21812 (arm_init_builtins): Always call arm_init_neon_builtins and
21813 arm_init_crypto_builtins.
21814 (arm_expand_builtin): Check that builtins are allowed for the arch.
21815 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
21816 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
21817 arm_init_neon_builtins call.
21819 2016-01-15 Richard Biener <rguenther@suse.de>
21821 PR tree-optimization/69117
21822 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
21823 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
21824 of the leader conservatively.
21825 (free_scc_vn): Restore original SSA name infos.
21827 2016-01-14 Jeff Law <law@redhat.com>
21829 PR tree-optimization/69270
21830 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
21831 single bit of precision, verify it's also unsigned.
21832 (record_edge_info): Use constant_boolean_node rather than fold_convert
21833 to convert boolean_true/boolean_false to the right type.
21835 2016-01-14 Richard Henderson <rth@redhat.com>
21838 * loop-doloop.c (record_reg_sets): New.
21839 (doloop_optimize): Reject the transform if the sequence
21840 clobbers registers live at the end of the loop block.
21841 (doloop_optimize_loops): Enable df_live if needed.
21843 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
21845 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
21846 * config/rs6000/rs6000.c: Likewise.
21847 * config/rs6000/rs6000.h: Likewise.
21848 * config/rs6000/rs6000.md: Likewise.
21849 * doc/extend.texi: Likewsie.
21851 2016-01-14 Jeff Law <law@redhat.com>
21853 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
21856 2016-01-14 Richard Henderson <rth@redhat.com>
21860 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
21861 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
21862 instead of builtin_decl_declared_p to test for declaration.
21864 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
21866 * doc/loop.texi (Loop Analysis and Representation): Document
21867 loop_depth function.
21869 2016-01-14 Tom de Vries <tom@codesourcery.com>
21871 PR tree-optimization/68773
21872 * omp-low.c (expand_omp_target): Don't set force_output.
21873 * varpool.c (varpool_node::get_create): Same.
21874 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
21875 offload_funcs with force_output.
21877 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21880 * lra-eliminations.c (move_plus_up): Don't change anything if either
21881 the outer or inner subreg mode is not MODE_INT.
21882 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
21883 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
21885 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
21887 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
21888 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
21889 reduc_uplus_@var{m}): Remove.
21890 * expr.c (expand_expr_real_2): Remove expansion path for
21891 reduc_[us](min|max|plus) optabs.
21892 * optabs-tree.c (scalar_reduc_to_vector): Remove.
21893 * optabs-tree.h (scalar_reduc_to_vector): Remove.
21894 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
21895 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
21896 * tree-vect-loop.c (vectorizable_reduction): Remove test for
21897 reduc_[us](min|max|plus) optabs.
21899 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
21901 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
21902 (reduc_plus_scal_v2sf): New.
21903 (reduc_smax_v2sf): Rename to...
21904 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
21905 (reduc_smin_v2sf): Rename to...
21906 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
21908 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
21910 * alias.c (compare_base_symbol_refs): New function.
21911 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
21914 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21916 PR middle-end/68146
21917 PR tree-optimization/69155
21918 * tree-complex.c: Include cfganal.h.
21919 (phis_to_revisit): New variable.
21920 (extract_component): Add phiarg_p argument. Assert that returned
21921 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
21922 (update_phi_components): Partly rewrite to use loop over real/imag
21923 components instead of code duplication. If extract_component returns
21924 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
21925 create_tmp_reg into the PHI node instead, and mention the phi triplet
21926 in phis_to_revisit.
21927 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
21928 in phis_to_revisit at the end.
21930 2016-01-14 Richard Biener <rguenther@suse.de>
21932 PR tree-optimization/68060
21933 * tree-vect-loop.c (vect_is_simple_reduction): Check the
21934 outer loop reduction is only used in the inner loop before
21935 detecting a double reduction.
21937 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21940 * combine.c (expand_field_assignment): Punt if compute_mode is
21941 unsupported scalar mode.
21943 2016-01-14 Richard Biener <rguenther@suse.de>
21945 PR tree-optimization/66856
21946 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
21947 SLP node only if it built successfully.
21948 (vect_analyze_slp_instance): Adjust.
21950 2016-01-14 Jeff Law <law@redhat.com>
21952 PR tree-optimization/69270
21953 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
21954 (record_edge_info): Use it. Convert boolean_{true,false}_node
21955 to the type of op0.
21957 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
21960 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
21961 use block_ultimate_origin
21962 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
21964 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
21966 * doc/invoke.texi (Submodel Options): Rename section to
21967 "Machine-Dependent Options" to better reflect its content.
21968 Rewrite introductory text to remove archaic CPU names.
21971 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
21973 * doc/invoke.texi (Code Gen Options): Move section up in file,
21974 before target-specific options. Update menu and option summary
21975 to reflect the new section ordering.
21977 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
21979 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
21980 (C++ Dialect Options): Add cross-reference to -std option.
21981 * doc/standards.texi (C++ Language): Document C++14 support.
21983 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
21985 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
21986 for pack/unpack functions for __ibm128.
21987 (PACK_IF): Likewise.
21988 (UNPACK_IF): Likewise.
21990 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21991 support for __ibm128 pack/unpack functions.
21992 (rs6000_invalid_builtin): Likewise.
21993 (rs6000_init_builtins): Likewise.
21994 (rs6000_opt_masks): Likewise.
21996 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
21997 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
21999 (RS6000_BTM_COMMON): Likewise.
22001 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
22002 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
22003 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
22004 128-bit floating point. Add support for the double values to be
22005 in Altivec registers for TF/IF packing and unpacking, but restrict
22006 TD packing sub-fields to be FPR registers. Don't allow overlapped
22007 register support for packing. Allow pack inputs to be memory
22008 locations. Don't build generator functions for unpack<mode>_dm
22009 and unpack<mode>_nodm.
22010 (unpack<mode>_dm): Likewise.
22011 (unpack<mode>_nodm): Likewise.
22012 (pack<mode>): Likewise.
22014 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
22015 built-in functions to pack/unpack explicit __ibm128 values.
22016 (__builtin_unpack_ibm128): Likewise.
22018 * doc/extend.texi (PowerPC Built-in Functions): Document
22019 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
22021 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
22024 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
22025 Add new arg loc and pass it down as context.
22026 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
22027 to the location to use for the warning.
22028 (check_function_arguments): New arg loc. All callers changed. Pass
22029 it to check_function_nonnull.
22030 * c-common.h (check_function_arguments): Adjust declaration.
22032 2016-01-13 Jakub Jelinek <jakub@redhat.com>
22034 PR tree-optimization/69156
22035 * gimple.c (validate_type): Removed.
22036 (gimple_builtin_call_types_compatible_p): Use
22037 useless_type_conversion_p instead of validate_type.
22038 * value-prof.c (gimple_stringop_fixed_value): Fold
22039 icall_size to correct type.
22041 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
22043 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
22046 2016-01-13 Richard Henderson <rth@redhat.com>
22049 * target.def (builtin_tm_load, builtin_tm_store): Remove.
22050 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
22051 (ix86_builtin_tm_store): Remove.
22052 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
22053 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
22054 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
22055 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
22056 * doc/tm.texi: Rebuild.
22058 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
22059 (BUILT_IN_TM_MEMCPY_RTWN): New.
22060 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
22061 fallback from vector to integer helpers.
22062 (build_tm_load): Handle vector types directly, instead of
22064 (build_tm_store): Likewise.
22065 (expand_assign_tm): Prepare for register types not handled by
22066 the above. Copy them to memory and use memcpy.
22067 * tree.c (tm_define_builtin): New.
22068 (find_tm_vector_type): New.
22069 (build_tm_vector_builtins): New.
22070 (build_common_builtin_nodes): Call it.
22072 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
22074 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
22075 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
22077 2016-01-13 Tom de Vries <tom@codesourcery.com>
22079 PR tree-optimization/69169
22080 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
22081 handled_struct_type param.
22082 (create_variable_info_for, intra_create_variable_infos): Call
22083 create_variable_info_for_1 with extra arg.
22085 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
22087 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
22088 and "armv8.1-a+crc" entries.
22090 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
22093 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
22094 Change first operand predicate from register_or_constm1_operand
22095 to register_operand.
22096 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
22097 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
22098 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
22099 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
22100 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
22101 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
22102 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
22103 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
22104 comparison with constm1_rtx from vec_prefetch_gen part.
22106 2016-01-13 Richard Biener <rguenther@suse.de>
22108 PR tree-optimization/69013
22109 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
22110 Exchange assert for a test.
22112 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
22115 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
22117 2016-01-13 Richard Biener <rguenther@suse.de>
22119 PR tree-optimization/69242
22120 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
22121 assert with a check.
22123 2016-01-13 Richard Biener <rguenther@suse.de>
22125 PR tree-optimization/69186
22126 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
22127 Properly guard vect_update_misalignment_for_peel call.
22129 2016-01-12 Jeff Law <law@redhat.com>
22131 PR tree-optimization/pr67755
22132 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
22133 "need_profile_correction".
22134 (thread_block_1): Initialize new field to false by default. If we
22135 have multiple thread paths through a common joiner to different
22136 final targets, then set new field to true.
22137 (compute_path_counts): Only do count adjustment when it's really
22140 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
22142 * doc/invoke.texi (Spec Files): Move section down in file, past
22143 all command-line option descriptions.
22145 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22147 PR middle-end/54809
22148 * doc/gty.texi: Remove documentation of mark_hook.
22149 * gengtype.c (struct write_types_data): Remove code to support
22150 mark_hook attribute.
22151 (walk_type): Likewise.
22152 (write_func_for_structure): Likewise.
22154 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
22156 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
22157 Directory Options, and -specs= to Overall Options.
22158 (Overall Options): Adjust similarly. Reorder to group related
22159 options together. Make -specs= cross-reference the spec file details.
22160 (Directory Options): Adjust similarly.
22162 2016-01-12 Jeff Law <law@redhat.com>
22164 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
22166 2016-01-12 Olivier Hainque <hainque@adacore.com>
22168 * gcc.c (spec_undefvar_allowed): New global.
22169 (process_command): Set to true when running for --version or --help,
22171 (getenv_spec_function): When the variable is not defined, use the
22172 variable name as the variable value if we're allowed not to issue
22175 2016-01-12 Bin Cheng <bin.cheng@arm.com>
22177 PR tree-optimization/68911
22178 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
22179 information computed for expression "init + nit * step".
22181 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
22183 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
22184 about name of GCC executable. Remove deleted node from menu.
22185 (Directory Options) <-B>: Remove cross-reference to deleted node.
22186 (Target Options): Delete section.
22188 2016-01-12 Christian Bruel <christian.bruel@st.com>
22191 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
22192 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
22194 2016-01-12 Jakub Jelinek <jakub@redhat.com>
22197 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
22198 aligned_mem is properly set for AVX512-VL floating point masked
22202 * ifcvt.c (cond_exec_process_if_block): When removing the last
22203 insn from then_bb, remove also any possible barriers that follow it.
22205 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
22209 * config/i386/iamcu.h (SIZE_TYPE): New macro.
22210 (PTRDIFF_TYPE): Likewise.
22211 (WCHAR_TYPE): Likewise.
22212 (WCHAR_TYPE_SIZE): Likewise.
22213 (STDINT_LONG32): Likewise.
22215 2016-01-12 Richard Biener <rguenther@suse.de>
22217 PR tree-optimization/69053
22218 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
22219 convert initial value for cond reductions.
22221 2016-01-12 Richard Biener <rguenther@suse.de>
22223 PR tree-optimization/69007
22224 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
22225 widen_sum after dot_prod and sad.
22227 2016-01-12 Richard Biener <rguenther@suse.de>
22229 PR tree-optimization/69168
22230 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
22231 pattern stmt SLP type.
22232 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
22233 end up unused so cope with that case.
22235 2016-01-12 Richard Biener <rguenther@suse.de>
22237 PR tree-optimization/69157
22238 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
22239 stmts def type only during analyze phase.
22240 (vectorizable_call): Likewise.
22241 (vectorizable_simd_clone_call): Likewise.
22242 (vectorizable_conversion): Likewise.
22243 (vectorizable_assignment): Likewise.
22244 (vectorizable_shift): Likewise.
22245 (vectorizable_operation): Likewise.
22246 (vectorizable_store): Likewise.
22247 (vectorizable_load): Likewise.
22249 2016-01-12 Richard Biener <rguenther@suse.de>
22251 PR tree-optimization/69174
22252 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
22254 (vectorizable_load): Properly compute the number of loads needed
22255 for permuted strided SLP loads and do not spuriously assign
22256 to SLP_TREE_VEC_STMTS.
22258 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
22260 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
22261 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
22262 (MD_EXEC_PREFIX): Remove.
22263 (MD_STARTFILE_PREFIX) Removee.
22264 (FILE_NAME_ABSOLUTE_P): Remove.
22265 (CPP_SPEC): Do not read macros from sys/version.h.
22266 (LINK_COMMAND_SPEC): Remove.
22267 (LOCAL_INCLUDE_DIR): Remove.
22268 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
22269 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
22270 (POST_LINK_SPEC): Define to invoke stubify after linker
22271 (LIBSTDCXX): Remove define
22272 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
22273 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
22274 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
22275 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
22276 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
22277 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
22278 (i386_djgpp_asm_named_section): Add propotype of new procedure
22280 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
22281 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
22282 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
22283 in config/i386/djgpp.h).
22284 (STANDARD_STARTFILE_PREFIX_2): Define identical to
22285 STANDARD_STARTFILE_PREFIX_1.
22286 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
22287 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
22288 installation errors.
22289 (MAX_OFILE_ALIGNMENT): Define to 128.
22290 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
22292 * config/i386/djgpp.c: New file. Add implementation of
22293 i386_djgpp_asm_named_section.
22295 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
22297 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
22298 Add rule for building djgpp.o.
22300 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22302 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
22303 (rtx_is_swappable_p): Reductions are swappable.
22304 (insn_is_swappable_p): V2DF reductions are swappable.
22306 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
22308 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
22309 reloads for other unsupported memory operands.
22311 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22312 Jim Wilson <jim.wilson@linaro.org>
22315 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
22316 copy_to_mode_reg instead of force_reg.
22318 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
22321 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
22322 TARGET_80387 is true.
22324 2016-01-11 Jakub Jelinek <jakub@redhat.com>
22327 * lra-eliminations.c (move_plus_up): Only move plus up
22328 if subreg of the constant can be simplified into constant
22329 and use the simplified subreg of the constant instead of
22330 the original constant.
22332 * fold-const.c (fold_convertible_p): Don't return true
22333 for conversion of VECTOR_TYPE to same sized integral type.
22334 (fold_convert_loc): Fix up formatting. Fold conversion of
22335 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
22336 instead of NOP_EXPR.
22338 PR tree-optimization/69214
22339 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
22340 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22343 PR tree-optimization/69207
22344 * tree-vect-slp.c (vect_get_constant_vectors): For
22345 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
22346 fold_convertible_p to vector_type's element type, and always
22347 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
22349 2016-01-11 Richard Biener <rguenther@suse.de>
22351 PR tree-optimization/69173
22352 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
22353 fixup the cycle if all stmts are in a pattern.
22355 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
22357 PR middle-end/68999
22358 * alias.c (base_alias_check): Move check for addresses with
22359 alignment ANDs before the call for compare_base_decls.
22360 (memrefs_conflict_p): Return -1 for different decls
22361 that went through alignment adjustments.
22363 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22365 PR rtl-optimization/68796
22366 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
22367 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
22368 and QImode comparisons against zero with CC_NZmode.
22369 * config/aarch64/iterators.md (short_mask): New mode_attr.
22371 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
22373 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
22374 (<avx512>_store<mode>_mask): Likewise.
22376 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
22377 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22379 PR rtl-optimization/68841
22380 * ifcvt.c (struct noce_if_info): Add orig_x field.
22381 (bbs_ok_for_cmove_arith): Add to_rename parameter.
22382 Don't record conflicts on to_rename if it's present.
22383 Allow memory destinations in sets.
22384 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
22385 blocks, passing orig_x to the checks.
22386 (noce_process_if_block): Set if_info->orig_x appropriately.
22388 2016-01-11 Tom de Vries <tom@codesourcery.com>
22390 PR tree-optimization/69069
22391 * tree-parloops.c (create_parallel_loop): Add missing phi args.
22393 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
22395 PR rtl-optimization/68920
22396 * config/i386/i386.c (ix86_option_override_internal): Restrict number
22397 of conditional moves for RTL if-conversion to 1 for
22398 TARGET_ONE_IF_CONV_INSN.
22399 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
22400 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
22401 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
22402 parameter to restirct number of conditional moves for
22404 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
22405 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
22408 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
22411 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
22412 onepart vars. Fix typo in comment. Fix reversed condition in
22414 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
22417 * var-tracking.c (dump_onepart_variable_differences): New.
22418 (dataflow_set_different): If a detailed dump is requested,
22419 delay early returns and dump differences between onepart
22420 variables present before and after, and added variables.
22422 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
22425 * expr.c (expand_expr_real_1): For boolean vector constants
22426 with a scalar mode use const_scalar_mask_from_tree.
22427 (const_scalar_mask_from_tree): New.
22428 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
22429 assigned to a mask type to handle constants.
22431 2016-01-11 Martin Jambor <mjambor@suse.cz>
22434 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
22435 useless parameters if we cannot change function signature.
22437 2016-01-11 Martin Jambor <mjambor@suse.cz>
22440 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
22443 2016-01-11 Tom de Vries <tom@codesourcery.com>
22445 PR tree-optimization/69109
22446 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
22449 2016-01-11 Tom de Vries <tom@codesourcery.com>
22451 PR tree-optimization/69108
22452 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
22453 res is not used in a phi.
22455 2016-01-11 Yury Gribov <y.gribov@samsung.com>
22458 * common.opt (frandom-seed): Fix parameter name.
22459 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
22461 2016-01-11 Tom de Vries <tom@codesourcery.com>
22463 PR tree-optimization/69058
22464 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
22467 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
22469 * config/arc/arc.opt (mdiv-rem): Add period to the end.
22470 (mcode-density): Likewise.
22472 2016-01-10 Tom de Vries <tom@codesourcery.com>
22474 PR tree-optimization/69062
22475 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
22476 (parallelize_loops): Don't paralelize loop that has phi with address
22479 2016-01-10 Tom de Vries <tom@codesourcery.com>
22481 PR tree-optimization/69039
22482 * tree-parloops.c (try_create_reduction_list): Only allow single exit
22485 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
22487 PR middle-end/68743
22488 * match.pd: Require target has function_c99_misc before doing
22489 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
22491 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
22493 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
22495 * configure: Regenerate.
22497 2016-01-09 Jakub Jelinek <jakub@redhat.com>
22499 PR middle-end/50865
22500 PR tree-optimization/69097
22501 * fold-const.h (expr_not_equal_to): New prototype.
22502 * fold-const.c: Include stringpool.h and tree-ssanames.h.
22503 (expr_not_equal_to): New function.
22504 * match.pd (X % -Y is the same as X % Y): Don't optimize
22505 unless X is known not to be equal to minimum or Y is known
22506 not to be equal to -1.
22507 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
22508 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
22509 (simplify_stmt_using_ranges): Adjust caller.
22510 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
22511 substitute_and_fold.
22513 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
22515 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
22518 2016-01-08 Jakub Jelinek <jakub@redhat.com>
22520 PR tree-optimization/69167
22521 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
22522 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
22524 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
22526 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
22527 Richard Biener <rguenther@suse.de>
22529 PR tree-optimization/68707
22530 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
22531 instances that can be handled via vect_load_lanes.
22533 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
22535 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
22536 if we can't determine address equivalence.
22537 * alias.c (compare_base_decl): Update for changed return value of
22538 symtab_node::equal_address_to.
22540 2016-01-08 Jason Merrill <jason@redhat.com>
22544 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
22545 * expr.c (store_field): Not here.
22546 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
22547 call with TREE_ADDRESSABLE type.
22548 * tree-cfg.c (verify_gimple_call): Adjust.
22550 2016-01-08 Olivier Hainque <hainque@adacore.com>
22552 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
22555 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
22557 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
22558 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
22559 (reduc_smin_v2sf): Rename to...
22560 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
22561 (reduc_splus_v2sf): Rename to...
22562 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
22564 2016-01-08 Jakub Jelinek <jakub@redhat.com>
22566 PR tree-optimization/69162
22567 * gimplify.c (gimplify_va_arg_expr): Encode original type of
22568 valist argument in another argument.
22569 (gimplify_modify_expr): Adjust for the above change. Cleanup.
22570 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
22571 to determine the va_list type, build a MEM_REF instead of
22572 build_fold_indirect_ref.
22574 PR tree-optimization/69172
22575 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
22578 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
22580 PR tree-optimization/67781
22581 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
22582 and cmpnop in two steps: first the ones not accessed in original
22583 gimple expression in a endian independent way and then the ones not
22584 accessed in the final result in an endian-specific way.
22586 2016-01-08 Jakub Jelinek <jakub@redhat.com>
22588 PR tree-optimization/69083
22589 * tree-vect-slp.c (vect_get_constant_vectors): For
22590 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
22591 element type. If op is fold_convertible_p to vector_type's element
22592 type, use NOP_EXPR instead of VCE.
22594 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
22596 PR rtl-optimization/67778
22597 PR rtl-optimization/68634
22598 PR rtl-optimization/68909
22599 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
22600 block from the stack until done with it. Remove a superfluous
22601 bitmap set. Remove a superfluous bitmap test.
22603 2016-01-07 Martin Sebor <msebor@redhat.com>
22606 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
22607 constraint on the type of arguments.
22609 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
22611 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
22612 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
22613 unaligned_access on the gcc_options set.
22614 * config/arm/arm.c (arm_option_override_internal): Use
22615 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
22617 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
22620 * config/i386/i386.c (ix86_frame_pointer_required): Enable
22621 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
22623 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
22626 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
22629 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
22630 depending on frame_pointer_needed before remaining integer and SSE
22631 registers are saved.
22633 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
22636 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
22638 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
22641 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
22642 Use the "xBm" constraint.
22643 (float<sseintvecmodelower><mode>2<mask_name><round_name):
22645 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
22646 (sse_cvtsi2ssq<round_name>): Likewise.
22647 (sse_cvtss2si<round_name>): Likewise.
22648 (sse_cvtss2siq<round_name>): Likewise.
22649 (sse2_cvtsi2sdq<round_name>): Likewise.
22650 (sse2_cvtsd2si<round_name>): Likewise.
22651 (sse2_cvtsd2siq<round_name>): Likewise.
22652 * config/i386/subst.md (round_nimm_scalar_predicate): New
22655 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
22657 PR middle-end/67639
22658 * varasm.c (make_decl_rtl): Mark invalid register vars as
22661 PR rtl-optimization/66206
22662 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
22663 All callers changed.
22665 2016-01-07 Jakub Jelinek <jakub@redhat.com>
22667 PR tree-optimization/69141
22668 * tree-ssa-pre.c: Include langhooks.h.
22669 (eliminate_dom_walker::before_dom_children): Use
22670 lang_hooks.decl_printable_name instead of
22671 cgraph_node::get ()->name ().
22673 PR middle-end/68960
22674 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
22675 it and DECL_ALIGN too.
22677 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
22679 * config/mips/mips-ftypes.def: Sort to lexicographical order.
22681 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
22684 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
22685 depending on frame_pointer_needed before remaining integer and SSE
22686 registers are saved.
22688 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22690 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
22691 mode iterator with VSX_M2.
22692 (*p9_vecstore_<mode>): Likewise.
22693 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
22694 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
22695 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
22696 (define_split for VSX_LE128 stores): Likewise.
22697 (define_peephole2 for TImode LE swaps): Likewise.
22698 (define_split for VSX_LE128 post-reload stores): Likewise.
22700 2016-01-06 Marek Polacek <polacek@redhat.com>
22703 * convert.c (convert_to_integer_1): Adjust call to
22704 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
22705 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
22706 EXPR instead of ARG.
22707 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
22709 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
22712 * doc/extend.texi (RL78 Variable Attributes): New section.
22714 2016-01-05 Marek Polacek <polacek@redhat.com>
22717 * builtins.c (get_memmodel): Use expansion point location rather than
22718 the input location. Call warning_at rather than warning.
22719 (expand_builtin_atomic_compare_exchange): Likewise.
22720 (expand_builtin_atomic_load): Likewise.
22721 (expand_builtin_atomic_store): Likewise.
22722 (expand_builtin_atomic_clear): Likewise.
22724 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
22727 * config/i386/i386.c (ix86_expand_vector_logical_operator):
22728 Replace nonimmediate_operand with vector_operand.
22729 * config/i386/predicates.md (vector_operand): New predicate.
22730 (general_vector_operand): Replace nonimmediate_operand with
22732 * config/i386/sse.md: Replace nonimmediate_operand with
22733 vector_operand and m constraint with Bm constraint on SSE
22734 patterns with 16-byte memory operand.
22735 * config/i386/subst.md (round_nimm_predicate): Replace
22736 nonimmediate_operand with vector_operand.
22737 (round_saeonly_nimm_predicate): Likewise.
22738 (round_saeonly_nimm_scalar_predicate): New.
22740 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
22743 * config/i386/constraints.md (Bm): New constraint.
22744 * config/i386/predicates.md (vector_memory_operand): New
22746 * config/i386/sse.md: Replace xm with xBm in plusminus and
22747 any_logic patterns.
22749 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
22752 * doc/extend.texi (V850 Function Attributes): New section.
22753 (V850 Variable Attributes): New section.
22755 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
22758 * doc/extend.texi (MicroBlaze Function Attributes): Document
22759 interrupt_handler and fast_interrupt attributes.
22761 2016-01-05 Sergei Trofimovich <siarheit@google.com>
22764 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
22765 for local symbolic operands.
22766 * config/ia64/predicates.md (local_symbolic_operand64): New
22769 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22771 PR rtl-optimization/68651
22772 * combine.c (combine_simplify_rtx): Canonicalize x + x into
22775 2016-01-05 Nathan Sidwell <nathan@acm.org>
22777 * alias.c (compare_base_decls): Use symtab_node::get.
22779 2016-01-05 Nick Clifton <nickc@redhat.com>
22782 * ira-costs.c (copy_cost): Initialise the t_icode field of the
22783 secondary_reload_info structure.
22786 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
22787 decls if weak support is available.
22789 2016-01-04 Martin Sebor <msebor@redhat.com>
22791 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
22793 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
22795 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
22796 OPTION_MASK_P9_DFORM.
22798 * config/rs6000/constraints.md (wo constraint): New constraint for
22801 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
22803 (rs6000_init_hard_regno_mode_ok): Likewise.
22805 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
22808 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
22809 expanders not to have constraints. Add support for ISA 3.0 xxperm
22810 instruction. Add support for fusing xxlor with xxperm.
22811 (altivec_vperm_<mode>_internal): Likewise.
22812 (altivec_vperm_v8hiv16qi): Likewise.
22813 (altivec_vperm_<mode>v16q): Likewise.
22814 (altivec_vperm_<mode>_uns): Likewise.
22815 (vperm_v8hiv4si): Likewise.
22816 (vperm_v16qiv8hi): Likewise.
22818 * doc/md.texi (RS/6000 constraints): Document wo constraint.
22820 2016-01-04 Jakub Jelinek <jakub@redhat.com>
22822 Update copyright years.
22824 * gcc.c (process_command): Update copyright notice dates.
22825 * gcov-dump.c (print_version): Ditto.
22826 * gcov.c (print_version): Ditto.
22827 * gcov-tool.c (print_version): Ditto.
22828 * gengtype.c (create_file): Ditto.
22829 * doc/cpp.texi: Bump @copying's copyright year.
22830 * doc/cppinternals.texi: Ditto.
22831 * doc/gcc.texi: Ditto.
22832 * doc/gccint.texi: Ditto.
22833 * doc/gcov.texi: Ditto.
22834 * doc/install.texi: Ditto.
22835 * doc/invoke.texi: Ditto.
22837 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
22839 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
22840 modes larger than TImode as TImode if NEON is not enabled.
22842 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
22845 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
22846 mode for %f0-%f31 only if TARGET_FPU.
22848 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
22851 * config/sparc/sparc.c (scan_record_type): Take into account subfields
22852 to compute the PACKED_P predicate.
22853 (function_arg_record_value): Minor tweaks.
22855 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
22857 * doc/install.texi (--with-multilib-list): Describe the meaning of the
22858 option for arm*-*-* targets.
22860 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
22862 * doc/extend.texi (Common Function Attributes): Move docs for
22863 MSP430-specific attributes to....
22864 (MSP430 Function Attributes): ...here. Delete the redundant
22865 entries and copy-edit the remaining text.
22866 (MSP430 Variable Attributes): Use uniform format for index
22867 entries and add a cross-reference to the corresponding function
22870 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
22872 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
22874 (x86 Options): Likewise.
22876 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
22880 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
22881 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
22882 to corresponding attribute.
22884 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
22886 * doc/extend.texi (Common Function Attributes) <noplt>: Move
22887 to correct alphabetization of table. Copy-edit and correct
22889 <stack_protect>: Likewise.
22890 <target_clones>: Likewise.
22892 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
22893 Correct punctuation.
22894 (Code Gen Options) <-fno-plt>: Copy-edit.
22896 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
22899 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
22900 SI values. Explicitly convert SI to DI and vice-versa.
22902 2016-01-01 Jakub Jelinek <jakub@redhat.com>
22904 PR tree-optimization/69070
22905 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
22906 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
22909 * ubsan.c (ubsan_instrument_float_cast): Call
22910 initialize_sanitizer_builtins.
22913 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
22915 Copyright (C) 2016 Free Software Foundation, Inc.
22917 Copying and distribution of this file, with or without modification,
22918 are permitted in any medium without royalty provided the copyright
22919 notice and this notice are preserved.