1 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
3 * recog.c (rest_of_handle_split_after_reload): Delete.
4 (pass_split_after_reload::gate): New method.
5 (pass_split_after_reload::execute): Call split_all_insns directly.
7 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
9 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
10 parameters for functions taking long long arguments.
12 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
18 2016-09-16 Jason Merrill <jason@redhat.com>
20 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
22 * hwint.c (exact_log2): Use pow2p_hwi.
23 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
24 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
25 * builtins.c (get_object_alignment_2, get_object_alignment)
26 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
28 * calls.c (compute_argument_addresses, store_one_arg): Use
30 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
31 * combine.c (force_to_mode): Use least_bit_hwi.
32 (contains_muldiv, find_split_point, combine_simplify_rtx)
33 (simplify_if_then_else, simplify_set, force_to_mode)
34 (if_then_else_cond, simplify_and_const_int_1)
35 (simplify_compare_const): Use pow2p_hwi.
36 * cse.c (fold_rtx): Use pow2p_hwi.
37 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
39 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
40 (init_expmed_one_conv): Use pow2p_hwi.
41 * expr.c (is_aligning_offset): Use pow2p_hwi.
42 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
43 (fold_binary_loc): Use pow2p_hwi.
44 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
45 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
46 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
47 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
49 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
50 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
51 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
52 * omp-low.c (oacc_loop_fixed_partitions)
53 (oacc_loop_auto_partitions): Use least_bit_hwi.
54 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
55 * stor-layout.c (place_field): Use least_bit_hwi.
56 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
57 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
58 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
59 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
60 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
61 * tree-vect-data-refs.c (vect_analyze_group_access_1)
62 (vect_grouped_store_supported, vect_grouped_load_supported)
63 (vect_permute_load_chain, vect_shift_permute_load_chain)
64 (vect_transform_grouped_load): Use pow2p_hwi.
65 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
66 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
67 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
69 * tsan.c (instrument_expr): Use least_bit_hwi.
70 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
72 2016-09-16 Andreas Schwab <schwab@suse.de>
74 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
76 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
78 2016-09-16 Jakub Jelinek <jakub@redhat.com>
81 * combine.c (rest_of_handle_combine): If any edges have been purged,
82 free dominators if available.
84 2016-09-16 Jakub Jelinek <jakub@redhat.com>
85 Eric Botcazou <ebotcazou@adacore.com>
88 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
89 through into expand_addsub_overflow after expand_neg_overflow.
91 2016-09-15 David Malcolm <dmalcolm@redhat.com>
93 * diagnostic-show-locus.c
94 (selftest::test_fixit_insert_containing_newline): New function.
95 (selftest::test_fixit_replace_containing_newline): New function.
96 (selftest::diagnostic_show_locus_c_tests): Call the above.
98 2016-09-15 Bin Cheng <bin.cheng@arm.com>
100 PR tree-optimization/77503
101 * tree-vect-loop.c (vectorizable_reduction): Record reduction
102 code for CONST_COND_REDUCTION at analysis stage and use it at
104 * tree-vectorizer.h (struct _stmt_vec_info): New field.
105 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
106 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
109 2016-09-15 Richard Biener <rguenther@suse.de>
112 * fold-const.c (split_tree): Do not split constant ~X.
114 2016-09-15 Jakub Jelinek <jakub@redhat.com>
116 PR rtl-optimization/77425
117 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
121 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
122 use %qs instead of %s where desirable, use argument instead of arg in
123 the diagnostic wording, add list of supported strategies and
125 (ix86_option_override_internal): Emit target("m...") instead of
126 option("m...") in the diagnostic. Use %qs instead of %s in invalid
127 -march/-mtune option diagnostic. Add list of supported arches/tunings
128 and spellcheck hint. Remove prefix, suffix and sw variables, use
129 main_args_p ? "..." : "..." in diagnostics to make translation
132 2016-09-15 Richard Biener <rguenther@suse.de>
134 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
135 extra offset argument.
136 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
137 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
138 to reflect new offset parameter.
139 * doc/tm.texi: Regenerate.
140 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
141 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
143 (darwin_asm_output_dwarf_offset): Likewise.
144 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
146 (darwin_asm_output_dwarf_offset): Pass offset argument through.
147 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
148 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
150 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
153 * ipa-icf.c (set_alias_uids): New function.
154 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
155 all the merged variable's referring aliases.
157 2016-09-15 Richard Biener <rguenther@suse.de>
159 PR tree-optimization/77514
160 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
161 only forced_stmts sequence.
163 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
165 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
166 * cfgexpand.c (update_alias_info_with_stack_vars): Use
167 FOR_EACH_SSA_NAME to iterate over SSA variables.
168 (pass_expand::execute): Likewise.
169 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
170 * tree-cfg.c (dump_function_to_file): Likewise.
171 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
172 (update_ssa): Likewise.
173 * tree-ssa-alias.c (dump_alias_info): Likewise.
174 * tree-ssa-ccp.c (ccp_finalize): Likewise.
175 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
176 (create_outofssa_var_map): Likewise.
177 (coalesce_ssa_name): Likewise.
178 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
179 * tree-ssa-pre.c (compute_avail): Likewise.
180 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
181 (scc_vn_restore_ssa_info): Likewise.
182 (free_scc_vn): Likwise.
183 (run_scc_vn): Likewise.
184 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
185 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
186 * tree-ssa-copy.c (fini_copy_prop): Likewise.
187 * tree-ssa.c (verify_ssa): Likewise.
189 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
191 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
192 and mips64r2 as default 32-bit and 64-bit architectures.
193 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
194 as default 32-bit and 64-bit architectures.
196 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
198 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability of succ edge.
200 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
202 * target.def (lra_p): Change commentary (for the manual) for the
204 * doc/tm.texi: Regenerate.
206 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
208 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
209 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
210 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
211 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
213 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
215 * targhooks.c (default_lra_p): Return true instead of false.
217 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
219 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
220 hook_bool_void_false.
221 * config/avr/avr.c: Ditto.
222 * config/bfin/bfin.c: Ditto.
223 * config/c6x/c6x.c: Ditto.
224 * config/cr16/cr16.c: Ditto.
225 * config/cris/cris.c: Ditto.
226 * config/epiphany/epiphany.c: Ditto.
227 * config/fr30/fr30.c: Ditto.
228 * config/frv/frv.c: Ditto.
229 * config/h8300/h8300.c: Ditto.
230 * config/ia64/ia64.c: Ditto.
231 * config/iq2000/iq2000.c: Ditto.
232 * config/lm32/lm32.c: Ditto.
233 * config/m32c/m32c.c: Ditto.
234 * config/m32r/m32r.c: Ditto.
235 * config/m68k/m68k.c: Ditto.
236 * config/mcore/mcore.c: Ditto.
237 * config/microblaze/microblaze.c: Ditto.
238 * config/mmix/mmix.c: Ditto.
239 * config/mn10300/mn10300.c: Ditto.
240 * config/moxie/moxie.c: Ditto.
241 * config/msp430/msp430.c: Ditto.
242 * config/nios2/nios2.c: Ditto.
243 * config/nvptx/nvptx.c: Ditto.
244 * config/pa/pa.c: Ditto.
245 * config/pdp11/pdp11.c: Ditto.
246 * config/rl78/rl78.c: Ditto.
247 * config/sparc/sparc.c: Ditto.
248 * config/spu/spu.c: Ditto.
249 * config/stormy16/stormy16.c: Ditto.
250 * config/tilegx/tilegx.c: Ditto.
251 * config/tilepro/tilepro.c: Ditto.
252 * config/v850/v850.c: Ditto.
253 * config/vax/vax.c: Ditto.
254 * config/visium/visium.c: Ditto.
255 * config/xtensa/xtensa.c: Ditto.
257 2016-09-14 Jakub Jelinek <jakub@redhat.com>
260 * tsan.c: Include target.h.
261 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
262 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
263 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
264 BUILT_IN_ATOMIC_TEST_AND_SET entries.
265 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
267 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
268 Martin Liska <mliska@suse.cz>
271 * predict.c (force_edge_cold): Add braces to a condition.
273 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
275 PR rtl-optimization/77289
276 * lra-constraints.c (get_final_hard_regno): Removed.
277 (get_hard_regno): Add new parameter final_p.
278 (get_reg_class): Directly call lra_get_elimination_hard_regno.
279 (operands_match_p): Adjust call to get_hard_regno.
280 (uses_hard_regs_p): Likewise.
281 (process_alt_operands): Likewise.
283 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
286 * config/msp430/msp430.c (msp430_start_function): Emit an error
287 if a function is both weak and specifies an interrupt number.
289 2016-09-13 Jakub Jelinek <jakub@redhat.com>
291 PR tree-optimization/77454
292 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
293 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
296 2016-09-13 Tamar Christina <tamar.christina@arm.com>
298 * config/aarch64/aarch64-builtins.c
299 (aarch64_init_simd_builtins): Fix builtin type signature printing.
301 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
303 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
304 SFmode and SCmode arguments by reference.
306 2016-09-13 David Malcolm <dmalcolm@redhat.com>
308 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
310 (selftest::test_one_liner_fixit_insert_before): ...this, and update
311 for renaming of add_fixit_insert to add_fixit_insert_before.
312 (selftest::test_one_liner_fixit_insert_after): New function.
313 (selftest::test_one_liner_fixit_validation_adhoc_locations):
314 Update for renaming of add_fixit_insert to add_fixit_insert_before.
315 (selftest::test_one_liner_many_fixits): Likewise.
316 (selftest::test_diagnostic_show_locus_one_liner): Update for
317 renaming, call new test function.
318 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
319 renaming of add_fixit_insert to add_fixit_insert_before.
320 (selftest::test_fixit_consolidation): Likewise.
321 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
323 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
324 (selftest::test_applying_fixits_insert_before): ...this.
325 (selftest::test_applying_fixits_insert): Update for renaming of
326 add_fixit_insert to add_fixit_insert_before.
327 (selftest::test_applying_fixits_insert_after): New function.
328 (selftest::test_applying_fixits_insert_after_at_line_end): New
330 (selftest::test_applying_fixits_insert_after_failure): New function.
331 (selftest::test_applying_fixits_multiple): Update for renaming of
332 add_fixit_insert to add_fixit_insert_before.
333 (selftest::change_line): Likewise.
334 (selftest::test_applying_fixits_unreadable_file): Likewise.
335 (selftest::test_applying_fixits_line_out_of_range): Likewise.
336 (selftest::test_applying_fixits_column_validation): Likewise.
337 (selftest::test_applying_fixits_column_validation): Likewise.
338 (selftest::edit_context_c_tests): Update for renamed test function;
339 call new test functions.
341 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
343 PR tree-optimization/77536
344 PR rtl-optimization/68212
345 * config/rs6000/rs6000.md (div->recip splitter): Remove
346 optimize_insn_for_speed_p condition.
348 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
350 * optabs.c (prepare_cmp_insn): Update documentation comment.
352 2016-09-13 Jakub Jelinek <jakub@redhat.com>
353 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
356 * opts.h (candidates_list_and_hint): Declare.
357 * opts-common.c (candidates_list_and_hint): New function.
358 (cmdline_handle_error): Use it.
360 2016-09-12 David Malcolm <dmalcolm@redhat.com>
362 * edit-context.c (edited_line::get_len): New accessor.
363 (edited_file::print_diff): Split out hunk-printing into...
364 (edited_file::print_diff_hunk): New method.
365 (edited_file::print_diff_line): New method.
367 2016-09-12 Andrew Pinski <apinski@cavium.com>
369 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
371 * config/aarch64/aarch64.c (thunderx_tunings): Enable
372 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
373 (aarch64_operands_ok_for_ldpstp): Return false if
374 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
375 was SImode and the alignment is less than 8 byte.
376 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
378 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
381 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
383 2016-09-12 Marek Polacek <polacek@redhat.com>
385 * doc/extend.texi: Use lowercase "boolean".
386 * doc/invoke.texi: Likewise.
387 * doc/md.texi: Likewise.
388 * target.def: Likewise.
389 * doc/tm.texi: Regenerated.
391 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
394 * expmed.c (synth_mult): Delete duplicate mode check.
396 2016-09-10 Tom de Vries <tom@codesourcery.com>
399 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
401 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
402 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
404 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
406 PR rtl-optimization/77289
407 * lra-constraints.c (get_final_hard_regno): Add support for non hard
408 register numbers. Remove support for subregs.
409 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
410 (get_reg_class): Delete removed get_final_hard_regno() argument.
411 (uses_hard_regs_p): Call get_final_hard_regno().
413 2016-09-09 Martin Sebor <msebor@redhat.com>
417 * pretty-print.c (pp_quoted_string): New function.
418 (pp_format): Call it for %c and %s directives.
420 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
422 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
423 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
424 INITIAL_ELIMINATION_OFFSET) : Update documentation.
425 * target.def (frame_pointer_required, can_eliminate): Likewise.
426 * doc/tm.texi: Regenerated.
427 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
429 * df-scan.c (df_hard_reg_init): Likewise.
430 * ira.c (ira_setup_eliminable_regset): Likewise.
431 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
432 init_elim_table): Likewise.
433 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
434 set_initial_elim_offsets, update_eliminables,
435 init_elim_table): Likewise.
436 * rtlanal.c (get_initial_register_offset): Likewise.
437 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
438 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
439 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
440 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
441 * config/fr30/fr30.h: Fix comment.
442 * config/frv/frv.c: Likewise.
443 * config/frv/frv.h: Likewise.
444 * config/ft32/ft32.h: Likewise.
445 * config/visium/visium.h: Likewise.
446 * config/pa/pa64-linux.h: Likewise.
447 * config/v850/v850.h: Likewise.
448 * config/cris/cris.c: Likewise.
449 * config/ia64/ia64.h: Likewise.
450 * config/moxie/moxie.h: Likewise.
451 * config/m32r/m32r.h: Likewise.
453 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
456 * config.in: Regenerate.
457 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
459 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
460 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
461 static-libmpxwrappers case.
462 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
463 MPX_LD_AS_NEEDED_GUARD_POP.
464 * configure: Regenerate.
465 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
466 defined if linker support "--push-state"/"--pop-state".
468 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
470 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
472 2016-09-09 Joseph Myers <joseph@codesourcery.com>
474 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
475 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
476 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
477 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
478 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
479 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
480 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
482 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
483 width macros from TS 18661-1.
484 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
486 2016-09-08 Jakub Jelinek <jakub@redhat.com>
489 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
490 OMP_CLAUSE_SAFELEN_EXPR.
492 2016-09-07 David Malcolm <dmalcolm@redhat.com>
494 * Makefile.in (OBJS): Add substring-locations.o.
495 * langhooks-def.h (class substring_loc): New forward decl.
496 (lhd_get_substring_location): New decl.
497 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
498 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
499 * langhooks.c (lhd_get_substring_location): New function.
500 * langhooks.h (class substring_loc): New forward decl.
501 (struct lang_hooks): Add field get_substring_location.
502 * substring-locations.c: New file, taking definition of
503 format_warning_va and format_warning_at_substring from
504 c-family/c-format.c, making them non-static.
505 * substring-locations.h (class substring_loc): Move class here
506 from c-family/c-common.h. Add and rewrite comments.
507 (format_warning_va): New decl.
508 (format_warning_at_substring): New decl.
509 (get_source_location_for_substring): Add comment.
511 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
513 * config/i386/i386.c: Add 'U' suffix to processor feature bits
514 to avoid -Wnarrowing warning.
515 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
516 * opts.c: Likewise for SANITIZER_OPT bitmasks.
518 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
520 * config/aarch64/aarch64.c (aarch64_legitimize_address):
521 Avoid use of base_offset if offset already in range.
523 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
525 * config/sh/sh-protos.h (struct sh_atomic_model,
526 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
527 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
528 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
529 * config/sh/sh.h (struct sh_atomic_model,
530 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
531 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
532 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
533 Guard with __cplusplus.
535 2016-09-06 Jakub Jelinek <jakub@redhat.com>
538 * config/i386/i386.c (ix86_expand_builtin): For builtin with
539 unsupported or unknown ISA, use expand_call.
541 2016-09-06 Martin Liska <mliska@suse.cz>
543 PR gcov-profile/77378
544 PR gcov-profile/77466
545 * tree-profile.c (tree_profiling): Detect whether target can use
546 -fprofile-update=atomic.
548 2016-09-06 Richard Biener <rguenther@suse.de>
550 PR tree-optimization/77479
551 * tree-vrp.c (update_value_range): Extend overflow handling to
554 2016-09-05 Jakub Jelinek <jakub@redhat.com>
557 * config/i386/i386.md (isa): Add x64_avx512bw.
558 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
559 (kmov_isa): New mode attr.
560 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
561 (*zero_extend<mode>si2): Likewise.
562 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
564 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
566 * doc/invoke.texi (SPU Options): nops -> NOPs.
567 (x86 Options): Ditto.
569 2016-09-05 Jakub Jelinek <jakub@redhat.com>
572 * toplev.c (process_options): Temporarily set input_location
573 to UNKNOWN_LOCATION around targetm.target_option.override () call.
575 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
577 PR rtl-optimization/77452
578 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
579 inner-mode reference to a CONST_VECTOR constant in the constant pool.
581 2016-09-05 Marek Polacek <polacek@redhat.com>
584 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
586 2016-09-05 Jakub Jelinek <jakub@redhat.com>
589 * gensupport.c (alter_output_for_subst_insn): Remove redundant
590 *insn_out == '*' test. Don't copy unnecessary to yet another
591 memory buffer, and don't leak it.
593 PR rtl-optimization/77425
594 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
596 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
598 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
600 2016-09-02 David Malcolm <dmalcolm@redhat.com>
602 * common.opt (fdiagnostics-generate-patch): New option.
603 * diagnostic.c: Include "edit-context.h".
604 (diagnostic_initialize): Initialize context->edit_context_ptr.
605 (diagnostic_finish): Delete context->edit_context_ptr.
606 (diagnostic_report_diagnostic): Add fix-it hints from the
607 diagnostic to context->edit_context_ptr, if any.
608 * diagnostic.h (class edit_context): Add forward decl.
609 (struct diagnostic_context): Add field "edit_context_ptr".
610 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
611 -fdiagnostics-generate-patch.
612 (-fdiagnostics-generate-patch): New item.
613 * toplev.c: Include "edit-context.h".
614 (process_options): Set global_dc->edit_context_ptr to a new
615 edit_context if the options need one.
616 (toplev::main): Handle -fdiagnostics-generate-patch by using
617 global_dc->edit_context_ptr.
619 2016-09-02 Jakub Jelinek <jakub@redhat.com>
622 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
623 map and firstprivate clauses on target construct for _Atomic
625 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
626 on target construct for _Atomic qualified decls.
627 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
629 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
630 _Atomic qualified arguments not mentioned in uniform clause.
632 2016-09-02 David Malcolm <dmalcolm@redhat.com>
634 * Makefile.in (OBJS-libcommon): Add edit-context.o.
635 * diagnostic-color.c (color_dict): Add "diff-filename",
636 "diff-hunk", "diff-delete", and "diff-insert".
637 (parse_gcc_colors): Update default value of GCC_COLORS in comment
638 to reflect above changes.
639 * doc/invoke.texi (-fdiagnostics-color): Update description of
640 default GCC_COLORS, and of the supported capabilities.
641 * edit-context.c: New file.
642 * edit-context.h: New file.
643 * input.c (struct fcache): Add field "missing_trailing_newline".
644 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
646 (add_file_to_cache_tab): Likewise.
647 (fcache::fcache): Likewise.
648 (get_next_line): Update c->missing_trailing_newline.
649 (location_missing_trailing_newline): New function.
650 * input.h (location_missing_trailing_newline): New decl.
651 * selftest-run-tests.c (selftest::run_tests): Call
652 edit_context_c_tests.
653 * selftest.h (edit_context_c_tests): New decl.
655 2016-09-02 Jakub Jelinek <jakub@redhat.com>
656 Richard Biener <rguenth@suse.de>
658 PR tree-optimization/77444
659 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
660 as steptype, remove redundant initialization.
662 2016-09-02 Jakub Jelinek <jakub@redhat.com>
665 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
666 (sanopt_optimize_walker): Optimize away
667 __asan_before_dynamic_init (...) followed by
668 __asan_after_dynamic_init () without intervening memory loads/stores.
669 * ipa-pure-const.c (special_builtin_state): Handle
670 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
671 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
673 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
675 * cfg.c (free_original_copy_tables): Replace second assignment of
676 bb_copy = NULL by bb_original = NULL.
678 2016-09-02 Jakub Jelinek <jakub@redhat.com>
681 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
682 assignment added in r216794.
684 2016-09-02 David Malcolm <dmalcolm@redhat.com>
686 * Makefile.in (OBJS): Add typed-splay-tree.o.
687 * selftest-run-tests.c (selftest::run_tests): Call
688 typed_splay_tree_c_tests.
689 * selftest.h (typed_splay_tree_c_tests): New decl.
690 * typed-splay-tree.c: New file.
691 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
692 (typed_splay_tree::max): New method.
693 (typed_splay_tree::min): New method.
694 (typed_splay_tree::foreach): New method.
695 (typed_splay_tree::closure): New struct.
696 (typed_splay_tree::inner_foreach_fn): New function.
698 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
700 * ipa-cp.c (ipcp_store_bits_results): Change option name from
701 -fipa-cp-bit to -fipa-bit-cp.
703 2016-09-01 Martin Sebor <msebor@redhat.com>
705 PR tree-optimization/71831
706 * tree-object-size.h: Return bool instead of the size and add
707 argument for the size.
708 * tree-object-size.c (compute_object_offset): Update signature.
709 (addr_object_size): Same.
710 (compute_builtin_object_size): Return bool instead of the size
711 and add argument for the size. Handle POINTER_PLUS_EXPR when
712 optimization is disabled.
713 (expr_object_size): Adjust.
714 (plus_stmt_object_size): Adjust.
715 (pass_object_sizes::execute): Adjust.
716 * builtins.c (fold_builtin_object_size): Adjust.
717 * doc/extend.texi (Object Size Checking): Update.
718 * ubsan.c (instrument_object_size): Adjust.
720 2016-09-01 Martin Sebor <msebor@redhat.com>
722 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
723 it fits the output of the formatted function regardless of its
725 * gcc/genmodes.c (parser::parse_expr): Same.
726 * gimplify.c (gimplify_asm_expr): Same.
727 * passes.c (pass_manager::register_one_dump_file): Same.
728 * print-tree.c (print_node): Same.
730 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
732 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
734 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
736 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
738 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
740 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
741 * config/rs6000/vector.md: Ditto.
742 * config/rs6000/vsx.md: Ditto.
744 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
746 * ipa-inline-analysis.c (param_change_prob): Get to the base object
749 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
751 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
752 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
753 *return_and_restore_gpregs_<mode>_r11,
754 *return_and_restore_gpregs_<mode>_r12,
755 *return_and_restore_gpregs_<mode>_r1,
756 *return_and_restore_fpregs_<mode>_r11,
757 *return_and_restore_fpregs_<mode>_r12,
758 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
759 directly instead of via the "l" constraint. Renumber operands.
762 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
764 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
765 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
766 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
767 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
768 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
769 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
770 *call_value_nonlocal_darwin64, reload_macho_picbase,
771 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
772 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
773 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
774 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
775 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
776 *save_fpregs_<mode>_r1): Ditto.
777 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
778 *return_and_restore_gpregs_spe): Ditto.
780 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
782 * config/rs6000/rs6000.md
783 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
784 the use of the link register.
785 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
787 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
788 Michael Meissner <meissner@linux.vnet.ibm.com>
791 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
792 reg+reg addressing for TImode.
793 (rs6000_legitimate_address_p): Only allow register indirect
794 addressing for TImode, even without TARGET_QUAD_MEMORY.
796 2016-09-01 Richard Biener <rguenther@suse.de>
799 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
800 check whether the result fits the desired result type.
802 2016-09-01 Nathan Sidwell <nathan@acm.org>
804 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
806 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
808 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
810 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
812 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
814 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
815 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
816 for comparisons of integer ZERO_EXTEND against zero.
818 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
820 * config/i386/i386.c (ix86_option_override_internal): Also disable the
821 STV pass if -mstackrealign is enabled.
823 2016-08-31 Ilya Verbin <iverbin@gmail.com>
825 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
828 2016-08-31 David Malcolm <dmalcolm@redhat.com>
830 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
831 (layout_range::intersects_line_p): New method.
832 (test_range_contains_point_for_single_point): Rename to...
833 (test_layout_range_for_single_point): ...this, and add testing
834 for layout_range::intersects_line_p.
835 (test_range_contains_point_for_single_line): Rename to...
836 (test_layout_range_for_single_line): ...this, and add testing
837 for layout_range::intersects_line_p.
838 (test_range_contains_point_for_multiple_lines): Rename to...
839 (test_layout_range_for_multiple_lines): ...this, and add testing
840 for layout_range::intersects_line_p.
841 (layout::layout): Populate m_fixit_hints.
842 (layout::get_expanded_location): Handle the case of a line-span
844 (layout::validate_fixit_hint_p): New method.
845 (get_line_span_for_fixit_hint): New function.
846 (layout::calculate_line_spans): Add spans for fixit-hints.
847 (layout::should_print_annotation_line_p): New method.
848 (layout::print_any_fixits): Drop param "richloc", instead using
849 validated fixits in m_fixit_hints. Add "const" to hint pointers.
850 (diagnostic_show_locus): Avoid printing blank annotation lines.
851 (selftest::test_diagnostic_context::test_diagnostic_context):
852 Initialize show_column and start_span.
853 (selftest::test_diagnostic_context::start_span_cb): New static
855 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
856 (selftest::diagnostic_show_locus_c_tests): Update for function
857 renamings. Call test_diagnostic_show_locus_fixit_lines.
859 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
861 PR tree-optimization/73714
862 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
864 2016-08-31 David Malcolm <dmalcolm@redhat.com>
866 * selftest.c: Move "namespace selftest {" to top of file,
867 removing explicit "selftest::" qualifiers throughout.
869 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
871 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
873 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
874 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
875 Replace builtin with vector extension.
876 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
878 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
879 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
880 Replace builtin with vector extension.
881 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
882 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
883 Replace builtin with vector extension.
884 * config/i386/xmmintrin.h (__m128_u): New type.
885 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
886 (_mm_load_ps, _mm_store_ps): Simplify.
888 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
890 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
892 2016-08-30 David Malcolm <dmalcolm@redhat.com>
894 * diagnostic-show-locus.c (colorizer::begin_state): Support more
895 than 3 ranges per diagnostic by alternating between color 1 and
897 (layout::layout): Replace use of rich_location::MAX_RANGES
898 with richloc->get_num_locations ().
899 (layout::calculate_line_spans): Replace use of
900 rich_location::MAX_RANGES with m_layout_ranges.length ().
901 (layout::print_annotation_line): Handle arbitrary numbers of
902 ranges in caret-printing by defaulting to '^'.
903 (selftest::test_one_liner_many_fixits): New function.
904 (test_diagnostic_show_locus_one_liner): Call it.
905 * diagnostic.c (diagnostic_initialize): Update for renaming
906 of rich_location::MAX_RANGES to
907 rich_location::STATICALLY_ALLOCATED_RANGES.
908 * diagnostic.h (struct diagnostic_context): Likewise.
910 2016-08-30 David Malcolm <dmalcolm@redhat.com>
912 * selftest.c (selftest::named_temp_file::named_temp_file): New
914 (selftest::temp_source_file::~temp_source_file): Move to...
915 (selftest::named_temp_file::~named_temp_file): ...here.
916 (selftest::test_named_temp_file): New function.
917 (selftest::selftest_c_tests): Call test_named_temp_file.
918 * selftest.h (class named_temp_file): New class.
919 (class temp_source_file): Convert to a subclass of named_temp_file.
921 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
923 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
924 USEs of LR_REGNO in returns and sibcalls.
925 (rs6000_output_mi_thunk): Similar.
926 (rs6000_sibcall_aix): Similar.
927 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
928 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
929 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
930 Remove the USE of LR_REGNO from the patterns as well. Delete an
932 (return_internal_<mode>): Delete.
934 2016-08-30 Tamar Christina <tamar.christina@arm.com>
936 * gcc/config/aarch64/aarch64-simd.md
937 (aarch64_ld2<mode>_dreg_le): New.
938 (aarch64_ld2<mode>_dreg_be): New.
939 (aarch64_ld2<mode>_dreg): Removed.
940 (aarch64_ld3<mode>_dreg_le): New.
941 (aarch64_ld3<mode>_dreg_be): New.
942 (aarch64_ld3<mode>_dreg): Removed.
943 (aarch64_ld4<mode>_dreg_le): New.
944 (aarch64_ld4<mode>_dreg_be): New.
945 (aarch64_ld4<mode>_dreg): Removed.
946 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
948 2016-08-30 David Malcolm <dmalcolm@redhat.com>
950 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
951 redundant location param.
952 (test_one_liner_fixit_remove): Likewise.
953 (test_one_liner_fixit_replace): Likewise.
954 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
955 * gcc-rich-location.c
956 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
957 get_range_from_loc. Drop overload taking a const char *.
958 * gcc-rich-location.h
959 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
962 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
964 * config/linux.c (linux_libc_has_function): Return true on musl.
966 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
968 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
970 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
972 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
973 used for abnormal egdes.
975 2016-08-30 Jakub Jelinek <jakub@redhat.com>
977 PR tree-optimization/72866
978 * tree-vect-patterns.c (search_type_for_mask): Turn into
979 a small wrapper, move all code to ...
980 (search_type_for_mask_1): ... this new function. Add caching
981 and adjust recursive calls.
984 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
985 instead of lookup_type_die (type_main_variant (type)) even for array
989 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
990 constant pool reference return x instead of c.
992 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
994 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
997 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1000 (selftest::test_make_location_nonpure_range_endpoints): Fix
1003 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1005 * diagnostic-show-locus.c
1006 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
1008 (selftest::test_diagnostic_show_locus_one_liner): Call it.
1009 * input.c (get_pure_location): Move to libcpp/line-map.c.
1010 * input.h (get_pure_location): Convert decl to an inline function
1011 calling implementation in libcpp.
1013 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
1016 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
1017 template for intel asm dialect.
1018 (vec_set_hi_<mode><mask_name>): Ditto.
1020 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1022 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
1023 (selftest::fail_formatted): Likewise.
1025 2016-08-29 David Malcolm <dmalcolm@redhat.com>
1027 * input.c (make_location): Call get_start and get_finish
1028 on the endpoints to avoid storing packed ranges or ad-hoc
1030 (selftest::test_make_location_nonpure_range_endpoints): New function.
1031 (selftest::input_c_tests): Call it.
1032 * input.h (get_start): New inline function.
1034 2016-08-29 Tom de Vries <tom@codesourcery.com>
1037 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
1040 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
1042 * Makefile.in (gcov-iov.h): Add dummy recipe.
1044 2016-08-29 Nathan Sidwell <nathan@acm.org>
1046 * config/nvptx/nvptx.c: #include tree-vrp.h.
1048 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
1051 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
1052 HIGH+LO construct during reload.
1054 2016-08-28 Tom de Vries <tom@codesourcery.com>
1057 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
1058 'sysv_abi va_list' attribute.
1059 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
1060 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
1063 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1065 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
1066 * emit-rtl.c (unshare_all_rtl_1): Adjust.
1067 (unshare_all_rtl_again): Likewise.
1068 * function.c (assign_stack_local_1): Likewise.
1069 (assign_stack_temp_for_type): Likewise.
1071 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1073 * cfgbuild.c (make_edges): Adjust.
1074 * cfgrtl.c (can_delete_label_p): Likewise.
1075 * dwarf2cfi.c (create_trace_edges): Likewise.
1076 * except.c (sjlj_emit_dispatch_table): Likewise.
1077 * function.h (struct expr_status): make x_forced_labels a vector.
1078 * jump.c (rebuild_jump_labels_1): Adjust.
1079 * reload1.c (set_initial_label_offsets): Likewise.
1080 * stmt.c (force_label_rtx): Likewise.
1081 (expand_label): Likewise.
1083 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1085 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
1087 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
1089 PR tree-optimization/71077
1090 PR tree-optimization/68542
1091 * fold-const.c (fold_relational_const): Fix folding of
1092 VECTOR_CST comparisons that have a scalar boolean result type.
1093 (selftest::test_vector_folding): New static function.
1094 (selftest::fold_const_c_tests): Call it.
1096 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
1098 * doc/extend.texi (SPU Built-in Functions): Remove stale
1099 references to material formerly at IBM and Sony.
1101 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
1104 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
1106 2016-08-26 David Malcolm <dmalcolm@redhat.com>
1108 * diagnostic-show-locus.c
1109 (selftest::test_fixit_consolidation): New function.
1110 (selftest::diagnostic_show_locus_c_tests): Call it.
1111 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
1112 constructor based on source_range.
1114 2016-08-26 David Malcolm <dmalcolm@redhat.com>
1116 * diagnostic-color.c (color_dict): Add "fixit-insert" and
1118 (parse_gcc_colors): Update description of default GCC_COLORS.
1119 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
1120 (colorizer::set_fixit_insert): New method.
1121 (colorizer::set_fixit_delete): New method.
1122 (colorizer::get_color_by_name): New method.
1123 (colorizer::STATE_FIXIT_INSERT): New constant.
1124 (colorizer::STATE_FIXIT_DELETE): New constant.
1125 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
1126 fields in favor of new field "m_stop_color". Add fields
1127 "m_fixit_insert" and "m_fixit_delete".
1128 (colorizer::colorizer): Update for above changes. Replace
1129 colorize_start calls with calls to get_color_by_name.
1130 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
1131 STATE_FIXIT_DELETE. Update for field renamings.
1132 (colorizer::finish_state): Simplify by using m_stop_color,
1133 rather than multiple identical "*_ce" fields.
1134 (colorizer::get_color_by_name): New method.
1135 (layout::print_any_fixits): Print insertions and replacements
1136 using the "fixit-insert" color, and deletions using the
1137 "fixit-delete" color.
1138 * doc/invoke.texi (-fdiagnostics-color): Update description of
1139 default GCC_COLORS, and of the supported capabilities.
1141 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
1143 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
1144 current_function_static_stack_size variable with the static
1145 stack frame size of the current function when
1146 flag_stack_usage_info is enabled.
1148 2016-08-26 Nathan Sidwell <nathan@acm.org>
1150 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
1151 assignment inside if condition.
1153 2016-08-26 Richard Biener <rguenther@suse.de>
1155 PR tree-optimization/69047
1156 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
1157 extracts similar to what FRE does.
1158 (non_rewritable_mem_ref_base): Likewise.
1160 2016-08-26 Joseph Myers <joseph@codesourcery.com>
1162 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
1163 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
1164 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1165 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1166 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
1168 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1169 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1170 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1171 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
1172 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
1174 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1177 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
1178 reservation duration to 15 cycles.
1179 (cortex_a8_vfp_macs): Likewise.
1180 (cortex_a8_vfp_macd): Likewise.
1181 (cortex_a8_vfp_divs): Likewise.
1182 (cortex_a8_vfp_divd): Likewise.
1184 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1186 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
1187 (aarch_macro_fusion_pair_p): Use above to avoid early return.
1189 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1190 Martin Jambhor <mjambor@suse.cz>
1192 * common.opt: New option -fipa-bit-cp.
1193 * doc/invoke.texi: Document -fipa-bit-cp.
1194 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
1195 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
1196 * tree-ssa-ccp.h: New header file.
1197 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
1198 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
1199 Replace all occurences of tree parameter by two new params: signop, int.
1200 (bit_value_unop_1): Change to bit_value_unop and export it.
1201 Replace all occurences of tree parameter by two new params: signop,
1203 (bit_value_binop): Change call from bit_value_binop_1 to
1205 (bit_value_assume_aligned): Likewise.
1206 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
1207 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
1209 (ccp_finalize): Skip processing if val->mask == 0.
1210 * ipa-cp.c: Include tree-ssa-ccp.h
1211 (ipcp_bits_lattice): New class.
1212 (ipcp_param_lattice (bits_lattice): New member.
1213 (print_all_lattices): Call ipcp_bits_lattice::print.
1214 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
1215 (initialize_node_lattices): Likewise.
1216 (propagate_bits_accross_jump_function): New function.
1217 (propagate_constants_accross_call): Call
1218 propagate_bits_accross_jump_function.
1219 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
1220 (ipcp_store_bits_results): New function.
1221 (ipcp_driver): Call ipcp_store_bits_results.
1222 * ipa-prop.h (ipa_bits): New struct.
1223 (ipa_jump_func): Add new member bits of type ipa_bits.
1224 (ipa_param_descriptor): Change decl to decl_or_type.
1225 (ipa_get_param): Change decl to decl_or_type and assert on
1227 (ipa_get_type): New function.
1228 (ipcp_transformation_summary): New member bits.
1229 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
1230 (ipa_populate_param_decls): Likewise.
1231 (ipa_dump_param): Likewise.
1232 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
1234 (ipa_set_jf_unknown): Set ipa_bits::known to false.
1235 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
1237 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
1238 (ipa_write_jump_function): Add streaming for ipa_bits.
1239 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
1240 (write_ipcp_transformation_info): Add streaming for ipa_bits
1242 (read_ipcp_transfomration_info): Add support for reading streamed
1244 (ipcp_update_bits): New function.
1245 (ipcp_transform_function): Call ipcp_update_bits.
1247 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
1249 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
1250 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
1252 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
1254 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
1256 2016-08-25 Richard Biener <rguenther@suse.de>
1258 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
1259 Only add locations in late dwarf.
1260 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
1261 (dwarf2out_early_finish): But do it here.
1263 2016-08-24 Michael Collison <michael.collison@linaro.org>
1264 Michael Collison <michael.collison@arm.com>
1266 * config/arm/arm-modes.def: Add new condition code mode CC_V
1267 to represent the overflow bit.
1268 * config/arm/arm.c (maybe_get_arm_condition_code):
1269 Add support for CC_Vmode.
1270 (arm_gen_unlikely_cbranch): New function to generate common
1271 rtl conditional branches for overflow patterns.
1272 * config/arm/arm-protos.h: Add prototype for
1273 arm_gen_unlikely_cbranch.
1274 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
1275 addsi3_compareV_upper): New patterns to support signed
1276 builtin overflow add operations.
1277 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
1278 New patterns to support unsigned builtin add overflow operations.
1279 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
1280 builtin overflow subtract operations,
1281 (usubv<mode>4): New patterns to support unsigned builtin subtract
1282 overflow operations.
1283 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
1284 to support builtin overflow negate operations.
1286 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1289 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1291 * explow.c (get_dynamic_stack_size): Take known alignment of stack
1292 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
1295 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
1297 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
1298 MULTILIB_OPTIONS should be used. Small wording fixes.
1299 * genmultilib: Memorize set of all option combinations in
1300 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
1301 found in MULTILIB_OPTIONS by checking if option set is listed in
1302 combination_space. Output new and existing error message to stderr.
1304 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
1306 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
1307 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
1308 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
1309 (MULTILIB_REUSE): Remove reuse rules for option set including
1310 -mfpu=fp-armv8 and -mfpu=vfpv4
1312 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
1314 * config/arm/t-rtems: Add vfp multilib.
1316 2016-08-23 Ian Lance Taylor <iant@golang.org>
1318 * config/s390/s390.c (s390_asm_file_start): Call
1321 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
1323 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
1324 initialization of all 0's to the 0 constant, instead of directly
1325 generating XOR. Add support for V4SImode vector initialization on
1326 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
1327 initialization. Change variables used in V4SFmode vector
1328 intialization. For V4SFmode vector splat on ISA 3.0, make sure
1329 any memory addresses are in index form. Add support for using
1330 VSPLTH/VSPLTB to initialize vector short and vector char vectors
1331 with all of the same element.
1332 (regno_or_subregno): New helper function to return a register
1333 number for either REG or SUBREG.
1334 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
1335 Use regno_or_subregno where possible.
1336 (rs6000_split_v4si_init_di_reg): New helper function to build up a
1337 DImode value from two SImode values in order to generate V4SImode
1338 vector initialization on 64-bit systems with direct move.
1339 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
1341 (rtx_is_swappable_p): V4SImode vector initialization insn is not
1343 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
1345 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
1346 attributes to initialize V8HImode and V16QImode vectors with the
1348 (VSX_SPLAT_COUNT): Likewise.
1349 (VSX_SPLAT_SUFFIX): Likewise.
1350 (UNSPEC_VSX_VEC_INIT): New unspec.
1351 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
1352 Allow SFmode values to come from Altivec registers.
1353 (vsx_init_v4si): New insn/split for V4SImode vector initialization
1354 on 64-bit systems with direct move.
1355 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
1356 vector initializations, to allow V4SImode vector initializations
1357 on 64-bit systems with direct move.
1358 (vsx_splat_v4si): Likewise.
1359 (vsx_splat_v4si_di): Likewise.
1360 (vsx_splat_v4sf): Likewise.
1361 (vsx_splat_v4sf_internal): Likewise.
1362 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
1364 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
1365 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
1366 initializing V8HImode and V16QImode vectors with the same
1368 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
1369 optimization if -maltivec=be.
1371 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
1373 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
1374 attribute for alternatives 3 and 4.
1376 2016-08-23 David Malcolm <dmalcolm@redhat.com>
1378 * selftest.c (selftest::assert_str_contains): New function.
1379 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
1380 * selftest.h (selftest::assert_str_contains): New decl.
1381 (ASSERT_STR_CONTAINS): New macro.
1383 2016-08-23 Richard Biener <rguenther@suse.de>
1385 PR tree-optimization/77286
1386 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
1388 (vect_transform_loop): Split exit edges of loop and scalar
1389 loop if required and at the appropriate time.
1391 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1393 * explow.c (get_dynamic_stack_size): Take known alignment of stack
1394 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
1396 Correct a typo in a comment.
1398 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1400 * config/s390/s390.md ("*andc_split"): New splitter for and with
1403 2016-08-23 Richard Biener <rguenther@suse.de>
1405 PR tree-optimization/27336
1406 * tree-vrp.c (infer_value_range): Handle stmts that can throw
1407 by looking for a non-EH edge.
1408 (process_assert_insertions_for): Likewise.
1410 2016-08-23 Richard Biener <rguenther@suse.de>
1413 * statistics.c (statistics_counter_event): Robustify against
1416 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1418 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
1419 for targets amdfam10 and barcelona.
1421 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
1423 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
1424 (zero_extend<mode>di2): Ditto.
1425 (*zero_extend<mode>si2): Ditto.
1426 (*zero_extendqihi2): Ditto.
1428 2016-08-22 Joseph Myers <joseph@codesourcery.com>
1431 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
1432 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
1434 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
1436 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
1437 identical consecutive elements.
1438 [SSA_NAME]: Print the name's def stmt on its own line. When printing
1439 the node's def stmt, avoid printing an unwanted trailing newline by
1440 replacing the call to print_gimple_stmt() with its inlined body and
1441 adjusting it to not set pp_needs_newline and to call pp_flush()
1442 instead of pp_newline_and_flush().
1444 2016-08-22 Joseph Myers <joseph@codesourcery.com>
1446 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
1447 (float32_type_node, float64_type_node, float32x_type_node)
1448 (float128x_type_node): New macros.
1449 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
1450 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
1451 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
1452 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
1453 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
1454 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
1455 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
1456 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
1457 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
1458 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
1459 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
1460 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
1461 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
1462 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
1463 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
1464 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
1465 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
1466 (copysign, fabs, huge_val, inf, nan, nans): Use it.
1467 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
1469 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
1470 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
1471 * doc/extend.texi (Other Builtins): Document these built-in
1473 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
1476 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
1478 * doc/install.texi (Binaries): www.opencsw.org now uses https.
1480 2016-08-22 Richard Biener <rguenther@suse.de>
1482 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
1484 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
1487 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
1488 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
1489 non-SSE2 athlons only, otherwise prefer SSE prefetches.
1491 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1493 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
1494 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
1495 (vrp_visit_switch_stmt): Likewise.
1496 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
1497 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
1498 (vrp_visit_stmt): Use extract_range_from_stmt.
1499 (vrp_visit_phi_node): Use extract_range_from_phi_node.
1501 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1503 * Makefile.in: Add tree-vrp.h to GTFILES.
1504 * gengtype.c (open_base_files): Add tree-vrp.h.
1505 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
1506 * builtins.c: Likewise.
1507 * fold-const.c: Likewise.
1508 * gimple-builder.c: Likewise.
1509 * gimple-laddress.c: Likewise.
1510 * hsa-gen.c: Likewise.
1511 * internal-fn.c: Likewise.
1513 * targhooks.c: Liewise,
1514 * tree-ssa-address.c: Likewise.
1515 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
1516 * tree-vrp.c (struct value_range): Move to tree-vrp.h
1517 * tree-vrp.h: New file.
1519 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1521 PR tree-optimization/61839
1522 * tree-vrp.c (two_valued_val_range_p): New.
1523 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
1524 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
1525 Also Convert VAR BINOP CST where VAR is two-valued to
1526 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
1528 2016-08-19 David Malcolm <dmalcolm@redhat.com>
1530 * diagnostic-show-locus.c
1531 (layout::annotation_line_showed_range_p): New method.
1532 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
1533 Reimplement case fixit_hint::REPLACE to cover removals, and
1534 replacements where the range of the replacement isn't one
1535 of the ranges in the rich_location.
1536 (test_one_liner_fixit_replace): Likewise.
1537 (selftest::test_one_liner_fixit_replace_non_equal_range): New
1539 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
1541 (selftest::test_diagnostic_show_locus_one_liner): Call the new
1543 * diagnostic.c (print_parseable_fixits): Remove case
1546 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
1549 * config/i386/i386.c (ix86_option_override_internal): Remove
1550 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
1551 Enable SSE prefetch also for TARGET_PREFETCHWT1.
1552 Do not try to enable TARGET_PRFCHW ISA flag here.
1553 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
1554 Rewrite expander function body.
1555 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
1557 2016-08-19 Joseph Myers <joseph@codesourcery.com>
1560 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
1561 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
1562 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
1563 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
1564 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
1565 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
1566 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
1567 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
1568 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
1570 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
1572 (struct floatn_type_info): New structure type.
1573 (floatn_nx_types): New variable declaration.
1574 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
1575 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
1576 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
1577 * tree.c (floatn_nx_types): New variable.
1578 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
1579 corresponding complex types.
1580 * target.def (floatn_mode): New hook.
1581 * targhooks.c: Include "real.h".
1582 (default_floatn_mode): New function.
1583 * targhooks.h (default_floatn_mode): New prototype.
1584 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
1586 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
1587 effective-target and dg-add-options keywords.
1588 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
1589 Document new effective-target keywords.
1590 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
1591 * doc/tm.texi: Regenerate.
1592 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
1593 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
1594 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
1596 * real.h (struct real_format): Add field ieee_bits.
1597 * real.c (ieee_single_format, mips_single_format)
1598 (motorola_single_format, spu_single_format, ieee_double_format)
1599 (mips_double_format, motorola_double_format)
1600 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
1601 (ieee_extended_intel_128_format)
1602 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
1603 (mips_extended_format, ieee_quad_format, mips_quad_format)
1604 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
1605 (decimal_double_format, decimal_quad_format, ieee_half_format)
1606 (arm_half_format, real_internal_format: Initialize ieee_bits
1608 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
1609 float128_type_node. Set float80_type_node to float64x_type_node
1610 if appropriate and long_double_type_node not appropriate.
1611 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
1612 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
1613 Initialize ieee_bits field.
1614 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
1615 (rs6000_init_builtins): Set ieee128_float_type_node to
1617 (rs6000_floatn_mode): New function.
1619 2016-08-19 Jakub Jelinek <jakub@redhat.com>
1621 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
1622 _rdseed64_step): Uglify argument names and/or local variable names
1623 in inline functions.
1624 * config/i386/rtmintrin.h (_xabort): Likewise.
1625 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
1626 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
1627 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
1628 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
1629 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
1630 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
1631 _mm_maskz_ternarylogic_epi32): Likewise.
1632 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
1633 __lwpins32, __lwpins64): Likewise.
1634 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
1635 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
1636 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
1637 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
1638 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
1639 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
1640 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
1641 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
1642 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
1643 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
1644 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
1645 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
1646 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
1647 _mm256_mask_i64gather_epi32): Likewise.
1648 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
1649 * config/i386/ia32intrin.h (__writeeflags): Likewise.
1650 * config/i386/pkuintrin.h (_wrpkru): Likewise.
1651 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
1652 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
1653 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
1654 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
1655 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
1656 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
1657 _mm512_mask_prefetch_i64scatter_ps): Likewise.
1658 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
1659 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
1660 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
1661 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
1662 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
1663 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
1664 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
1665 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
1667 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
1669 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
1670 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
1672 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
1673 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
1675 (_rdpkru_u32): Add space after function name.
1677 * config/i386/t-i386 (i386-c.o): Don't depend on
1678 i386-builtin-types.inc.
1679 (i386.o): Depend on i386-builtin-types.inc.
1681 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
1684 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
1685 Use const_vec_duplicate to check for duplicated elements.
1687 2016-08-19 Richard Biener <rguenther@suse.de>
1689 PR tree-optimization/77290
1690 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1691 Fix flag_tree_parallelize_loops check.
1693 2016-08-19 Richard Biener <rguenther@suse.de>
1695 * match.pd (x | 0 -> x): Add.
1697 2016-08-19 Richard Biener <rguenther@suse.de>
1699 PR tree-optimization/77286
1700 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
1701 Deal with virtual PHIs being out-of-order.
1703 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1705 * doc/invoke.texi (fverbose-asm): Note that source code lines
1706 are emitted, and provide an example.
1707 * final.c (asm_show_source): New function.
1708 (final_scan_insn): Call asm_show_source.
1710 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1712 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
1713 param with diagnostic_kind.
1714 (class colorizer): Similarly replace field m_diagnostic with
1716 (colorizer::colorizer): Replace diagnostic
1717 param with diagnostic_kind.
1718 (colorizer::begin_state): Update for above field change.
1719 (layout::layout): Replace diagnostic param with rich_location *
1720 and diagnostic_kind.
1721 (diagnostic_show_locus): Replace diagnostic param with richloc
1722 and diagnostic_kind.
1723 (class selftest::test_diagnostic_context): New class.
1724 (selftest::test_diagnostic_show_locus_unknown_location): New
1726 (selftest::test_one_liner_simple_caret): New function.
1727 (selftest::test_one_liner_caret_and_range): New function.
1728 (selftest::test_one_liner_multiple_carets_and_ranges): New
1730 (selftest::test_one_liner_fixit_remove): New function.
1731 (selftest::test_one_liner_fixit_replace): New function.
1732 (selftest::test_diagnostic_show_locus_one_liner): New function.
1733 (selftest::diagnostic_show_locus_c_tests): Call the new test
1735 * diagnostic.c (diagnostic_initialize): Initialize
1736 colorize_source_p, show_ruler_p and parseable_fixits_p.
1737 (default_diagnostic_finalizer): Update for change to
1738 diagnostic_show_locus.
1739 (diagnostic_append_note): Likewise.
1740 * diagnostic.h (diagnostic_show_locus): Replace
1741 const diagnostic_info * param with location * and diagnostic_t.
1743 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1745 * input.c (saved_line_table): New global.
1746 (class selftest::temp_line_table): Rename to line_table_test and
1747 move declaration to selftest.h, and drop field m_old_line_table.
1748 (selftest::temp_line_table::temp_line_table): Rename ctor to...
1749 (selftest::line_table_test::line_table_test): ...this. Add a
1750 default ctor. Store current value of line_table within
1752 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
1753 (selftest::line_table_test::~line_table_test): ...this, and
1754 restore line_table from the saved_line_table, rather than
1756 (selftest::test_accessing_ordinary_linemaps): Update for above
1758 (selftest::test_lexer): Likewise.
1759 (struct selftest::lexer_test): Likewise.
1760 (selftest::lexer_test::lexer_test): Likewise.
1761 (selftest::input_c_tests): Move the looping over test cases from
1763 (selftest::for_each_line_table_case): New function.
1764 * input.h (saved_line_table): New decl.
1765 * selftest.h (struct selftest::line_table_case): New forward decl.
1766 (class selftest::line_table_test): New class, moved here from
1767 selftest::temp_line_table in input.c, and renamed.
1768 (selftest::for_each_line_table_case): New decl.
1770 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
1773 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
1775 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
1778 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
1779 enclosing parallel construct for reduction variables on OpenACC loop
1782 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
1784 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
1785 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
1787 (function_to_dwarf_procedure): Update comment.
1789 2016-08-18 David Malcolm <dmalcolm@redhat.com>
1791 * input.c (diagnostics_file_cache_forcibly_evict_file): New
1793 * input.h (diagnostics_file_cache_forcibly_evict_file): New
1795 * selftest.c (selftest::temp_source_file::~temp_source_file):
1796 Evict m_filename from the diagnostic file cache.
1798 2016-08-18 Richard Biener <rguenther@suse.de>
1800 * tree-pass.h (make_pass_materialize_all_clones): Declare.
1801 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
1802 make_pass_materialize_all_clones): New simple IPA pass encapsulating
1803 clone materialization.
1804 * passes.def (all_late_ipa_passes): Start with
1805 pass_materialize_all_clones.
1806 * cgraphunit.c (symbol_table::compile): Remove call to
1807 materialize_all_clones.
1808 * tree-into-ssa.c: Include statistics.h.
1809 (update_ssa): Count number of times we do incremental/rewrite
1812 2016-08-18 Richard Biener <rguenther@suse.de>
1814 PR tree-optimization/77282
1815 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1816 When doing auto-parallelizing also prevent use of PHIs that
1817 carry dependences across loop backedges.
1819 2016-08-18 Tamar Christina <tamar.christina@arm.com>
1820 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1822 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
1824 2016-08-18 Richard Biener <rguenther@suse.de>
1826 * ssa-iterators.h (ssa_vuse_operand): New inline.
1827 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
1828 (predicate_all_scalar_phis): Use remove_phi_node to remove
1829 phi nodes predicated. Delay removing virtual PHIs.
1830 (predicate_mem_writes): Update virtual operands.
1831 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
1832 (tree_if_conversion): Do not rewrite virtual SSA form.
1833 * tree-phinodes.c (release_phi_node): Make static.
1834 * tree-phinodes.h (release_phi_node): Remove.
1836 2016-08-18 Jakub Jelinek <jakub@redhat.com>
1838 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
1839 codes that appear in bdesc_* arrays, instead include i386-builtin.def
1840 twice to define those.
1841 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
1842 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
1843 bdesc_multi_arg): Define by including i386-builtin.def the third time.
1844 * config/i386/i386-builtin.def: New file.
1846 2016-08-17 David Malcolm <dmalcolm@redhat.com>
1848 * input.c (get_source_range_for_char): Rename to...
1849 (selftest::get_source_range_for_char): ...this, and move within
1850 the #if CHECKING_P guard.
1851 (get_num_source_ranges_for_substring): Rename to...
1852 (selftest::get_num_source_ranges_for_substring): ...this, move
1853 within the #if CHECKING_P guard, and make static.
1854 (selftest::assert_num_substring_ranges): Initialize
1857 2016-08-18 Alan Modra <amodra@gmail.com>
1859 PR rtl-optimization/72771
1860 * reload.c (find_reloads): Don't assume that a subreg mem is OK
1861 when find_reloads_toplev returns address_reloaded==-1.
1862 (alternative_allows_const_pool_ref): Update comment.
1864 2015-08-17 Alan Hayward <alan.hayward@arm.com>
1866 PR tree-optimization/71752
1867 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
1868 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
1870 2016-08-17 Jakub Jelinek <jakub@redhat.com>
1872 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
1873 instead of testing ECF_NORETURN bit in gimple_call_flags.
1874 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
1875 * predict.c (tree_bb_level_predictions): Likewise.
1876 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
1879 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
1880 turning a call into __builtin_unreachable-like noreturn call, adjust
1881 gimple_call_set_fntype.
1882 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
1883 gimple_call_fntype has void return type.
1885 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
1887 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
1888 maybe_lookup_decl, to handle nested acc loop directives.
1890 2016-08-17 Richard Biener <rguenther@suse.de>
1892 PR tree-optimization/76490
1893 * tree-vrp.c (update_value_range): Preserve overflow infinities
1894 when intersecting with ranges from get_range_info.
1895 (operand_less_p): Handle overflow infinities correctly.
1896 (value_range_constant_singleton): Use vrp_operand_equal_p
1897 to handle overflow max/min correctly.
1898 (vrp_valueize): Likewise.
1899 (union_ranges): Likewise.
1900 (intersect_ranges): Likewise.
1901 (vrp_visit_phi_node): Improve iteration limitation to only
1902 apply when we'll possibly re-visit the PHI via a changed argument
1905 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
1907 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
1908 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
1909 rather than those that should not be built.
1911 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
1914 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
1916 2016-08-17 Richard Biener <rguenther@suse.de>
1918 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
1919 (verify_vssa): New function verifying virtual SSA form.
1920 (verify_ssa): Call it.
1921 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
1922 Do not apply loop-closed SSA handling to virtuals.
1923 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
1924 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
1925 when rewriting their symbol.
1926 (prepare_def_site_for): Likewise.
1927 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
1928 operands of moved stmts.
1930 2016-08-17 Richard Biener <rguenther@suse.de>
1932 PR tree-optimization/23855
1933 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
1934 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
1935 find guards to hoist. Do not update SSA form but rewrite virtuals
1936 into loop closed SSA.
1937 (find_loop_guard): Adjust to skip already hoisted guards. Do
1938 not mark virtuals for renaming or update SSA form.
1940 2016-08-17 Martin Liska <mliska@suse.cz>
1942 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
1943 a LONG_LONG_TYPE_SIZE comparison.
1944 * gcov-io.h: Remove macro definitions.
1945 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
1946 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
1949 2016-08-16 Jakub Jelinek <jakub@redhat.com>
1951 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
1952 that builtins not mentioned in bdesc_* arrays come first, then
1953 the ones mentioned in bdesc_* arrays in the order they appear in
1954 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
1955 IX86_BUILTIN__BDESC_*_LAST enumerator.
1956 (bdesc_mpx): Fix up a comment typo.
1957 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
1958 __builtin_ia32_vpcomneu[bwdq] builtins.
1959 (BDESC_VERIFY, BDESC_VERIFYS): Define.
1960 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
1961 enum ix86_builtins ordering.
1962 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
1963 for direct bdesc_* array member access instead of searching all the
1964 arrays until an fcode match is found.
1966 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
1968 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
1969 pattern as define_insn_and_split. Split insn before reload to
1971 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
1972 <shift_insn><mode>3_1.
1973 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
1974 <rotate_insn><mode>3_1.
1976 2016-08-16 David Malcolm <dmalcolm@redhat.com>
1979 * input.c (get_source_range_for_substring): Rename to...
1980 (get_source_location_for_substring): ...this, adding param
1981 "caret_idx", and converting output param from source_range * to
1983 (get_source_range_for_char): New function.
1984 (get_num_source_ranges_for_substring): Update comment to reflect
1986 (assert_char_at_range): Update to use get_source_range_for_char
1987 rather than get_source_range_for_substring.
1988 (test_lexer_string_locations_concatenation_2): Likewise.
1989 * substring-locations.h (get_source_range_for_substring): Rename
1991 (get_source_location_for_substring): ...this, and adding param
1992 "caret_idx", and converting output param from source_range * to
1995 2016-08-16 David Malcolm <dmalcolm@redhat.com>
1997 * input.c (class selftest::temp_source_file): Move to
1999 (selftest::temp_source_file::temp_source_file): Move to
2001 (selftest::temp_source_file::~temp_source_file): Likewise.
2002 * selftest.c (selftest::temp_source_file::temp_source_file): Move
2004 (selftest::temp_source_file::~temp_source_file): Likewise.
2005 * selftest.h (class selftest::temp_source_file): Move here from
2008 2016-08-16 Jakub Jelinek <jakub@redhat.com>
2011 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
2012 inlining, add cgraph edge for the added __builtin_unreachable call.
2015 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
2016 only cast it to SHWI for the final comparison.
2018 2016-08-16 Martin Liska <mliska@suse.cz>
2020 PR gcov-profile/36412
2021 * doc/gcov.texi: Document --hash-filenames(-x).
2022 * gcov.c (print_usage): Add the option.
2023 (process_args): Process the option, sort options alphabetically.
2024 (md5sum_to_hex): New function.
2025 (make_gcov_file_name): Do the md5sum and append it to a
2028 2016-08-16 Bin Cheng <bin.cheng@arm.com>
2030 PR tree-optimization/69848
2031 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
2032 and swtich operands to avoid additional NOT instruction.
2033 (vcond<v_cmp_mixed><mode>): Ditto.
2034 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
2036 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
2038 * doc/install.texi (*-*-solaris2*): Adjust latest change.
2040 2016-08-16 Richard Biener <rguenther@suse.de>
2042 PR tree-optimization/76783
2043 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
2044 BB visited flags at start.
2046 2016-08-16 Bin Cheng <bin.cheng@arm.com>
2048 PR tree-optimization/72817
2049 PR tree-optimization/73450
2050 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
2051 multiple_of_p for adjusted IV.base.
2053 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
2056 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
2057 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
2058 for !flag_finite_math_only or flag_signed_zeros.
2059 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
2060 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
2061 depend on flag_finite_math_only.
2062 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
2064 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
2065 (*ieee_smin<mode>3): Ditto.
2066 (*ieee_smax<mode>3): Ditto.
2067 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
2068 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
2070 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
2071 depend on flag_finite_math_only.
2072 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
2073 (*mmx_<code>v2sf3): Remove.
2074 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
2075 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
2076 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
2078 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
2080 PR rtl-optimization/73650
2081 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
2082 it is not a simple move.
2084 2016-08-15 Martin Liska <mliska@suse.cz>
2087 * gcc.c (do_spec_1): Call save_string with the right size.
2088 (save_string): Do an assert about string we copy.
2090 2016-08-15 Richard Biener <rguenther@suse.de>
2092 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
2093 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
2095 (pass_data_stv): Likewise.
2097 2016-08-15 Richard Biener <rguenther@suse.de>
2099 PR tree-optimization/73434
2100 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
2101 TBAA info on the base when forwarding a non-invariant address.
2103 2016-08-15 Jakub Jelinek <jakub@redhat.com>
2105 * dwarf2out.c (struct checksum_attributes): Add
2106 at_string_length_bit_size and at_string_length_byte_size fields.
2107 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
2108 and DW_AT_string_length_byte_size.
2109 (die_checksum_ordered): Handle at_string_length_bit_size and
2110 at_string_length_byte_size.
2111 (gen_array_type_die): For dwarf_version >= 5 emit
2112 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
2113 (adjust_string_types): For dwarf_version >= 5 remove
2114 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
2115 (resolve_addr): Likewise.
2118 * dwarf2out.c (string_types): New variable.
2119 (gen_array_type_die): Change early_dwarf handling of
2120 DW_AT_string_length, create DW_OP_call4 referencing the
2121 length var temporarily. Handle parameters that are pointers
2123 (adjust_string_types): New function.
2124 (gen_subprogram_die): Temporarily set string_types to local var,
2125 call adjust_string_types if needed.
2126 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
2128 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
2130 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
2132 * doc/install.texi (*-*-solaris2*): Fix version number and document
2133 requirement on GNU make for building libjava with the Solaris linker.
2135 2016-08-15 Martin Liska <mliska@suse.cz>
2136 Jakub Jelinek <jakub@redhat.com>
2138 PR tree-optimization/72824
2139 * tree-loop-distribution.c (const_with_all_bytes_same)
2140 <case VECTOR_CST>: Fix a typo.
2142 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
2145 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
2146 Renamed from _mm512_undefined_si512.
2147 (_mm_undefined_si512): New definition.
2149 2016-08-13 Richard Biener <rguenther@suse.de>
2151 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
2152 into PHIs and update the lattice for its def.
2154 2016-08-12 Jakub Jelinek <jakub@redhat.com>
2157 * ubsan.c (instrument_si_overflow): Pass true instead of false
2159 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
2160 of bbs. Return TODO_cleanup_cfg if any returned true.
2162 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2164 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
2165 ISA 3.0 MTVSRDD instruction.
2166 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
2169 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
2171 PR tree-optimization/71083
2172 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
2173 bitfield access when possible.
2175 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
2178 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
2179 sign-changing cast from a shorter unsigned type to a wider
2182 2016-08-12 Jakub Jelinek <jakub@redhat.com>
2184 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
2185 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
2186 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
2188 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2190 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
2191 Correct costs for vec_construct.
2193 2016-08-12 Bin Cheng <bin.cheng@arm.com>
2195 PR tree-optimization/69848
2196 * tree-vectorizer.h (enum vect_def_type): New condition reduction
2197 type CONST_COND_REDUCTION.
2198 * tree-vect-loop.c (vectorizable_reduction): Support new condition
2199 reudction type CONST_COND_REDUCTION.
2201 2016-08-12 Richard Biener <rguenther@suse.de>
2203 PR tree-optimization/57326
2204 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
2205 returning an SSA name.
2206 (phi_translate_1): When fully_constant_expression returns a NAME
2207 make sure we have a leader for it.
2209 2016-08-12 Martin Liska <mliska@suse.cz>
2210 Adam Fineman <afineman@afineman.com>
2212 * gcov.c (process_file): Create .gcov file when .gcda
2215 2016-08-12 Marek Polacek <polacek@redhat.com>
2218 * alias.c (find_base_value): Adjust fall through comment.
2219 * cfgexpand.c (expand_debug_expr): Likewise.
2220 * combine.c (find_split_point): Likewise.
2221 (expand_compound_operation): Likewise. Add FALLTHRU.
2222 (make_compound_operation): Adjust fall through comment.
2223 (canon_reg_for_combine): Add FALLTHRU.
2224 (force_to_mode): Adjust fall through comment.
2225 (simplify_shift_const_1): Likewise.
2226 (simplify_comparison): Likewise.
2227 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
2229 * config/aarch64/predicates.md: Likewise.
2230 * config/i386/i386.c (function_arg_advance_32): Likewise.
2231 (ix86_gimplify_va_arg): Likewise.
2232 (print_reg): Likewise.
2233 (ix86_print_operand): Likewise.
2234 (ix86_build_const_vector): Likewise.
2235 (ix86_expand_branch): Likewise.
2236 (ix86_sched_init_global): Adjust fall through comment.
2237 (ix86_expand_args_builtin): Add FALLTHRU.
2238 (ix86_expand_builtin): Likewise.
2239 (ix86_expand_vector_init_one_var): Likewise.
2240 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
2241 (rs6000_adjust_cost): Likewise.
2242 (insn_must_be_first_in_group): Likewise.
2243 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
2244 * dbxout.c (dbxout_symbol): Adjust fall through comment.
2245 * df-scan.c (df_uses_record): Likewise.
2246 * dojump.c (do_jump): Add FALLTHRU.
2247 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
2249 (resolve_args_picking_1): Adjust fall through comment.
2250 (loc_list_from_tree_1): Likewise.
2251 * expmed.c (make_tree): Likewise.
2252 * expr.c (expand_expr_real_2): Add FALLTHRU.
2253 (expand_expr_real_1): Likewise. Adjust fall through comment.
2254 * fold-const.c (const_binop): Adjust fall through comment.
2255 (fold_truth_not_expr): Likewise.
2256 (fold_cond_expr_with_comparison): Add FALLTHRU.
2257 (fold_binary_loc): Likewise.
2258 (contains_label_1): Adjust fall through comment.
2259 (multiple_of_p): Likewise.
2260 * gcov-tool.c (process_args): Add FALLTHRU.
2261 * genattrtab.c (check_attr_test): Likewise.
2262 (write_test_expr): Likewise.
2263 * genconfig.c (walk_insn_part): Likewise.
2264 * genpreds.c (validate_exp): Adjust fall through comment.
2265 (needs_variable): Likewise.
2266 * gensupport.c (get_alternatives_number): Add FALLTHRU.
2267 (subst_dup): Likewise.
2268 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
2269 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
2270 (gimplify_scan_omp_clauses): Add FALLTHRU.
2271 (goa_stabilize_expr): Likewise.
2272 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
2274 * hsa-gen.c (get_address_from_value): Likewise.
2275 * ipa-icf.c (sem_function::hash_stmt): Likewise.
2276 * ira.c (ira_setup_alts): Add FALLTHRU.
2277 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
2279 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
2280 * opts.c (common_handle_option): Likewise.
2281 * read-rtl.c (read_rtx_code): Likewise.
2282 * real.c (round_for_format): Likewise.
2283 * recog.c (asm_operand_ok): Likewise.
2284 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
2285 * reload1.c (set_label_offsets): Likewise.
2286 (eliminate_regs_1): Likewise.
2287 (reload_reg_reaches_end_p): Likewise.
2288 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
2289 (rtx_cost): Likewise.
2290 * sched-rgn.c (is_exception_free): Likewise.
2291 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
2292 * stor-layout.c (int_mode_for_mode): Likewise.
2293 * toplev.c (print_to_asm_out_file): Likewise.
2294 (print_to_stderr): Likewise.
2295 * tree-cfg.c (gimple_verify_flow_info): Likewise.
2296 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
2297 (chrec_fold_multiply): Likewise.
2298 (evolution_function_is_invariant_rec_p): Likewise.
2299 (for_each_scev_op): Likewise.
2300 * tree-data-ref.c (siv_subscript_p): Likewise.
2301 (get_references_in_stmt): Likewise.
2302 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
2303 (substitute_in_expr): Likewise.
2304 (type_cache_hasher::equal): Likewise.
2305 (walk_type_fields): Likewise.
2306 * var-tracking.c (adjust_mems): Add FALLTHRU.
2307 (set_dv_changed): Adjust fall through comment.
2308 * varasm.c (default_function_section): Add FALLTHRU.
2310 2016-08-12 Marek Polacek <polacek@redhat.com>
2313 * tree-complex.c (expand_complex_division): Add missing break.
2315 2016-08-12 Richard Biener <rguenther@suse.de>
2317 * passes.c (execute_todo): Do not push/pop TV_TODO.
2318 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
2319 (execute_one_pass): Likewise.
2320 * common.opt (ftime-report-details): New switch.
2321 * doc/invoke.texi (ftime-report-details): Document.
2322 * timevar.h (timer::print_row): Adjust signature.
2323 (timer::all_zero): New static helper.
2324 (timer::child_map_t): New typedef.
2325 (timer::time_var_def): Add children field.
2326 * timevar.c (timer::named_items::print): Adjust.
2327 (timer::~timer): Free timevar recorded children.
2328 (timer::pop_internal): When -ftime-report-details record
2329 time spent in sub-timevars.
2330 (timer::print_row): Adjust.
2331 (timer::print): Print sub-timevar stats, use all_zero.
2332 * timevar.def (TV_TODO): Remove.
2334 2016-08-12 Richard Biener <rguenther@suse.de>
2336 PR tree-optimization/72851
2337 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
2338 worklists to use bitmaps indexed in execution order.
2339 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
2340 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
2341 (cfg_blocks): Make a bitmap.
2342 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
2344 (cfg_blocks_empty_p): Adjust.
2345 (cfg_blocks_add): Likewise.
2346 (cfg_blocks_get): Likewise.
2347 (add_ssa_edge): Likewise.
2348 (add_control_edge): Likewise.
2349 (simulate_stmt): Likewise.
2350 (process_ssa_edge_worklist): Likewise.
2351 (simulate_block): Likewise.
2352 (ssa_prop_init): Compute PRE order and stmt UIDs.
2353 (ssa_prop_fini): Adjust.
2354 (ssa_propagate): Adjust.
2356 2016-08-12 Richard Biener <rguenther@suse.de>
2358 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
2359 the currently executable edges have fixed ranges. Always
2360 go through update_value_range.
2362 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
2366 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
2367 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
2368 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
2369 (LANG_HOOKS_DECLS): Add it.
2370 * langhooks.h (struct lang_hooks_for_decls): Add
2371 function_decl_defaulted. Const_tree-ify
2372 function_decl_explicit_p and function_decl_deleted_p.
2373 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
2374 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
2375 also at strict DWARF v5.
2378 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
2379 TYPE_QUAL_CONST in reference-typed decls.
2382 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
2383 in DW_OP_pieces, just enough to handle pointers to member
2385 (gen_remaining_tmpl_value_param_die_attribute): Use a location
2386 expression on DWARFv5 if a constant value doesn't work.
2388 2016-08-11 David Malcolm <dmalcolm@redhat.com>
2390 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
2391 * selftest.c (selftest::test_assertions): New function.
2392 (selftest::selftest_c_tests): New function.
2393 * selftest.h (selftest::selftest_c_tests): New declaration.
2395 2016-08-11 Richard Biener <rguenther@suse.de>
2396 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2398 PR rtl-optimization/72855
2399 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
2401 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2404 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
2405 (vsx_store_<mode>): Likewise.
2407 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
2409 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
2410 TImode CONST_WIDE_INT store.
2411 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
2413 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
2415 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
2416 mode if unaligned SSE load and store are optimal.
2418 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
2420 PR tree-optimization/71083
2421 * tree-predcom.c (ref_at_iteration): Correctly align the
2424 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2426 * config/s390/s390-builtin-types.def: Add INT128 types.
2427 * config/s390/s390-builtins.def: Add INT128 variants for the add
2428 sub low-level builtins dealing with TImode.
2429 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
2430 via subreg when expanding a builtin.
2431 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
2432 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
2434 * config/s390/vecintrin.h: Adjust builtin names accordingly.
2435 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
2436 ("vec_addc<mode>", "vec_addc_u128"): Merge to
2437 "vacc<bhfgq>_<mode>".
2438 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
2439 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
2440 ("vec_subc<mode>", "vec_subc_u128"): Merge to
2441 "vscbi<bhfgq>_<mode>".
2442 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
2443 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
2445 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2447 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
2449 2016-08-11 Bin Cheng <bin.cheng@arm.com>
2451 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
2453 (vcond<v_cmp_mixed><mode>): Ditto.
2454 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
2456 2016-08-11 Bin Cheng <bin.cheng@arm.com>
2458 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
2459 variable explicitly, also assert on it before use.
2461 2016-08-11 Richard Biener <rguenther@suse.de>
2463 PR tree-optimization/72772
2464 * cfgloopmanip.c (create_preheader): Use split_edge if there
2465 is a single loop entry, avoiding degenerate PHIs.
2467 2016-08-11 Richard Biener <rguenther@suse.de>
2469 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
2470 unconditional TODO_cleanup_cfg.
2471 (pass_thread_jumps::execute): Initialize loops, perform a CFG
2472 cleanup only if we threaded a jump.
2474 2016-08-11 Alan Modra <amodra@gmail.com>
2477 * lra-constraints.c (simplify_operand_subreg): Allow subreg
2478 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
2479 slow. Emit two reloads for slow mem case, first loading in
2480 fast innermode, then converting to required mode.
2482 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
2484 * config/rs6000/altivec.h (vec_extract_exp): New macro.
2485 (vec_extract_sig): New macro.
2486 (vec_insert_exp): New macro.
2487 (vec_test_data_class): New macro.
2488 (scalar_extract_exp): New macro.
2489 (scalar_extract_sig): New macro.
2490 (scalar_insert_exp): New macro.
2491 (scalar_test_data_class): New macro.
2492 (scalar_test_neg): New macro.
2493 (scalar_cmp_exp_gt): New macro.
2494 (scalar_cmp_exp_lt): New macro.
2495 (scalar_cmp_exp_eq): New macro.
2496 (scalar_cmp_exp_unordered): New macro.
2497 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
2498 to enforce constraint that operand is a 7-bit unsigned literal.
2499 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
2500 for power9 built-ins.
2501 (BU_P9V_VSX_2): Likewise.
2502 (BU_P9V_64BIT_VSX_2): Likewise.
2503 (VSEEDP): Add scalar extract exponent support.
2504 (VSEESP): Add scalar extract signature support.
2505 (VSTDCNDP): Add scalar test negative support.
2506 (VSTDCNSP): Likewise.
2507 (VSIEDP): Add scalar insert exponent support.
2508 (VSCEDPGT): Add scalar compare exponent greater than support.
2509 (VSCEDPLT): Add scalar compare exponent less than support.
2510 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
2511 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
2512 (VSTDCDP): Add scalar test data class support.
2513 (VSTDCSP): Likewise.
2514 (VSEEDP): Add overload support for scalar extract exponent
2516 (VSESDP): Add overload support for scalar extract signature
2518 (VSTDCN): Add overload support for scalar test negative
2520 (VSTDCNDP): Add overload support for scalar test negative
2522 (VSTDCNSP): Add overload support for scalar test negative
2524 (VSIEDP): Add overload support for scalar insert exponent
2526 (VSTDC): Add overload support for scalar test data class
2528 (VSTDCDP): Add overload support for scalar test data class
2530 (VSTDCSP): Add overload support for scalar test data class
2532 (VSCEDPGT): Add overload support for scalar compare exponent
2533 greater than operation.
2534 (VSCEDPLT): Add overload support for scalar compare exponent
2535 less than operation.
2536 (VSCEDPEQ): Add overload support for scalar compare exponent
2537 test-for-equality operation.
2538 (VSCEDPUO): Add overload support for scalar compare exponent
2539 test-for-unordered operation.
2540 (VEEDP): Add vector extract exponent support.
2542 (VESDP): Add vector extract significand support.
2544 (VIEDP): Add vector insert exponent support.
2546 (VTDCDP): Add vector test data class support.
2548 (VES): Add overload support for vector extract significand operation.
2551 (VEE): Add overload support for vector extract exponent operation.
2554 (VTDC): Add overload support for vector test data class operation.
2557 (VIE): Add overload support for vector insert exponent operation.
2560 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
2561 overloaded binary floating point functions.
2562 (altivec_resolve_overloaded_builtin): Improve error messages to
2563 distinguish between functions not supported in the current
2564 compiler configuration and functions that were invoked with an
2565 invalid parameter combination, and include the built-in function
2566 name in both error messages.
2567 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
2569 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
2571 (rs6000_expand_binop_builtin): Add check to enforce that argument
2572 2 of the test data class operations is a 7-bit unsigned literal.
2573 (rs6000_invalid_builtin): Add code to issue an error message if a
2574 built-in function that requires the power9_vector and -m32
2575 command-line options is compiled without these options.
2576 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
2577 (UNSPEC_VSX_SXSIGDP): New value.
2578 (UNSPEC_VSX_SXSIGPDP): New value.
2579 (UNSPEC_VSX_SIEXPDP): New value.
2580 (UNSPEC_VSX_SCMPEXPDP): New value.
2581 (UNSPEC_VSX_STSTDC): New value.
2582 (UNSPEC_VSX_VXEXP): New value.
2583 (UNSPEC_VSX_VXSIG): New value.
2584 (UNSPEC_VSX_VIEXP): New value.
2585 (UNSPEC_VSX_VTSTDC): New value.
2586 (xsxexpdp): New insn for scalar extract exponent.
2587 (xsxsigdp): New insn for scalar extract significand.
2588 (xsiexpdp): New insn for scalar insert exponent.
2589 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
2590 (*xscmpexpdp): New insn for scalar compare exponents.
2591 (xststdc<Fvsx): New expansion for both single- and
2592 double-precision scalar test data class operations.
2593 (xststdcneg<Fvsx>): New expansion for both single- and
2594 double-precision scalar test for negative value operations.
2595 (*xststdc<Fvsx>): New insn for scalar test data class
2597 (xvxexp<VSs>): New insn for single- and double-precision
2598 vector extract exponent operation.
2599 (xvxsig<VSs>): New insn for single- and double-precision
2600 vector extract significand operation.
2601 (xviexp<VSs>): New insn for single- and double-precision
2602 vector insert exponent operation.
2603 (xvtstdc<VSs>): New insn for single- and double-precision
2604 vector test data class operation.
2605 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
2606 built-in functions to represent the Power9 binary floating-point
2607 support instructions.
2609 2016-08-10 bin cheng <bin.cheng@arm.com>
2611 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
2613 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
2614 Renlin Li <renlin.li@arm.com>
2615 Bin Cheng <bin.cheng@arm.com>
2617 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
2618 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
2619 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
2620 (aarch64_vcond_internal<mode><mode>): Delete pattern.
2621 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
2622 (vcond<v_cmp_result><mode>): Ditto.
2623 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
2624 (vcondu<mode><mode>): Ditto.
2625 (vcond<v_cmp_mixed><mode>): New pattern.
2626 (vcondu<mode><v_cmp_mixed>): New pattern.
2627 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
2628 of aarch64_vcond_internal.
2630 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
2631 Renlin Li <renlin.li@arm.com>
2632 Bin Cheng <bin.cheng@arm.com>
2634 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
2635 (vec_cmp<mode><v_cmp_result>): New pattern.
2636 (vec_cmpu<mode><mode>): New pattern.
2637 (vcond_mask_<mode><v_cmp_result>): New pattern.
2639 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
2641 PR tree-optimization/71734
2642 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
2643 REF_LOOP, invoke ref_indep_loop_p_1.
2644 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
2645 to ref_indep_loop_p.
2646 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
2647 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
2648 is inside LOOP, do not cache dpendence value for loops with
2650 (ref_indep_loop_p_2): Delete function.
2651 (can_sm_ref_p): Pass LOOP as additional argument to
2654 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
2657 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
2658 being an offsettable address.
2660 2016-08-10 Martin Liska <mliska@suse.cz>
2662 PR gcov-profile/58306
2663 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
2664 atomic variants of profile update functions.
2666 2016-08-10 Martin Liska <mliska@suse.cz>
2668 Cherry picked (and modified) from google-4_7 branch
2669 2012-12-26 Rong Xu <xur@google.com>
2670 * common.opt (fprofile-update): Add new flag.
2671 * coretypes.h: Define enum profile_update.
2672 * doc/invoke.texi: Document -fprofile-update.
2673 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
2674 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
2675 * tree-profile.c (gimple_init_edge_profiler): Generate
2676 also atomic profiler update.
2677 (gimple_gen_edge_profiler): Likewise.
2679 2016-08-10 David Malcolm <dmalcolm@redhat.com>
2681 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
2682 stack_usage_file to NULL after fclose calls.
2684 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
2687 * reload.c (push_reload): Compute subreg_in_class for
2688 subregs of constants and plus expressions. Remove special
2689 handling of SYMBOL_REFs.
2691 2016-08-10 Alan Modra <amodra@gmail.com>
2694 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
2695 SImode for TARGET_E500_DOUBLE when given SImode.
2697 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
2699 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
2700 unused variable __O.
2702 2016-08-09 Martin Liska <mliska@suse.cz>
2704 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
2705 _gcov_reset to __gcov_reset.
2706 * doc/gcov-tool.texi: Fix typo.
2708 2016-08-09 Martin Liska <mliska@suse.cz>
2710 * value-prof.c (gimple_divmod_values_to_profile): Do not
2711 instrument MOD histogram if a value is not a SSA name.
2713 2016-08-09 Martin Liska <mliska@suse.cz>
2715 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
2718 2016-08-09 Renlin Li <renlin.li@arm.com>
2721 * calls.c (prepare_call_address): Convert funexp to Pmode when
2723 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
2724 (sibcall_value): Likewise.
2726 2016-08-09 Marek Polacek <polacek@redhat.com>
2729 * cselib.c (cselib_expand_value_rtx_1): Add return.
2730 * gengtype.c (dbgprint_count_type_at): Likewise.
2731 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
2732 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
2734 2016-08-09 Martin Jambor <mjambor@suse.cz>
2737 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
2738 if instance is a MEM_REF.
2740 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
2743 * config/i386/i386.md (*movtf_internal): Use
2744 lra_in_progress || reload_completed instead of !can_create_pseudo_p
2745 in the insn constraint.
2746 (*movxf_internal): Ditto.
2747 (*movdf_internal): Ditto.
2748 (*movsf_internal): Ditto.
2750 2016-08-09 Bin Cheng <bin.cheng@arm.com>
2752 PR tree-optimization/72772
2753 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
2756 2016-08-09 Bin Cheng <bin.cheng@arm.com>
2758 PR tree-optimization/72772
2759 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
2761 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
2762 parameter STOP and update calls. Move expand_simple_operations
2763 function call from here...
2764 (simplify_using_initial_conditions): ...to here. Delete parameter
2766 (tree_simplify_using_condition): Delete parameter STOP.
2767 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
2768 simplify_using_initial_conditions.
2770 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
2773 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
2774 Use create_tmp_var_raw instead of create_tmp_var.
2776 2016-08-09 Richard Biener <rguenther@suse.de>
2778 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
2779 Treat same SSA names related.
2781 2016-08-09 Jakub Jelinek <jakub@redhat.com>
2783 PR tree-optimization/72824
2784 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
2785 real_zerop is not negative.
2787 2016-08-09 Richard Biener <rguenther@suse.de>
2789 PR tree-optimization/71802
2790 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
2791 all merge opportunities with the predecessor.
2793 2016-08-09 Richard Biener <rguenther@suse.de>
2796 * ipa-prop.c (ipa_modify_formal_parameters): Build
2797 parameter types with natural alignment also for the
2800 2016-08-08 Andi Kleen <ak@linux.intel.com>
2802 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
2804 2016-08-08 David Malcolm <dmalcolm@redhat.com>
2807 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
2808 do-nothing langhook.
2809 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
2810 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
2811 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
2812 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
2814 2016-08-08 David Malcolm <dmalcolm@redhat.com>
2817 * input.c: Ensure that HAVE_ICONV is defined.
2819 2016-08-08 Jakub Jelinek <jakub@redhat.com>
2822 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
2823 private vars for lastprivate and for linear iterator.
2826 * omp-simd-clone.c: Include varasm.h.
2827 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
2828 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
2829 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
2830 update function name.
2832 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
2834 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
2835 (avr_diagnose_devicespecs_error): Remove.
2836 (avr_devicespecs_file): Remove composing absolute path for specfile
2837 and its verbose info. Remove conditions to check specs-file,
2839 2016-08-08 Jakub Jelinek <jakub@redhat.com>
2841 PR rtl-optimization/72821
2842 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
2843 just return false for them.
2845 2016-08-08 Alan Modra <amodra@gmail.com>
2848 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
2849 toc refs created during reload. Update function comment.
2851 2016-08-08 Alan Modra <amodra@gmail.com>
2854 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
2855 alternatives. Put loads first, then stores, and reg/reg moves
2856 within same class later. Delete attr length.
2858 2016-08-08 Alan Modra <amodra@gmail.com>
2861 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
2862 (mem_operand_ds_form): New predicate.
2863 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
2864 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
2865 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
2866 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
2867 (extendsfdf2_fpr): Replace o constraint with wY.
2869 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
2871 * tree-ssa-threadbackward.c: Include tree-inline.h
2872 (profitable_jump_thread_path): Use estimate_num_insns to estimate
2873 size of copied block; for cold paths reduce duplication.
2874 (find_jump_threads_backwards): Remove redundant tests.
2875 (pass_thread_jumps::gate): Enable for -Os.
2877 2016-08-07 Jakub Jelinek <jakub@redhat.com>
2880 * stor-layout.c (layout_decl): Fix up formatting.
2881 (relayout_decl): Allow DECL to be FIELD_DECL.
2883 2016-08-07 Alan Modra <amodra@gmail.com>
2885 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
2887 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
2889 * data-streamer-in.c (streamer_read_wide_int): New.
2890 (streamer_read_widest_int): Renamed function.
2891 * data-streamer-out.c (streamer_write_wide_int): New
2892 (streamer_write_widest_int): Renamed function.
2893 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
2895 (input_cfg): Call renamed function.
2896 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
2898 (output_cfg): Call renamed function.
2899 * data-streamer.h: Add declarations.
2901 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2903 * tree-ssa-ccp.c (extend_mask): New param sgn.
2904 Remove ORing with wi::mask.
2905 (get_default_value): Adjust call to extend_mask to pass sign.
2906 (evaluate_stmt): Likewise.
2908 2016-08-06 Jakub Jelinek <jakub@redhat.com>
2910 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
2913 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2915 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
2916 transform if operand's type is pointer to function or method.
2918 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
2920 PR tree-optimization/18046
2921 * tree-ssa-threadedge.c: Include cfganal.h.
2922 (simplify_control_statement_condition): If simplifying a
2923 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
2924 with the dominating ASSERT_EXPR before handing it off to VRP.
2925 Mention that a CASE_LABEL_EXPR may be returned.
2926 (thread_around_empty_blocks): Adjust to handle
2927 simplify_control_statement_condition() returning a
2929 (thread_through_normal_block): Likewise.
2930 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
2931 a switch statement by trying to determine which case label
2934 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
2936 PR rtl-optimization/69847
2937 * lra-constraints.c (process_invariant_for_inheritance): Save
2938 pattern instead of src.
2939 (remove_inheritance_pseudos): Use the pattern. Add assert.
2941 2016-08-05 David Malcolm <dmalcolm@redhat.com>
2943 * input.c (string_concat::string_concat): New constructor.
2944 (string_concat_db::string_concat_db): New constructor.
2945 (string_concat_db::record_string_concatenation): New method.
2946 (string_concat_db::get_string_concatenation): New method.
2947 (string_concat_db::get_key_loc): New method.
2948 (class auto_cpp_string_vec): New class.
2949 (get_substring_ranges_for_loc): New function.
2950 (get_source_range_for_substring): New function.
2951 (get_num_source_ranges_for_substring): New function.
2952 (class selftest::lexer_test_options): New class.
2953 (struct selftest::lexer_test): New struct.
2954 (class selftest::ebcdic_execution_charset): New class.
2955 (selftest::ebcdic_execution_charset::s_singleton): New variable.
2956 (selftest::lexer_test::lexer_test): New constructor.
2957 (selftest::lexer_test::~lexer_test): New destructor.
2958 (selftest::lexer_test::get_token): New method.
2959 (selftest::assert_char_at_range): New function.
2960 (ASSERT_CHAR_AT_RANGE): New macro.
2961 (selftest::assert_num_substring_ranges): New function.
2962 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
2963 (selftest::assert_has_no_substring_ranges): New function.
2964 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
2965 (selftest::test_lexer_string_locations_simple): New function.
2966 (selftest::test_lexer_string_locations_ebcdic): New function.
2967 (selftest::test_lexer_string_locations_hex): New function.
2968 (selftest::test_lexer_string_locations_oct): New function.
2969 (selftest::test_lexer_string_locations_letter_escape_1): New function.
2970 (selftest::test_lexer_string_locations_letter_escape_2): New function.
2971 (selftest::test_lexer_string_locations_ucn4): New function.
2972 (selftest::test_lexer_string_locations_ucn8): New function.
2973 (selftest::uint32_from_big_endian): New function.
2974 (selftest::test_lexer_string_locations_wide_string): New function.
2975 (selftest::uint16_from_big_endian): New function.
2976 (selftest::test_lexer_string_locations_string16): New function.
2977 (selftest::test_lexer_string_locations_string32): New function.
2978 (selftest::test_lexer_string_locations_u8): New function.
2979 (selftest::test_lexer_string_locations_utf8_source): New function.
2980 (selftest::test_lexer_string_locations_concatenation_1): New
2982 (selftest::test_lexer_string_locations_concatenation_2): New
2984 (selftest::test_lexer_string_locations_concatenation_3): New
2986 (selftest::test_lexer_string_locations_macro): New function.
2987 (selftest::test_lexer_string_locations_stringified_macro_argument):
2989 (selftest::test_lexer_string_locations_non_string): New function.
2990 (selftest::test_lexer_string_locations_long_line): New function.
2991 (selftest::test_lexer_char_constants): New function.
2992 (selftest::input_c_tests): Call the new test functions once per
2993 case within the line_table test matrix.
2994 * input.h (struct string_concat): New struct.
2995 (struct location_hash): New struct.
2996 (class string_concat_db): New class.
2997 * substring-locations.h: New header.
2999 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
3001 PR tree-optimization/72810
3002 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
3003 the type of the case labels when truncating.
3005 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
3008 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
3009 (aarch64_fp16_ptr_type_node): Likewise.
3010 * config/aarch64/aarch64-simd-builtins.c
3011 (aarch64_fp16_ptr_type_node): Define.
3012 (aarch64_init_fp16_types): New, refactored out of...
3013 (aarch64_init_builtins): ...here, update to call
3014 aarch64_init_fp16_types.
3015 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
3017 (aapcs_vfp_sub_candidate): Likewise.
3019 2016-08-05 Martin Liska <mliska@suse.cz>
3020 Joshua Cranmer <Pidgeot18@gmail.com>
3022 * gcov.c (line_t::has_block): New function.
3023 (enum loop_type): New enum.
3024 (handle_cycle): New function.
3025 (unblock): Likewise.
3026 (circuit): Likewise.
3027 (get_cycles_count): Likewise.
3028 (accumulate_line_counts): Use new loop detection algorithm.
3030 2016-08-05 Martin Liska <mliska@suse.cz>
3032 * gcov.c (output_intermediate_file): Rename
3033 function_info::line_next to next_file_fn.
3034 (process_file): Likewise.
3035 (read_graph_file): Likewise.
3036 (accumulate_line_counts): Likewise.
3037 (output_lines): Likewise.
3039 2016-08-05 Richard Biener <rguenther@suse.de>
3041 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
3042 restriction on threading to a loop header.
3044 2016-08-05 Richard Biener <rguenther@suse.de>
3046 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
3047 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
3048 adjust loop info accordingly.
3050 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
3052 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
3053 before folding call to __builtin_constant_p with parameters to false.
3055 2016-08-05 Alan Modra <amodra@gmail.com>
3057 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
3058 code accidentally committed 2016-05-02 providing class when given
3061 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
3063 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
3064 the case label ranges that partially overlap with OP's value
3067 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
3070 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
3071 Cast builtin function result to __mmask16 instead of __mmask8.
3072 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
3073 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
3074 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
3076 2016-08-04 David Malcolm <dmalcolm@redhat.com>
3078 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
3079 (ASSERT_TRUE_AT): New macro.
3080 (ASSERT_FALSE): Reimplement in terms of...
3081 (ASSERT_FALSE_AT): New macro.
3082 (ASSERT_STREQ_AT): Fix typo in comment.
3084 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
3086 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
3087 labels are exhaustive, designate the label with the widest
3088 range to be the default label.
3090 2016-08-04 Andrew Pinski <apinski@cavium.com>
3092 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
3093 (thunderx_tunings): Use thunderx_vector_cost instead of
3094 generic_vector_cost.
3096 2016-08-04 Martin Liska <mliska@suse.cz>
3098 * gcov.c (main): Fix GNU coding style.
3099 (output_intermediate_file): Likewise.
3100 (process_file): Likewise.
3101 (generate_results): Likewise.
3102 (release_structures): Likewise.
3103 (create_file_names): Likewise.
3104 (find_source): Likewise.
3105 (read_graph_file): Likewise.
3106 (find_exception_blocks): Likewise.
3107 (canonicalize_name): Likewise.
3108 (make_gcov_file_name): Likewise.
3109 (mangle_name): Likewise.
3110 (accumulate_line_counts): Likewise.
3111 (output_branch_count): Likewise.
3112 (read_line): Likewise.
3114 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
3116 PR rtl-optimization/71779
3117 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
3118 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
3119 or if it was truncated.
3121 PR rtl-optimization/70903
3122 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
3124 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
3126 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
3127 accessing SSA_NAME_PTR_INFO.
3129 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
3132 * common/config/avr/avr-common.c (avr_option_optimization_table)
3133 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
3135 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
3138 * config/avr/avr.md: New pattern to work around do_store_flag
3139 generating shift instructions for bit extractions.
3141 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
3143 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
3145 (add_equivalence): Likewise.
3146 (get_value_range): Allocate value range with vrp_value_range_pool.
3147 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
3148 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
3150 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
3152 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
3153 the default for the rs6000 port.
3155 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
3158 * calls.c (special_function_p): Remove special handling of
3159 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
3160 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
3161 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
3163 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
3166 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
3167 Don't stop on regular insns.
3169 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
3171 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
3172 size to DImode boundary.
3173 (nvptx_propagate): Likewise.
3175 2016-08-03 Alan Modra <amodra@gmail.com>
3177 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
3178 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
3179 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
3180 from -mefficient-unaligned-vector. Note that this affects fp too.
3182 2016-08-03 Alan Modra <amodra@gmail.com>
3184 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
3187 2016-08-03 Alan Modra <amodra@gmail.com>
3189 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
3190 to a reg. Localize vars.
3192 2016-08-03 Alan Modra <amodra@gmail.com>
3194 * config/rs6000/rs6000.opt: Remove negatives from help strings
3197 2016-08-03 Alan Modra <amodra@gmail.com>
3199 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
3200 Delete duplicated code.
3202 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
3205 * lra-spills.c (regno_in_use_p): New.
3206 (lra_final_code_change): Use it.
3208 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
3210 PR rtl-optimization/69847
3211 * lra-int.h (struct lra-reg): Use restore_rtx instead of
3213 (lra_rtx_hash): New.
3214 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
3216 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
3217 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
3218 * lra-spills.c (lra_final_code_change): Don't delete insn when the
3219 next insn is USE with the same reg as the current insn source.
3220 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
3222 (lra_constraints_init): Call initiate_invariants.
3223 (lra_constraints_finish): Call finish_invariants.
3224 (struct invariant, invariant_t, invariant_ptr_t): New.
3225 (const_invariant_ptr_t, invariants, invariants_pool): New.
3226 (invariant_table, invariant_hash, invariant_eq_p): New.
3227 (insert_invariant, initiate_invariants, finish_invariants): New.
3228 (clear_invariants, invalid_invariant_regs): New.
3229 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
3230 instead of restore_regno.
3231 (invariant_p, process_invariant_for_inheritance): New.
3232 (inherit_in_ebb): Implement invariant inheritance.
3233 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
3234 (remove_inheritance_pseudos): Implement undoing invariant
3236 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
3237 instead of restore_regno.
3238 * lra-assigns.c (regno_live_length): New.
3239 (reload_pseudo_compare_func): Use regno_live_length.
3240 (assign_by_spills): Use restore_rtx instead of restore_regno.
3241 (lra_assign): Ditto. Initiate regno_live_length.
3243 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
3245 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
3246 __builtin_aarch64_fmindf.
3248 2016-08-02 Bin Cheng <bin.cheng@arm.com>
3250 PR tree-optimization/34114
3251 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
3252 information for more control IVs.
3254 2016-08-02 Bin Cheng <bin.cheng@arm.com>
3256 PR tree-optimization/34114
3257 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
3258 PLUS_EXPR case. Handle SSA_NAME case.
3260 2016-08-02 Tamar Christina <tamar.christina@arm.com>
3262 * config/aarch64/aarch64-simd-builtins.def
3263 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
3264 (__builtin_aarch64_fmaxdf): Likewise.
3265 (__builtin_aarch64_smin_nandf): Likewise.
3266 (__builtin_aarch64_smax_nandf): Likewise.
3267 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
3268 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
3269 (<fmaxmin><mode>3): ...this.
3270 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
3271 (vminnm_f64): Likewise.
3272 (vmin_f64): Likewise.
3273 (vmax_f64): Likewise.
3274 * config/aarch64/iterators.md (FMAXMIN): Merge with...
3275 (FMAXMIN_UNS): ...this.
3276 (fmaxmin): Merged with
3277 (fmaxmin_op): ...this...
3278 (maxmin_uns_op): ...in to this.
3280 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
3282 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3283 Add support for vec_extract on vector float, vector int, vector
3284 short, and vector char vector types.
3285 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
3286 vector float, vector int, vector short, and vector char
3287 optimizations on 64-bit ISA 2.07 systems for both constant and
3288 variable element numbers.
3289 (rs6000_split_vec_extract_var): Likewise.
3290 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
3291 Altivec registers on ISA 2.07 and above.
3292 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
3293 which never was matched due to the split occuring before register
3294 allocation (and the code would not have worked on little endian
3295 systems if it did match). Allow extracts to go to the Altivec
3296 registers if ISA 2.07 (power8). Change from using "" around the
3297 C++ code to using {}'s.
3298 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
3299 vec_extracts when the vector is in memory.
3300 (vsx_extract_v4sf_var): New insn to optimize vector float
3301 vec_extracts when the element number is variable on 64-bit ISA
3303 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
3304 for 64-bit ISA 2.07 as well as ISA 3.0.
3305 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
3306 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
3307 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
3308 optimize vector int, vector short, and vector char vec_extracts
3309 when the vector is in memory.
3310 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
3311 optimize vector int, vector short, and vector char vec_extracts
3312 when the element number is variable.
3314 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
3317 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
3318 does not overlap with other symbol flags.
3320 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
3322 * config/aarch64/aarch64.h (aarch64_frame):
3323 Remove padding0 and hardfp_offset. Add locals_offset,
3324 initial_adjust, callee_adjust, callee_offset and final_adjust.
3325 * config/aarch64/aarch64.c (aarch64_layout_frame):
3326 Remove unused padding0 and hardfp_offset initializations.
3327 Choose frame layout and set frame variables accordingly.
3328 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
3329 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
3330 (aarch64_pop_regs): Likewise.
3331 (aarch64_expand_prologue): Remove all decision code, just emit
3332 prolog according to frame variables.
3333 (aarch64_expand_epilogue): Remove all decision code, just emit
3334 epilog according to frame variables.
3335 (aarch64_initial_elimination_offset): Use offset to local/arg area.
3337 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
3340 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
3341 fix_debug_reg_uses after changing source register mode to
3342 V1TImode if source register is undefined.
3344 2015-08-01 Alan Hayward <alan.hayward@arm.com>
3346 PR tree-optimization/71818
3347 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
3348 with non invariant evolutions
3350 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
3353 * config/avr/avr.md (length) [branch]: Correct insn length
3354 attribute for forward branches.
3356 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
3358 * doc/extend.texi (AVR Built-in Functions): Document
3360 * config/avr/builtins.def (NOPS): New.
3361 * config/avr/avr.c (avr_expand_nops): New static function.
3362 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
3364 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3366 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
3367 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
3370 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
3372 * config/aarch64/aarch64.c (vulcan_tunings): Update
3373 vulcan L1 cache_line_size.
3375 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
3377 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
3378 function that takes a vector memory address, a hard register, an
3379 element number and a temporary base register, and recreates an
3380 address that points to the appropriate element within the vector.
3381 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
3382 (rs6000_split_vec_extract_var): Add support for the target of a
3383 vec_extract with variable element number being a scalar memory
3385 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
3387 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
3388 vsx_extract_<mode>_load insn with a new insn that optimizes
3389 storing either element to a memory location, using scratch
3390 registers to pick apart the vector and reconstruct the address.
3391 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
3392 (vsx_extract_<mode>_store): Rework alternatives to more correctly
3393 support Altivec registers. Add support for ISA 3.0 Altivec d-form
3395 (vsx_extract_<mode>_var): Add support for extracting a variable
3396 element number from memory.
3398 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
3400 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
3401 when testing for compares against constants of the form 0xabab.
3403 2016-07-29 Bin Cheng <bin.cheng@arm.com>
3405 PR tree-optimization/57558
3406 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
3408 (vect_loop_versioning): Support versioning with niter assumptions.
3409 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
3410 (vect_get_loop_niters): New parameter. Reimplement to support
3411 assumptions in loop niter info.
3412 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
3413 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
3414 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
3415 Support loop versioning for niters.
3416 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
3417 (vect_free_loop_info_assumptions): New function.
3418 (vectorize_loops): Free loop niter info for loops with flag
3419 LOOP_F_ASSUMPTIONS set if vectorization failed.
3420 * tree-vectorizer.h (struct _loop_vec_info): New field
3421 num_iters_assumptions.
3422 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
3423 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
3424 (LOOP_REQUIRES_VERSIONING): New macro.
3425 (vect_free_loop_info_assumptions): New decl.
3427 2016-07-29 Bin Cheng <bin.cheng@arm.com>
3429 * cfgloop.h (struct loop): New field constraints.
3430 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
3431 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
3433 * cfgloop.c (alloc_loop): Initialize new field.
3434 * cfgloopmanip.c (copy_loop_info): Copy constraints.
3435 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
3436 Adjust niter analysis wrto loop constraints.
3437 * doc/loop.texi (@node Number of iterations): Add description for loop
3440 2016-07-29 Marek Polacek <polacek@redhat.com>
3443 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
3444 (ix86_expand_round_builtin): Likewise.
3446 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
3447 Georg-Johann Lay <avr@gjlay.de>
3449 PR rtl-optimization/71976
3450 * combine.c (get_last_value): Return 0 if the argument for which
3451 the function is called has a wider mode than the recorded value.
3453 2016-07-29 Marek Polacek <polacek@redhat.com>
3456 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
3457 (altivec_expand_st_builtin): Likewise.
3459 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
3461 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
3462 introduced in r238381.
3464 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
3467 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
3468 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
3470 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
3472 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
3474 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
3475 Add support for vec_extract of vector double or vector long having
3476 a variable element number on 64-bit ISA 2.07 systems or newer.
3477 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
3479 (rs6000_split_vec_extract_var): New function to split a
3480 vec_extract built-in function with variable element number.
3481 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
3483 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
3484 (UNSPEC_VSX_EXTRACT): Likewise.
3485 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
3486 direct move instructions to be generated on 64-bit ISA 2.07
3487 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
3489 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
3490 arguments for vec_extract variable element.
3491 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
3492 vec_extract with variable element on V2DFmode and V2DImode
3494 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
3495 -mupper-regs-df requirement, since it isn't needed.
3496 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
3497 do direct moves on 64-bit systems, which allows optimization of
3498 vec_extract on 64-bit ISA 2.07 systems and newer.
3500 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
3501 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
3503 * config/aarch64/aarch64.md
3504 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
3506 (<optab>qihi2_aarch64): Likewise, and split into two.
3507 (extendqihi2_aarch64): New.
3508 (zero_extendqihi2_aarch64): New.
3509 * config/aarch64/iterators.md (ldrxt): Remove.
3510 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
3513 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
3515 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
3517 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
3519 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
3520 (aarch64_push_reg): New function to push 1 or 2 registers.
3521 (aarch64_pop_reg): New function to pop 1 or 2 registers.
3522 (aarch64_expand_prologue): Use aarch64_push_regs.
3523 (aarch64_expand_epilogue): Use aarch64_pop_regs.
3525 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
3527 PR tree-optimization/71734
3528 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
3529 attribute instead of REF_LOOP and use it.
3530 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
3531 set it for Loops having non-zero safelen attribute.
3532 (ref_indep_loop_p): Pass zero as initial value for safelen.
3534 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
3538 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
3539 call using chkp_gimple_call_builtin_p.
3540 (chkp_copy_bounds_for_assign): Likewise.
3542 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3544 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
3545 * config/arm/arm-protos.h (struct tune_params): Likewise.
3546 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
3547 (cortex_a9_sched_adjust_cost): Likewise.
3548 (fa726te_sched_adjust_cost): Likewise.
3549 (arm_adjust_cost): Likewise.
3550 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
3551 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
3552 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
3553 * config/i386/i386.c (ix86_adjust_cost): Likewise.
3554 * config/ia64/ia64.c: Likewise.
3555 * config/m68k/m68k.c: Likewise.
3556 * config/mep/mep.c (mep_adjust_cost): Likewise.
3557 * config/microblaze/microblaze.c (microblaze_adjust_cost):
3559 * config/mips/mips.c (mips_adjust_cost): Likewise.
3560 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
3562 * config/pa/pa.c (pa_adjust_cost): Likewise.
3563 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
3564 (rs6000_debug_adjust_cost): Likewise.
3565 * config/sh/sh.c (sh_adjust_cost): Likewise.
3566 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
3567 (hypersparc_adjust_cost): Likewise.
3568 (sparc_adjust_cost): Likewise.
3569 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
3570 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
3571 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
3573 * config/visium/visium.c (visium_adjust_cost): Likewise.
3574 * doc/tm.texi: Regenerate.
3575 * haifa-sched.c (dep_cost_1): Adjust.
3576 * target.def: Merge adjust_cost and adjust_cost_2.
3578 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3580 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
3582 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3584 * store-motion.c (struct st_expr): Make pattern_regs a vector.
3585 (extract_mentioned_regs): Append to a vector instead of
3586 returning a rtx_expr_list.
3587 (st_expr_entry): Adjust.
3588 (free_st_expr_entry): Likewise.
3589 (store_ops_ok): Likewise.
3590 (store_killed_in_insn): Likewise.
3591 (find_moveable_store): Likewise.
3593 2016-07-28 Martin Liska <mliska@suse.cz>
3595 PR gcov-profile/68025
3596 * tree-profile.c (tree_profiling): Respect
3597 no_profile_instrument_function attribute.
3598 * doc/extend.texi: Document no_profile_instrument_function
3601 2016-07-28 Martin Liska <mliska@suse.cz>
3603 PR rtl-optimization/70944
3604 * combine.c (make_compound_operation):
3605 Do not allow make_compound_operation for vector mode
3607 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
3610 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
3611 before calling get_ops.
3613 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
3615 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
3616 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
3617 (BITS_PER_UNIT_LOG): Remove.
3618 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
3619 * expr.c (expand_assignment): Likewise.
3620 * stor-layout.c (initialize_sizetypes): Likewise.
3622 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
3624 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
3625 signature of rs6000_expand_vector_extract so that the element
3626 number is a RTX instead of a constant integer.
3627 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
3629 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
3630 (altivec_expand_vec_ext_builtin): Likewise.
3631 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
3632 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
3633 MFVSRLD instruction.
3635 2016-07-27 David Malcolm <dmalcolm@redhat.com>
3637 * input.c (get_pure_location): Move here from tree.c.
3638 (make_location): Likewise. Add header comment.
3639 (selftest::test_accessing_ordinary_linemaps): Verify
3640 pure_location_p, make_location, get_location_from_adhoc_loc and
3642 * input.h (get_pure_location): Move declaration here from tree.h.
3643 (get_finish): Likewise for inline function.
3644 (make_location): Likewise for declaration.
3645 * tree.c (get_pure_location): Move to input.c.
3646 (make_location): Likewise.
3647 * tree.h (get_pure_location): Move declaration to tree.h.
3648 (get_finish): Likewise for inline function.
3649 (make_location): Likewise for declaration.
3651 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3654 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
3656 2016-07-27 David Malcolm <dmalcolm@redhat.com>
3658 * system.h (STATIC_ASSERT): Use static_assert if building
3661 2016-07-27 Richard Biener <rguenther@suse.de>
3663 PR tree-optimization/72517
3664 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
3665 Revert change to not compute read-read dependences.
3667 2016-07-27 Richard Biener <rguenther@suse.de>
3669 * predict.c (set_even_probabilities): Make nedges unsigned.
3671 2016-07-27 Martin Liska <mliska@suse.cz>
3673 * predict.c (set_even_probabilities): Handle unlikely edges.
3674 (combine_predictions_for_bb): Likewise.
3676 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
3679 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
3680 __float128 support when we don't have hardware support, so that
3681 the IEEE built-in functions like isgreater, first call __unordkf3
3682 to make sure neither operand is a NaN, and if both operands are
3683 ordered, do the normal comparison.
3685 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
3687 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
3689 (extract_code_and_val_from_cond_with_ops): Verify that name is
3690 either cond_op0 or cond_op1.
3692 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
3694 PR tree-optimization/18046
3695 * genmodes.c (emit_mode_size_inline): Emit an assert that
3696 verifies that mode is a valid array index.
3697 (emit_mode_nuinits_inline): Likewise.
3698 (emit_mode_inner_inline): Likewise.
3699 (emit_mode_unit_size_inline): Likewise.
3700 (emit_mode_unit_precision_inline): Likewise.
3701 * tree-vrp.c: Include params.h.
3702 (find_switch_asserts): Register edge assertions for the default
3703 label which correspond to the anti-ranges of each case label.
3704 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
3705 * doc/invoke.texi: Document it.
3707 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3709 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
3710 and unnecessary call to gimple_bb.
3712 2016-07-26 Richard Biener <rguenther@suse.de>
3714 PR rtl-optimization/71984
3715 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
3718 2016-07-26 Richard Biener <rguenther@suse.de>
3721 * expmed.c (extract_bit_field_1): Constrain the vector mode
3722 with element size matching the extraction mode size when
3723 choosing a better vector mode to do the extraction from.
3725 2016-07-26 Richard Biener <rguenther@suse.de>
3726 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3729 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
3732 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3734 * tree-ssa-structalias.c (struct scc_info): Change types of
3735 members to auto_sbitmap and auto_vec.
3736 (scc_info::scc_info): New constructor.
3737 (scc_info::~scc_info): New destructor.
3738 (init_scc_info): Remove.
3739 (free_scc_info): Remove.
3740 (find_indirect_cycles): Adjust.
3741 (perform_var_substitution): Likewise.
3742 (free_var_substitution_info): Likewise.
3744 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3746 * tree-outof-ssa.c (struct elim_graph): Change type of members
3747 to auto_vec and auto_sbitmap.
3748 (elim_graph::elim_graph): New constructor.
3749 (delete_elim_graph): Remove.
3750 (expand_phi_nodes): Adjust.
3752 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3754 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
3755 (new_elim_graph): Adjust.
3756 (clear_elim_graph): Likewise.
3757 (delete_elim_graph): Likewise.
3758 (elim_graph_size): Likewise.
3759 (elim_graph_add_node): Likewise.
3760 (elim_graph_add_edge): Likewise.
3761 (elim_graph_remove_succ_edge): Likewise.
3762 (eliminate_name): Likewise.
3763 (eliminate_build): Likewise.
3764 (elim_forward): Likewise.
3765 (elim_unvisited_predecessor): Likewise.
3766 (elim_backward): Likewise.
3767 (elim_create): Likewise.
3768 (eliminate_phi): Likewise.
3769 (expand_phi_nodes): Likewise.
3771 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3773 * bt-load.c (compute_out): Use auto_sbitmap class.
3774 (link_btr_uses): Likewise.
3775 * cfganal.c (mark_dfs_back_edges): Likewise.
3776 (post_order_compute): Likewise.
3777 (inverted_post_order_compute): Likewise.
3778 (pre_and_rev_post_order_compute_fn): Likewise.
3779 (single_pred_before_succ_order): Likewise.
3780 * cfgexpand.c (pass_expand::execute): Likewise.
3781 * cfgloop.c (verify_loop_structure): Likewise.
3782 * cfgloopmanip.c (fix_bb_placements): Likewise.
3783 (remove_path): Likewise.
3784 (update_dominators_in_loop): Likewise.
3785 * cfgrtl.c (break_superblocks): Likewise.
3786 * ddg.c (check_sccs): Likewise.
3787 (create_ddg_all_sccs): Likewise.
3788 * df-core.c (df_worklist_dataflow): Likewise.
3789 * dse.c (dse_step3): Likewise.
3790 * except.c (eh_region_outermost): Likewise.
3791 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3792 * gcse.c (prune_expressions): Likewise.
3793 (prune_insertions_deletions): Likewise.
3794 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
3795 * graph.c (draw_cfg_nodes_no_loops): Likewise.
3796 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
3797 * lcm.c (compute_earliest): Likewise.
3798 (compute_farthest): Likewise.
3799 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
3800 (unroll_loop_runtime_iterations): Likewise.
3801 (unroll_loop_stupid): Likewise.
3802 * lower-subreg.c (decompose_multiword_subregs): Likewise.
3803 * lra-lives.c: Likewise.
3804 * lra.c (lra): Likewise.
3805 * modulo-sched.c (schedule_reg_moves): Likewise.
3806 (optimize_sc): Likewise.
3807 (get_sched_window): Likewise.
3808 (sms_schedule_by_order): Likewise.
3809 (check_nodes_order): Likewise.
3810 (order_nodes_of_sccs): Likewise.
3811 (order_nodes_in_scc): Likewise.
3812 * recog.c (split_all_insns): Likewise.
3813 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
3814 * reload1.c (reload): Likewise.
3815 * sched-rgn.c (haifa_find_rgns): Likewise.
3816 (split_edges): Likewise.
3817 (compute_trg_info): Likewise.
3818 * sel-sched.c (init_seqno): Likewise.
3819 * store-motion.c (remove_reachable_equiv_notes): Likewise.
3820 * tree-into-ssa.c (update_ssa): Likewise.
3821 * tree-ssa-live.c (live_worklist): Likewise.
3822 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
3823 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
3825 (try_peel_loop): Likewise.
3826 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
3828 * tree-ssa-pre.c (compute_antic): Likewise.
3829 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
3830 * tree-stdarg.c (reachable_at_most_once): Likewise.
3831 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
3832 * var-tracking.c (vt_find_locations): Likewise.
3834 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3836 * sbitmap.h (auto_sbitmap): New class.
3838 2016-07-26 Alan Modra <amodra@gmail.com>
3841 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
3844 2016-07-25 David Malcolm <dmalcolm@redhat.com>
3846 * input.c (selftest::temp_source_file::temp_source_file): Fix
3847 missing "%s" in fprintf.
3849 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
3852 * cselib.c (cselib_process_insn): Invalidate argument slots for
3855 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3857 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
3858 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
3859 vmulxh_lane_f16, vmulxh_laneq_f16): New.
3861 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3863 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3864 * config/aarch64/aarch64.md (fma, fnma): Support HF.
3865 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
3867 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3869 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3870 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
3872 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
3873 (add<mode>3): Likewise.
3874 (sub<mode>3): Likewise.
3875 (mul<mode>3): Likewise.
3876 (div<mode>3): Likewise.
3877 (*div<mode>3): Likewise.
3878 (<fmaxmin><mode>3): Extend to HF.
3879 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
3880 (fabd<mode>3): Likewise.
3881 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
3882 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
3883 (aarch64_fmulx<mode>): Likewise.
3884 (aarch64_fac<optab><mode>): Likewise.
3885 (aarch64_frecps<mode>): Likewise.
3886 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
3887 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
3888 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
3889 (VSDQ_HSDI): Support HI.
3890 (fcvt_target, FCVT_TARGET): Likewise.
3891 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
3892 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
3893 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
3894 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
3895 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
3896 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
3897 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
3900 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3902 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
3903 * config/aarch64/aarch64-builtins.c (hi_UP): New.
3904 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3905 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
3907 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
3908 (aarch64_cm<optab><mode>): Likewise.
3909 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
3910 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
3911 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
3912 (sqrt<mode>2): Likewise.
3913 (*sqrt<mode>2): Likewise.
3914 (abs<mode>2): Likewise.
3915 (<optab><mode>hf2): New pattern for HF mode.
3916 (<optab>hihf2): Likewise.
3917 * config/aarch64/arm_neon.h: Include arm_fp16.h.
3918 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
3919 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
3921 * config/aarch64/arm_fp16.h: New file.
3922 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
3923 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
3924 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
3925 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
3926 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
3927 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
3928 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
3929 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
3930 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
3931 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
3932 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
3933 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
3936 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3938 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
3939 reduc_smin_scal_): Use VDQIF_F16.
3940 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
3941 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
3943 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
3944 * config/aarch64/iterators.md (VDQIF_F16): New.
3945 (vp): Support HF modes.
3946 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
3947 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
3949 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3951 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
3952 "*aarch64_mulx_elt_from_dup<mode>".
3953 (*aarch64_mul3_elt<mode>): Update schedule type.
3954 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
3955 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
3956 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
3957 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
3958 (f, fp): Support HF modes.
3959 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
3960 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
3961 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
3962 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
3963 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
3964 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
3966 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3968 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3969 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
3971 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
3974 2016-07-25 Jiong Wang <jiong.wang@arm.com>
3976 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
3977 * config/aarch64/aarch64-simd.md
3978 (aarch64_rsqrts<mode>): Extend to HF modes.
3979 (fabd<mode>3): Likewise.
3980 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
3981 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
3982 (aarch64_<maxmin_uns>p<mode>): Likewise.
3983 (<su><maxmin><mode>3): Likewise.
3984 (<maxmin_uns><mode>3): Likewise.
3985 (<fmaxmin><mode>3): Likewise.
3986 (aarch64_faddp<mode>): Likewise.
3987 (aarch64_fmulx<mode>): Likewise.
3988 (aarch64_frecps<mode>): Likewise.
3989 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
3990 (add<mode>3): Extend to HF modes.
3991 (sub<mode>3): Likewise.
3992 (mul<mode>3): Likewise.
3993 (div<mode>3): Likewise.
3994 (*div<mode>3): Likewise.
3995 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
3997 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
3998 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
3999 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
4000 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
4001 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
4002 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
4003 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
4004 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
4005 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
4006 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
4007 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
4008 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
4009 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
4010 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
4012 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4014 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
4015 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
4016 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
4017 (neg<mode>2): Likewise.
4018 (abs<mode>2): Likewise.
4019 (<frint_pattern><mode>2): Likewise.
4020 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
4021 (<optab><VDQF:mode><fcvt_target>2): Likewise.
4022 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
4023 (ftrunc<VDQF:mode>2): Likewise.
4024 (<optab><fcvt_target><VDQF:mode>2): Likewise.
4025 (sqrt<mode>2): Likewise.
4026 (*sqrt<mode>2): Likewise.
4027 (aarch64_frecpe<mode>): Likewise.
4028 (aarch64_cm<optab><mode>): Likewise.
4029 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
4031 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
4032 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
4034 * config/aarch64/arm_neon.h (vdup_n_f16): New.
4035 (vdupq_n_f16): Likewise.
4036 (vld1_dup_f16): Use vdup_n_f16.
4037 (vld1q_dup_f16): Use vdupq_n_f16.
4038 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
4039 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
4040 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
4041 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
4042 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
4043 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
4044 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
4045 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
4046 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
4047 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
4048 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
4049 vsqrt_f16, vsqrtq_f16): New.
4051 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4053 * config/aarch64/aarch64-simd.md
4054 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
4055 (aarch64_ext<mode>): Likewise.
4056 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
4057 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
4058 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
4060 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
4062 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
4063 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
4064 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
4065 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
4066 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
4067 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
4068 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
4070 (vmov_n_f16): Reimplement using vdup_n_f16.
4071 (vmovq_n_f16): Reimplement using vdupq_n_f16..
4073 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4075 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
4076 "frame_related_p". Generate CFA annotation when it's necessary.
4077 (aarch64_expand_prologue): Use aarch64_add_constant.
4078 (aarch64_expand_epilogue): Likewise.
4079 (aarch64_output_mi_thunk): Pass "false" when calling
4080 aarch64_add_constant.
4082 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4084 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
4087 2016-07-25 Jiong Wang <jiong.wang@arm.com>
4089 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
4090 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
4091 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
4092 (aarch64_build_constant): Delete.
4094 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
4097 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
4099 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
4100 flag_toplevel_reorder.
4102 2016-07-25 Richard Biener <rguenther@suse.de>
4104 * cgraph.c (cgraph_node::verify_node): Compare against builtin
4105 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
4106 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
4107 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
4108 (streamer_get_builtin_tree): Likewise.
4109 (streamer_write_builtin): Likewise.
4110 * lto-streamer.h (LTO_builtin_decl): Remove.
4111 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
4112 (lto_input_scc): Remove LTO_builtin_decl handling.
4113 (lto_input_tree_1): Liekwise.
4114 * lto-streamer-out.c (lto_output_tree_1): Remove special
4115 handling of builtins.
4116 (DFS::DFS): Likewise.
4117 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
4118 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
4120 (streamer_write_builtin): Remove.
4122 2016-07-25 Martin Liska <mliska@suse.cz>
4124 * lto-cgraph.c (input_symtab): Don't call get_working_sets
4125 if flag_auto_profile is set to true.
4127 2016-07-25 Martin Liska <mliska@suse.cz>
4129 PR gcov-profile/71868
4130 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
4131 have a function with multiple latches, count them all.
4133 2016-07-25 Martin Liska <mliska@suse.cz>
4135 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
4137 2016-07-25 Martin Liska <mliska@suse.cz>
4139 PR tree-optimization/71987
4140 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
4141 just for SSA_NAMEs. Fix GNU coding style.
4143 2016-07-25 Martin Liska <mliska@suse.cz>
4145 PR gcov-profile/64874
4146 * gcov-io.h: Update command about file format.
4147 * gcov-iov.c (main): Adapt the numbering scheme.
4149 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
4152 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
4153 whose result is used in PHI.
4154 (final_range_test_p): Likewise.
4155 (maybe_optimize_range_tests): Likewise.
4157 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4159 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4160 Reformat two multi-line strings.
4162 2016-07-22 Martin Sebor <msebor@redhat.com>
4164 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
4166 2016-07-22 Martin Sebor <msebor@redhat.com>
4169 * doc/extend.texi (Compound Literals): Correct and clarify.
4170 (Cast to Union): Same.
4172 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
4174 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
4175 comments to explain why certain error messages make mention of
4176 undocumented options.
4177 (rs6000_invalid_builtin): Change error messages to replace mention
4178 of undocumented options with mention of the -mcpu=power9 option
4179 that enables those undocumented options.
4180 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
4181 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
4182 definition of this macro to correct an existing error.
4183 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
4184 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
4185 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
4186 descriptions of built-in functions so that they depend on
4187 -mcpu=power9 instead of on the corresponding undocumented flags.
4188 * doc/invoke.texi (Option Summary): Remove all mention of newly
4190 (IBM RS/6000 and PowerPC Options): Likewise.
4191 * doc/md.texi (Constraints for Particuliar Machines): Remove all
4192 mention of newly undocumented flags.
4194 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
4196 * ipa-cp.c (determine_versionability): Do not create constprop clones,
4197 when target_clones attribute is set.
4199 2016-07-22 Bin Cheng <bin.cheng@arm.com>
4201 * common.opt (funsafe-loop-optimizations): Mark ignore.
4202 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
4203 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
4205 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
4206 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
4208 2016-07-22 Bin Cheng <bin.cheng@arm.com>
4210 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
4212 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
4214 (number_of_iterations_exit): Warn missed loop optimization for
4215 possible infinite loops.
4217 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
4220 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
4221 when to emit a ".machine" pseudo-op.
4223 2016-07-22 Martin Liska <mliska@suse.cz>
4225 PR gcov-profile/69028
4226 PR gcov-profile/62047
4227 * coverage.c (coverage_compute_lineno_checksum): Do not
4228 calculate checksum for fns w/o xloc.file.
4229 (coverage_compute_profile_id): Likewise.
4231 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
4233 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
4234 (avr_secondary_reload): ...and implementation.
4235 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
4236 * config/avr/avr.md (reload_in<mode>): Remove insns.
4237 (adjust_len) [lpm]: Remove insn attribute value.
4238 * config/avr/predicates.md (flash_operand): Remove insn predicate.
4240 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
4243 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
4245 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
4246 * calls.c (special_function_p): Remove the special handling of the
4247 "__builtin_" prefix.
4249 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
4252 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
4253 if STMT may be an alloca call.
4254 (gimple_alloca_call_p, alloca_call_p): Return only true for the
4255 builtin alloca call.
4256 * calls.h (gimple_maybe_alloca_call_p): New function.
4257 * tree-inline.c (inline_forbidden_p_stmt): Use
4258 gimple_maybe_alloca_call_p here.
4260 2016-07-21 David Malcolm <dmalcolm@redhat.com>
4262 * spellcheck-tree.c (best_macro_match::best_macro_match):
4263 Explictly specify the template arguments when invoking the base
4264 class constructor, to help older C++ compilers.
4266 2016-07-21 Jakub Jelinek <jakub@redhat.com>
4269 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
4270 before builtin_decl_implicit.
4272 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
4274 * optabs.c (emit_condiitonal_move): Short circuit for identical
4277 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
4279 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
4280 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
4281 (noce_conversion_profitable_p): New.
4282 (noce_try_store_flag_constants): Use it.
4283 (noce_try_addcc): Likewise.
4284 (noce_try_store_flag_mask): Likewise.
4285 (noce_try_cmove): Likewise.
4286 (noce_try_cmove_arith): Likewise.
4287 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
4289 (noce_convert_multiple_sets): Move cost model to here, from...
4290 (bb_ok_for_noce_convert_multiple_sets) ...here.
4291 (noce_process_if_block): Update calls for above changes.
4292 (noce_find_if_block): Record new noce_if_info parameters.
4294 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
4296 * target.def (max_noce_ifcvt_seq_cost): New.
4297 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
4298 * doc/tm.texi: Regenerate.
4299 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
4300 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
4301 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
4302 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
4303 * doc/invoke.texi: Document new params.
4305 2016-07-21 Richard Biener <rguenther@suse.de>
4307 PR tree-optimization/71947
4308 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
4309 ranges have useful limit_vr information.
4311 2016-07-21 Richard Biener <rguenther@suse.de>
4313 * function-tests.c (build_trivial_generic_function): Set
4314 BLOCK_SUPERCONTEXT of DECL_INITIAL.
4315 * omp-low.c (create_omp_child_function): Likewise.
4316 (grid_expand_target_grid_body): Likewise.
4317 * cgraphunit.c (init_lowered_empty_function): Likewise.
4318 (cgraph_node::expand_thunk): Likewise.
4319 * tree-parloops.c (create_loop_fn): Likewise.
4320 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
4322 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4324 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
4327 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
4329 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
4330 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
4331 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
4332 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
4333 values for insn attribute.
4334 * config/avr/avr.c (avr_out_insert_notbit): New function.
4335 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
4336 ADJUST_LEN_INSV_NOTBIT_0/_7.
4337 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
4339 2016-07-21 Bin Cheng <bin.cheng@arm.com>
4341 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
4342 (chrec_convert_1, chrec_convert): Ditto.
4343 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
4344 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
4345 * tree-vrp.c (adjust_range_with_scev): Ditto.
4346 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
4347 (scev_var_range_cant_overflow): New function.
4348 (scev_probably_wraps_p): New parameter. Call above function.
4349 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
4351 2016-07-21 Bin Cheng <bin.cheng@arm.com>
4353 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
4354 by removing computation of may_be_zero.
4356 2016-07-21 Jakub Jelinek <jakub@redhat.com>
4358 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
4360 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
4362 Improving concepts performance and diagnostics.
4363 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
4364 for constraint satisfaction and subsumption.
4365 * timevar.h (auto_timevar): New constructor that matches the push/pop
4366 pattern of usage in pt.c.
4368 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
4370 * hwint.h (HOST_WIDE_INT_0): New define.
4371 (HOST_WIDE_INT_0U): Ditto.
4372 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
4373 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
4374 * simplify-rtx.c: Ditto.
4375 * tree-object-size.c: Ditto.
4377 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4379 * config/s390/s390.c (s390_encode_section_info): Remove mode size
4382 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
4384 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
4385 * combine.c: Use HOST_WIDE_INT_M1U instead of
4386 ~(unsigned HOST_WIDE_INT) 0.
4387 * double-int.h: Ditto.
4389 * dwarf2asm.c:Ditto.
4391 * genmodes.c: Ditto.
4393 * read-rtl.c: Ditto.
4394 * tree-ssa-loop-ivopts.c: Ditto.
4395 * tree-ssa-loop-prefetch.c: Ditto.
4396 * tree-vect-generic.c: Ditto.
4397 * tree-vect-patterns.c: Ditto.
4400 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4402 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
4403 constant addresses outside [0,0xc0] into a register.
4404 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
4405 cases where the base address register is unused after.
4406 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
4407 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
4408 (avr_out_store_psi_reg_disp_tiny): Same.
4410 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4412 Implement attribute progmem on reduced Tiny cores by adding
4413 flash offset 0x4000 to respective symbols.
4416 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
4417 documentation how it works on reduced Tiny cores.
4418 (AVR Named Address Spaces): No support for reduced Tiny.
4419 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
4420 (avr_address_tiny_pm_p): New static function.
4421 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
4422 if the address is in progmem.
4423 (avr_assemble_integer): Same.
4424 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
4425 for symbol_ref in progmem.
4426 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
4427 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
4428 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
4430 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
4432 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
4433 * configure: Regenerate.
4434 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
4435 (USE_THIN_ARCHIVES): New variable.
4436 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
4437 this archive as a thin archive.
4439 2016-07-20 David Malcolm <dmalcolm@redhat.com>
4441 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
4442 same location as last time, don't skip if we have fix-it hints.
4443 Clarify the skipping logic by converting it from one "if" clause
4444 to repeated "if" clauses.
4445 * spellcheck-tree.c: Include "cpplib.h".
4446 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
4447 (best_macro_match::best_macro_match): New constructor.
4448 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
4449 Move here from c/c-decl.c.
4450 (class best_macro_match): Move here from c/c-decl.c, converting
4451 from a typedef to a subclass, gaining a ctor.
4453 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4455 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
4456 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
4458 (avr_addr_space_diagnose_usage): ...and implementation.
4459 (avr_addr_space_supported_p): New function.
4460 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
4461 report bad address space usage if that space is supported.
4462 (avr_insert_attributes): Same. No more complain about unsupported
4464 * config/avr/avr-c.c (tm_p.h): Include it.
4465 (avr_cpu_cpp_builtins): Only define addr-space related built-in
4466 macro if avr_addr_space_supported_p.
4468 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
4470 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
4471 flag_toplevel_reorder.
4473 2016-07-20 David Malcolm <dmalcolm@redhat.com>
4475 * gcc-rich-location.c
4476 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
4478 * gcc-rich-location.h
4479 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
4481 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
4483 * target.def (addr_space): Add new diagnose_usage to hook vector.
4484 * targhooks.c (default_addr_space_diagnose_usage): Add default
4485 implementation and...
4486 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
4487 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
4488 is some address space, call targetm.addr_space.diagnose_usage.
4489 * doc/tm.texi.in (Named Address Spaces): Add anchor for
4490 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
4491 * doc/tm.texi: Regenerate.
4493 2016-07-20 Martin Liska <mliska@suse.cz>
4496 * graphite-isl-ast-to-gimple.c (later_of_the_two):
4497 Properly handly PHI stmts.
4499 2016-07-20 Bin Cheng <bin.cheng@arm.com>
4501 PR tree-optimization/71503
4502 PR tree-optimization/71683
4503 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
4506 2016-07-20 Martin Liska <mliska@suse.cz>
4508 * doc/invoke.texi (-fipa-ra): Document when the option is
4509 disabled. Fix a typo.
4511 2016-07-20 Martin Liska <mliska@suse.cz>
4513 * Makefile.in: Include fibonacci_heap.c
4514 * fibonacci_heap.c: New file.
4515 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
4516 (fibonacci_heap::union_with): Fix deletion of the second heap.
4517 * selftest-run-tests.c (selftest::run_tests): Incorporate
4518 fibonacci heap tests.
4519 * selftest.h: Declare fibonacci_heap_c_tests.
4521 2016-07-20 Martin Liska <mliska@suse.cz>
4523 * selftest-run-tests.c (selftest::run_tests): New function.
4524 * selftest.h (sreal_c_tests): Declare.
4525 * sreal.c (sreal_verify_basics): New function.
4526 (verify_aritmetics): Likewise.
4527 (sreal_verify_arithmetics): Likewise.
4528 (verify_shifting): Likewise.
4529 (sreal_verify_shifting): Likewise.
4530 (void sreal_c_tests): Likewise.
4532 2016-07-19 Jakub Jelinek <jakub@redhat.com>
4534 PR rtl-optimization/71916
4535 * cfgrtl.c (contains_no_active_insn_p): Return false also for
4536 bb which have a single succ fake edge.
4538 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
4541 * dwarf2out.c (gen_subprogram_die): Only call
4542 gen_unspecified_parameters_die while dumping early dwarf.
4544 2016-07-19 Jakub Jelinek <jakub@redhat.com>
4547 * gimple-fold.c (fold_builtin_memory_op): Use
4548 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
4550 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
4552 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
4553 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
4554 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
4555 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
4559 * double-int.c: Ditto.
4561 * dwarf2out.c: Ditto.
4564 * fold-const.c: Ditto.
4565 * function.c: Ditto.
4567 * genmodes.c: Ditto.
4571 * loop-doloop.c: Ditto.
4572 * loop-invariant.c: Ditto.
4579 * simplify-rtx.c: Ditto.
4580 * stor-layout.c: Ditto.
4582 * tree-ssa-loop-ivopts.c: Ditto.
4583 * tree-vect-generic.c: Ditto.
4584 * tree-vect-patterns.c: Ditto.
4589 * wide-int-print.cc: Ditto.
4590 * wide-int.cc: Ditto.
4591 * wide-int.h: Ditto.
4593 2016-07-19 David Malcolm <dmalcolm@redhat.com>
4595 * selftest.c (selftest::assert_streq): Handle NULL values of
4596 val_actual and val_expected.
4598 2016-07-19 Martin Jambor <mjambor@suse.cz>
4601 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
4602 rather than cgraph_create_node to get a call graph node.
4604 2016-07-19 Richard Biener <rguenther@suse.de>
4606 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
4607 handle all tcc_constant bases and valueize SSA names.
4608 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
4611 2016-07-19 David Malcolm <dmalcolm@redhat.com>
4613 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
4614 the flags of the exit block and bb2, not just the entry block.
4616 2016-07-19 Richard Biener <rguenther@suse.de>
4618 PR tree-optimization/71901
4619 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
4620 align member, group stuff with the bitfield.
4621 (vn_ref_op_align_unit): New inline.
4622 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
4623 record element alignment and operand 3 unchanged.
4624 (ao_ref_init_from_vn_reference): Adjust.
4625 (valueize_refs_1): Likewise.
4626 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
4628 2016-07-19 Richard Biener <rguenther@suse.de>
4630 PR tree-optimization/71908
4631 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
4632 symbolic constants in a more reliable way.
4634 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
4636 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
4638 (vect_update_inits_of_drs): Likewise.
4639 (vect_create_cond_for_alias_checks): Likewise.
4640 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
4642 2016-07-19 Richard Biener <rguenther@suse.de>
4645 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
4646 with an abstract origin that is not an inlined function outer
4647 scope add a self-reference as abstract origin.
4648 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
4650 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
4653 * config/rs6000/rs6000.c (rs6000_function_value): Fix
4654 unintentional System V.4 structure return breakage for structures
4655 with a single floating point element.
4657 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
4659 PR tree-optimization/71734
4660 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
4661 contains REF, use it to check safelen, assume that safelen value
4662 must be greater 1, fix style.
4663 (ref_indep_loop_p_2): Add REF_LOOP argument.
4664 (ref_indep_loop_p): Pass LOOP as additional argument to
4667 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
4669 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
4670 allocation in the prologue.
4671 * explow.c (get_dynamic_stack_base): New function to return an address
4672 expression for the dynamic stack base.
4673 (get_dynamic_stack_size): New function to do the required dynamic stack
4674 space size calculations.
4675 (allocate_dynamic_stack_space): Use new functions.
4676 (align_dynamic_address): Move some code from
4677 allocate_dynamic_stack_space to new function.
4678 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
4680 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4682 * config/s390/s390.c (s390_encode_section_info): Always set
4683 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
4686 2016-07-18 Richard Biener <rguenther@suse.de>
4688 PR tree-optimization/71893
4689 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
4690 for sizetype cast added by array_ref_element_size.
4691 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
4693 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
4695 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
4696 register parameters. Remove code to initialize argument pointer
4697 on TARGET_64BIT. Optimize call to _mcount when it can be reached
4698 using a pc-relative branch. Cleanup conditional code.
4699 * config/pa/pa.md (call_mcount): New expander.
4700 (call_mcount_nonpic): New insn.
4701 (call_mcount_pic): New insn and split.
4702 (call_mcount_pic_post_reload): New insn.
4703 (call_mcount_64bit): New insn and split.
4704 (call_mcount_64bit_post_reload): New insn.
4706 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
4708 * config/avr/predicates.md (const_m255_to_m1_operand): New.
4709 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
4710 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
4711 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
4712 (*usum_widenqihi3, *udiff_widenqihi3)
4713 (*addhi3_zero_extend.const): New combiner insns.
4714 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
4715 just 1 bit is affected.
4716 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
4717 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
4719 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
4721 * omp-low.c (lower_omp_target): Mark data clauses with
4722 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
4723 zero-length subarrays.
4725 2016-07-15 Richard Biener <rguenther@suse.de>
4727 PR tree-optimization/71881
4728 * tree-loop-distribution.c (destroy_loop): Remove blocks in
4729 reverse DOM order to make debug temp generation happy.
4731 2016-07-15 Richard Biener <rguenther@suse.de>
4733 PR tree-optimization/71887
4734 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
4735 verify it is not zero for division / modulo handling.
4736 (value_replacement): Adjust.
4738 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
4739 Julian Brown <julian@codesourcery.com>
4741 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
4742 * config/aarch64/aarch64-cost-tables.h
4743 (vulcan_extra_costs): New variable.
4744 * config/aarch64/aarch64.c
4745 (vulcan_addrcost_table): Likewise.
4746 (vulcan_regmove_cost): Likewise.
4747 (vulcan_vector_cost): Likewise.
4748 (vulcan_branch_cost): Likewise.
4749 (vulcan_tunings): Likewise.
4751 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
4753 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
4754 (output_in_order): Loop over undefined variables too. Output them
4755 via assemble_undefined_decl. Skip variables that correspond to hard
4756 registers or have value-exprs.
4757 * varpool.c (symbol_table::output_variables): Handle undefined
4758 variables together with defined ones.
4760 2016-07-15 Richard Biener <rguenther@suse.de>
4762 * tree-ssa-pre.c (get_representative_for): Make sure to return
4763 the value number of SSA names.
4764 (phi_translate_1): get_representative_for cannot return NULL.
4765 (do_pre_regular_insertion): Remove redundant call to
4766 fully_constant_expression.
4767 (do_pre_partial_partial_insertion): Likewise.
4769 2016-07-15 Bin Cheng <bin.cheng@arm.com>
4771 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
4772 (derive_simple_iv_with_niters): New function.
4773 (simple_iv): Rewrite using simple_iv_with_niters.
4774 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
4775 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
4777 (number_of_iterations_exit): Rewrite using above function.
4778 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
4781 2016-07-15 Richard Biener <rguenther@suse.de>
4783 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
4786 2016-07-14 Jakub Jelinek <jakub@redhat.com>
4788 PR tree-optimization/71872
4789 * tree-data-ref.c (get_references_in_stmt): Ignore references
4790 with is_gimple_constant get_base_address.
4792 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4794 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
4795 (TARGET_HAVE_LDACQD): New macro.
4796 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
4797 than TARGET_HAVE_LDACQ.
4798 (arm_load_acquire_exclusivedi): Likewise.
4799 (arm_store_release_exclusivedi): Likewise.
4801 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
4803 PR rtl-optimization/71878
4804 * lra-constraints.c (match_reload): Pass information about other
4805 output operands. Create new unique register value if matching input
4806 operand shares same register value as output operand being considered.
4807 (curr_insn_transform): Record output operands already processed.
4809 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4812 PR tree-optimization/70923
4813 * tree-vect-patterns.c: Include mult-synthesis.h.
4814 (target_supports_mult_synth_alg): New function.
4815 (synth_lshift_by_additions): Likewise.
4816 (apply_binop_and_append_stmt): Likewise.
4817 (vect_synth_mult_by_constant): Likewise.
4818 (target_has_vecop_for_code): Likewise.
4819 (vect_recog_mult_pattern): Use above functions to synthesize vector
4820 multiplication by integer constants.
4822 2016-07-14 Alan Modra <amodra@gmail.com>
4824 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
4825 gpr alternatives. Correct '*' placement on Y,r alternative.
4826 Add '*' on operand 1 of r,r alternative.
4828 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4830 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
4831 * expmed.h: ... Here.
4833 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
4835 * gimple.h (stmt_can_terminate_bb_p): New function.
4836 * tree-cfg.c (need_fake_edge_p): Rename to ...
4837 (stmt_can_terminate_bb_p): ... this; return true if stmt can
4838 throw external; handle const and pure calls.
4839 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
4841 2016-07-14 Richard Biener <rguenther@suse.de>
4843 PR tree-optimization/71866
4844 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
4845 (do_hoist_insertion): Avoid endless recursion when we
4846 didn't insert anything because we managed to simplify
4847 things down to a constant or SSA name.
4848 (fully_constant_expression): Re-write in terms of ...
4849 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
4850 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
4851 vn_nary_build_or_lookup_1.
4852 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
4853 (vn_nary_build_or_lookup): ... this which now wraps it.
4855 2016-07-14 Alan Modra <amodra@gmail.com>
4858 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
4859 with p9_vector override before power9-dform override.
4861 2016-07-13 Andi Kleen <ak@linux.intel.com>
4863 * value-prof.c (gimple_value_profile_transformations): Don't run
4864 when auto_profile is on.
4866 2016-07-13 Andi Kleen <ak@linux.intel.com>
4868 * auto-profile.c (update_inlined_ind_target,
4869 afdo_indirect_call): Print information to dump file.
4871 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
4873 * genrecog.c (special_predicate_operand_p): New function.
4874 (predicate_name): Move function.
4875 (validate_pattern): Don't warn about missing mode for all
4876 define_special_predicate predicates.
4878 2016-07-13 Bin Cheng <bin.cheng@arm.com>
4880 * tree-vect-data-refs.c (vect_no_alias_p): New function.
4881 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
4882 resolve alias checks which are known at compilation time.
4883 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
4884 alias checks are resolved. Move dump info for too many runtime
4885 alias checks to here...
4886 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
4888 2016-07-13 Richard Biener <rguenther@suse.de>
4890 PR tree-optimization/24574
4891 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
4892 position and add shift, rotate, divison and modulo support
4894 (value_replacement): Pass in argument position to absorbing_element_p.
4896 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
4899 * ipa-inline-transform.c (inline_call): Support
4900 instrumented thunks.
4902 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
4904 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
4905 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
4907 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
4908 Baseline. Make initial alternative TARGET_32BIT only.
4909 (udivsi3): Likewise.
4910 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
4911 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
4914 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
4916 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
4917 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
4918 availability with TARGET_HAVE_MOVT.
4919 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
4920 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
4921 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
4923 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
4924 extra instruction if MOVW is available. Use a cost variable
4925 incremented by COSTS_N_INSNS (1) when the condition match rather than
4926 returning an arithmetic expression based on COSTS_N_INSNS. Make
4927 constant with bottom half word zero cost 2 instruction if MOVW is
4929 * config/arm/arm.md (define_attr "arch"): Add v8mb.
4930 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
4931 target is ARMv8-M Baseline.
4932 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
4933 (arm_movtas_ze): Likewise.
4934 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
4935 alternative for constants satisfying j constraint.
4936 (thumb1_movsi_insn): Likewise.
4937 (movsi splitter for K alternative): Tighten condition to not trigger
4938 if movt is available and j constraint is satisfied.
4939 (Pe immediate splitter): Likewise.
4940 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
4941 constant fitting in an halfword to use MOVW.
4942 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
4945 2016-07-13 Richard Biener <rguenther@suse.de>
4948 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
4949 gimplifying the LHS. Make sure to gimplify a returning twice
4950 call LHS without using SSA names.
4952 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4954 * tree-data-ref.c (find_data_references_in_stmt): Remove
4955 unnecessary call to vec::release.
4956 (graphite_find_data_references_in_stmt): Likewise.
4957 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
4958 * tree-vect-stmts.c (vectorizable_condition): Likewise.
4960 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4962 * cfgexpand.c (expand_used_vars): Make the type of a local
4964 * genmatch.c (lower_for): Likewise.
4965 * haifa-sched.c (haifa_sched_init): Likewise.
4966 (add_to_speculative_block): Likewise.
4967 (create_check_block_twin): Likewise.
4968 * predict.c (handle_missing_profiles): Likewise.
4969 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
4970 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
4971 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
4973 (maybe_lower_iteration_bound): Likewise.
4974 * tree-ssa-sccvn.c (DFS): Likewise.
4975 * tree-stdarg.c (reachable_at_most_once): Likewise.
4976 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
4977 (vectorizable_store): Likewise.
4979 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4981 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
4982 (sccvn_dom_walker): make cond_stack an auto_vec.
4984 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4986 * ree.c (struct ext_state): Make type of members auto_vec.
4987 (find_and_remove_re): Adjust.
4989 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4991 * cfgexpand.c (struct stack_vars_data): Make type of fields
4993 (expand_used_vars): Adjust.
4995 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4997 * ipa.c (record_cdtor_fn): Adjust.
4998 (build_cdtor_fns): Likewise.
4999 (ipa_cdtor_merge): Make static_ctors and static_dtors local
5002 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5004 * genextract.c (struct accum_extract): Add constructor and make
5008 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5010 * tree.c (struct free_lang_data_d): Add constructor and change
5011 types of members to ones that automatically manage resources.
5012 (fld_worklist_push): Adjust.
5013 (find_decls_types): Likewise.
5014 (find_decls_types_in_eh_region): Likewise.
5015 (free_lang_data_in_cgraph): Stop manually creating and
5016 destroying members of free_lang_data_d.
5018 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
5020 PR rtl-optimization/68961
5021 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
5022 peephole variant. Use sse_reg_operand predicates.
5024 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
5026 * config/i386/predicates.md (x86_64_immediate_operand)
5027 <case CONST_INT>: Remove unneeded truncation to DImode.
5028 <case CONST>: Ditto.
5029 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
5031 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
5034 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
5035 The xxperm and xxpermr instructions require that the 2nd input
5036 operand overlap with the output operand, and not the 1st.
5037 (altivec_vperm_v8hiv16qi): Likewise.
5038 (altivec_vperm_<mode>_uns_internal): Likewise.
5039 (altivec_vpermr_<mode>_internal): Likewise.
5040 (vperm_v8hiv4si): Likewise.
5041 (vperm_v16qiv8hi): Likewise.
5043 2016-07-12 Nathan Sidwell <nathan@acm.org>
5045 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
5046 when -mno-pic-data-is-text-relative is in effect, by default.
5047 * doc/invoke.texi (mpic-data-is-text-relative): Document new
5048 behavior and clarify.
5050 2016-07-12 Martin Liska <mliska@suse.cz>
5052 * params.def: Add avg-loop niter.
5053 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
5054 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
5055 * doc/invoke.texi: Document the new parameter.
5057 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5060 * expr.c (store_constructor): Mask sign-extended bits when widening
5061 sub-word constructor element at the start of a word.
5063 2016-07-12 Martin Liska <mliska@suse.cz>
5065 * Makefile.in: Append rule for params-options.h.
5066 * params-options.h: New file.
5068 2016-07-12 Martin Liska <mliska@suse.cz>
5070 * ira-build.c (mark_loops_for_removal): Properly iterate
5073 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
5074 Richard Biener <rguenther@suse.de>
5076 PR tree-optimization/23286
5077 PR tree-optimization/70159
5078 * doc/invoke.texi: Document -fcode-hoisting.
5079 * common.opt (fcode-hoisting): New flag.
5080 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
5081 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
5082 (do_regular_insertion): Rename to ...
5083 (do_pre_regular_insertion): ... this and amend general comments
5084 on insertion strathegy.
5085 (do_partial_partial_insertion): Rename to ...
5086 (do_pre_partial_partial_insertion): ... this.
5087 (do_hoist_insertion): New function.
5088 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
5089 and call do_hoist_insertion properly.
5091 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
5092 (pass_pre::execute): Register hoist_insert stats.
5094 2016-07-12 Jakub Jelinek <jakub@redhat.com>
5097 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
5098 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
5099 is different from mode's bitsize. Small cleanup.
5101 2016-07-12 Richard Biener <rguenther@suse.de>
5103 PR rtl-optimization/68961
5104 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
5105 to simplify to a non-constant.
5107 2016-07-11 Jakub Jelinek <jakub@redhat.com>
5110 * omp-low.c (expand_omp_target): Gimplify device.
5112 PR tree-optimization/71823
5113 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
5114 to get vec_oprnds2 from op2.
5116 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
5118 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
5119 Hoist common subexpressions.
5120 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
5122 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
5125 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
5126 prevent generation of 'stxsiwx' on pre Power8 hardware.
5128 2016-07-11 David Malcolm <dmalcolm@redhat.com>
5130 * input.c: Include cpplib.h.
5131 (selftest::temp_source_file): New class.
5132 (selftest::temp_source_file::temp_source_file): New ctor.
5133 (selftest::temp_source_file::~temp_source_file): New dtor.
5134 (selftest::should_have_column_data_p): New function.
5135 (selftest::test_should_have_column_data_p): New function.
5136 (selftest::temp_line_table): New class.
5137 (selftest::temp_line_table::temp_line_table): New ctor.
5138 (selftest::temp_line_table::~temp_line_table): New dtor.
5139 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
5140 it to create a temp_line_table.
5141 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
5142 locations that are known to have column data.
5143 (selftest::line_table_case): New struct.
5144 (selftest::test_reading_source_line): Move tempfile handling
5145 to class temp_source_file.
5146 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
5147 (selftest::assert_token_loc_eq): New function.
5148 (ASSERT_TOKEN_LOC_EQ): New macro.
5149 (selftest::test_lexer): New function.
5150 (selftest::boundary_locations): New array.
5151 (selftest::input_c_tests): Call test_should_have_column_data_p.
5152 Loop over a test matrix of interesting values of location and
5153 default_range_bits, calling test_lexer on each case in the matrix.
5154 Move call to test_accessing_ordinary_linemaps into the matrix.
5155 * selftest.h (ASSERT_EQ): Reimplement in terms of...
5156 (ASSERT_EQ_AT): New macro.
5158 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
5161 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
5162 Don't convert TImode in debug insn.
5164 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
5166 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
5167 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
5168 (tree_type_common::lang_flag_7): New.
5169 (tree_type_common::spare): Reduce size.
5170 * tree.h (TYPE_ALIGN_OK): Remove.
5171 (TYPE_LANG_FLAG_7): New.
5172 (get_inner_reference): Adjust header.
5173 * print-tree.c (print_node): Adjust.
5174 * expr.c (get_inner_reference): Remove parameter keep_aligning.
5175 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
5176 calls to get_inner_reference.
5177 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
5178 handling of TYPE_ALIGN_OK.
5179 * builtins.c (get_object_alignment_2): Adjust call to
5180 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
5181 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
5183 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
5184 * cfgexpand.c (expand_debug_expr): Likewise.
5185 * dbxout.c (dbxout_expand_expr): Likewise.
5186 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
5187 loc_list_from_tree, fortran_common): Likewise.
5188 * fold-const.c (optimize_bit_field_compare,
5189 decode_field_reference, fold_unary_loc, fold_comparison,
5190 split_address_to_core_and_offset): Likewise.
5191 * gimple-laddress.c (execute): Likewise.
5192 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
5193 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
5194 * hsa-gen.c (gen_hsa_addr): Likewise.
5195 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
5196 * tsan.c (instrument_expr): Likewise.
5197 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
5198 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
5199 * tree-affine.c (tree_to_aff_combination,
5200 get_inner_reference_aff): Adjust calls to get_inner_reference.
5201 * tree-data-ref.c (split_constant_offset_1,
5202 dr_analyze_innermost): Likewise.
5203 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
5204 * tree-sra.c (ipa_sra_check_caller): Likewise.
5205 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
5206 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
5207 bswap_replace): Likewise.
5208 * tree-vect-data-refs.c (vect_check_gather,
5209 vect_analyze_data_refs): Likewise.
5210 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
5211 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
5214 2016-07-11 David Malcolm <dmalcolm@redhat.com>
5216 * Makefile.in (selftest-valgrind): New phony target.
5217 * function-tests.c (selftest::build_cfg): Delete pass instances
5218 created by the test.
5219 (selftest::convert_to_ssa): Likewise.
5220 (selftest::test_expansion_to_rtl): Likewise.
5221 * tree-cfg.c (selftest::test_linear_chain): Release dominator
5223 (selftest::test_diamond): Likewise.
5225 2016-07-11 Richard Biener <rguenther@suse.de>
5227 PR tree-optimization/71816
5228 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
5229 than replacing all of its operands.
5231 2016-07-11 Alan Modra <amodra@gmail.com>
5233 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
5234 (ctr<mode>): Add unspec.
5235 (ctr<mode>_internal*): Likewise.
5237 2016-07-08 James Bowman <james.bowman@ftdichip.com>
5239 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
5240 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
5242 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
5244 PR rtl-optimization/71621
5245 * lra-constraints.c (process_alt_operands): Check combination of
5248 2016-07-08 Jason Merrill <jason@redhat.com>
5249 Richard Biener <rguenther@suse.de>
5251 P0145: Refining Expression Order for C++.
5252 * gimplify.c (initial_rhs_predicate_for): New.
5253 (gimplfy_modify_expr): Gimplify RHS before LHS.
5255 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5258 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5259 Allow standard error handling to take over when a wrong number
5260 of arguments is presented to __builtin_vec_ld () or
5261 __builtin_vec_st ().
5263 2016-07-08 Jiong Wang <jiong.wang@arm.com>
5265 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
5270 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
5271 __builtin_aarch64_fmaxv2sf.
5272 (vmaxnmq_f32): Likewise.
5273 (vmaxnmq_f64): Likewise.
5274 (vminnm_f32): Likewise.
5275 (vminnmq_f32): Likewise.
5276 (vminnmq_f64): Likewise.
5278 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
5281 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
5282 enable -mfloat128-hardware by default.
5283 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
5284 that IEEE 128-bit hardware support needs.
5285 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
5286 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
5287 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
5288 floating point requires.
5289 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
5290 -mfloat128 and -mfloat128-hardware changes.
5292 2016-07-08 Alan Hayward <alan.hayward@arm.com>
5294 PR tree-optimization/71667
5295 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
5297 2016-07-08 Martin Liska <mliska@suse.cz>
5300 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
5301 folding produces SAVE_EXPRs, thus return false for the type.
5303 2016-07-07 Martin Liska <mliska@suse.cz>
5305 * file-find.c (remove_prefix): New function.
5306 * file-find.h (remove_prefix): Declare the function.
5307 * gcc-ar.c (main): Skip a folder of the wrapper if
5308 a wrapped binary would point to the same file.
5310 2016-07-07 Jan Hubicka <jh@suse.cz>
5312 * tree-scalar-evolution.c (iv_can_overflow_p): export.
5313 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
5314 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
5316 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
5319 * ipa-inline-analysis.c (compute_inline_parameters): Set
5320 local.can_change_signature to false for intrumentation
5323 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5325 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
5326 with TARGET_HAVE_MOVT.
5327 (TARGET_HAVE_MOVT): Define.
5328 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
5329 availability with TARGET_HAVE_MOVT.
5330 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
5332 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
5334 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
5335 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
5336 * config/arm/constraints.md (define_constraint "j"): Use
5337 TARGET_HAVE_MOVT to check MOVT availability.
5339 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5341 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
5343 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5345 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
5346 (armv8-m.main): Likewise.
5347 (armv8-m.main+dsp): Likewise.
5348 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
5349 (FL_FOR_ARCH8M_MAIN): Likewise.
5350 * config/arm/arm-tables.opt: Regenerate.
5351 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
5352 armv8-m.main+dsp to BE8_LINK_SPEC.
5353 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
5354 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
5355 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
5356 Baseline and Mainline.
5357 (arm_option_override_internal): Also disable arm_restrict_it when
5358 !arm_arch_notm. Update comment for -munaligned-access to also cover
5360 (arm_file_start): Increase buffer size for printing architecture name.
5361 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
5362 and armv8-m.main+dsp.
5363 (mno-unaligned-access): Clarify that this is disabled by default for
5364 ARMv8-M Baseline architectures as well.
5366 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
5368 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
5369 decide whether to prevent some libgcc routines being included for some
5370 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
5371 link between this condition and the one in
5372 libgcc/config/arm/lib1func.S.
5374 2016-07-07 Richard Biener <rguenther@suse.de>
5376 * tree-ssa-pre.c: Include alias.h.
5377 (compute_avail): If we have multiple VN_REFERENCEs with the
5378 same hashtable entry adjust that to make it a valid replacement
5379 for all of them with respect to alignment and aliasing
5380 when doing insertion.
5381 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
5382 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
5384 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
5388 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
5389 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
5392 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5394 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
5395 (adjust_mems): Adjust.
5396 (adjust_insn): Likewise.
5397 (prepare_call_arguments): Likewise.
5399 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5401 * gcse.c (struct ls_expr): Make stores field a vector.
5402 (ldst_entry): Adjust.
5403 (free_ldst_entry): Likewise.
5404 (print_ldst_list): Likewise.
5405 (compute_ld_motion_mems): Likewise.
5406 (update_ld_motion_stores): Likewise.
5408 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5410 * gcse.c (struct ls_expr): Remove loads field.
5411 (ldst_entry): Adjust.
5412 (free_ldst_entry): Likewise.
5413 (print_ldst_list): Likewise.
5414 (compute_ld_motion_mems): Likewise.
5416 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5418 * store-motion.c (struct st_expr): Make antic_stores a vector.
5419 (st_expr_entry): Adjust.
5420 (free_st_expr_entry): Likewise.
5421 (print_store_motion_mems): Likewise.
5422 (find_moveable_store): Likewise.
5423 (compute_store_table): Likewise.
5424 (remove_reachable_equiv_notes): Likewise.
5425 (replace_store_insn): Likewise.
5426 (build_store_vectors): Likewise.
5428 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5430 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
5431 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
5433 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
5435 PR tree-optimization/71518
5436 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
5437 misalign also for outer loops with negative step.
5439 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
5441 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
5442 (cortex_a53_shift): Add mov_shift.
5443 (cortex_a53_shift_reg): Add new reservation for register shifts.
5444 (cortex_a53_alu): Remove bfm.
5445 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
5446 (cortex_a53_alu_extr): Add new reservation for EXTR.
5447 (bypasses): Improve bypass modelling.
5449 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
5452 * config/avr/avr.c (avr_asm_select_section): Strip off
5453 SECTION_DECLARED from flags when calling get_section.
5455 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5457 * tree-vectorizer.h (vect_memory_access_type): Add
5458 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
5459 * tree-vect-stmts.c (compare_step_with_zero): New function.
5460 (perm_mask_for_reverse): Move further up file.
5461 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
5463 (get_negative_load_store_type): New function.
5464 (get_load_store_type): Call it. Add an ncopies argument.
5465 (vectorizable_mask_load_store): Update call accordingly and
5466 remove tests for negative steps.
5467 (vectorizable_store, vectorizable_load): Likewise. Handle new
5468 memory_access_types.
5470 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5472 * tree-vectorizer.h (vect_memory_access_type): New enum.
5473 (_stmt_vec_info): Add a memory_access_type field.
5474 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
5475 (vect_model_store_cost): Take an access type instead of a boolean.
5476 (vect_model_load_cost): Likewise.
5477 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
5478 vect_model_store_cost and vect_model_load_cost.
5479 * tree-vect-stmts.c (vec_load_store_type): New enum.
5480 (vect_model_store_cost): Take an access type instead of a
5481 store_lanes_p boolean. Simplify tests.
5482 (vect_model_load_cost): Likewise, but for load_lanes_p.
5483 (get_group_load_store_type, get_load_store_type): New functions.
5484 (vectorizable_store): Use get_load_store_type. Record the access
5485 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
5486 (vectorizable_load): Likewise.
5487 (vectorizable_mask_load_store): Likewise. Replace is_store
5488 variable with vls_type.
5490 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5492 * tree-vectorizer.h (vect_grouped_load_supported): Add a
5493 single_element_p parameter.
5494 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
5495 Check the PR65518 case here rather than in vectorizable_load.
5496 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
5497 * tree-vect-stmts.c (vectorizable_load): Likewise.
5499 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5501 * tree-vectorizer.h (gather_scatter_info): New structure.
5502 (vect_check_gather_scatter): Return a bool rather than a decl.
5503 Replace return-by-pointer arguments with a single
5504 gather_scatter_info *.
5505 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
5506 (vect_analyze_data_refs): Update call accordingly.
5507 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
5508 (vectorizable_mask_load_store): Likewise. Also record the
5509 offset dt and vectype in the gather_scatter_info.
5510 (vectorizable_store): Likewise.
5511 (vectorizable_load): Likewise.
5513 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5515 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
5516 strided groups, use the cost of N scalar accesses instead
5517 of ncopies vector accesses.
5518 (vect_model_load_cost): Likewise.
5520 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5522 * tree-vect-stmts.c (vect_cost_group_size): Delete.
5523 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
5524 variable to indicate when once-per-group costs are being used.
5525 (vect_model_load_cost): Likewise. Fix comment and misindented code.
5527 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
5529 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
5530 peeling-for-gaps condition.
5532 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5534 * config/s390/s390.c (s390_expand_vec_init): Force initializer
5535 element to register if it doesn't match general_operand.
5537 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
5538 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5540 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
5542 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
5543 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
5544 (SIGNBIT): New mode iterator.
5545 (Fsignbit): New mode attribute.
5546 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
5547 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
5548 when direct moves are available.
5549 (signbit<mode>2_dm): New define_insn_and_split).
5550 (signbit<mode>2_dm2): New define_insn.
5552 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5554 PR rtl-optimization/71594
5555 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
5556 into subregs of appropriate mode before trying to emit a conditional
5559 2016-07-05 Jan Hubicka <jh@suse.cz>
5561 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
5562 (simple_iv): Use it.
5564 2016-07-05 Jan Hubicka <jh@suse.cz>
5566 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
5568 2016-07-05 Jiong Wang <jiong.wang@arm.com>
5570 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
5573 2016-07-05 Jan Hubicka <jh@suse.cz>
5575 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
5578 2016-07-05 Richard Biener <rguenther@suse.de>
5580 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
5581 Handle empty else block.
5582 (is_feasible_trace): Likewise.
5583 (split_paths): Likewise.
5585 2016-07-05 Richard Biener <rguenther@suse.de>
5587 * tree-loop-distribution.c (distribute_loop): Fix issue with
5588 the cost model loop.
5590 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
5592 * config/arm/neon-testgen.ml: Delete.
5593 * config/arm/neon.ml: Delete.
5595 2016-07-04 Jakub Jelinek <jakub@redhat.com>
5598 * tree.c (attribute_value_equal): Use get_attribute_name instead of
5599 directly using TREE_PURPOSE.
5601 2016-07-04 Jiong Wang <jiong.wang@arm.com>
5603 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
5604 * config/aarch64/aarch64_neon.h: Likewise.
5605 * config/aarch64/arm_neon.h: Likewise.
5606 * config/aarch64/atomics.md: Likewise.
5607 * config/aarch64/aarch64-simd-builtins.def: Likewise.
5608 * doc/invoke.texi: Likewise.
5610 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
5612 * config/s390/s390.md: Add "z13" cpu_facility.
5613 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
5614 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
5615 condition" type instructions.
5617 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
5618 Jeff Law <law@redhat.com>
5620 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
5621 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
5623 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
5625 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
5626 permutation for TARGET_AVX512F.
5627 (ix86_expand_vec_one_operand_perm_avx512): New function.
5628 (expand_vec_perm_1): Invoke introduced function.
5629 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
5630 it may be not valid after vectorization.
5632 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5635 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
5636 typo in comment. Only force to memory if it is a weak
5639 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
5640 Jiong Wang <jiong.wang@arm.com>
5642 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
5643 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
5644 (AARCH64_FL_F16): New.
5645 (AARCH64_FL_FOR_ARCH8_2): New.
5646 (AARCH64_ISA_8_2): New.
5647 (AARCH64_ISA_F16): New.
5648 (TARGET_FP_F16INST): New.
5649 (TARGET_SIMD_F16INST): New.
5650 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
5651 ("fp"): Disabling "fp" also disables "fp16".
5652 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
5653 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
5654 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
5655 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
5657 2016-07-04 Jan Beulich <jbeulich@suse.com>
5659 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
5661 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5664 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
5665 the insns, use an insn form that does not adjust the offset on
5666 little endian systems.
5668 2016-07-01 Jan Beulich <jbeulich@suse.com>
5670 * varasm.c (get_variable_section): Validate initializer in
5671 named .bss-like sections.
5673 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
5675 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
5676 Exchange the order of the second and third operands in the vpermr
5677 instruction tmeplate.
5679 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
5682 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
5683 Disallow TDmode values.
5685 2016-07-01 Alan Modra <amodra@gmail.com>
5687 PR rtl-optimization/71709
5688 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
5689 being set, not referenced.
5691 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
5693 PR tree-optimization/70729
5694 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
5695 of loop since it can be not valid after transformation.
5697 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5699 * config/arm/arm.c (thumb_reload_in_hi): Delete.
5700 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
5702 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
5704 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
5707 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
5710 * config/rs6000/constraints.md (wY constraint): New constraint to
5711 match the requirements for the LXSD and STXSD instructions.
5712 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
5713 predicate to match the requirements for the LXSD and STXSD
5715 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
5716 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
5717 to make sure that the bottom 2 bits of offset are 0, the address
5718 form is offsettable, and no updating is done in the address mode.
5719 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
5720 (movdi_internal32): Likewise
5721 (movdi_internal64): Likewise.
5723 2016-06-30 Jakub Jelinek <jakub@redhat.com>
5725 PR tree-optimization/71707
5726 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
5727 strinfo even for ADDR_EXPR ptr.
5729 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
5731 * config/rs6000/altivec.md (darn_32): Change the condition to
5732 TARGET_P9_MISC instead of TARGET_MODULO.
5733 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
5734 condition expression.
5735 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
5736 condition expression.
5737 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
5738 (DFP_TEST): New code iterator.
5739 (dfptstsfi_<code>_mode>): New define_expand.
5740 (*dfp_sgnfcnc_<mode>): New define_insn.
5741 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
5742 definition next to BU_P9_MISC_1 definition and change the MASK
5743 value to RS6000_BTM_P9_MISC.
5744 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
5745 (BU_P9_64BIT_MISC_0): Likewise.
5746 (BU_P9_DFP_MISC_0): New macro definition.
5747 (BU_P9_DFP_MISC_1): New macro definition.
5748 (BU_P9_DFP_MISC_2): New macro definition.
5749 (BU_P9_DFP_OVERLOAD_1): New macro definition.
5750 (BU_P9_DFP_OVERLOAD_2): New macro definition.
5751 (BU_P9_DFP_OVERLOAD_3): New macro definition.
5752 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
5753 (TSTSFI_LT_TD): Likewise.
5754 (TSTSFI_EQ_DD): Likewise.
5755 (TSTSFI_EQ_TD): Likewise.
5756 (TSTSFI_GT_DD): Likewise.
5757 (TSTSFI_GT_TD): Likewise.
5758 (TSTSFI_OV_DD): Likewise.
5759 (TSTSFI_OV_TD): Likewise.
5760 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
5761 (TSTSFI_LT_DD): Likewise.
5762 (TSTSFI_LT_TD): Likewise.
5763 (TSTSFI_EQ): Likewise.
5764 (TSTSFI_EQ_DD): Likewise.
5765 (TSTSFI_EQ_TD): Likewise.
5766 (TSTSFI_GT): Likewise.
5767 (TSTSFI_GT_DD): Likewise.
5768 (TSTSFI_GT_TD): Likewise.
5769 (TSTSFI_OV): Likewise.
5770 (TSTSFI_OV_DD): Likewise.
5771 (TSTSFI_OV_TD): Likewise.
5772 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
5773 overloaded test significance functions.
5774 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
5775 OPTION_MASK_P9_MISC into the representation of this mask.
5776 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
5778 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
5779 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
5781 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
5782 argument is a 6-bit unsigned literal value if the icode argument
5783 represents a DFP test significance built-in call.
5784 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
5785 flag used independently and in combination with the
5786 RS6000_BTM_64BIT flag.
5787 (rs6000_opt_masks): Add entry for power9-misc command-line option.
5788 (rs6000_builtin_mask_names): Add entry for power9-misc
5789 command-line option.
5790 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
5791 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
5792 RS6000_BTM_P9_MISC macros.
5793 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
5794 option and change the description of the -mpower9-vector option to
5795 enable only vector instructions, removing its erroneously claimed
5796 support for scalar instructions.
5797 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
5798 the ISA 3.0 digital floating point test significance built-in
5801 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
5803 * config/aarch64/aarch64.c (cortexa35_tunings):
5804 Enable AES fusion. Use cortexa57_branch_cost.
5805 (cortexa53_tunings): Use cortexa57_branch_cost.
5806 (cortexa72_tunings): Use cortexa57_branch_cost.
5807 Use AUTOPREFETCHER_WEAK.
5808 (cortexa73_tunings): Use cortexa57_branch_cost.
5810 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5811 James Greenhalgh <james.greenhalgh@arm.com>
5813 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
5814 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
5815 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
5816 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
5817 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
5818 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
5819 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
5820 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
5821 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
5822 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
5823 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
5824 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
5825 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
5828 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
5829 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5831 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
5833 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
5835 2016-06-30 David Malcolm <dmalcolm@redhat.com>
5838 * gcc.c (driver::build_option_suggestions): Pass "option" to
5839 add_misspelling_candidates.
5840 * opts-common.c (add_misspelling_candidates): Add "option" param;
5841 use it to avoid adding negated forms for options marked with
5843 * opts.h (add_misspelling_candidates): Add "option" param.
5845 2016-06-30 Jakub Jelinek <jakub@redhat.com>
5848 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
5849 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
5850 first when permuting bitwise operation with rotate. Cast
5851 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
5853 2016-06-29 David Malcolm <dmalcolm@redhat.com>
5855 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
5856 for misspelled param names.
5857 * params.c: Include spellcheck.h.
5858 (find_param_fuzzy): New function.
5859 * params.h (find_param_fuzzy): New prototype.
5860 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
5861 * spellcheck.h (struct edit_distance_traits<const char *>):
5864 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
5866 * config/rs6000/predicates.md (const_0_to_7_operand): New
5867 predicate, recognize 0..7.
5868 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5869 support for doing extracts from V16QImode, V8HImode, V4SImode
5871 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
5872 vector extract support.
5873 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
5874 for ISA 3.0 vector extract.
5875 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
5876 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
5877 extracts of a constant element number from small integer vectors
5878 on 64-bit ISA 3.0 systems.
5879 (vsx_extract_<mode>_di): Likewise.
5880 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
5881 say when we can do ISA 3.0 vector extracts.
5882 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
5883 registers, using the stxsiwx instruction.
5885 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
5887 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
5888 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
5889 qdf24xx_regmove_cost, qdf24xx_tunings): New.
5890 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
5891 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
5892 * config/arm/arm.c (arm_qdf24xx_tune): New.
5894 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
5896 * config/aarch64/aarch64.c (cortexa53_tunings):
5897 Increase loop alignment to 8. Set function alignment to 16.
5898 (cortexa35_tunings): Likewise.
5899 (cortexa57_tunings): Increase loop alignment to 8.
5900 (cortexa72_tunings): Likewise.
5901 (cortexa73_tunings): Likewise.
5903 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
5905 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
5906 for arm_fp16_ok and arm_fp16_hw.
5907 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
5908 arm_fp16_alternative.
5910 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
5912 PR tree-optimization/71655
5913 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
5914 types when swapping operands.
5916 2016-06-29 Martin Liska <mliska@suse.cz>
5919 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
5920 * ipa-inline-transform.c (inline_call): Remove unnecessary call
5921 of build_optimization_node.
5923 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
5925 PR tree-optimization/70729
5926 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
5927 independent in loops having positive safelen value.
5928 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
5929 it may be not valid after vectorization.
5931 2016-06-29 Jakub Jelinek <jakub@redhat.com>
5933 PR tree-optimization/71625
5934 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
5935 is sorted by ascending list->offset. If PTR is non-NULL and there is
5936 previous strinfo, call get_stridx_plus_constant.
5937 (get_stridx): Pass exp as second argument to get_addr_stridx.
5938 (addr_stridxptr): Add missing list = list->next, so that there can be
5939 more than one entries in the list. Bump limit from 16 to 32. Ensure
5940 the list is sorted by ascending list->offset.
5941 (get_stridx_plus_constant): Adjust so that it can be also called with
5942 ADDR_EXPR instead of SSA_NAME as PTR.
5943 (handle_char_store): Pass NULL_TREE as second argument to
5946 2016-06-29 Richard Biener <rguenther@suse.de>
5948 PR rtl-optimization/68961
5949 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
5951 2016-06-29 Richard Biener <rguenther@suse.de>
5954 * alias.c (component_uses_parent_alias_set_from): Handle
5955 type punning through union accesses by using the union alias set.
5956 * gimple.c (gimple_get_alias_set): Remove union type punning case.
5958 2016-07-29 Richard Biener <rguenther@suse.de>
5960 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
5961 precision not matching mode precision.
5963 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
5965 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
5966 pa_output_arg_descriptor.
5967 (call_val_symref_64bit_post_reload): Likewise.
5968 (call_val_powf_64bit_post_reload): Likewise.
5969 (sibcall_internal_symref_64bit): Likewise.
5970 (sibcall_value_internal_symref_64bit): Likewise.
5972 2016-06-28 Jakub Jelinek <jakub@redhat.com>
5975 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
5976 a constant, force its SUBREG_REG into memory or register instead
5979 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
5982 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
5983 * doc/invoke.texi (AVR Options): Document it.
5985 2016-06-28 Walter Lee <walt@tilera.com>
5987 * config/tilegx/linux.h: Do not include arch/icache.h
5988 (CLEAR_INSN_CACHE): Provide inlined definition directly.
5989 * config/tilepro/linux.h: Do not include arch/icache.h
5990 (CLEAR_INSN_CACHE): Provide inlined definition directly.
5992 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
5994 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
5995 for big-endian BIT_FIELD_REF.
5997 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
5999 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
6000 ('size' attribute): Add '128'.
6002 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
6003 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
6004 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
6005 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
6006 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
6007 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
6008 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
6009 *trunc<mode>df2_odd): Set size attribute to '128'.
6010 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
6011 * config/rs6000/power6.md (power6-fp): Include dfp type.
6012 * config/rs6000/power7.md (power7-fp): Likewise.
6013 * config/rs6000/power8.md (power8-fp): Likewise.
6014 * config/rs6000/power9.md: New file.
6015 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
6016 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
6017 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
6019 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
6020 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
6021 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
6022 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
6023 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
6024 dfp_dscri_<mode>): Change type attribute to dfp.
6025 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
6026 attribute to vecsimple.
6027 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
6028 and prefetch streams.
6029 (rs6000_option_override_internal): Remove temporary code setting
6030 tuning to power8. Don't set rs6000_sched_groups for power9.
6031 (last_scheduled_insn): Change to rtx_insn *.
6032 (divide_cnt, vec_load_pendulum): New variables.
6033 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
6034 (rs6000_issue_rate): Set issue rate for Power9.
6035 (is_power9_pairable_vec_type): New.
6036 (power9_sched_reorder2): New.
6037 (rs6000_sched_reorder2): Call new function for Power9 specific
6039 (insn_must_be_first_in_group): Remove Power9.
6040 (insn_must_be_last_in_group): Likewise.
6041 (force_new_group): Likewise.
6042 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
6043 Initialize divide_cnt/vec_load_pendulum.
6044 (_rs6000_sched_context, rs6000_init_sched_context,
6045 rs6000_set_sched_context): Handle context save/restore of new
6048 2016-06-28 Richard Biener <rguenther@suse.de>
6050 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
6051 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
6052 COMPONENT_REF operand.
6053 (nonoverlapping_component_refs_p): Likewise.
6054 * stor-layout.c (start_bitfield_representative): Mark
6055 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
6057 2016-06-28 Jakub Jelinek <jakub@redhat.com>
6059 * Makefile.in: Don't cat ../stage_current if it does not exist.
6061 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
6062 last argument is a bit-field.
6064 PR rtl-optimization/71673
6065 * internal-fn.c (expand_arith_overflow_result_store): Use
6066 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
6067 expand_simple_binop.
6070 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
6071 expand_ifn_atomic_compare_exchange): New functions.
6072 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
6073 * tree.h (build_call_expr_internal_loc): Rename to ...
6074 (build_call_expr_internal_loc_array): ... this. Fix up type of
6076 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
6077 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
6078 ATOMIC_COMPARE_EXCHANGE result.
6079 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
6080 * gimple-fold.h (optimize_atomic_compare_exchange_p,
6081 fold_builtin_atomic_compare_exchange): New prototypes.
6082 * gimple-fold.c (optimize_atomic_compare_exchange_p,
6083 fold_builtin_atomic_compare_exchange): New functions..
6084 * tree-ssa.c (execute_update_addresses_taken): If
6085 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
6086 of call when finding addressable vars, and if such var becomes
6087 non-addressable, call fold_builtin_atomic_compare_exchange.
6089 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
6092 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
6093 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
6095 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
6097 * config/rs6000/rs6000.md ('type' attribute): Add
6098 veclogical,veccmpfx,vecexts,vecmove insn types.
6099 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
6100 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
6101 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
6102 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
6103 *nabs<mode>2_hw): Change type to vecmove.
6104 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
6105 *boolcc<mode>3_internal, *eqv<mode>3_internal,
6106 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
6107 *ieee_128bit_vsx_abs<mode>2_internal,
6108 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
6109 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
6110 *ieee128_mtvsrd_32bit): Change type to veclogical.
6111 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
6112 *movdi_internal32, *movdi_internal64): Update insn types.
6113 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
6114 vsx_extract_<mode>): Change type to veclogical.
6115 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
6116 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
6117 *vsx_sign_extend_si_v2di): Change type to vecexts.
6118 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
6120 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
6121 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
6122 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
6123 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
6124 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
6125 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
6126 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
6127 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
6128 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
6129 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
6130 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
6131 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
6132 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
6133 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
6134 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
6135 (ppc7450-vecsimple): Add veclogical, vecmove.
6136 (ppc7450-veccmp): Add veccmpfx.
6137 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
6139 (ppc8540_vector_compare): Add veccmpfx.
6140 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
6141 * config/rs6000/cell.md (cell-fp): Add fpsimple.
6142 (cell-vecsimple): Add veclogical, vecmove.
6143 (cell-veccmp): Add veccmpfx.
6144 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
6145 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
6147 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
6148 * config/rs6000/power4.md (power4-fp): Add fpsimple.
6149 (power4-vecsimple): Add veclogical, vecmove.
6150 (power4-veccmp): Add veccmpfx.
6151 * config/rs6000/power5.md (power5-fp): Add fpsimple.
6152 * config/rs6000/power6.md (power6-fp): Add fpsimple.
6153 (power6-vecsimple): Add veclogical, vecmove.
6154 (power6-veccmp): Add veccmpfx.
6155 * config/rs6000/power7.md (power7-fp): Add fpsimple.
6156 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
6157 * config/rs6000/power8.md (power8-fp): Add fpsimple.
6158 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
6159 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
6160 * config/rs6000/titan.md (titan_fp): Add fpsimple.
6161 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
6163 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
6165 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
6168 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
6169 OPTION_MASK_P9_DFORM_VECTOR.
6170 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
6171 disable -mpower9-dform-vector when using reload.
6172 (quad_address_p): Remove 'gpr_p' argument and all associated code.
6173 New 'strict' argument. Update all callers. Add strict addressing
6175 (rs6000_legitimate_offset_address_p): Remove call to
6176 virtual_stack_registers_memory_p.
6177 (rs6000_legitimize_reload_address): Add quad address support.
6178 (rs6000_legitimate_address_p): Move call to quad_address_p above
6179 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
6180 to account for new strict usage.
6181 (rs6000_output_move_128bit): Adjust quad_address_p args to account
6182 for new strict usage.
6183 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
6185 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
6192 * config/i386/i386.c (ix86_spill_class): Disable condition to
6193 always return NO_REGS.
6195 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
6197 * predict.c: Include gimple-pretty-print.h
6198 (predicted_by_loop_heuristics_p): Check also
6199 PRED_LOOP_EXIT_WITH_RECURSION
6200 (predict_loops): Find self recursive calls and use special purpose
6201 predictors for them; dump log about decisions.
6202 (pass_profile::execute): Dump info about #of iterations.
6203 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
6204 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
6206 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
6208 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
6209 output_asm_insn calls and shorten long lines. Output .CALL
6210 argument descriptor using pa_output_arg_descriptor. Add various
6211 inline $$dyncall and other optimizations.
6212 (pa_attr_length_indirect_call): Adjust ordering and lengths.
6214 2016-06-25 Jakub Jelinek <jakub@redhat.com>
6216 PR tree-optimization/71643
6217 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
6220 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
6221 leak a bitmap if dep_bb is NULL.
6223 PR tree-optimization/71631
6224 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
6225 to rewrite_expr_tree even if negate_result, move new_lhs var
6226 declaration and initialization earlier, for powi_result set afterwards
6227 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
6228 if new_lhs != lhs, and don't shadow gsi var.
6230 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
6232 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
6233 Add in_loop parameter.
6234 (predict_loops): Add loop guard heuristics.
6235 * predict.def (PRED_LOOP_GUARD): New heuristics.
6237 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
6239 * predict.c: Include ipa-utils.h
6240 (tree_bb_level_prediction): Predict recursive calls.
6241 (tree_estimate_probability_bb): Skip inexpensive calls for call
6243 * predict.def (PRED_RECURSIVE_CALL): New.
6245 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6247 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
6248 (BU_FLOAT128_1): Likewise.
6250 (COPYSIGNQ): Likewise.
6251 (RS6000_BUILTIN_NANQ): Likewise.
6252 (RS6000_BUILTIN_NANSQ): Likewise.
6253 (RS6000_BUILTIN_INFQ): Likewise.
6254 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
6255 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
6256 (TARGET_FOLD_BUILTIN): New #define.
6257 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
6258 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
6259 (rs6000_fold_builtin): New target hook implementation, handling
6260 folding of 128-bit NaNs and infinities.
6261 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
6262 entries are filled in to avoid problems during bootstrap
6263 self-test; define builtins for 128-bit NaNs and infinities.
6264 (rs6000_opt_mask): Add entry for float128.
6265 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
6266 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
6267 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
6268 (const_str_type_node): New #define.
6269 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
6270 to a define_expand that dispatches to either copysign<mode>3_soft
6271 or copysign<mode>3_hard.
6272 (copysign<mode>3_hard): Rename from copysign<mode>3.
6273 (copysign<mode>3_soft): New define_insn.
6274 * doc/extend.texi: Document new builtins.
6276 2016-06-24 Jakub Jelinek <jakub@redhat.com>
6278 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
6279 PRIu64 instead of lu.
6281 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
6284 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
6287 2016-06-24 Jakub Jelinek <jakub@redhat.com>
6289 PR tree-optimization/71647
6290 * omp-low.c (lower_rec_input_clauses): Convert
6291 omp_clause_aligned_alignment (c) to size_type_node for the
6292 last argument of __builtin_assume_aligned.
6294 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
6296 * configure.ac (calling ___tls_get_addr via GOT): New
6297 assembler/linker check.
6298 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
6299 assembler and linker supports calling ___tls_get_addr via GOT.
6300 Otherise, defined to 0.
6301 * config.in: Regenerated.
6302 * configure: Likewise.
6303 * config/i386/constraints.md (Yb): New constraint.
6304 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
6305 (REG_CLASS_NAMES): Likewise.
6306 (REG_CLASS_CONTENTS): Likewise.
6307 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
6308 the b constraint with the Yb constraint. Call ___tls_get_addr
6309 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
6311 (*tls_local_dynamic_base_32_gnu): Likewise.
6312 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
6313 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
6314 (*tls_local_dynamic_base_64_<mode>): Likewise.
6316 2016-06-24 Martin Liska <mliska@suse.cz>
6318 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
6319 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
6321 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
6322 argument to true if the expected number of iterations is
6325 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
6327 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
6328 assemble for 32bit target.
6329 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
6330 and $ld_ix86_gld_32_opt to link for 32bit target.
6331 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
6332 * configure: Regenerate.
6334 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6336 * config/arm/arm.c (int_log2): Delete definition and prototype.
6337 (shift_op): Use exact_log2 instead of int_log2.
6338 (vfp3_const_double_for_fract_bits): Likewise.
6340 2016-06-24 Jakub Jelinek <jakub@redhat.com>
6342 * internal-fn.c (expand_arith_set_overflow): New function.
6343 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
6345 (expand_arith_overflow_result_store): Likewise. Handle precision
6346 smaller than mode precision.
6347 * tree-vrp.c (extract_range_basic): For imag part, handle
6348 properly signed 1-bit precision result.
6349 * doc/extend.texi (__builtin_add_overflow): Document that last
6350 argument can't be pointer to enumerated or boolean type.
6351 (__builtin_add_overflow_p): Document that last argument can't
6352 have enumerated or boolean type.
6354 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6355 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6357 * config/rs6000/predicates.md (splat_input_operand): Rework.
6358 Don't allow constants, since the insns that use this predicate
6359 don't support constants. Constants are handled by other insns
6360 that are created via combine. During and after register
6361 allocation, only allow indexed or indirect addresses, and not
6362 general addresses. Only allow modes supported by the hardware.
6363 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
6364 comment. Move check for using VSPLTIS<x> to a common location,
6365 instead of doing it in two different places.
6367 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
6369 * config/i386/driver-i386.c (host_detect_local_cpu): Set
6370 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
6371 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
6372 signature_CENTAUR_ebx.
6374 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
6378 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
6379 (as_ix86_gas_32_opt): This.
6380 (ld_ix86_tls_ldm_opt): Renamed to ...
6381 (ld_ix86_gld_32_opt): This.
6382 (R_386_TLS_LDM reloc): Updated.
6383 (R_386_GOT32X reloc): New assembler/linker check.
6384 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
6385 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
6387 * config.in: Regenerated.
6388 * configure: Likewise.
6389 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
6390 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
6391 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
6392 if ix86_force_load_from_GOT_p returns true.
6393 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
6394 ix86_force_load_from_GOT_p returns true.
6395 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
6396 the external function address via the GOT slot.
6397 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
6398 HAVE_AS_IX86_GOT32X before returning false.
6399 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
6400 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
6402 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
6404 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
6406 2016-06-23 Andi Kleen <ak@linux.intel.com>
6408 * Makefile.in: Regenerate.
6409 * doc/install.texi: Document autoprofiledbootstrap.
6411 2016-06-23 Andi Kleen <ak@linux.intel.com>
6413 * config/i386/gcc-auto-profile: New file.
6415 2016-06-23 Martin Liska <mliska@suse.cz>
6418 * predict.c (predict_loops): Revert the hunk that was removed
6421 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
6423 * config.gcc: Add support for arm*-*-phoenix* targets.
6424 * config/arm/t-phoenix: New.
6425 * config/phoenix.h: New.
6427 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
6428 H.J. Lu <hongjiu.lu@intel.com>
6431 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
6432 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
6433 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
6434 ix86_force_load_from_GOT_p returns true.
6435 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
6436 ix86_force_load_from_GOT_p returns true.
6437 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
6438 ix86_force_load_from_GOT_p returns true.
6439 (ix86_expand_move): Load the external function address via the
6440 GOT slot if ix86_force_load_from_GOT_p returns true.
6441 * config/i386/predicates.md (x86_64_immediate_operand): Return
6442 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
6443 (x86_64_zext_immediate_operand): Ditto.
6445 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
6447 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
6449 2016-06-22 David Malcolm <dmalcolm@redhat.com>
6452 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
6453 * diagnostic.c (pedwarn_at_rich_loc): New function.
6454 * spellcheck.h (best_match::best_match): Add a
6455 "best_distance_so_far" optional parameter.
6456 (best_match::set_best_so_far): New method.
6457 (best_match::get_best_distance): New accessor.
6458 (best_match::get_best_candidate_length): New accessor.
6460 2016-06-22 Nick Clifton <nickc@redhat.com>
6462 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
6463 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
6464 modes are accepted as well.
6465 (ucompare_loc_descriptor): Likewise.
6466 (minmax_loc_descriptor): Likewise.
6467 (clz_loc_descriptor): Likewise.
6468 (popcount_loc_descriptor): Likewise.
6469 (bswap_loc_descriptor): Likewise.
6470 (rotate_loc_descriptor): Likewise.
6471 (mem_loc_descriptor): Likewise.
6472 (loc_descriptor): Likewise.
6474 2016-06-22 David Malcolm <dmalcolm@redhat.com>
6476 * common.opt (fdiagnostics-parseable-fixits): New option.
6477 * diagnostic.c: Include "selftest.h".
6478 (print_escaped_string): New function.
6479 (print_parseable_fixits): New function.
6480 (diagnostic_report_diagnostic): Call print_parseable_fixits.
6481 (selftest::assert_print_escaped_string): New function.
6482 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
6483 (selftest::test_print_escaped_string): New function.
6484 (selftest::test_print_parseable_fixits_none): New function.
6485 (selftest::test_print_parseable_fixits_insert): New function.
6486 (selftest::test_print_parseable_fixits_remove): New function.
6487 (selftest::test_print_parseable_fixits_replace): New function.
6488 (selftest::diagnostic_c_tests): New function.
6489 * diagnostic.h (struct diagnostic_context): Add field
6490 "parseable_fixits_p".
6491 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
6492 -fdiagnostics-parseable-fixits.
6493 (-fdiagnostics-parseable-fixits): New option.
6494 * opts.c (common_handle_option): Handle
6495 -fdiagnostics-parseable-fixits.
6496 * selftest-run-tests.c (selftest::run_tests): Call
6497 selftest::diagnostic_c_tests.
6498 * selftest.h (selftest::diagnostic_c_tests): New prototype.
6500 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
6502 PR tree-optimization/71488
6503 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
6504 comparison of boolean vectors.
6505 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
6506 of boolean vectors using bitwise operations.
6508 2016-06-22 Andreas Schwab <schwab@suse.de>
6510 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
6513 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
6515 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
6517 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
6519 * config/i386/i386.c (print_reg): Emit an error message on attempt to
6522 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6524 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
6525 * config/arm/arm-cores.def (cortex-a73): New entry.
6526 (cortex-a73.cortex-a35): Likewise.
6527 (cortex-a73.cortex-a53): Likewise.
6528 * config/arm/arm-tables.opt: Regenerate.
6529 * config/arm/arm-tune.md: Likewise.
6530 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
6531 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
6532 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
6533 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
6534 * doc/invoke.texi (ARM Options): Document cortex-a73,
6535 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
6537 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6539 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
6540 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
6541 (cortex-a73.cortex-a35): Likewise.
6542 (cortex-a73.cortex-a53): Likewise.
6543 * config/aarch64/aarch64-tune.md: Regenerate.
6544 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
6545 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
6548 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6550 * configure.ac (gcc_cv_as_compress_debug): Remove
6551 --compress-debug-sections as extra as switch.
6552 Handle gas --compress-debug-sections=type.
6553 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
6554 Handle gld --compress-debug-sections=type.
6555 * configure: Regenerate.
6557 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
6559 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
6561 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
6563 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
6564 (do_rewrite): likewise.
6566 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6568 * common/config/mep/mep-common.c: Remove.
6569 * config.gcc: Remove mep-* support.
6570 * config/mep/constraints.md: Remove.
6571 * config/mep/default.h: Remove.
6572 * config/mep/intrinsics.h: Remove.
6573 * config/mep/intrinsics.md: Remove.
6574 * config/mep/ivc2-template.h: Remove.
6575 * config/mep/mep-c5.cpu: Remove.
6576 * config/mep/mep-core.cpu: Remove.
6577 * config/mep/mep-default.cpu: Remove.
6578 * config/mep/mep-ext-cop.cpu: Remove.
6579 * config/mep/mep-intrin.h: Remove.
6580 * config/mep/mep-ivc2.cpu: Remove.
6581 * config/mep/mep-pragma.c: Remove.
6582 * config/mep/mep-protos.h: Remove.
6583 * config/mep/mep.c: Remove.
6584 * config/mep/mep.cpu: Remove.
6585 * config/mep/mep.h: Remove.
6586 * config/mep/mep.md: Remove.
6587 * config/mep/mep.opt: Remove.
6588 * config/mep/predicates.md: Remove.
6589 * config/mep/t-mep: Remove.
6590 * doc/install.texi: Remove mep-* documentation.
6591 * doc/md.texi: Likewise.
6593 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6595 * config.gcc: Remove support for avr-rtems.
6596 * config/avr/gen-avr-mmcu-specs.c: Likewise.
6597 * config/avr/rtems.h: Remove.
6598 * config/avr/t-rtems: Remove.
6600 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6602 * config.gcc: Remove m32r-rtems support.
6603 * config/m32r/rtems.h: Remove.
6605 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6607 * config.gcc: Remove h8300-rtems support.
6608 * config/h8300/rtems.h: Remove.
6609 * config/h8300/t-rtems: Remove.
6611 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6613 * config.gcc: Remove support for knetbsd.
6614 * configure.ac: Likewise.
6615 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
6616 * config/knetbsd-gnu.h: Remove.
6617 * configure: Regenerate.
6619 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6621 * config.gcc: Remove support for openbsd 2 and 3.
6622 * config/openbsd-oldgas.h: Remove.
6624 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6626 * config.gcc: Remove interix support.
6627 * config/i386/i386-interix.h: Remove.
6628 * config/i386/interix.opt: Remove.
6629 * config/i386/t-interix: Remove.
6630 * configure: Regenerate.
6631 * configure.ac: Remove interix support.
6632 * doc/install.texi: Remove interix documentation.
6634 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
6636 * config/rs6000/rs6000.h: Add conditional preprocessing directives
6637 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
6640 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
6642 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
6643 they are both PLACEHOLDER_EXPRs.
6645 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
6647 * stor-layout.c (layout_type): Move setting complex MODE to
6648 layout_type, instead of setting it ahead of time by the caller.
6649 * tree.c (build_complex_type): Likewise.
6651 2016-06-21 Martin Liska <mliska@suse.cz>
6653 * predict.c (force_edge_cold): Replace imposisble with
6656 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
6658 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
6659 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
6661 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
6663 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
6665 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
6666 Ilya Enkovich <ilya.enkovich@intel.com>
6669 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
6670 New member function to convert V1TImode register to SUBREG
6671 TImode in debug insn.
6672 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
6673 after changing register mode to V1TImode.
6675 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
6677 * config/aarch64/aarch64-cores.def (vulcan): New core.
6678 * config/aarch64/aarch64-tune.md: Regenerate.
6679 * doc/invoke.texi: Document vulcan as an available option.
6681 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
6683 * cse.c (canon_asm_operands): New function extracted from...
6684 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
6685 either standalone or member of a PARALLEL.
6687 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
6690 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
6691 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
6692 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
6694 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
6697 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
6698 constant addresses if can_create_pseudo_p.
6700 2016-06-21 Jakub Jelinek <jakub@redhat.com>
6702 PR tree-optimization/71588
6703 * tree-ssa-strlen.c (valid_builtin_call): New function.
6704 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
6707 2016-06-20 Jakub Jelinek <jakub@redhat.com>
6710 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
6711 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
6712 for conversion of scalar user var to complex type and use the
6713 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
6716 PR rtl-optimization/71591
6717 * toplev.c (toplev::run_self_tests): If no_backend, complain and
6718 don't run any tests.
6720 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
6723 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
6724 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
6725 space for PIC with non-v32 and the common non-PIC "jump".
6727 2016-06-20 Jakub Jelinek <jakub@redhat.com>
6730 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
6731 returned values and add UN*/LTGT/*ORDERED cases with values matching
6732 D operand modifier on vcmp for AVX.
6734 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6736 * config/aarch64/aarch64.opt
6737 (mpc-relative-literal-loads): Rename internal option name.
6738 * config/aarch64/aarch64.c
6739 (aarch64_nopcrelative_literal_loads): Rename to
6740 aarch64_pcrelative_literal_loads.
6741 (aarch64_expand_mov_immediate): Likewise.
6742 (aarch64_secondary_reload): Likewise.
6743 (aarch64_can_use_per_function_literal_pools_p): Likewise.
6744 (aarch64_override_options_after_change_1): Rename and simplify logic.
6745 (aarch64_classify_symbol): Merge large model checks into switch,
6746 remove pc-relative load check.
6748 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6750 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
6751 costs relative to the cost of a register move.
6753 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6755 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
6756 (vcvt_n_f64_u64): Likewise.
6757 (vcvt_n_s64_f64): Likewise.
6758 (vcvt_n_u64_f64): Likewise.
6759 (vcvt_f64_s64): Likewise.
6760 (vrecpe_f64): Likewise.
6761 (vcvt_f64_u64): Likewise.
6762 (vrecps_f64): Likewise.
6764 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6766 * config/aarch64/aarch64.md
6767 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
6769 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
6771 * config/aarch64/aarch64-builtins.c
6772 (aarch64_types_binop_uss_qualifiers): Delete.
6773 (TYPES_BINOP_USS): Likewise.
6774 (aarch64_types_binop_sus_qualifiers): Likewise.
6775 (TYPES_BINOP_SUS): Likewise.
6776 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
6777 (TYPES_FCVTIMM_SUS): Likewise.
6778 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
6780 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
6781 (fcvtzs): Use SHIFTIMM rather than BINOP.
6782 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
6784 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
6786 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
6787 costs relative to the cost of a register move.
6789 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6791 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
6792 Allow scalar/single vector modes to be tieable.
6794 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
6796 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
6798 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6800 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
6802 * tree.h (TYPE_ALIGN): Likewise.
6804 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
6807 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
6809 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
6811 * config/avr/avr.c (avr_print_operand): Fix "format not a string
6812 literal" build warnings.
6813 (avr_print_operand_address): Dito.
6815 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
6818 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
6819 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
6821 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
6823 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
6825 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
6828 * reload1.c (reload): Pass 0 to finish_spills when called because
6829 update_eliminables_and_spill returns true and remove did_spill.
6830 (finish_spills): Adjust comment and document GLOBAL parameter.
6832 2016-06-17 DJ Delorie <dj@redhat.com>
6835 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
6836 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
6837 (umulqihi3_virt): Likewise.
6838 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
6839 (umulqihi3_real): Likewise.
6841 2016-06-17 Martin Liska <mliska@suse.cz>
6843 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
6845 2016-06-17 Martin Liska <mliska@suse.cz>
6847 * predict.def: PRED_LOOP_EXIT from 92 to 85.
6849 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
6851 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
6853 (vaddq_f32): Likewise.
6854 (vmul_f32): Likewise.
6855 (vmulq_f32): Likewise.
6856 (vsub_f32): Likewise.
6857 (vsubq_f32): Likewise.
6859 2016-06-17 Bin Cheng <bin.cheng@arm.com>
6861 PR tree-optimization/71347
6862 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
6863 cost for all uses in group.
6865 2016-06-17 Bin Cheng <bin.cheng@arm.com>
6867 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
6868 insert gimple seq if it's not empty.
6870 2016-06-17 Bin Cheng <bin.cheng@arm.com>
6872 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
6874 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
6876 (comp_dr_with_seg_len_pair): Ditto.
6877 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
6878 struct dr_with_seg_len_pair against DR_OFFSET.
6879 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
6882 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
6884 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
6886 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
6888 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
6889 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
6890 (pa_output_millicode_call): Likewise.
6891 (pa_output_call): Likewise.
6892 (pa_output_indirect_call): Likewise.
6893 (pa_asm_output_mi_thunk): Likewise.
6895 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6897 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
6899 2016-06-16 Martin Liska <mliska@suse.cz>
6901 * predict.c (combine_predictions_for_insn): When we find a first
6902 match predictor, we should consider just predictors with
6903 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
6904 DS theory predictor.
6905 (combine_predictions_for_bb): Likewise.
6907 2016-06-16 Jakub Jelinek <jakub@redhat.com>
6909 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
6910 with base of reference to struct.
6912 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
6914 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
6916 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
6919 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
6920 progmem_swtable_section.
6921 (progmem_swtable_section): Remove.
6922 (avr_asm_function_rodata_section): Remove.
6923 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
6924 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
6926 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
6928 * config/i386/driver-i386.c (host_detect_local_cpu): Set
6929 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
6930 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
6931 signature_CENTAUR_ebx.
6932 * config/i386/i386.c (ix86_option_override_internal): Add
6933 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
6934 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
6935 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
6937 2016-06-16 Martin Liska <mliska@suse.cz>
6939 * predict.def: Add fortran loop preheader predictor.
6940 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
6941 fold IFN_BUILTIN_EXPECT with a known constant argument.
6943 2016-06-16 Martin Liska <mliska@suse.cz>
6945 * predict.def: Add 'Fortran' to display text of all
6946 PRED_FORTRAN_* predictors.
6948 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
6951 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
6952 [IA64_BUILTIN_NANSQ]: Ditto.
6953 (ia64_fold_builtin): New function.
6954 (TARGET_FOLD_BUILTIN): New define.
6955 (ia64_init_builtins) Declare const_string_type node.
6956 Add __builtin_nanq and __builtin_nansq builtin functions.
6957 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
6959 2016-06-16 Nick Clifton <nickc@redhat.com>
6961 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
6962 MSP430_HWMULT_ prefix to enum values.
6963 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
6964 * config/msp430/msp430.c: Update use of enum values.
6965 * config/msp430/msp430.md: Likewise.
6966 * config/msp430/msp430.opt: Likewise.
6968 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
6970 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
6971 of comparsions in the last iteration.
6973 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
6974 Joern Rennecke <joern.rennecke@embecosm.com>
6976 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
6978 (arc_needs_pcl_p): Add GOTOFFPC.
6979 (arc_legitimate_pic_addr_p): Likewise.
6980 (arc_output_pic_addr_const): Likewise.
6981 (arc_legitimize_pic_address): Generate a pc-relative address using
6983 (arc_output_libcall): Use @pcl syntax.
6984 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
6985 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
6986 (*movsi_insn): Use @pcl syntax.
6987 (doloop_begin_i): Likewise.
6989 2016-06-16 Martin Liska <mliska@suse.cz>
6991 * predict.def: Define a new predictor.
6993 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
6995 * config/arc/arc.opt (mtp-regno): Update text.
6997 2016-06-16 Renlin Li <renlin.li@arm.com>
6999 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
7001 2016-06-16 Jakub Jelinek <jakub@redhat.com>
7004 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
7005 (setcc + and peephole2): Likewise.
7007 PR rtl-optimization/71532
7008 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
7011 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
7013 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
7014 DImode constants with XXSPLTIB in vector registers.
7015 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
7016 vsx_extract_<mode>_internal{1,2} into a single insn that handles
7017 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
7018 extraction of the element at the top of the register as a scalar
7020 (vsx_extract_<mode>_internal1): Likewise.
7021 (vsx_extract_<mode>_internal2): Likewise.
7022 * config/rs6000/constraints.md (wi constraint): Remove a comment
7023 about DImode not being allowed in Altivec registers.
7024 (wB constraint): New constraint for constants that can be
7025 generated in Altivec registers with VSPLTISW/VUPKHSW.
7026 * config/rs6000/predicates.md (xxspltib_constant_split): Update
7028 (xxspltib_constant_nosplit): Likewise.
7029 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
7030 support for -mupper-regs-di to enable DImode to go into Altivec
7032 (POWERPC_MASKS): Likewise.
7033 (power7 cpu): Likewise.
7034 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
7035 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
7036 for DImode being allowed in Altivec registers. Update wi/wj
7037 constraints. Set scalar_in_vmx_p flag.
7038 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
7039 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
7040 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
7041 (rs6000_opt_masks): Add -mupper-regs-di.
7042 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
7043 direct move to use wi and not wj.
7045 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
7047 (floatunssi<mode>2_lfiwzx_mem): Likewise.
7048 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
7049 any VSX register, instead of just Altivec registers, to allow
7050 either operand to be an Altivec register or both.
7051 (fixuns_trunc<mode>di2_fctiduz): Likewise.
7052 (movdi_internal32): Add support for -mupper-regs-di. Add support
7053 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
7054 the alternatives and attributes to be lined up to be easier to
7056 (movdi_internal64): Likewise.
7057 (64-bit DImode splitters): Change predicates to only split loading
7058 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
7059 load constants in ISA 3.0 or ISA 2.07 respectively.
7060 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7061 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
7062 mention -mcpu=power9 sets these options.
7063 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
7066 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
7069 * config/avr/avr.c (avr_set_current_function): Warn misspelled
7070 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
7071 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
7072 by default to warn misspelled interrupt/ signal handler.
7073 * doc/invoke.texi (AVR Options): Document it. Update description
7074 for -nodevicelib option.
7076 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7078 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
7079 up parentheses. Use GET_MODE_UNIT_BITSIZE.
7080 (aarch64_<sur>shll2_n<mode>): Likewise.
7082 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
7085 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
7086 DECL_CONTEXT for copied arguments.
7088 2016-06-15 Alan Hayward <alan.hayward@arm.com>
7090 PR tree-optimization/71483
7091 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
7094 2016-06-15 Martin Liska <mliska@suse.cz>
7096 * predict.c (tree_predict_by_opcode): Call predict_edge_def
7097 instead of predict_edge w/o a probability.
7099 2016-06-15 Alan Hayward <alan.hayward@arm.com>
7101 PR tree-optimization/71439
7102 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
7105 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7107 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
7108 register subregs in SET_SRC.
7110 2016-06-15 Richard Biener <rguenther@suse.de>
7112 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
7115 2016-06-15 Richard Biener <rguenther@suse.de>
7117 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
7118 not consider dependences between accesses that belong to the
7120 (vect_analyze_data_ref_dependences): Do not analyze read-read
7121 or self-dependences.
7123 2016-06-14 David Malcolm <dmalcolm@redhat.com>
7125 * spellcheck-tree.c: Include spellcheck-tree.h rather than
7127 (find_closest_identifier): Reimplement in terms of
7128 best_match<tree,tree>.
7129 * spellcheck-tree.h: New file.
7130 * spellcheck.c (struct edit_distance_traits<const char *>): New
7132 (find_closest_string): Reimplement in terms of
7133 best_match<const char *, const char *>.
7134 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
7135 overload to spellcheck-tree.h.
7136 (find_closest_identifier): Likewise.
7137 (struct edit_distance_traits<T>): New template.
7138 (class best_match): New class.
7140 2016-06-14 David Malcolm <dmalcolm@redhat.com>
7142 * selftest-run-tests.c (selftest::run_tests): Call
7143 selftest::spellcheck_tree_c_tests.
7144 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
7145 * spellcheck-tree.c: Include selftest.h and stringpool.h.
7146 (selftest::test_find_closest_identifier): New function.
7147 (selftest::spellcheck_tree_c_tests): New function.
7148 * spellcheck.c (selftest::test_find_closest_string): Verify that
7149 the order of the vec does not affect the results for this case.
7150 (selftest::test_data): New array.
7151 (selftest::test_metric_conditions): New function.
7152 (selftest::spellcheck_c_tests): Add a test of case-comparison.
7153 Call selftest::test_metric_conditions.
7155 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7157 * config/rs6000/rs6000-builtin.def (commentary): Typo.
7158 (BU_P9_MISC_1): Likewise.
7159 (BU_P9_64BIT_MISC_0): Likewise.
7160 (BU_P9_MISC_0): Likewise.
7162 2016-06-14 David Malcolm <dmalcolm@redhat.com>
7164 * gcc-rich-location.c
7165 (gcc_rich_location::add_fixit_misspelled_id): New method.
7166 * gcc-rich-location.h
7167 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
7169 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
7171 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
7172 FreeBSD 11 and above.
7174 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
7176 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
7178 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7180 * expmed.h: Close parenthesis in "at your option" in copyright
7182 * lower-subreg.h: Likewise.
7184 2016-06-14 Richard Biener <rguenther@suse.de>
7187 * genmatch.c (expr::gen_transform): Use in_type for comparisons
7190 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7192 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
7194 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
7196 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
7198 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
7199 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
7201 2016-06-14 Richard Biener <rguenther@suse.de>
7203 PR tree-optimization/71522
7204 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
7205 copying into float copying.
7207 2016-06-14 Jakub Jelinek <jakub@redhat.com>
7209 PR tree-optimization/71520
7210 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
7211 (replace_block_by): Move user labels from bb1 to bb2.
7213 2016-06-14 Richard Biener <rguenther@suse.de>
7217 * expr.h (get_bit_range): Declare.
7218 * expr.c (get_bit_range): Export.
7219 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
7220 word_mode again to constrain the bitfield access.
7222 2016-06-14 Richard Biener <rguenther@suse.de>
7224 PR tree-optimization/71521
7225 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
7226 division int_const_binop against zero divisor.
7228 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
7230 * config/i386/i386.md (signbittf2): New expander.
7231 * config/i386/sse.md (ptesttf2): New insn pattern.
7233 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7236 * input.c (selftest::test_reading_source_line): Avoid reading from
7237 __FILE__ by creating a tempfile with known content and reading
7240 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7242 * pretty-print.c (assert_pp_format_colored): Skip the test if
7244 (test_pp_format): Remove comment about GCC_COLORS.
7246 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7248 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
7249 * pretty-print.c (assert_pp_format_va): Add location param and use
7250 it with ASSERT_STREQ_AT.
7251 (assert_pp_format): Add location param and pass it to
7252 assert_pp_format_va.
7253 (assert_pp_format_colored): Likewise.
7254 (ASSERT_PP_FORMAT_1): New.
7255 (ASSERT_PP_FORMAT_2): New.
7256 (ASSERT_PP_FORMAT_3): New.
7257 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
7258 explicitly, or implicitly via the above macros.
7259 * selftest.c (selftest::pass): Use a selftest::location rather
7261 (selftest::fail): Likewise. Print the function name.
7262 (selftest::fail_formatted): Likewise.
7263 (selftest::assert_streq): Use a selftest::location rather than
7265 * selftest.h (selftest::location): New struct.
7266 (SELFTEST_LOCATION): New macro.
7267 (selftest::pass): Accept a const location & rather than file
7269 (selftest::fail): Likewise.
7270 (selftest::fail_formatted): Likewise.
7271 (selftest::assert_streq): Likewise.
7272 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
7273 (ASSERT_FALSE): Likewise.
7274 (ASSERT_EQ): Likewise.
7275 (ASSERT_NE): Likewise.
7276 (ASSERT_STREQ): Likewise.
7277 (ASSERT_PRED1): Likewise.
7278 (ASSERT_STREQ_AT): New macro.
7280 2016-06-13 David Malcolm <dmalcolm@redhat.com>
7282 * selftest.c (selftest::fail_formatted): New function.
7283 (selftest::assert_streq): New function.
7284 * selftest.h (selftests::fail_formatted): New decl.
7285 (selftest::assert_streq): New decl.
7286 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
7288 2016-06-13 Jeff Law <law@redhat.com>
7290 PR tree-optimization/71403
7291 * tree-ssa-threadbackward.c
7292 (convert_and_register_jump_thread_path): No longer accept reference
7293 to path. Do not pop items off the path anymore.
7294 (fsm_find_control_statement_thread_paths): Do not allow threading
7295 to a deeper loop nest. Pop the last item off the path here rather
7296 than in convert_and_register_jump_thread_path.
7298 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
7299 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
7301 [AArch64] Emit division using the Newton series
7303 * config/aarch64/aarch64-protos.h
7304 (cpu_approx_modes): Add new member "division".
7305 (aarch64_emit_approx_div): Declare new function.
7306 * config/aarch64/aarch64.c
7307 (generic_approx_modes): New member "division".
7308 (exynosm1_approx_modes): Likewise.
7309 (xgene1_approx_modes): Likewise.
7310 (aarch64_emit_approx_div): Define new function.
7311 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
7312 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
7313 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
7314 * doc/invoke.texi (-mlow-precision-div): Describe new option.
7316 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
7317 Wilco Dijkstra <wilco.dijkstra@arm.com>
7319 [AArch64] Emit square root using the Newton series
7321 * config/aarch64/aarch64-protos.h
7322 (aarch64_emit_approx_rsqrt): Replace with new function
7323 "aarch64_emit_approx_sqrt".
7324 (cpu_approx_modes): New member "sqrt".
7325 * config/aarch64/aarch64.c
7326 (generic_approx_modes): New member "sqrt".
7327 (exynosm1_approx_modes): Likewise.
7328 (xgene1_approx_modes): Likewise.
7329 (aarch64_emit_approx_rsqrt): Replace with new function
7330 "aarch64_emit_approx_sqrt".
7331 (aarch64_override_options_after_change_1): Handle new option.
7332 * config/aarch64/aarch64-simd.md
7333 (rsqrt<mode>2): Use new function instead.
7334 (sqrt<mode>2): New expansion and insn definitions.
7335 * config/aarch64/aarch64.md: Likewise.
7336 * config/aarch64/aarch64.opt
7337 (mlow-precision-sqrt): Add new option description.
7338 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
7340 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
7342 [AArch64] Add more choices for the reciprocal square root approximation
7344 Allow a target to prefer such operation depending on the operation mode.
7346 * config/aarch64/aarch64-protos.h
7347 (AARCH64_APPROX_MODE): New macro.
7348 (AARCH64_APPROX_{NONE,ALL}): Likewise.
7349 (cpu_approx_modes): New structure.
7350 (tune_params): New member "approx_modes".
7351 * config/aarch64/aarch64-tuning-flags.def
7352 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
7353 * config/aarch64/aarch64.c
7354 (generic_approx_modes): New core "cpu_approx_modes" structure.
7355 (exynosm1_approx_modes): Likewise.
7356 (xgene1_approx_modes): Likewise.
7357 (generic_tunings): New member "approx_modes".
7358 (cortexa35_tunings): Likewise.
7359 (cortexa53_tunings): Likewise.
7360 (cortexa57_tunings): Likewise.
7361 (cortexa72_tunings): Likewise.
7362 (exynosm1_tunings): Likewise.
7363 (thunderx_tunings): Likewise.
7364 (xgene1_tunings): Likewise.
7365 (use_rsqrt_p): New argument for the mode and use new member from
7367 (aarch64_builtin_reciprocal): Devise mode from builtin.
7368 (aarch64_optab_supported_p): New argument for the mode.
7369 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
7371 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
7373 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
7374 RS6000_BTM_MODULO flag into the set of flags that are considered
7375 to be part of the common configuration.
7377 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
7379 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
7380 difference unsigned.
7381 (vec_absdb): New macro for vector absolute difference unsigned
7383 (vec_absdh): New macro for vector absolute difference unsigned
7385 (vec_absdw): New macro for vector absolute difference unsigned word.
7386 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
7387 (vadu<mode>3): New insn.
7388 (*p9_vadu<mode>3): New insn.
7389 * config/rs6000/rs6000-builtin.def (vadub): New built-in
7391 (vaduh): New built-in definition.
7392 (vaduw): New built-in definition.
7393 (vadu): New overloaded built-in definition.
7394 (vadub): New overloaded built-in definition.
7395 (vaduh): New overloaded built-in definition.
7396 (vaduw): New overloaded built-in definition.
7397 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7398 overloaded vector absolute difference unsigned functions.
7399 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
7400 the ISA 3.0 vector absolute difference unsigned built-in functions.
7402 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
7404 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
7405 update shared_lookup_references only once after changing operands.
7407 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
7410 * tree-nested.c (convert_nonlocal_omp_clauses)
7411 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
7413 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
7414 * tree.def (CASE_LABEL_EXPR): Likewise.
7416 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
7419 * input.c (test_builtins): Fix an assertion.
7421 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
7423 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
7426 (isinf<mode>2): Ditto.
7428 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
7430 * ggc-tests.c (test_finalization): Only test need_finalization_p
7431 for GCC_VERSION >= 4003.
7433 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7435 * config/s390/vecintrin.h: Fix file description in comment.
7437 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7439 * config/s390/s390-builtin-types.def: Change builtin type naming
7440 scheme to match builtin-types.def.
7442 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
7444 * fold-const.c (optimize_minmax_comparison): Remove.
7445 (fold_comparison): Remove call to the above.
7446 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
7447 New transformations.
7449 2016-06-13 Alan Hayward <alan.hayward@arm.com>
7451 PR tree-optimization/71416
7452 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
7455 2016-06-13 Martin Liska <mliska@suse.cz>
7457 * predict.c (enum predictor_reason): Prefix enum with REASON_.
7458 (combine_predictions_for_insn): Likewise.
7459 (prune_predictions_for_bb): Likewise.
7460 (combine_predictions_for_bb): Likewise.
7462 2016-06-13 Richard Biener <rguenther@suse.de>
7464 PR tree-optimization/71505
7465 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
7466 assert match comment.
7468 2016-06-13 Marek Polacek <polacek@redhat.com>
7471 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
7472 gimplify_switch_expr.
7473 (warn_switch_unreachable_r): New function.
7475 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7478 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
7481 2016-06-13 Richard Biener <rguenther@suse.de>
7484 * fold-const.c (fold_unary_loc): Preserve alignment when
7485 folding a VIEW_CONVERT_EXPR into a MEM_REF.
7487 2016-06-13 Martin Liska <mliska@suse.cz>
7490 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
7491 w/ -fsanitize=bounds.
7493 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
7495 * config/i386/i386.c (ix86_init_builtins): Calculate
7496 FLOAT128_FTYPE_CONST_STRING function type only once.
7497 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
7498 built-in functions are available for x86-32 and x86-64 targets.
7500 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
7503 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
7505 (FLOAT128_FTYPE_CONST_STRING): New function type.
7506 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
7507 [IX86_BUILTIN_NANSQ]: Ditto.
7508 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
7509 (ix86_init_builtin_types): Declare const_string_type_node.
7510 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
7512 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
7513 * doc/extend.texi (x86 Built-in Functions): Document
7514 __builtin_nanq and __builtin_nansq.
7516 2016-06-11 Jiong Wang <jiong.wang@arm.com>
7519 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
7520 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
7521 length for pop patterns.
7522 (arm_attr_length_push_multi): Update comments.
7523 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
7525 (*pop_multiple_with_writeback_and_return): Likewise.
7526 (*pop_multiple_with_return): Likewise.
7528 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
7531 * fold-const.c (optimize_bit_field_compare): Don't try to use
7532 word_mode unconditionally for reading the bit field, look at
7533 DECL_BIT_FIELD_REPRESENTATIVE instead.
7535 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
7538 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
7539 vector integer type.
7541 2016-06-10 Jakub Jelinek <jakub@redhat.com>
7544 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
7545 without LABEL_DECL, set *handled_ops_p to false instead of true.
7547 2016-06-10 Martin Sebor <msebor@redhat.com>
7550 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
7551 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
7552 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
7554 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
7555 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
7556 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
7557 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
7558 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
7559 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
7560 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
7561 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
7563 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7565 * config/arm/arm.h (pool_vector_label,
7566 return_used_this_function): Remove.
7568 2016-06-10 Jeff Law <law@redhat.com>
7570 PR tree-optimization/71335
7571 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
7572 zero length paths here.
7573 (convert_and_register_jump_thread_path): Remove hacks related to
7574 duplicated blocks in the jump thread path.
7575 (fsm_find_control_statement_thread_paths): Avoid putting the same
7576 block on the thread path twice, but ensure the thread path is
7577 unchanged from the caller's point of view.
7579 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
7581 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
7582 * predict.def (PRED_LOOP_BRANCH): Remove.
7584 2016-06-10 David Malcolm <dmalcolm@redhat.com>
7586 * Makefile.in (OBJS): Add ggc-tests.o.
7587 (GTFILES): Add ggc-tests.c.
7588 * ggc-tests.c: New file.
7589 * selftest-run-tests.c (selftest::run_tests): Call
7590 selftest::ggc_tests_c_tests.
7591 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
7593 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
7595 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
7597 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
7600 * varasm.c (place_block_symbol): Adjust alignment for asan protected
7601 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
7603 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
7605 * profile.c: Include cfgloop.h.
7606 (branch_prob): Compute estimated number of iterations.
7607 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
7608 recompute estimate number of iterations from profile.
7610 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
7613 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
7614 must be grouped on top of stack. Don't force early clobber
7615 on ordinary reg outputs.
7617 2016-06-10 Richard Biener <rguenther@suse.de>
7619 * targhooks.c (default_builtin_vectorization_cost): Adjust
7622 2016-06-10 Richard Biener <rguenther@suse.de>
7624 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
7625 to fold the RHS to a constant if possible.
7627 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
7630 * tree-nested.c (convert_nonlocal_omp_clauses)
7631 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
7632 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
7633 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
7635 * gimplify.c (gimplify_adjust_omp_clauses): Discard
7637 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
7639 * omp-low.c (scan_sharing_clauses): Don't expect
7642 2016-06-10 Alan Hayward <alan.hayward@arm.com>
7644 PR tree-optimization/71407
7645 PR tree-optimization/71416
7646 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
7649 2016-06-10 Richard Biener <rguenther@suse.de>
7652 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
7654 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
7656 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
7658 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
7659 Jiong Wang <jiong.wang@arm.com>
7661 PR rtl-optimization/70751
7662 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
7663 spilled into memory.
7665 2016-06-09 Jonathan Yong <10walls@gmail.com>
7668 2015-09-21 Jonathan Yong <10walls@gmail.com>
7670 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
7671 sysroot/usr/lib/32api for additional win32 libraries,
7672 fixes failing Cygwin bootstrapping.
7674 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
7676 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
7679 2016-06-09 David Malcolm <dmalcolm@redhat.com>
7682 * pretty-print.c (pp_indent): Specify that %p is printed in a
7683 host-dependent manner.
7684 (test_pp_format): Remove the test for %p.
7686 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
7688 * config/mips/mips.c (mips_output_jump): Fix formatting.
7690 2016-06-09 Richard Biener <rguenther@suse.de>
7692 PR tree-optimization/71462
7693 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
7696 2016-06-09 Martin Liska <mliska@suse.cz>
7698 * predict.c (dump_prediction): Add new argument.
7699 (enum predictor_reason): New enum.
7700 (struct predictor_hash): New struct.
7701 (predictor_hash::hash): New function.
7702 (predictor_hash::equal): Likewise.
7703 (not_removed_prediction_p): New function.
7704 (prune_predictions_for_bb): Likewise.
7705 (combine_predictions_for_bb): Prune predictions.
7707 2016-06-09 Martin Liska <mliska@suse.cz>
7709 * predict.c (filter_predictions): New function.
7710 (remove_predictions_associated_with_edge): Use the filter
7712 (equal_edge_p): New function.
7714 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
7716 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
7717 Correct usage of @samp vs @option, add @samp where appropriate.
7718 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
7719 Add armv6s-m and document it, as it is no official ARM name.
7721 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7723 * ifcvt.c (struct noce_if_info): Add transform_name field.
7724 (noce_try_move): Set if_info->transform_name to the function name.
7725 (noce_try_ifelse_collapse): Likewise.
7726 (noce_try_store_flag): Likewise.
7727 (noce_try_inverse_constants): Likewise.
7728 (noce_try_store_flag_constants): Likewise.
7729 (noce_try_addcc): Likewise.
7730 (noce_try_store_flag_mask): Likewise.
7731 (noce_try_cmove): Likewise.
7732 (noce_try_cmove_arith): Likewise.
7733 (noce_try_minmax): Likewise.
7734 (noce_try_abs): Likewise.
7735 (noce_try_sign_mask): Likewise.
7736 (noce_try_bitop): Likewise.
7737 (noce_convert_multiple_sets): Likewise.
7738 (noce_process_if_block): Print if_info->transform_name to
7739 dump_file if transformation succeeded.
7741 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7743 * config/arm/cortex-a57.md (cortex_a57_alu):
7746 2016-06-08 Martin Sebor <msebor@redhat.com>
7747 Jakub Jelinek <jakub@redhat.com>
7751 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
7752 BUILT_IN_MUL_OVERFLOW_P): New builtins.
7753 * builtins.c: Include gimple-fold.h.
7754 (fold_builtin_arith_overflow): Handle
7755 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
7756 (fold_builtin_3): Likewise.
7757 * doc/extend.texi (Integer Overflow Builtins): Document
7758 __builtin_{add,sub,mul}_overflow_p.
7760 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
7762 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
7763 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
7765 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
7767 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
7768 Rewrite, looking one level down for records and arrays.
7770 2016-06-08 David Malcolm <dmalcolm@redhat.com>
7772 * pretty-print.c: Include "selftest.h".
7773 (pp_format): Fix comment.
7774 (identifier_to_locale): Likewise.
7775 (selftest::test_basic_printing): New function.
7776 (selftest::assert_pp_format): New function.
7777 (selftest::test_pp_format): New function.
7778 (selftest::pretty_print_c_tests): New function.
7779 * selftest-run-tests.c (selftest::run_tests): Call
7780 selftest::pretty_print_c_tests.
7781 * selftest.h (pretty_print_c_tests): New declaration.
7783 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7785 * invoke.texi (max-loop-headers-insns): Document.
7786 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
7787 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
7788 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
7790 2016-06-08 Richard Biener <rguenther@suse.de>
7792 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
7793 on strided SLP loads and fall back to scalar loads in case
7794 we can't chunk them.
7796 2016-06-08 Richard Biener <rguenther@suse.de>
7798 PR tree-optimization/71452
7799 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
7800 type used for the SSA rewrite has enough precision to cover
7801 the dynamic type of the location.
7803 2016-06-08 Jakub Jelinek <jakub@redhat.com>
7804 Richard Biener <rguenther@suse.de>
7807 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
7808 the same as DECL_P (base0) for indirect_base0. Use equality_code
7809 in one further place.
7811 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
7813 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
7814 to one word if the field is known to overlap other words.
7815 (extract_bit_field_1): Likewise.
7816 (store_split_bit_field): Remove compensating code.
7817 (extract_split_bit_field): Likewise.
7819 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
7823 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
7825 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7827 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
7829 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
7830 (arch64_addpv4sf): Delete.
7831 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
7832 "gen_aarch64_addpv4sf".
7833 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
7835 (vpadds_f32): Likewise.
7836 (vpaddq_f32): Likewise.
7837 (vpaddq_f64): Likewise.
7839 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7841 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
7843 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
7844 to VALLF. Rename to "fabd<mode>3".
7845 "*fabd_scalar<mode>3): Delete.
7846 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
7848 (vabdd_f64): Likewise.
7849 (vabd_f32): Likewise.
7850 (vabd_f64): Likewise.
7851 (vabdq_f32): Likewise.
7852 (vabdq_f64): Likewise.
7854 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7856 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
7858 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
7859 "aarch64_rsqrts<mode>".
7860 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
7861 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
7863 (vrsqrtsd_f64): Likewise.
7864 (vrsqrts_f32): Likewise.
7865 (vrsqrts_f64): Likewise.
7866 (vrsqrtsq_f32): Likewise.
7867 (vrsqrtsq_f64): Likewise.
7869 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7871 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
7873 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
7874 "aarch64_rsqrte<mode>".
7875 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
7876 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
7878 (vrsqrted_f64): Likewise.
7879 (vrsqrte_f32): Likewise.
7880 (vrsqrte_f64): Likewise.
7881 (vrsqrteq_f32): Likewise.
7882 (vrsqrteq_f64): Likewise.
7884 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7886 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
7890 * config/aarch64/aarch64-simd.md
7891 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
7892 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
7893 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
7895 (vcvt_n_f32_u32): Likewise.
7896 (vcvt_n_s32_f32): Likewise.
7897 (vcvt_n_u32_f32): Likewise.
7898 (vcvtq_n_f32_s32): Likewise.
7899 (vcvtq_n_f32_u32): Likewise.
7900 (vcvtq_n_f64_s64): Likewise.
7901 (vcvtq_n_f64_u64): Likewise.
7902 (vcvtq_n_s32_f32): Likewise.
7903 (vcvtq_n_s64_f64): Likewise.
7904 (vcvtq_n_u32_f32): Likewise.
7905 (vcvtq_n_u64_f64): Likewise.
7906 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
7907 (VSDQ_SDI): Likewise.
7908 (fcvt_target): Support V4DI, V4SI and V2SI.
7909 (FCVT_TARGET): Likewise.
7911 2016-06-08 Jiong Wang <jiong.wang@arm.com>
7913 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
7914 (TYPES_BINOP_SUS): Likewise.
7915 (aarch64_simd_builtin_data): Update include file name.
7916 (aarch64_builtins): Likewise.
7917 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
7918 for conversion between scalar float-point and fixed-point.
7922 * config/aarch64/aarch64.md
7923 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
7924 pattern for conversion between scalar float to fixed-pointer.
7925 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
7926 (UNSPEC_FCVTZS): New UNSPEC enumeration.
7927 (UNSPEC_FCVTZU): Likewise.
7928 (UNSPEC_SCVTF): Likewise.
7929 (UNSPEC_UCVTF): Likewise.
7930 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
7932 (vcvtd_n_f64_u64): Likewise.
7933 (vcvtd_n_s64_f64): Likewise.
7934 (vcvtd_n_u64_f64): Likewise.
7935 (vcvtd_n_f32_s32): Likewise.
7936 (vcvts_n_f32_u32): Likewise.
7937 (vcvtd_n_s32_f32): Likewise.
7938 (vcvts_n_u32_f32): Likewise.
7939 * config/aarch64/iterators.md (fcvt_target): Support integer to float
7941 (FCVT_TARGET): Likewise.
7942 (FCVT_FIXED2F): New iterator.
7943 (FCVT_F2FIXED): Likewise.
7944 (fcvt_fixed_insn): New define_int_attr.
7946 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7948 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
7949 some statements was removed.
7951 2016-06-08 Alan Hayward <alan.hayward@arm.com>
7953 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
7954 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
7955 (vect_can_advance_ivs_p): likewise.
7956 (vect_update_ivs_after_vectorizer): likewise.
7957 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
7958 (vect_analyze_scalar_cycles_1): likewise.
7959 (vect_analyze_loop_operations): likewise.
7960 (report_vect_op): likewise.
7961 (vect_is_slp_reduction): likewise.
7962 (vect_is_simple_reduction): likewise.
7963 (get_initial_def_for_induction): likewise.
7964 (vect_transform_loop): likewise.
7965 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
7966 (vect_recog_sad_pattern): likewise.
7967 (vect_recog_widen_sum_pattern): likewise.
7968 (vect_recog_widening_pattern): likewise.
7969 (vect_recog_divmod_pattern): likewise.
7970 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
7971 (vect_analyze_slp_instance): likewise.
7972 (vect_transform_slp_perm_load): likewise.
7973 (vect_schedule_slp_instance): likewise.
7975 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
7977 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
7978 (return_prediction): PRED_CONST_RETURN predict return as not taken.
7979 * predict.def (PRED_CONTINUE): Change hitrate 50->67
7980 (PRED_LOOP_BRANCH): Document predictor as broken.
7981 (PRED_LOOP_EXIT): Change hitrate 91->92.
7982 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
7983 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
7984 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
7985 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
7986 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
7987 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
7988 (PRED_CALL): Chane hitrate 71->67.
7989 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
7990 (PRED_GOTO): Document as unused right now.
7991 (PRED_CONST_RETURN): Change hitrate 67->69
7992 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
7993 (PRED_NULL_RETURN): Change hitrate 91->90.
7994 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
7995 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
7996 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
7998 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
8000 * config/rs6000/altivec.h: Add __builtin_vec_mul.
8001 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
8002 special case Altivec builtin.
8003 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
8004 VSX_BUILTIN_VEC_MUL (replaced with special case code).
8005 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
8006 code for ALTIVEC_BUILTIN_VEC_MUL.
8007 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
8008 for __builtin_vec_mul.
8010 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
8012 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
8015 2016-06-07 David Malcolm <dmalcolm@redhat.com>
8017 * spellcheck.c (selftest::test_find_closest_string): New function.
8018 (spellcheck_c_tests): Call the above.
8020 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8022 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
8024 2016-06-07 Jakub Jelinek <jakub@redhat.com>
8026 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
8027 Yv=Yv,C alternatives.
8029 2016-06-07 Richard Biener <rguenther@suse.de>
8032 * common.opt (ffast-math): Make Optimization.
8034 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
8035 Prachi Godbole <prachi.godbole@imgtec.com>
8037 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
8038 `fabs' and `fneg' type attributes.
8039 (p5600_fpu_fabs): Add `fmove' to the comment.
8041 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
8043 * gimple.c: Include builtins.h
8044 (gimple_inexpensive_call_p): New function.
8045 * gimple.h (gimple_inexpensive_call_p): Declare.
8046 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
8047 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
8050 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
8052 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
8053 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
8054 warning_at_rich_loc, warning_n, pedwarn, permerror,
8055 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
8056 sorry, fatal_error, internal_error, internal_error_no_backtrace):
8059 2016-06-07 Richard Biener <rguenther@suse.de>
8061 PR tree-optimization/71428
8062 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
8063 BIT_FIELD_REF op vs. load.
8065 2016-06-07 Richard Biener <rguenther@suse.de>
8068 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
8071 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
8073 * config/pa/pa.md (call): Generate indirect long calls to non-local
8074 functions on TARGET_64BIT.
8075 (call_value): Likewise.
8077 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
8079 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
8080 pattern and subsequent splitters.
8081 (call_val_reg_64bit_post_reload): Likewise.
8083 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
8086 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
8087 propagate_op_to_single_use.
8089 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
8092 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
8094 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
8096 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
8097 (enum x86_dirflag_state): New enum.
8098 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
8099 (machine_function): Remove needs_cld.
8100 (ix86_current_function_needs_cld): Remove.
8101 * config/i386/i386.c (ix86_set_func_type): Set
8102 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
8103 (ix86_expand_prologue): Do not emit CLD here.
8104 (ix86_dirflag_mode_needed): New function.
8105 (ix86_dirflag_mode_entry): Ditto.
8106 (ix86_mode_needed): Handle X86_DIRFLAG entity.
8107 (ix86_mode_after): Ditto.
8108 (ix86_mode_entry): Ditto.
8109 (ix86_mode_exit): Ditto.
8110 (ix86_emit_mode_set): Ditto.
8111 * config/i386/i386.md (strmov_singleop): Set
8112 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
8113 Do not set ix86_current_function_needs_cld.
8115 (strset_singleop): Ditto.
8117 (cmpstrnqi_nz_1): Ditto.
8118 (cmpstrnqi_1): Ditto.
8119 (strlenqi_1): Ditto.
8121 2016-06-06 Jakub Jelinek <jakub@redhat.com>
8123 PR tree-optimization/71259
8124 * tree-vect-slp.c (vect_get_constant_vectors): For
8125 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
8126 one for constant op, and use COND_EXPR for non-constant.
8128 2016-06-06 David Malcolm <dmalcolm@redhat.com>
8130 * Makefile.in (OBJS): Add function-tests.o,
8131 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
8132 selftest-run-tests.o.
8133 (OBJS-libcommon): Add selftest.o.
8134 (OBJS-libcommon-target): Add selftest.o.
8135 (all.internal): Add "selftest".
8136 (all.cross): Likewise.
8137 (selftest): New phony target.
8138 (s-selftest): New target.
8139 (selftest-gdb): New phony target.
8140 (COLLECT2_OBJS): Add selftest.o.
8141 * bitmap.c: Include "selftest.h".
8142 (selftest::test_gc_alloc): New function.
8143 (selftest::test_set_range): New function.
8144 (selftest::test_clear_bit_in_middle): New function.
8145 (selftest::test_copying): New function.
8146 (selftest::test_bitmap_single_bit_set_p): New function.
8147 (selftest::bitmap_c_tests): New function.
8148 * common.opt (fself-test): New.
8149 * diagnostic-show-locus.c: Include "selftest.h".
8150 (make_range): New function.
8151 (test_range_contains_point_for_single_point): New function.
8152 (test_range_contains_point_for_single_line): New function.
8153 (test_range_contains_point_for_multiple_lines): New function.
8154 (assert_eq): New function.
8155 (test_get_line_width_without_trailing_whitespace): New function.
8156 (selftest::diagnostic_show_locus_c_tests): New function.
8157 * et-forest.c: Include "selftest.h".
8158 (selftest::test_single_node): New function.
8159 (selftest::test_simple_tree): New function.
8160 (selftest::test_disconnected_nodes): New function.
8161 (selftest::et_forest_c_tests): New function.
8162 * fold-const.c: Include "selftest.h".
8163 (selftest::assert_binop_folds_to_const): New function.
8164 (selftest::assert_binop_folds_to_nonlvalue): New function.
8165 (selftest::test_arithmetic_folding): New function.
8166 (selftest::fold_const_c_tests): New function.
8167 * function-tests.c: New file.
8168 * gimple.c: Include "selftest.h".
8169 Include "gimple-pretty-print.h".
8170 (selftest::verify_gimple_pp): New function.
8171 (selftest::test_assign_single): New function.
8172 (selftest::test_assign_binop): New function.
8173 (selftest::test_nop_stmt): New function.
8174 (selftest::test_return_stmt): New function.
8175 (selftest::test_return_without_value): New function.
8176 (selftest::gimple_c_tests): New function.
8177 * hash-map-tests.c: New file.
8178 * hash-set-tests.c: New file.
8179 * input.c: Include "selftest.h".
8180 (selftest::assert_loceq): New function.
8181 (selftest::test_accessing_ordinary_linemaps): New function.
8182 (selftest::test_unknown_location): New function.
8183 (selftest::test_builtins): New function.
8184 (selftest::test_reading_source_line): New function.
8185 (selftest::input_c_tests): New function.
8186 * rtl-tests.c: New file.
8187 * selftest-run-tests.c: New file.
8188 * selftest.c: New file.
8189 * selftest.h: New file.
8190 * spellcheck.c: Include "selftest.h".
8191 (selftest::levenshtein_distance_unit_test_oneway): New function,
8192 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
8193 (selftest::levenshtein_distance_unit_test): Likewise.
8194 (selftest::spellcheck_c_tests): Likewise.
8195 * toplev.c: Include selftest.h.
8196 (toplev::run_self_tests): New.
8197 (toplev::main): Handle -fself-test.
8198 * toplev.h (toplev::run_self_tests): New.
8199 * tree.c: Include "selftest.h".
8200 (selftest::test_integer_constants): New function.
8201 (selftest::test_identifiers): New function.
8202 (selftest::test_labels): New function.
8203 (selftest::tree_c_tests): New function.
8204 * tree-cfg.c: Include "selftest.h".
8205 (selftest::push_fndecl): New function.
8206 (selftest::test_linear_chain): New function.
8207 (selftest::test_diamond): New function.
8208 (selftest::test_fully_connected): New function.
8209 (selftest::tree_cfg_c_tests): New function.
8210 * vec.c: Include "selftest.h".
8211 (selftest::safe_push_range): New function.
8212 (selftest::test_quick_push): New function.
8213 (selftest::test_safe_push): New function.
8214 (selftest::test_truncate): New function.
8215 (selftest::test_safe_grow_cleared): New function.
8216 (selftest::test_pop): New function.
8217 (selftest::test_safe_insert): New function.
8218 (selftest::test_ordered_remove): New function.
8219 (selftest::test_unordered_remove): New function.
8220 (selftest::test_block_remove): New function.
8221 (selftest::reverse_cmp): New function.
8222 (selftest::test_qsort): New function.
8223 (selftest::vec_c_tests): New function.c.
8224 * wide-int.cc: Include selftest.h and wide-int-print.h.
8225 (selftest::from_int <wide_int>): New function.
8226 (selftest::from_int <offset_int>): New function.
8227 (selftest::from_int <widest_int>): New function.
8228 (selftest::assert_deceq): New function.
8229 (selftest::assert_hexeq): New function.
8230 (selftest::test_printing <VALUE_TYPE>): New function template.
8231 (selftest::test_ops <VALUE_TYPE>): New function template.
8232 (selftest::test_comparisons <VALUE_TYPE>): New function template.
8233 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
8235 (selftest::wide_int_cc_tests): New function.
8237 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8240 * ifcvt.c (noce_try_ifelse_collapse): New function.
8242 (noce_process_if_block): Call noce_try_ifelse_collapse.
8243 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
8244 (simplify_ternary_operation): Use the above to simplify
8245 conditional CLZ/CTZ expressions.
8247 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8250 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
8251 define_insn_and_split.
8253 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8256 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
8258 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
8261 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
8262 Implicitly clobber memory for basic asm with non-empty assembler
8263 string. Use targetm.md_asm_adjust also here.
8264 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
8265 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
8266 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
8267 non-empty assembler string.
8268 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
8269 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
8270 (decode_asm_operands): Handle basic asm in PARALLEL block.
8271 (extract_insn): Handle basic asm in PARALLEL block.
8272 * doc/extend.texi: Mention new behavior of basic asm.
8273 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
8274 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
8275 branch_needs_nop_p): Use asm_noperands.
8277 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
8279 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
8280 Include the M7 SPARC DFA scheduler.
8281 New attribute v3pipe.
8282 Annotate insns with v3pipe where appropriate.
8283 Define cpu_feature vis4.
8284 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
8285 Add (V8QI "8") to vbits.
8286 Add insns {add,sub}v8qi3
8287 Add insns ss{add,sub}v8qi3
8288 Add insns us{add,sub}{v8qi,v4hi}3
8289 Add insns {min,max}{v8qi,v4hi,v2si}3
8290 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
8291 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
8292 * config/sparc/niagara4.md: Add a comment explaining the
8293 discrepancy between the documented latenty numbers and the
8295 * config/sparc/niagara7.md: New file.
8296 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
8297 supports SPARC5 and VIS 4.0 instructions.
8298 * configure: Regenerate.
8299 * config.in: Likewise.
8300 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
8301 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
8302 TARGET_CPU_niagara7.
8303 (ASM_CPU64_DEFAULT_SPEC): Likewise.
8304 (CPP_CPU_SPEC): Handle niagara7.
8305 (ASM_CPU_SPEC): Likewise.
8306 * config/sparc/sparc-opts.h (processor_type): Add
8308 (mvis4): New option.
8309 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
8310 (AS_NIAGARA7_FLAG): Define.
8311 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
8312 (CPP_CPU64_DEFAULT_SPEC): Likewise.
8313 (CPP_CPU_SPEC): Handle niagara7.
8314 (ASM_CPU_SPEC): Likewise.
8315 * config/sparc/sparc.c (niagara7_costs): Define.
8316 (sparc_option_override): Handle niagara7 and adjust cache-related
8317 parameters with better values for niagara cpus. Also support VIS4.
8318 (sparc32_initialize_trampoline): Likewise.
8319 (sparc_use_sched_lookahead): Likewise.
8320 (sparc_issue_rate): Likewise.
8321 (sparc_register_move_cost): Likewise.
8322 (dump_target_flag_bits): Support VIS4.
8323 (sparc_vis_init_builtins): Likewise.
8324 (sparc_builtins): Likewise.
8325 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
8327 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
8329 * config/sparc/sparc.opt (sparc_processor_type): New value
8331 * config/sparc/visintrin.h (__attribute__): Prototypes for the
8333 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
8335 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
8338 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
8340 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
8342 2016-06-06 Richard Biener <rguenther@suse.de>
8344 PR tree-optimization/71398
8345 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
8348 2016-06-05 James Bowman <james.bowman@ftdichip.com>
8350 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
8351 ft32_expand_prolog, ft32_expand_epilogue):
8352 Handle pretend_args.
8353 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
8354 * config/ft32/ft32.md: Add pretend_returner.
8356 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
8359 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8360 Copy op1 RTX to avoid invalid sharing.
8361 (ix86_expand_vector_move_misalign): Ditto.
8363 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
8365 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
8368 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
8370 * predict.c (predicted_by_loop_heuristics_p): New function.
8371 (predict_iv_comparison): Use it.
8372 (predict_loops): Walk from innermost loops; do not predict edges
8373 leaving multiple loops multiple times; implement
8374 PRED_LOOP_ITERATIONS_MAX heuristics.
8375 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
8377 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
8379 * cfg.c (check_bb_profile): Do not report mismatched profiles when
8380 only edges out of BB are EH edges.
8382 2016-06-04 Martin Sebor <msebor@redhat.com>
8383 Marcin Baczyński <marbacz@gmail.com>
8386 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
8387 a void expression in a void function.
8389 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
8391 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
8392 aux; dump reasons of decisions.
8393 (should_duplicate_loop_header_p): Likewise.
8394 (do_while_loop_p): Likewise.
8395 (ch_base::copy_headers): Dump asi num insns duplicated.
8397 2016-06-04 Jakub Jelinek <jakub@redhat.com>
8399 PR tree-optimization/71405
8400 * tree-ssa.c (execute_update_addresses_taken): For clobber with
8401 incompatible type, build a new clobber with the right type instead
8402 of building a VIEW_CONVERT_EXPR around it.
8404 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
8406 PR tree-optimization/52171
8407 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
8408 by_pieces_ninsns instead of move_by_pieces_ninsns.
8410 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
8412 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
8413 for reg+reg addressing mode.
8415 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8417 * rs6000-c.c (c/c-tree.h): Add #include.
8418 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
8419 in C++ when found in the base position of vec_ld or vec_st.
8421 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
8423 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
8424 use of profile unless profile status is PROFILE_READ.
8425 * profile.c (compute_branch_probabilities): Set profile status
8426 only after reporting predictor hitrates.
8428 2016-06-03 Joseph Myers <joseph@codesourcery.com>
8432 * common.opt (ffp-int-builtin-inexact): New option.
8433 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
8434 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
8435 (ceil@var{m}2): Document dependence on this option.
8436 * ipa-inline-transform.c (inline_call): Handle
8437 flag_fp_int_builtin_inexact.
8438 * ipa-inline.c (can_inline_edge_p): Likewise.
8439 * config/i386/i386.md (rintxf2): Do not test
8440 flag_unsafe_math_optimizations.
8441 (rint<mode>2_frndint): New define_insn.
8442 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
8443 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
8444 for 387 instead of extending and truncating.
8445 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
8446 !flag_trapping_math instead of flag_unsafe_math_optimizations.
8447 Change to frndint<mode>2_<rounding>.
8448 (frndintxf2_<rounding>_i387): Likewise. Change to
8449 frndint<mode>2_<rounding>_i387.
8450 (<rounding_insn>xf2): Likewise.
8451 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
8452 !flag_trapping_math instead of flag_unsafe_math_optimizations for
8453 x87. Test TARGET_ROUND || !flag_trapping_math ||
8454 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
8455 SSE. Use ROUND_NO_EXC in constant operand of
8456 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
8457 for 387 instead of extending and truncating.
8459 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
8460 Julia Koval <julia.koval@intel.com>
8472 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
8473 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
8474 all registers, except for function return registers if there are
8475 no caller-saved registers.
8476 (ix86_set_func_type): New function.
8477 (ix86_set_current_function): Call ix86_set_func_type to set
8478 no_caller_saved_registers and func_type. Call reinit_regs if
8479 caller-saved registers are changed. Don't allow MPX, SSE, MMX
8480 nor x87 instructions in interrupt handler nor function with
8481 no_caller_saved_registers attribute.
8482 (ix86_function_ok_for_sibcall): Return false if there are no
8483 caller-saved registers.
8484 (type_natural_mode): Don't warn ABI change for MMX in interrupt
8486 (ix86_function_arg_advance): Skip for callee in interrupt handler.
8487 (ix86_function_arg): Return special arguments in interrupt handler.
8488 (ix86_promote_function_mode): Promote pointer to word_mode only
8489 for normal functions.
8490 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
8492 (ix86_epilogue_uses): New function.
8493 (ix86_hard_regno_scratch_ok): Likewise.
8494 (ix86_save_reg): Preserve all registers in interrupt handler
8495 after reload. Preserve all registers, except for function return
8496 registers, if there are no caller-saved registers after reload.
8497 (find_drap_reg): Always use callee-saved register if there are
8498 no caller-saved registers.
8499 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
8500 for interrupt handler.
8501 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
8502 Emit cld instruction if stringops are used in interrupt handler
8503 or interrupt handler isn't a leaf function.
8504 (ix86_expand_epilogue): Generate interrupt return for interrupt
8505 handler and pop the 'ERROR_CODE' off the stack before interrupt
8506 return in exception handler.
8507 (ix86_expand_call): Disallow calling interrupt handler directly.
8508 If there are no caller-saved registers, mark all registers that
8509 are clobbered by the call which returns as clobbered.
8510 (ix86_handle_no_caller_saved_registers_attribute): New function.
8511 (ix86_handle_interrupt_attribute): Likewise.
8512 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
8514 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
8515 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
8516 accumulation in interrupt function if stack may be realigned to
8518 (EPILOGUE_USES): New.
8519 (function_type): New enum.
8520 (machine_function): Add func_type and no_caller_saved_registers.
8521 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
8522 (interrupt_return): New pattern.
8523 * doc/extend.texi: Document x86 interrupt and
8524 no_caller_saved_registers attributes.
8526 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
8528 PR tree-optimization/52171
8529 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
8530 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
8531 Look for constant strings. Move some code to emit_block_cmp_hints
8533 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
8534 * defaults.h (COMPARE_MAX_PIECES): New macro.
8535 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
8536 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
8537 (clear_by_pieces_1): Don't declare. Move definition before use.
8538 (can_do_by_pieces): New static function.
8539 (can_move_by_pieces): Use it. Return bool.
8540 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
8541 OP. All callers changed. Handle COMPARE_BY_PIECES.
8542 (class pieces_addr); New.
8543 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
8544 pieces_addr::adjust, pieces_addr::increment_address,
8545 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
8547 (class op_by_pieces_d): New.
8548 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
8550 (class move_by_pieces_d, class compare_by_pieces_d,
8551 class store_by_pieces_d): New subclasses of op_by_pieces_d.
8552 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
8553 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
8554 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
8555 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
8556 compare_by_pieces_d::finish_mode): New member functions.
8557 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
8559 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
8560 (emit_block_cmp_hints): New function.
8561 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
8562 use the newly defined classes.
8563 * expr.h (by_pieces_constfn): New typedef.
8564 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
8565 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
8566 (move_by_pieces_ninsns): Don't declare.
8567 (can_move_by_pieces): Change return value to bool.
8568 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
8569 (compare_by_pieces_branch_ratio): New hook.
8570 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
8571 (by_pieces_ninsns): Declare.
8572 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
8574 (default_compare_by_pieces_branch_ratio): New function.
8575 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
8576 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
8577 * doc/tm.texi: Regenerate.
8578 * tree-ssa-strlen.c: Include "builtins.h".
8579 (handle_builtin_memcmp): New static function.
8580 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
8581 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
8583 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8585 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
8586 relevant stmts which are simple and invariant.
8587 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
8588 instead of simple and invariant
8590 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8592 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
8593 (vectorizable_reduction): Check for new relevant state.
8594 (vectorizable_live_operation): vectorize live stmts using
8595 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
8596 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
8597 (vect_stmt_relevant_p): Check for stmts which are only used live.
8598 (process_use): Use of a stmt does not inherit it's live value.
8599 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
8600 (vect_analyze_stmt): Check for new relevant state.
8601 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
8602 outside the loop, but not inside it.
8604 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8606 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
8607 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
8608 (vect_get_vec_def_for_operand): Split out code.
8610 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
8612 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
8614 2016-06-03 Alan Hayward <alan.hayward@arm.com>
8616 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
8618 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8620 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
8622 2016-06-03 Jakub Jelinek <jakub@redhat.com>
8625 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
8626 to noreturn e->callee->decl that has void return type and void
8627 arguments, adjust gimple_call_fntype and remove lhs even if it had
8628 previously addressable type.
8630 2016-06-02 Jeff Law <law@redhat.com>
8632 PR tree-optimization/71328
8633 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
8634 error when checking for a jump back onto the copied path.
8636 2016-06-02 David Malcolm <dmalcolm@redhat.com>
8638 * config/microblaze/microblaze.c (get_branch_target): Add return
8639 NULL_RTX for the non-CALL_P case.
8640 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
8641 (insert_wic): Remove unused local "j".
8643 2016-06-02 Martin Liska <mliska@suse.cz>
8645 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
8647 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
8648 Julia Koval <julia.koval@intel.com>
8650 * function.c (assign_parm_setup_stack): Force source into a
8652 * target.def (function_incoming_arg): Update documentation to
8653 allow arbitrary address computation based on hard register.
8654 * doc/tm.texi: Regenerated.
8656 2016-06-02 Martin Liska <mliska@suse.cz>
8658 * predict.c (combine_predictions_for_bb): Fix first match in
8659 cases where a first predictor contains more than one occurence
8660 in list of predictors. Take the best value in such case.
8662 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8664 PR rtl-optimization/71295
8665 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
8666 offset would go over the size of the inner mode reject it.
8668 2016-06-02 Jakub Jelinek <jakub@redhat.com>
8670 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
8671 x=x,x and v=v,m instead of x=x,m.
8673 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
8674 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
8675 alternative to v=rm,C.
8677 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
8678 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
8679 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
8680 instead of vex for the last two above mentioned alternatives.
8682 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8685 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
8687 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
8689 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
8691 2016-06-01 David Malcolm <dmalcolm@redhat.com>
8693 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
8694 from int to unsigned.
8696 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
8698 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
8699 alternatives, eliminating preferred register class. Add support
8700 for the MTVSRDD instruction in ISA 3.0.
8701 (vsx_splat_v4si_internal): Use splat_input_operand instead of
8702 reg_or_indexed_operand.
8703 (vsx_splat_v4sf_internal): Likewise.
8705 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
8708 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
8709 for loading up all 0's or all 1's.
8711 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
8713 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
8715 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
8717 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
8719 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
8720 * gcc.c (set_source_date_epoch_envvar): New function, sets
8721 the SOURCE_DATE_EPOCH environment variable to the current time.
8723 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
8725 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
8726 the factor for live Phi nodes.
8728 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
8730 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
8731 * tree-parloops.c (parallelize_loops): likewise.
8732 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
8733 tree_unswitch_outer_loop): likewise.
8735 2016-06-01 Jakub Jelinek <jakub@redhat.com>
8738 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
8739 around creation of the temporary.
8741 2016-06-01 Richard Biener <rguenther@suse.de>
8743 PR tree-optimization/71366
8744 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
8745 (unloop_loops): Move removing edges here ...
8746 (try_unroll_loop_completely): ... from here.
8747 (try_peel_loop): ... and here.
8748 (tree_unroll_loops_completely_1): Track parent loops via
8749 bitmap of header BBs.
8750 (tree_unroll_loops_completely): Adjust for that.
8752 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
8754 * config/rs6000/altivec.h (vec_slv): New macro.
8755 (vec_srv): New macro.
8756 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
8757 (UNSPEC_VSRV): New value.
8760 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
8761 (vsrv): New builtin definition.
8762 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
8763 define argument types for new builtin.
8764 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
8766 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
8769 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
8770 Jocelyn Mayer <l_indien@magic.fr>
8773 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
8774 detect processor family for signature_CENTAUR_ebx.
8775 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
8776 signature_CENTAUR_ebx.
8777 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
8778 <default>: Pass x86-64 for has_longmode.
8780 2016-06-01 Nathan Sidwell <nathan@acm.org>
8782 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
8785 2016-06-01 Richard Biener <rguenther@suse.de>
8787 PR tree-optimization/71261
8788 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
8789 of stmts successfully put in the bool pattern. Remove
8790 single-use restriction.
8791 (adjust_bool_pattern_cast): Add cast at the use site via the
8792 pattern def sequence.
8793 (adjust_bool_pattern): Remove recursion, maintain a hash-map
8794 of patterned defs. Use the pattern def seqence instead of
8795 multiple independent patterns.
8796 (sort_after_uid): New qsort compare function.
8797 (adjust_bool_stmts): New function to process stmts in the bool
8798 pattern in IL order.
8799 (vect_recog_bool_pattern): Adjust.
8800 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
8801 (ifcvt_walk_pattern_tree): Likewise.
8802 (stmt_is_root_of_bool_pattern): Likewise.
8803 (ifcvt_repair_bool_pattern): Likewise.
8804 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
8806 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
8808 * loop-unroll.c (decide_unroll_constant_iterations,
8809 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
8810 likely upper bounds.
8811 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
8813 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
8815 * tree-core.h (enum omp_clause_code): Remove
8816 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
8818 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8820 * config/arm/sync.md (arm_store_exclusive<mode>):
8821 Use 'H' output modifier on operands[2] rather than creating a new
8822 entry in out-of-bounds memory of the operands array.
8823 (arm_store_release_exclusivedi): Likewise.
8825 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8827 * config/arm/arm.c (arm_fusion_enabled_p): New function.
8828 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
8829 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
8830 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
8832 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
8834 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
8835 into account live statements for mask producers.
8837 2016-06-01 Richard Biener <rguenther@suse.de>
8839 PR tree-optimization/71311
8840 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
8841 restrict to non-INTEGER_CST @0.
8843 2016-06-01 Richard Biener <rguenther@suse.de>
8845 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
8846 (relational patterns): Use :c to avoid pattern duplications.
8848 2016-06-01 Richard Biener <rguenther@suse.de>
8850 * genmatch.c (comparison_code_p): New predicate.
8851 (swap_tree_comparison): New function.
8852 (commutate): Add for_vec parameter to append new for entries.
8853 Support commutating relational operators by swapping it alongside
8855 (lower_commutative): Adjust.
8856 (dt_simplify::gen): Do not pass artificial operators to gen
8858 (decision_tree::gen): Do not add artificial operators as parameters.
8859 (parser::parse_expr): Verify operator commutativity when :c is
8860 applied. Allow :C to override this.
8861 * match.pd: Adjust patterns to use :C instead of :c where required.
8863 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
8865 PR tree-optimization/71077
8866 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
8867 the combining step, use boolean_false_node and boolean_true_node
8868 as the designated false/true return values.
8870 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
8872 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
8873 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
8874 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
8877 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
8879 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
8880 of flags impliying the register renaming.
8881 * toplev.c (process_options): Do not imply flag_rename_registers with
8884 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8886 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
8887 default implementation.
8889 2016-05-31 Nathan Sidwell <nathan@acm.org>
8891 * dwarf2out.c (cur_line_info_table): Add GTY marker.
8893 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8895 * config/sh/constraints.md (b): Remove constraint.
8896 * config/sh/predicates.md (arith_reg_operand): Remove
8898 * config/sh/sh-modes.def (PDI): Remove.
8899 * config/sh/sh.c (sh_target_reg_class,
8900 sh_optimize_target_register_callee_saved): Remove functions.
8901 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
8902 (sh_expand_epilogue): Update comment.
8903 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
8904 sh_secondary_reload): Remove TARGET_REGS related code.
8905 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
8906 TARGET_REGISTER_P): Remove macros.
8907 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
8908 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
8909 TR1_REG, TR2_REG): Remove constants.
8910 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
8912 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8914 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
8915 define_expand patterns.
8916 (adddi3_compact): Rename to adddi3.
8917 (subdi3_compact): Rename to subdi3.
8918 (*negdi2): Rename to negdi2.
8919 (*abs<mode>2): Rename to abs<mode>2.
8921 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
8923 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
8924 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
8925 (atomic_sub_fetchsi): ... this new pattern.
8926 (mvtc): Add CC_REG clobber.
8928 2016-05-31 Marek Polacek <polacek@redhat.com>
8930 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
8932 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8934 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
8935 aarch64_fusion_enabled_p to check for fusion capabilities.
8937 2016-05-31 Richard Biener <rguenther@suse.de>
8939 PR tree-optimization/71352
8940 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
8941 minus one and a negate.
8943 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8945 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
8946 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
8948 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
8949 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
8950 Remove use of aarch64_simd_attr_length_move, set length attribute
8952 (*aarch64_be_movoi): Likewise.
8953 (*aarch64_be_movci): Likewise.
8954 (*aarch64_be_movxi): Likewise.
8956 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
8958 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
8959 It no longer does that.
8960 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
8962 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
8964 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
8965 attribute __unused__.
8967 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
8969 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
8970 * config/arm/arm.c (arm_arch_thumb1): Define.
8971 (arm_option_override): Initialize arm_arch_thumb1.
8972 * config/arm/arm.h (arm_arch_thumb1): Declare.
8973 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
8974 support Thumb-1 ISA.
8976 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
8979 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
8980 `Yv' for scalar operand.
8982 2016-05-31 Tom de Vries <tom@codesourcery.com>
8984 PR tree-optimization/69068
8985 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
8986 phis with more than two args.
8988 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
8990 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
8991 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
8994 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
8996 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
8998 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
9000 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
9001 cpu_32, cpu_64, tune_32 and tune_64.
9002 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
9004 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
9006 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
9008 2016-05-30 Andi Kleen <ak@linux.intel.com>
9010 * auto-profile.c (read_profile): Replace asserts with errors
9011 when file does not exist.
9012 * gcov-io.c (gcov_read_words): Dito.
9014 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9016 * tree-cfg.c (print_loop): Print likely upper bounds.
9018 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9020 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
9021 * opts.c (default_options): Enable peel loops at -O3.
9022 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
9023 (try_peel_loop): Do not re-peel already peeled loops;
9024 use likely upper bounds; fix profile updating.
9025 (pass_complete_unroll::execute): Initialize peeled_loops.
9027 2016-05-30 Martin Liska <mliska@suse.cz>
9029 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
9030 computed costs by frequency of BB they belong to.
9031 (get_scaled_computation_cost_at): New function.
9033 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
9034 Marc Glisse <marc.glisse@inria.fr>
9036 PR tree-optimization/71289
9037 * match.pd (-1 / B < A, A > -1 / B): New transformations.
9039 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9041 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
9043 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9045 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
9046 for peeled copies; avoid underflow when updating estimates; correctly
9049 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
9051 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
9052 r236875. Corrected oe3 to oe2 as obvious.
9054 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
9058 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
9059 that inserted stmt will not dominate stmts that defines its operand.
9060 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
9061 (rewrite_expr_tree_parallel): Likewise.
9063 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
9066 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
9067 all fields including stmt_to_insert are swapped.
9069 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9071 * predict.h (force_edge_cold): Declare.
9072 * predict.c (force_edge_cold): New function.
9073 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
9075 (canonicalize_loop_induction_variables): Fix formating.
9077 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
9079 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
9080 (visium_expand_copysign): Use gen_int_mode directly.
9081 (visium_compute_frame_size): Minor tweaks.
9083 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
9085 * tree-vect-loop.c (vect_analyze_loop_2): Use
9086 likely_max_stmt_executions_int.
9088 2016-05-30 Tom de Vries <tom@codesourcery.com>
9090 PR tree-optimization/69067
9091 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
9093 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
9096 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
9097 New peepholes to remove unneeded fild/fistp pairs.
9098 (define_peephole2 atomic_loaddi_fpu): Ditto.
9100 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9102 * predict.c (maybe_hot_frequency_p): Avoid division.
9104 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
9106 * doc/install.texi: Use https for shop.fsf.org.
9108 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9110 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
9111 likely_max_stmt_executions_int.
9113 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9115 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
9116 likely_max_stmt_executions_int.
9118 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9120 * profile.c (compute_branch_probabilities): Do not report hitrates
9122 (branch_prob): Report hitrates here.
9123 * predict.c (gimple_predict_edge): Do not assert profile status;
9124 fix formatting issues.
9126 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9128 * predict.c (edge_predicted_by_p): New function.
9129 (predict_paths_for_bb): Do not put multiple predictions of the same type
9132 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9134 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
9137 2016-05-28 Alan Modra <amodra@gmail.com>
9139 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
9141 2016-05-28 Alan Modra <amodra@gmail.com>
9143 PR rtl-optimization/71275
9144 * ira.c (ira): Free dominance info.
9146 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
9148 * doc/sourcebuild.texi: New address for upstream Go repository.
9150 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
9152 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
9153 (TARGET_ARM_V7M): Likewise.
9155 2016-05-26 Jeff Law <law@redhat.com>
9157 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
9158 (thread_across_edge): Remove calls to find_jump_threads_backwards.
9159 * passes.def: Add jump threading passes before DOM/VRP.
9160 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
9161 argument to a basic block from an edge. Remove tests which are
9163 (pass_data_thread_jumps, class pass_thread_jumps): New.
9164 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
9165 (make_pass_thread_jumps): Likewise.
9166 * tree-pass.h (make_pass_thread_jumps): Declare.
9168 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
9170 * config/visium/visium-protos.h (split_double_move): Rename into...
9171 (visium_split_double_move): ...this.
9172 (visium_split_double_add): Declare.
9173 * config/visium/visium.c (split_double_move): Rename into...
9174 (visium_split_double_move): ...this.
9175 (visium_split_double_add): New function.
9176 (visium_expand_copysign): Renumber operands for consistency.
9177 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
9178 (DFmode move splitter): Likewise.
9179 (*addi3_insn): Split by means of visium_split_double_add.
9180 (*adddi3_insn_flags): Delete.
9181 (*plus_plus_sltu<subst_arith>): New insn.
9182 (*subdi3_insn): Split by means of visium_split_double_add.
9183 (subdi3_insn_flags): Delete.
9184 (*minus_minus_sltu<subst_arith>): New insn.
9185 (*negdi2_insn): Split by means of visium_split_double_add.
9186 (*negdi2_insn_flags): Delete.
9188 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
9190 * configure.ac: Treat a --with-headers option without argument
9191 the same as the default (i.e. consult sys-include directory).
9192 * configure: Regenerate.
9194 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9196 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
9197 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
9199 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
9200 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
9202 2016-05-27 Jiong Wang <jiong.wang@arm.com>
9205 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
9206 tree-stdarg analysis results.
9207 (aarch64_setup_incoming_varargs): Likewise.
9209 2016-05-27 Jiong Wang <jiong.wang@arm.com>
9211 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
9212 va_list_gpr_counter_field and va_list_fpr_counter_field.
9214 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
9217 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
9218 * config/aarch64/aarch64.c
9219 (aarch64_cannot_change_mode_class): Remove function.
9220 * config/aarch64/aarch64-protos.h
9221 (aarch64_cannot_change_mode_class): Remove.
9223 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
9225 * cfgloop.c (record_niter_bound): Record likely upper bounds.
9226 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
9227 get_likely_max_loop_iterations_int): New.
9228 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
9229 any_likely_upper_bound.
9230 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
9232 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
9233 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
9235 (unroll_loop_constant_iterations): Likewise.
9236 (unroll_loop_runtime_iterations): Likewise.
9237 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
9238 * lto-streamer-out.c (output_cfg): Likewise.
9239 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
9241 (canonicalize_loop_induction_variables): Dump likely upper bounds.
9242 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
9243 (likely_max_loop_iterations): New.
9244 (likely_max_loop_iterations_int): New.
9245 (likely_max_stmt_executions): New.
9246 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
9247 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
9248 likely_max_stmt_executions): Declare.
9250 2016-05-27 Marek Polacek <polacek@redhat.com>
9253 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
9255 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9257 * config/s390/s390.md (2x risbg splitters): Use
9258 reg_overlap_mentioned_p instead of rtx_equal_p.
9260 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
9262 * combine.c (make_compound_operation): Take known zero bits into
9263 account when checking for possible zero_extend.
9265 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9267 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
9268 Use const_int_operand for operand 2 predicate. Simplify expand code
9271 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
9274 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
9277 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9279 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
9280 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
9281 that returns CC_SESWPmode and CC_ZESWPmode.
9282 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
9284 (aarch64_rtx_costs): Likewise.
9286 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
9288 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
9289 for ISA 3.0 min/max support.
9290 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
9291 conditional move support.
9292 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
9293 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
9295 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
9296 conditional moves where the comparison type is different from move
9298 (fp_minmax): New code iterator for smin/smax.
9299 (minmax): New code attributes for min/max.
9300 (SMINMAX): Likewise.
9301 (smax<mode>3): Combine min, max insns into one insn using the
9302 fp_minmax code iterator. Add support for ISA 3.0 min/max
9303 instructions that don't need -ffast-math.
9304 (s<minmax><mode>3): Likewise.
9305 (smax<mode>3_vsx): Likewise.
9306 (smin<mode>3): Likewise.
9307 (s<minmax><mode>3_vsx): Likewise.
9308 (smin<mode>3_vsx): Likewise.
9309 (pre-VSX min/max splitters): Likewise.
9310 (s<minmax><mode>3_fpr): Likewise.
9311 (movsfcc): Rewrite floating point conditional moves to combine
9312 SFmode/DFmode into a single insn.
9313 (mov<mode>cc): Likewise.
9314 (movdfcc): Likewise.
9315 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
9316 SFDF2 iterators to handle all combinations.
9317 (fseldfsf4): Likewise.
9318 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
9319 (fseldfdf4): Likewise.
9320 (fselsfdf4): Likewise.
9321 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
9322 comparison instructions that set a 0/-1 mask, and use it for
9323 floating point conditional move via XXSEL.
9324 (fpmask<mode>): Likewise.
9325 (xxsel<mode>): Likewise.
9326 * config/rs6000/predicates.md (min_max_operator): Delete, no
9328 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
9329 instructions that generate a 0/-1 mask for use with XXSEL.
9330 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
9331 say whether floating point min/max is available, either through
9332 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
9333 (TARGET_MINMAX_DF): Likewise.
9335 2016-05-27 Alan Modra <amodra@gmail.com>
9337 PR rtl-optimization/71275
9338 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
9339 for update_equiv_regs and combine_and_move_insns.
9341 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
9343 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
9344 if_then_else or cond RTXes to calculate attribute value.
9345 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
9346 <attr "length_immediate>: Ditto.
9347 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
9348 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
9349 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
9350 <attr "type">: Ditto.
9351 <attr "prefix_data16">: Ditto.
9352 <attr "prefix_extra">: Ditto.
9353 <attr "length_immediate">: Ditto.
9354 <attr "prefix">: Ditto.
9355 (vec_set<mode>_0) <attr "isa">: Ditto.
9356 <attr "prefix_extra">: Ditto.
9357 <attr "length_immediate">: Ditto.
9358 <attr "prefix">: Ditto.
9359 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
9360 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
9361 (sse2_storelpd) <attr "prefix_data16">: Ditto.
9362 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
9363 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
9364 <attr "length_immediate">: Ditto.
9365 <attr "prefix">: Ditto.
9366 (sse2_movsd) <attr "length_immediate">: Ditto.
9367 <attr "prefix">: Ditto.
9368 (vec_concatv2df) <attr "isa">: Ditto.
9369 <attr "prefix">: Ditto.
9370 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
9371 (*vec_extractv2di_1) <attr "isa">: Ditto.
9372 <attr "type">: Ditto.
9373 <attr "length_immediate">: Ditto.
9374 <attr "prefix_rex">: Ditto.
9375 <attr "prefix_extra">: Ditto.
9376 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
9377 <attr "prefix_extra">: Ditto.
9378 <attr "length_immediate">: Ditto.
9379 (vec_concatv2di) <attr "isa">: Ditto.
9380 <attr "prefix_extra">: Ditto.
9381 <attr "length_immediate">: Ditto.
9382 <attr "prefix">: Ditto.
9384 2016-05-26 Martin Liska <mliska@suse.cz>
9386 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
9388 (operator+): Likewise.
9389 (operator-): Likewise.
9390 (comp_cost::operator+=): Likewise.
9391 (comp_cost::operator-=): Likewise.
9392 (comp_cost::operator/=): Likewise.
9393 (comp_cost::operator*=): Likewise.
9394 (operator<): Likewise.
9395 (operator==): Likewise.
9396 (operator<=): Likewise.
9398 (infinite_cost_p): Likewise.
9399 (add_costs): Likewise.
9400 (sub_costs): Likewise.
9401 (compare_costs): Likewise.
9402 (set_group_iv_cost): Use the newly introduced functions.
9403 (get_address_cost): Likewise.
9404 (get_shiftadd_cost): Likewise.
9405 (force_expr_to_var_cost): Likewise.
9406 (split_address_cost): Likewise.
9407 (ptr_difference_cost): Likewise.
9408 (difference_cost): Likewise.
9409 (get_computation_cost_at): Likewise.
9410 (determine_group_iv_cost_generic): Likewise.
9411 (determine_group_iv_cost_address): Likewise.
9412 (determine_group_iv_cost_cond): Likewise.
9413 (autoinc_possible_for_pair): Likewise.
9414 (determine_group_iv_costs): Likewise.
9415 (cheaper_cost_pair): Likewise.
9416 (iv_ca_recount_cost): Likewise.
9417 (iv_ca_set_no_cp): Likewise.
9418 (iv_ca_set_cp): Likewise.
9419 (iv_ca_cost): Likewise.
9420 (iv_ca_new): Likewise.
9421 (iv_ca_dump): Likewise.
9422 (iv_ca_narrow): Likewise.
9423 (iv_ca_prune): Likewise.
9424 (iv_ca_replace): Likewise.
9425 (try_add_cand_for): Likewise.
9426 (try_improve_iv_set): Likewise.
9427 (find_optimal_iv_set): Likewise.
9429 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
9431 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
9432 that internal functions will clobber all caller-saved registers.
9434 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
9436 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
9437 Return a better case_values_threshold when optimizing.
9439 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
9441 * config/aarch64/aarch64-simd.md (aarch64_combinez):
9442 Add ? to integer variant.
9443 (aarch64_combinez_be): Likewise.
9445 2016-05-26 Jakub Jelinek <jakub@redhat.com>
9447 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
9448 instead of x constraint.
9449 (vcvtps2ph256<mask_name>): Likewise.
9451 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
9452 alternative. Formatting fix.
9454 * config/i386/sse.md
9455 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
9457 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
9458 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
9459 maybe_evex prefix instead of vex.
9460 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
9461 EXT_REX_SSE_REG_P (op0) case in the splitter.
9463 2016-05-25 Jeff Law <law@redhat.com>
9465 PR tree-optimization/71272
9466 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
9467 Update comments. Add test for empty path.
9469 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
9471 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
9472 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
9473 special case builtin.
9474 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
9475 code for ALTIVEC_BUILTIN_VEC_CMPNE.
9476 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
9477 for __builtin_vec_cmpne.
9479 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
9481 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
9482 redundant test and bail out if the type of the new operand is not
9483 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
9485 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
9487 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
9488 (x_ix86_target_flags_explicit): Remove.
9489 * config/i386/i386.c (ix86_function_specific_save): Do not copy
9490 x_ix86_target_flags_explicit.
9491 (ix86_function_specific_restore): Ditto.
9493 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
9494 H.J. Lu <hongjiu.lu@intel.com>
9497 * common/config/i386/i386-common.c
9498 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
9499 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
9500 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
9501 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
9502 (-mgeneral-regs-only): Add new option.
9503 * config/i386/i386.c (ix86_option_override_internal): Don't enable
9504 x87 instructions if only general registers are allowed.
9505 (ix86_target_string): Add ix86_flags argument. Handle additional
9506 flags options through ix86_flags argument. Update all callers.
9507 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
9509 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9511 PR rtl-optimization/66940
9512 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
9513 decrementing desired_val will not overflow before performing these
9516 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
9518 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
9519 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
9520 * config/i386/i386.c (enum ix86_builtins): Add
9521 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
9522 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
9523 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
9524 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
9525 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
9526 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
9527 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
9528 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
9529 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
9530 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
9531 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
9532 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
9533 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
9534 __builtin_ia32_cvtps2dq512_mask.
9535 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
9536 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
9537 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
9538 * config/i386/sse.md
9539 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
9541 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
9542 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
9544 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
9545 (avx512f_vec_pack_sfix_v8df): New define_expand.
9546 (avx512f_roundpd512): Rename to ...
9547 (avx512f_round<castmode>512): ... this. Change iterator.
9548 (avx512f_roundps512_sfix): New define_expand.
9549 (round<mode>2_sfix): Change iterator.
9551 2016-05-25 Nick Clifton <nickc@redhat.com>
9553 * config/msp430/msp430.c (msp430_attr): Produce an error if a
9554 static interrupt handler is detected.
9555 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
9556 default linker script.
9557 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
9558 the low part of a symbolic pointer.
9560 2016-05-25 Richard Biener <rguenther@suse.de>
9562 PR tree-optimization/71261
9563 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
9564 interesting stmt instead of immediate uses when looking
9565 for the use operand to replace.
9567 2016-05-25 Martin Liska <mliska@suse.cz>
9569 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
9571 2016-05-25 Richard Biener <rguenther@suse.de>
9573 PR tree-optimization/71264
9574 * tree-vect-stmts.c (vect_init_vector): Properly deal with
9577 2016-05-25 Martin Liska <mliska@suse.cz>
9579 PR tree-optimization/71239
9580 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
9581 if DECL_SIZE is NULL.
9583 2016-05-25 Richard Biener <rguenther@suse.de>
9585 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
9586 * tree-if-conv.c (pass_data_if_conversion): Use it.
9588 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
9590 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
9591 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
9592 * varpool.c (varpool_node::get_availability): Likewise.
9594 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9596 * config/rs6000/altivec.md (VNEG iterator): New iterator for
9597 VNEGW/VNEGD instructions.
9598 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
9599 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
9600 support for ISA 3.0 VNEGW/VNEGD instructions.
9602 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
9604 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
9605 pointers inside OACC_DATA regions.
9606 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
9607 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
9608 (gimplify_adjust_omp_clauses): Fix typo in comment.
9610 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
9612 * config/rs6000/altivec.md (VParity): New mode iterator for vector
9613 parity built-in functions.
9614 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
9616 (p9v_parity<mode>2): Likewise.
9617 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
9619 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
9620 (parity<mode>2): ISA 3.0 expander for vector parity.
9621 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
9623 (BU_P9_64BIT_MISC_0): Likewise.
9624 (BU_P9_MISC_0): Likewise.
9625 (BU_P9V_AV_1): Likewise.
9626 (BU_P9V_AV_2): Likewise.
9627 (BU_P9V_AV_3): Likewise.
9628 (BU_P9V_AV_P): Likewise.
9629 (BU_P9V_VSX_1): Likewise.
9630 (BU_P9V_OVERLOAD_1): Likewise.
9631 (BU_P9V_OVERLOAD_2): Likewise.
9632 (BU_P9V_OVERLOAD_3): Likewise.
9633 (VCTZB): Add vector count trailing zeros support.
9637 (VPRTYBD): Add vector parity support.
9638 (VPRTYBQ): Likewise.
9639 (VPRTYBW): Likewise.
9640 (VCTZ): Add overloaded vector count trailing zeros support.
9641 (VPRTYB): Add overloaded vector parity support.
9642 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9643 overloaded vector count trailing zeros and parity instructions.
9644 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
9645 vector parity support.
9646 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
9647 trailing zeros support.
9648 (vec_cntlz): Likewise.
9649 (vec_vctzb): Likewise.
9650 (vec_vctzd): Likewise.
9651 (vec_vctzh): Likewise.
9652 (vec_vctzw): Likewise.
9653 (vec_vprtyb): Add ISA 3.0 vector parity support.
9654 (vec_vprtybd): Likewise.
9655 (vec_vprtybw): Likewise.
9656 (vec_vprtybq): Likewise.
9657 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9658 the ISA 3.0 vector count trailing zeros and vector parity built-in
9661 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
9663 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
9664 when there is stmt_to_insert.
9666 2016-05-24 Martin Sebor <msebor@redhat.com>
9669 * tree.h (complete_or_array_type_p): New inline function.
9671 2016-05-24 Jakub Jelinek <jakub@redhat.com>
9673 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
9674 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
9675 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
9677 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
9678 Limit 1st alternative to noavx isa, split 2nd alternative into one
9679 noavx and one avx alternative, use *x and Bm in the former and
9680 x and m in the latter.
9682 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
9683 of sse4 for the first alternative, drop %v from the template
9684 and d operand modifier. Split second alternative into one sse4_noavx
9685 and one avx alternative, use *x instead of *v in the former and v
9686 instead of *v in the latter.
9687 (*sse4_1_extractps): Use noavx isa instead of * for the first
9688 alternative, drop %v from the template. Split second alternative into
9689 one noavx and one avx alternative, use *x instead of *v in the
9690 former and v instead of *v in the latter.
9691 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
9692 with noavx and the last one with avx.
9693 (sse4_1_phminposuw): Guard first alternative with noavx isa,
9694 split the second one into one noavx and one avx alternative,
9695 use *x and Bm in the former and x and m in the latter one.
9696 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
9699 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
9700 first two alternatives to noavx, use *x instead of *v in the second
9701 one, add avx alternative without *.
9702 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
9703 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
9704 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
9706 2016-05-24 Jeff Law <law@redhat.com>
9708 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
9709 New function, extracted from...
9710 (fsm_find_control_statement_thread_paths): Here. Use the new function.
9711 Allow simple copies and constant initializations in the SSA chain.
9713 2016-05-24 Marek Polacek <polacek@redhat.com>
9716 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
9719 2016-05-24 Jakub Jelinek <jakub@redhat.com>
9722 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
9723 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
9724 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
9725 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
9726 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
9728 2016-05-24 Richard Biener <rguenther@suse.de>
9730 PR tree-optimization/71240
9731 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
9734 2016-05-24 Richard Biener <rguenther@suse.de>
9736 PR tree-optimization/71230
9737 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
9739 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9741 * tree-vectorizer.h (vectorizable_comparison): Delete.
9742 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
9743 PURE_SLP_STMT check.
9744 * tree-vect-stmts.c (vectorizable_call): Likewise.
9745 (vectorizable_simd_clone_call): Likewise.
9746 (vectorizable_conversion): Likewise.
9747 (vectorizable_assignment): Likewise.
9748 (vectorizable_shift): Likewise.
9749 (vectorizable_operation): Likewise.
9750 (vectorizable_load): Likewise.
9751 (vectorizable_condition): Likewise.
9752 (vectorizable_store): Likewise. Assert that we don't have
9754 (vectorizable_comparison): Make static. Remove redundant
9755 PURE_SLP_STMT check.
9756 (vect_transform_stmt): Assert that we always have an slp_node
9759 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9761 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
9762 operands[2] against 1 with comparison against CONST1_RTX.
9763 (<shift>di3_neon): Likewise.
9764 * config/arm/predicates.md (const0_operand): Replace with comparison
9767 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9769 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
9770 operands[2] against 1 with comparison against CONST1_RTX.
9771 (ashrdi3): Likewise.
9772 (lshrdi3): Likewise.
9773 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
9775 (ashrsi3): Likewise.
9776 (lshrsi3): Likewise.
9777 (rotrsi3): Likewise.
9778 (define_split above *compareqi_eq0): Likewise.
9779 (define_split above "prologue"): Likewise.
9780 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
9781 * config/arm/predicates.md (shift_operator): Likewise.
9782 (shift_nomul_operator): Likewise.
9783 (sat_shift_operator): Likewise.
9784 (thumb1_cmp_operand): Likewise.
9785 (const_neon_scalar_shift_amount_operand): Replace manual range
9786 check with IN_RANGE.
9787 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
9788 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
9790 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9792 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
9793 with HOST_WIDE_INT_1.
9795 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
9796 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
9797 (arm_canonicalize_comparison): Likewise.
9798 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
9800 (thumb1_size_rtx_costs): Likewise.
9801 (vfp_const_double_index): Replace cast of 1 to unsigned
9802 HOST_WIDE_INT with HOST_WIDE_INT_1U.
9803 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
9805 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
9806 HOST_WIDE_INT with HOST_WIDE_INT_1U.
9807 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
9808 HOST_WIDE_INT with HOST_WIDE_INT_1.
9810 2016-05-24 Marek Polacek <polacek@redhat.com>
9812 * tree-cfg.h (should_remove_lhs_p): New predicate.
9813 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
9814 * gimplify.c (gimplify_modify_expr): Likewise.
9815 * tree-cfg.c (verify_gimple_call): Likewise.
9816 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
9817 * gimple-fold.c: Include "tree-cfg.h".
9818 (gimple_fold_call): Use should_remove_lhs_p.
9820 2016-05-24 Richard Biener <rguenther@suse.de>
9822 PR tree-optimization/71253
9823 * cfganal.h (control_dependences): Make robust against edge
9825 (control_dependences::control_dependences): Remove edge_list argument.
9826 (control_dependences::get_edge): Remove.
9827 (control_dependences::get_edge_src): Add.
9828 (control_dependences::get_edge_dest): Likewise.
9829 (control_dependences::m_el): Make a vector of edge src/dest index.
9830 * cfganal.c (control_dependences::find_control_dependence): Adjust.
9831 (control_dependences::control_dependences): Likewise.
9832 (control_dependences::~control_dependence): Likewise.
9833 (control_dependences::get_edge): Remove.
9834 (control_dependences::get_edge_src): Add.
9835 (control_dependences::get_edge_dest): Likewise.
9836 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
9838 (perform_tree_ssa_dce): Adjust.
9839 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
9841 (pass_loop_distribution::execute): Adjust. Do loop destroying
9842 conditional on changed.
9844 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9847 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
9848 return. Reindent transformation comment and mention the ARM state
9851 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
9854 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
9855 after build_and_add_sum creates new use stmt.
9857 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9859 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
9860 load_lanes/grouped_load classification comes first. Don't check
9861 whether the vectorization factor is a multiple of the group size
9864 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
9866 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
9867 GROUP_GAP for single-element interleaving.
9868 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
9871 2016-05-24 Richard Biener <rguenther@suse.de>
9875 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
9876 bases which are accessed with non-invariant indices.
9877 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
9878 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
9880 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
9883 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
9884 (add_to_ops_vec): Add stmt_to_insert.
9885 (add_repeat_to_ops_vec): Init stmt_to_insert.
9886 (insert_stmt_before_use): New.
9887 (transform_add_to_multiply): Remove mult_stmt insertion and add it
9889 (get_ops): Init stmt_to_insert.
9890 (maybe_optimize_range_tests): Likewise.
9891 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
9892 (rewrite_expr_tree_parallel): Likewise.
9893 (reassociate_bb): Likewise.
9895 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9898 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
9899 ISA 3.0 xxperm fusion alternative.
9900 (altivec_vperm_v8hiv16qi): Likewise.
9901 (altivec_vperm_<mode>_uns_internal): Likewise.
9902 (vperm_v8hiv4si): Likewise.
9903 (vperm_v16qiv8hi): Likewise.
9905 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
9906 Kelvin Nilsen <kelvin@gcc.gnu.org>
9908 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
9909 vpermr/xxpermr on ISA 3.0.
9910 (altivec_expand_vec_perm_le): Likewise.
9911 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
9912 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
9915 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
9917 * config/i386/i386.h (IS_STACK_MODE): Enable for
9918 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
9919 SSE_FLOAT_MODE_P macros.
9920 * config/i386/i386.c (ix86_preferred_reload_class): Use
9921 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
9922 Cleanup regclass processing for CONST_DOUBLE_P.
9923 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
9924 (ix86_rtx_costs): Remove redundant TARGET_80387 check
9925 with IS_STACK_MODE macro.
9926 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
9928 (*movdf_internal): Use IS_STACK_MODE macro.
9929 (*movsf_internal): Ditto.
9931 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
9933 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
9934 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
9936 2016-05-23 Jeff Law <law@redhat.com>
9938 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
9940 (fsm_find_control_statement_thread_paths): Call it.
9942 2016-05-23 Martin Jambor <mjambor@suse.cz>
9945 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
9946 from_global_constant if t is not NULL.
9948 2016-05-23 Marek Polacek <polacek@redhat.com>
9951 * common.opt (Wswitch-unreachable): New option.
9952 * doc/invoke.texi: Document -Wswitch-unreachable.
9953 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
9956 2016-05-23 Bin Cheng <bin.cheng@arm.com>
9958 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
9959 TMR_INDEX is non-NULL.
9961 2016-05-23 Richard Biener <rguenther@suse.de>
9963 PR tree-optimization/71230
9964 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
9965 (try_special_add_to_ops): ... here. Always test for single-use.
9967 2016-05-23 Martin Jambor <mjambor@suse.cz>
9969 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
9970 default block if a PHI node in the original one would be resized.
9972 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9974 PR tree-optimization/58135
9975 * tree-vect-slp.c: When group size is not multiple
9976 of vector size, allow splitting of store group at
9979 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
9981 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
9983 2016-05-22 Jakub Jelinek <jakub@redhat.com>
9985 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
9986 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
9987 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
9990 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
9991 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
9992 v constraint instead of x and vinserti32x4 insn.
9994 * config/i386/sse.md (i128vldq): New mode iterator.
9995 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
9996 avx512dq and avx512vl alternatives.
9998 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
9999 constraint, use maybe_evex prefix instead of vex.
10000 (vec_dupv4sf): Use v constraint instead of x for output
10001 operand except for noavx alternative, use Yv constraint
10002 instead of x for input. Use maybe_evex prefix instead of vex.
10003 (*vec_dupv4si): Likewise.
10004 (*vec_dupv2di): Likewise.
10006 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
10008 PR middle-end/40921
10009 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
10010 (linearize_expr_tree): Call try_special_add_to_ops.
10011 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
10013 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
10015 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
10016 to computed stack_usage.
10018 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
10021 * config/avr/avr.md (define_expand "mov<mode>"): If the source
10022 operand is subreg (symbol_ref) then move the symbol ref to register.
10024 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
10026 * tree.c (array_at_struct_end_p): Look through MEM_REF.
10028 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
10030 PR middle-end/71179
10031 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
10034 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
10036 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
10037 ranges by calling get_single_symbol and tidy up. Look more closely
10038 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
10040 2016-05-20 Jeff Law <law@redhat.com>
10042 * bitmap.c (bitmap_find_bit): Remove useless test.
10044 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
10046 * function.c (thread_prologue_and_epilogue_insns): Commit the
10047 insertion of the epilogue.
10049 2016-05-20 Martin Jambor <mjambor@suse.cz>
10051 PR tree-optimization/70884
10052 * tree-sra.c (initialize_constant_pool_replacements): Do not check
10053 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
10054 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
10055 of constant pool data as a reason for scalarization.
10057 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
10059 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
10060 for naked functions.
10061 (thumb1_expand_prologue): Likewise.
10063 2016-05-20 Nathan Sidwell <nathan@acm.org>
10065 * config/nvptx/nptx.c (nvptx_option_override): Only set
10066 flag_toplevel_reorder, if not explicitly specified. Set
10067 flag_no_common, unless explicitly specified.
10069 2016-05-20 David Malcolm <dmalcolm@redhat.com>
10071 * calls.c (can_implement_as_sibling_call_p): Mark param
10072 reg_parm_stack_space with ATTRIBUTE_UNUSED.
10074 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
10076 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
10077 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
10078 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
10080 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
10081 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
10082 and CASE_CONST_ANY.
10084 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
10086 * config/nvptx/nvptx.md (sincossf3): New pattern.
10088 2016-05-20 David Malcolm <dmalcolm@redhat.com>
10090 * calls.c (maybe_complain_about_tail_call): New function.
10091 (initialize_argument_information): Call
10092 maybe_complain_about_tail_call when clearing *may_tailcall.
10093 (can_implement_as_sibling_call_p): Call
10094 maybe_complain_about_tail_call when returning false.
10095 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
10096 ensure try_tail_call is set. Call maybe_complain_about_tail_call
10097 if tail-call optimization fails.
10098 * cfgexpand.c (expand_call_stmt): Initialize
10099 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
10100 * gimple-pretty-print.c (dump_gimple_call): Dump
10101 gimple_call_must_tail_p.
10102 * gimple.c (gimple_build_call_from_tree): Call
10103 gimple_call_set_must_tail with the value of
10104 CALL_EXPR_MUST_TAIL_CALL.
10105 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
10106 (gimple_call_set_must_tail): New function.
10107 (gimple_call_must_tail_p): New function.
10108 * print-tree.c (print_node): Update printing of TREE_STATIC
10109 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
10110 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
10111 trailing comment listing applicable flags.
10112 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
10114 2016-05-20 David Malcolm <dmalcolm@redhat.com>
10116 * calls.c (expand_call): Move "Rest of purposes for tail call
10117 optimizations to fail" to...
10118 (can_implement_as_sibling_call_p): ...this new function, and
10119 split into multiple "if" statements.
10121 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
10123 * cfgloop.h (expected_loop_iterations_unbounded,
10124 expected_loop_iterations): Unconstify.
10125 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
10126 profile with known upper bound; return 3 when profile is absent.
10127 (expected_loop_iterations): Update.
10129 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
10131 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
10132 and get_max_loop_iterations_int.
10134 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
10136 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
10137 realistic upper bounds here.
10139 2016-05-20 Jakub Jelinek <jakub@redhat.com>
10142 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
10143 calls if the LHS is variable length or has addressable type.
10144 If targets[0]->decl is a noreturn call with void return type and
10145 zero arguments, adjust fntype and remove lhs in that case.
10147 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
10149 PR tree-optimization/71079
10150 PR tree-optimization/71206
10151 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
10153 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10155 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
10156 (get_vec_alignment_for_array_decl): Likewise.
10157 (get_vec_alignment_for_record_decl): Likewise.
10158 (increase_alignment::execute): Move code to find alignment to
10159 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
10160 (type_align_map): New hash_map.
10162 2016-05-20 Richard Guenther <rguenther@suse.de>
10164 PR tree-optimization/29756
10165 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
10166 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
10167 * fold-const.c (operand_equal_p): Likewise.
10168 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
10169 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
10170 * tree-inline.c (estimate_operator_cost): Likewise.
10171 * tree-pretty-print.c (dump_generic_node): Likewise.
10172 * tree-ssa-operands.c (get_expr_operands): Likewise.
10173 * cfgexpand.c (expand_debug_expr): Likewise.
10174 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
10175 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
10176 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
10177 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
10178 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
10179 (execute_update_addresses_taken): Do it.
10181 2016-05-20 Richard Biener <rguenther@suse.de>
10183 PR tree-optimization/71185
10184 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
10185 register operations.
10187 2016-05-20 Richard Biener <rguenther@suse.de>
10189 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
10190 gimple_seq_add_seq_without_update.
10191 (release_bb_predicate): Assert we have no operands to free.
10192 (if_convertible_loop_p_1): Calculate post dominators later.
10193 Do not free BB predicates here.
10194 (combine_blocks): Do not recompute BB predicates.
10195 (version_loop_for_if_conversion): Save BB predicates around
10198 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10200 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
10201 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
10202 code. Ignore sibcalls on EDGE_IGNORE edges.
10203 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
10204 on edges for sibcalls that run without prologue. The rest of the
10205 function is combined from...
10206 (fix_fake_fallthrough_edge): ... this, and ...
10207 (try_shrink_wrapping): ... a part of this. Remove the bb_with
10208 function argument, make it a local variable.
10210 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
10212 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
10213 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
10214 for 32-bit mode and SEH for 64-bit.
10215 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
10216 TARGET_64BIT_DEFAULT.
10218 2016-05-19 Ryan Burn <contact@rnburn.com>
10220 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
10221 * gengtype.c (open_base_files): Add cilk.h to ifiles.
10223 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
10225 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
10226 force pending loads from memory.
10228 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
10230 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
10231 (UNSPEC_DARN_32): New unspec constant.
10232 (UNSPEC_DARN_RAW): New unspec constant.
10233 (darn_32): New instruction.
10234 (darn_raw): New instruction.
10235 (darn): New instruction.
10236 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
10237 support and documentation for this macro.
10238 (BU_P9_MISC_1): New macro definition.
10239 (BU_P9_64BIT_MISC_0): New macro definition.
10240 (BU_P9_MISC_0): New macro definition.
10241 (darn_32): New builtin definition.
10242 (darn_raw): New builtin definition.
10243 (darn): New builtin definition.
10244 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
10245 RS6000_BUILTIN_0 directives to surround each occurrence of
10246 #include "rs6000-builtin.def".
10247 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
10248 RS6000_BTM_64BIT flags to the returned mask, depending on
10250 (def_builtin): Correct an error in the assignments made to the
10251 debugging variable attr_string.
10252 (rs6000_expand_builtin): Add support for no-operand built-in
10254 (builtin_function_type): Remove fatal_error assertion that is no
10256 (rs6000_common_init_builtins): Add support for no-operand built-in
10258 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
10260 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
10262 (RS6000_BTM_64BIT): New macro definition.
10263 * doc/extend.texi: Document __builtin_darn (void),
10264 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
10267 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
10269 * tree-vect-loop.c (vect_analyze_loop_2): Use also
10270 max_loop_iterations_int.
10272 2016-05-19 Marek Polacek <polacek@redhat.com>
10274 PR tree-optimization/71031
10275 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
10276 condition and adjust the code a bit.
10278 2016-05-19 Martin Liska <mliska@suse.cz>
10280 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
10281 auto_vec instead of vec.
10283 2016-05-19 Martin Liska <mliska@suse.cz>
10285 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
10287 2016-05-19 Martin Liska <mliska@suse.cz>
10289 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
10291 2016-05-19 Martin Liska <mliska@suse.cz>
10293 * ipa-pure-const.c (set_function_state): Remove an existing
10295 (remove_node_data): Do not free it as it's released
10296 in set_function_state.
10298 2016-05-19 Martin Liska <mliska@suse.cz>
10300 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
10303 2016-05-19 Martin Liska <mliska@suse.cz>
10305 * omp-simd-clone.c (simd_clone_adjust): Release vector.
10307 2016-05-19 Martin Liska <mliska@suse.cz>
10309 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
10310 an auto_vec instead of re-creating it.
10312 2016-05-19 Martin Liska <mliska@suse.cz>
10314 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
10315 auto_vec instead of vec.
10317 2016-05-19 Martin Liska <mliska@suse.cz>
10319 * lto-section-in.c (lto_get_section_data): Call
10320 lto_check_version with additional argument.
10321 * lto-streamer.c (lto_check_version): Add new argument.
10322 * lto-streamer.h (lto_check_version): Likewise.
10324 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10326 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
10327 Don't add cost of inner memory when handling sign-extended loads.
10329 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
10331 PR rtl-optimization/71148
10332 * cse.c (cse_main): Free dominance info.
10333 (rest_of_handle_cse): Don't free dominance info.
10334 (rest_of_handle_cse2): Likewise.
10335 (rest_of_handle_cse_after_global_opts): Likewise.
10337 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10340 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
10341 NULL_TREE early if NEON is not available. Remove now redundant check
10342 in ARM_CHECK_BUILTIN_MODE.
10344 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
10347 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
10348 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
10349 * doc/cpp.texi: Document new macros.
10351 2016-05-19 Bin Cheng <bin.cheng@arm.com>
10353 PR tree-optimization/69848
10354 * tree-vect-loop.c (vectorizable_reduction): Don't factor
10355 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
10357 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10359 * function.c (thread_prologue_and_epilogue_insn): Move the
10360 "goto epilogue_done" one block later.
10362 2016-05-19 Richard Biener <rguenther@suse.de>
10364 PR tree-optimization/70729
10365 * passes.def: Move LIM pass before PRE. Remove no longer
10366 required copyprop and move first DCE out of the loop pipeline.
10368 2016-05-18 David Malcolm <dmalcolm@redhat.com>
10371 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
10372 (OBJS-libcommon-target): ...here.
10373 * opts-common.c: Include spellcheck.h.
10374 (cmdline_handle_error): Build a vec of valid options and use it
10375 to suggest provide hints for misspelled arguments.
10377 2016-05-18 Jakub Jelinek <jakub@redhat.com>
10380 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
10381 lhs if it has TREE_ADDRESSABLE type.
10383 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
10386 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
10387 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
10389 2016-05-18 Martin Jambor <mjambor@suse.cz>
10392 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
10393 input for NOP_EXPR pass-through functions.
10394 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
10395 aggregate global constant VAR_DECLs in constant jump functions.
10397 2016-05-18 Martin Jambor <mjambor@suse.cz>
10400 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
10401 from TREE_READONLY parameters.
10403 2016-05-18 Martin Jambor <mjambor@suse.cz>
10406 * cgraph.h (cgraph_indirect_call_info): New field
10407 guaranteed_unmodified.
10408 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
10409 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
10411 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
10412 pass the parameter value to ipa_find_agg_cst_for_param.
10413 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
10414 guaranteed_unmodified, store AA results there instead of bailing out
10416 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
10417 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
10418 (find_constructor_constant_at_offset): New function.
10419 (ipa_find_agg_cst_from_init): Likewise.
10420 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
10421 static initializers of contants, report back through a new paameter
10422 from_global_constant if that was the case.
10423 (try_make_edge_direct_simple_call): Also pass parameter value to
10424 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
10426 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
10427 (ipa_read_indirect_edge_info): Likewise.
10428 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
10429 (ipa_load_from_parm_agg): Likewise.
10431 2016-05-18 Jiong Wang <jiong.wang@arm.com>
10433 PR rtl-optimization/71150
10434 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
10437 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
10440 * config/rs6000/constraints.md (wE constraint): New constraint
10441 for a vector constant that can be loaded with XXSPLTIB.
10442 (wM constraint): New constraint for a vector constant of a 1's.
10443 (wS constraint): New constraint for a vector constant that can be
10444 loaded with XXSPLTIB and a vector sign extend instruction.
10445 * config/rs6000/predicates.md (xxspltib_constant_split): New
10446 predicates for wE/wS constraints.
10447 (xxspltib_constant_nosplit): Likewise.
10448 (easy_vector_constant): Add support for constants that can be
10449 loaded via XXSPLTIB.
10450 (all_ones_constant): New predicate for vector constant with all
10452 (splat_input_operand): Add support for ISA 3.0 word splat operations.
10453 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
10454 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
10455 instruction and possibly with a sign extension.
10456 (output_vec_const_move): Add support for XXSPLTIB. If we are
10457 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
10458 instead of XXLXOR/XXLORC.
10459 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
10461 (rs6000_legitimize_reload_address): Likewise.
10462 (rs6000_output_move_128bit): Use output_vec_const_move to emit
10464 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
10465 combine VSX_M and VSX_M2 into one iterator.
10466 (VSX_M2): Likewise.
10467 (VSINT_84): New iterators for loading constants with XXSPLTIB.
10468 (VSINT_842): Likewise.
10469 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
10470 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
10471 XXSPLTIB instruction.
10472 (xxspltib_<mode>_nosplit): Likewise.
10473 (xxspltib_<mode>_split): New insn to load up constants with
10474 XXSPLTIB and a sign extend instruction.
10475 (vsx_mov<mode>): Replace single move that handled all vector types
10476 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
10477 moves (when -mvsx-timode is in effect) into the main vector
10478 moves. Eliminate separate moves for <VSr> <VSa>, where the
10479 preferred register class (<VSr>) is listed first, and the
10480 secondary register class (<VSa>) is listed second with a '?' to
10481 discourage use. Prefer loading 0/-1 in any VSX register for ISA
10482 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
10483 that if the register was involved in a slow operation, the
10484 clear/set operation does not wait for the slow operation to
10485 finish. Adjust the length attributes for 32-bit mode. Use
10486 rs6000_output_move_128bit and drop the use of the string
10487 instructions for 32-bit movti when -mvsx-timode is in effect. Use
10488 spacing so that the alternatives and attributes don't generate
10489 long lines, and put things in columns, so that it is easier to
10490 match up the operands and attributes with the insn alternatives.
10491 (vsx_mov<mode>_64bit): Likewise.
10492 (vsx_mov<mode>_32bit): Likewise.
10493 (vsx_movti_64bit): Fold movti into normal vector moves.
10494 (vsx_movti_32bit): Likewise.
10495 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
10496 splat instructions.
10497 (vsx_splat_v4si_internal): Likewise.
10498 (vsx_splat_v4sf_internal): Likewise.
10499 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
10500 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
10501 extend vector elements.
10502 (vsx_sign_extend_hi_<mode>): Likewise.
10503 (vsx_sign_extend_si_v2di): Likewise.
10504 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
10506 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
10507 constraints. Add trailing period to wL documentation.
10509 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
10511 PR middle-end/71020
10512 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
10513 * tree-dfa.c (replace_abnormal_ssa_names): New function.
10514 * tree-call-cdce.c: Include tree-dfa.h.
10515 (can_guard_call_p): New function, extracted from...
10516 (can_use_internal_fn): ...here.
10517 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
10519 (shrink_wrap_one_built_in_call): Likewise.
10520 (use_internal_fn): Likewise.
10521 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
10522 and return void. Call replace_abnormal_ssa_names.
10523 (pass_call_cdce::execute): Check can_guard_call_p during the
10524 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
10525 will always change something.
10527 2016-05-18 Martin Jambor <mjambor@suse.cz>
10530 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
10531 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
10533 2016-05-18 Martin Jambor <mjambor@suse.cz>
10536 * ipa-inline.h (condition): New field size.
10537 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
10538 for comaprison and store it into the new condition.
10539 (evaluate_conditions_for_known_args): Use condition size to check
10540 access sizes for all but CHANGED conditions.
10541 (unmodified_parm_1): New parameter size_p, store access size into it.
10542 (unmodified_parm): Likewise.
10543 (unmodified_parm_or_parm_agg_item): Likewise.
10544 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
10545 (set_cond_stmt_execution_predicate): Extract access sizes and store
10546 them to conditions.
10547 (set_switch_stmt_execution_predicate): Likewise.
10548 (will_be_nonconstant_expr_predicate): Likewise.
10549 (will_be_nonconstant_predicate): Likewise.
10550 (inline_read_section): Stream condition size.
10551 (inline_write_summary): Likewise.
10553 2016-05-18 Richard Biener <rguenther@suse.de>
10555 * tree-ssa-loop-im.c (determine_max_movement): Properly add
10556 condition cost to PHI cost instead of total_cost.
10558 2016-05-18 Martin Liska <mliska@suse.cz>
10561 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
10564 2016-05-18 Richard Biener <rguenther@suse.de>
10566 * lto-streamer.h (LTO_major_version): Bump to 6.
10568 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
10570 * function.c (make_split_prologue_seq, make_prologue_seq,
10571 make_epilogue_seq): New functions, factored out from...
10572 (thread_prologue_and_epilogue_insns): Here.
10574 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
10576 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
10577 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
10578 of before. Add a comment.
10580 2016-05-18 Bin Cheng <bin.cheng@arm.com>
10582 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
10583 expression pointer, not pointer to the pointer.
10585 2016-05-18 Jakub Jelinek <jakub@redhat.com>
10587 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
10588 (avx2_pbroadcast<mode>): Add another alternative with v instead
10589 of x constraints in it, using <pbroadcast_evex_isa> isa.
10590 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
10592 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
10593 constraint x instead of v in second alternative, add avx512bw
10596 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
10597 constraint x instead of v in second alternative, add avx512bw
10600 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
10601 constraint x instead of v in second alternative, add avx512bw
10604 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
10605 avx512bw alternative.
10607 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
10609 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
10610 array to 128 chars.
10611 (define_insn "*andnottf3"): Ditto.
10612 (define_insn "*<code><mode>3"/any_logic): Ditto.
10613 (define_insn "*<code>tf3"/any_logic): Ditto.
10614 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
10615 operand to block AVX-512VL insn variant emit when it is not enabled.
10617 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
10619 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
10620 constraint fot SF mode.
10622 2016-05-18 Petr Murzin <petr.murzin@intel.com>
10623 Kirill Yukhin <kirill.yukhin@intel.com>
10625 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
10627 (define_insn "rsqrt14<mode>"): Ditto.
10628 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
10629 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
10630 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
10631 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
10632 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
10634 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
10635 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
10636 * config/i386/i386.c (ix86_print_operand): Expand check for size
10637 override codes for Intel syntax.
10639 2016-05-18 Richard Biener <rguenther@suse.de>
10641 PR tree-optimization/71168
10642 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
10643 initialization earlier.
10645 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
10647 * config/aarch64/aarch64-simd.md
10648 (aarch64_reduc_plus_internal<mode>): Rename to...
10649 (reduc_plus_scal): ...This, and remove previous implementation.
10651 2016-05-18 Richard Biener <rguenther@suse.de>
10653 * passes.def: Put late dse and cd_dce in canonical order.
10655 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
10657 * ipa-inline-transform.c (preserve_function_body_p): Look for
10658 first non-thunk clone.
10659 (save_function_body): Save into first non-thunk.
10660 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
10662 (lto_output_node): Inline thunks don't need body in every
10664 * lto-streamer-in.c: Do not fixup thunk clones.
10665 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
10667 * tree-inline.c (copy_bb): Be prepared for target node to be new after
10670 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
10672 PR middle-end/63586
10673 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
10674 (reassociate_bb): Call transform_add_to_multiply.
10676 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
10678 * config/aarch64/aarch64.c (all_extensions): Removed unused
10681 2016-05-17 Nathan Sidwell <nathan@acm.org>
10683 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
10684 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
10686 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
10688 PR tree-optimization/54579
10689 PR middle-end/55299
10690 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
10692 2016-05-17 Marek Polacek <polacek@redhat.com>
10695 * tree-inline.c (expand_call_inline): Call
10696 maybe_remove_unused_call_args.
10698 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
10700 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
10701 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
10702 * doc/md.texi (fmin@var{m}3): Likewise.
10704 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
10706 * match.pd (X & C): New transformation.
10708 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
10710 * match.pd (~X & Y): New transformation.
10712 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
10714 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
10715 information for new SSA_NAME.
10716 (simplify_conversion_using_ranges): Get range through get_range_info
10717 instead of get_value_range.
10719 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10721 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
10722 Remove inline assembly.
10723 (vmvn_s16): Likewise.
10724 (vmvn_s32): Likewise.
10725 (vmvn_u8): Likewise.
10726 (vmvn_u16): Likewise.
10727 (vmvn_u32): Likewise.
10728 (vmvnq_s8): Likewise.
10729 (vmvnq_s16): Likewise.
10730 (vmvnq_s32): Likewise.
10731 (vmvnq_u8): Likewise.
10732 (vmvnq_u16): Likewise.
10733 (vmvnq_u32): Likewise.
10734 (vmvn_p8): Likewise.
10735 (vmvnq_p16): Likewise.
10737 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10739 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
10741 (vmul_n_s16): Likewise.
10742 (vmul_n_s32): Likewise.
10743 (vmul_n_u16): Likewise.
10744 (vmul_n_u32): Likewise.
10745 (vmulq_n_f32): Likewise.
10746 (vmulq_n_f64): Likewise.
10747 (vmulq_n_s16): Likewise.
10748 (vmulq_n_s32): Likewise.
10749 (vmulq_n_u16): Likewise.
10750 (vmulq_n_u32): Likewise.
10752 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10754 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
10755 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
10757 2016-05-17 Jiong Wang <jiong.wang@arm.com>
10759 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
10760 to *aarch64_fma4_elt_from_dup<mode>.
10761 (*aarch64_fnma4_elt_to_128df): Rename to
10762 *aarch64_fnma4_elt_from_dup<mode>.
10763 * config/aarch64/arm_neon.h (vfma_n_f64): New.
10764 (vfms_n_f32): Likewise.
10765 (vfms_n_f64): Likewise.
10766 (vfmsq_n_f32): Likewise.
10767 (vfmsq_n_f64): Likewise.
10769 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
10771 * wide-int.h: Change fixed_wide_int_storage from class to struct.
10773 2016-05-17 Richard Biener <rguenther@suse.de>
10775 PR tree-optimization/71132
10776 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
10777 Only add control dependences for blocks in the loop.
10778 (build_rdg): Adjust.
10779 (generate_code_for_partition): Return whether loop should
10780 be destroyed and delay that.
10781 (distribute_loop): Likewise.
10782 (pass_loop_distribution::execute): Record loops to be destroyed
10783 and perform delayed destroying of loops.
10785 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10788 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
10790 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10792 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
10794 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
10797 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
10798 insertion point for instructions generated by validize_mem.
10800 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10802 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
10805 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
10807 * config/aarch64/aarch64.c
10808 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
10809 rather than a macro.
10811 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10813 * doc/invoke.texi (AArch64 Options): Various updates.
10815 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10817 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
10818 into instrumentation thunks.
10819 * cif-code.def (CIF_CHKP): New.
10821 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
10823 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
10825 2016-05-16 Martin Jambor <mjambor@suse.cz>
10827 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
10828 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
10830 2016-05-16 Marek Polacek <polacek@redhat.com>
10832 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
10835 2016-05-16 Martin Jambor <mjambor@suse.cz>
10838 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
10839 the outlined kernel function.
10841 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
10843 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
10844 (ISA_HAS_DLSA): Ditto.
10846 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
10848 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
10850 2016-05-16 Nathan Sidwell <nathan@acm.org>
10852 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
10853 (nvptx_name_replacement): Restore. Add comment.
10854 (write_fn_proto, write_fn_proto_from_insn,
10855 nvptx_output_call_insn): Restore
10856 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
10858 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10860 * config/aarch64/aarch64.md
10861 (add<mode>3_compareC_cconly_imm): Remove use of %w.
10862 (add<mode>3_compareC_imm): Likewise.
10863 (<optab>si3_uxtw): Split into register and immediate variants.
10864 (andsi3_compare0_uxtw): Likewise.
10865 (and<mode>3_compare0): Likewise.
10866 (and<mode>3nr_compare0): Likewise.
10867 (stack_protect_test_<mode>): Don't use %x for memory operands.
10869 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
10871 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
10873 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
10875 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
10876 Split integer shifts into shift_reg and bfm.
10877 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
10878 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
10879 (ror<mode>3_insn): Likewise.
10880 (<optab>si3_insn_uxtw): Likewise.
10881 (<optab><mode>3_insn): Change to rotate_imm.
10882 (extr<mode>5_insn_alt): Likewise.
10883 (extrsi5_insn_uxtw): Likewise.
10884 (extrsi5_insn_uxtw_alt): Likewise.
10886 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
10888 * doc/tm.texi: Regenerate.
10889 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
10890 (TARGET_INVALID_RETURN_TYPE): Remove.
10891 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
10892 TARGET_INVALID_RETURN_TYPE.
10893 * target.def (invalid_parameter_type): Remove.
10894 (invalid_return_type): Remove.
10896 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10898 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
10899 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
10901 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
10903 (preserve_function_body_p): No need to preserve function body
10904 * cif-codes.def (CIF_THUNK): Remove.
10905 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
10907 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10909 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
10911 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10913 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
10916 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10918 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
10919 (inline_small_functions): Do not look for function symbol when
10922 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
10924 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
10927 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
10928 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10929 Jiong Wang <jiong.wang@arm.com>
10931 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
10932 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
10933 Define __ARM_FP16_ARGS when appropriate.
10934 * config/arm/arm.c (arm_invalid_parameter_type): Remove
10936 (arm_invalid_return_type): Likewise.
10937 (TARGET_INVALID_PARAMETER_TYPE): Remove.
10938 (TARGET_INVALID_RETURN_TYPE): Remove.
10939 (aapcs_vfp_sub_candidate): Allow HFmode.
10940 (aapcs_vfp_allocate): Add comment. Support HFmode.
10941 (aapcs_vfp_allocate_return_reg): Likewise.
10942 (struct aapcs_cp_arg_layout): Slightly reword comments for
10943 is_return_candidate and allocate_return_reg.
10944 (output_mov_vfp): Update assert.
10945 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
10947 (arm_invalid_parameter_type): Remove.
10948 (amr_invalid_return_type): Remove.
10949 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
10950 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
10951 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
10953 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
10955 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
10956 * config/aarch64/arch64-protos.h
10957 (aarch64_legitimize_reload_address): Remove.
10958 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
10961 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
10963 * configure.ac: Add ACX_NONCANONICAL_HOST.
10964 * configure: Regenerate.
10965 * Makefile.in: Set host_noncanonical.
10967 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
10970 * config/i386/i386.md (*movtf_internal): Before register allocation,
10971 do not allow FP constants for CM_MEDIUM memory model, allow only
10972 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
10973 (*movxf_internal): Ditto.
10974 (*movdf_internal): Ditto.
10975 (*movsf_internal): Ditto.
10977 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
10979 PR rtl-optimization/67483
10980 * combine.c (make_compound_operation): Don't call extract_left_shift
10981 with negative shift amounts.
10983 2016-05-13 Jakub Jelinek <jakub@redhat.com>
10986 * fold-const.c (fold_checksum_tree): Allow modification
10987 of TYPE_ALIAS_SET during folding.
10989 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
10990 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
10991 (ix86_split_to_parts): Likewise. Fix up formatting.
10993 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
10995 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
10996 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
10999 2016-05-13 Nathan Sidwell <nathan@acm.org>
11001 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
11002 (nvptx_name_replacement): Delete.
11003 (write_fn_proto, write_fn_proto_from_insn,
11004 nvptx_output_call_insn): Remove nvptx_name_replacement call.
11005 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
11006 * langhooks.c (add_builtin_funcction_common): Call
11007 targetm.mangle_decl_assembler_name.
11009 * config/nvptx/nvptx.c (write_fn_proto): Handle
11010 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
11012 2016-05-13 Martin Liska <mliska@suse.cz>
11014 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
11015 and PRIu64 in printf format.
11017 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11019 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
11022 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11024 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
11025 Change --param max-completely-peeled-times to
11026 --param max-completely-peel-times in dump file printing.
11028 2016-05-13 Richard Biener <rguenther@suse.de>
11030 PR tree-optimization/42587
11031 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
11032 (find_bswap_or_nop_1): Likewise.
11033 (bswap_replace): Likewise.
11035 2016-05-13 Martin Liska <mliska@suse.cz>
11037 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
11038 Initialize a variable with default value.
11040 2016-05-13 Martin Liska <mliska@suse.cz>
11042 * doc/invoke.texi: Enhance explanation of error recovery
11045 2016-05-13 Martin Liska <mliska@suse.cz>
11047 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
11048 (struct cost_pair): Change inv_expr_id (int) to inv_expr
11049 (iv_inv_expr_ent *).
11050 (struct iv_inv_expr_ent): Comment struct fields.
11051 (sort_iv_inv_expr_ent): New function.
11052 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
11053 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
11054 a hash_map between iv_inv_expr_ent and number of usages.
11055 (niter_for_exit): Fix coding style.
11056 (tree_ssa_iv_optimize_init): Use renamed variable.
11057 (determine_base_object): Fix coding style.
11058 (alloc_iv): Likewise.
11059 (find_interesting_uses_outside): Likewise.
11060 (add_candidate_1): Likewise.
11061 (add_standard_iv_candidates): Likewise.
11062 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
11063 (prepare_decl_rtl): Fix coding style.
11064 (get_address_cost): Likewise.
11065 (get_shiftadd_cost): Likewise.
11066 (force_expr_to_var_cost): Likewise.
11067 (compare_aff_trees): Likewise.
11068 (get_expr_id): Restructure the function.
11069 (get_loop_invariant_expr_id): Renamed to
11070 get_loop_invariant_expr.
11071 (get_computation_cost_at): Replace usage of inv_expr_id with
11073 (get_computation_cost): Likewise.
11074 (determine_group_iv_cost_generic): Likewise.
11075 (determine_group_iv_cost_address): Likewise.
11076 (iv_period): Fix coding style.
11077 (iv_elimination_compare_lt): Likewise.
11078 (may_eliminate_iv): Likewise.
11079 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
11081 (determine_group_iv_costs): Dump invariant expressions.
11082 (iv_ca_recount_cost): Use the newly added hash_map.
11083 (iv_ca_set_remove_invariants): Fix coding style.
11084 (iv_ca_set_add_invariants): Fix coding style.
11085 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
11087 (iv_ca_set_cp): Likewise.
11088 (iv_ca_new): Initialize the newly added hash_map and remove
11089 initialization of fields.
11090 (iv_ca_free): Delete the hash_map.
11091 (iv_ca_dump): Dump invariant expressions.
11092 (iv_ca_extend): Fix coding style.
11093 (try_add_cand_for): Likewise.
11094 (create_new_ivs): Dump information about # of avg iterations and
11095 # of used invariant expressions.
11096 (rewrite_use_compare): Fix coding style.
11097 (free_loop_data): Set default value for max_inv_expr_id.
11099 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
11101 * cse.c (rest_of_handle_cse): Use cleanup_cfg
11102 returned value cse_cfg_altered computation.
11103 (rest_of_handle_cse2): Likewise.
11104 (rest_of_handle_cse_after_global_opts): Likewise.
11106 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11109 * config/arm/arm.c (arm32_output_mi_thunk): New.
11110 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
11111 to split Thumb1 vs TARGET_32BIT functionality.
11112 (arm_thumb1_mi_thunk): New.
11114 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11116 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
11119 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11122 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
11124 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
11126 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
11127 (expand_builtin_trap): Emit a regular call.
11128 (set_builtin_user_assembler_name): Remove obsolete cases.
11129 * dse.c (scan_insn): Adjust.
11130 * except.c: Include calls.h.
11131 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
11132 emit a regular call to setjmp.
11133 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
11134 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
11135 (emit_block_move_via_libcall): Delete.
11136 (block_move_fn): Delete.
11137 (init_block_move_fn): Likewise.
11138 (emit_block_move_libcall_fn): Likewise.
11139 (emit_block_op_via_libcall): New function.
11140 (set_storage_via_libcall): Tidy up and use memset builtin.
11141 (block_clear_fn): Delete.
11142 (init_block_clear_fn): Likewise.
11143 (clear_storage_libcall_fn): Likewise.
11144 (expand_assignment): Call emit_block_move_via_libcall.
11145 Do not include gt-expr.h.
11146 * expr.h (emit_block_op_via_libcall): Declare.
11147 (emit_block_copy_via_libcall): New inline function.
11148 (emit_block_move_via_libcall): Likewise.
11149 (emit_block_comp_via_libcall): Likewise.
11150 (block_clear_fn): Delete.
11151 (init_block_move_fn): Likewise.
11152 (init_block_clear_fn): Likewise.
11153 (emit_block_move_via_libcall): Likewise.
11154 (set_storage_via_libcall): Add default parameter value.
11155 * libfuncs.h (enum libfunc_index): Remove obsolete values.
11156 (abort_libfunc): Delete.
11157 (memcpy_libfunc): Likewise.
11158 (memmove_libfunc): Likewise.
11159 (memcmp_libfunc): Likewise.
11160 (memset_libfunc): Likewise.
11161 (setbits_libfunc): Likewise.
11162 (setjmp_libfunc): Likewise.
11163 (longjmp_libfunc): Likewise.
11164 (profile_function_entry_libfunc): Likewise.
11165 (profile_function_exit_libfunc): Likewise.
11166 (gcov_flush_libfunc): Likewise.
11167 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
11168 and DECL_VISIBILITY on the declaration.
11169 (init_optabs): Do not initialize obsolete libfuncs.
11170 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
11171 * tree-core.h (ECF_RET1): Define.
11172 (ECF_TM_PURE): Adjust.
11173 (ECF_TM_BUILTIN): Likewise.
11174 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
11175 (build_common_builtin_nodes): Initialize abort builtin.
11176 Add ECF_RET1 on memcpy, memmove and memset builtins.
11177 Pass final flags for alloca and alloca_with_align builtins.
11178 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
11180 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
11181 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
11182 set_storage_via_libcall and call emit_block_copy_via_libcall.
11184 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
11186 * config/i386/i386.md (*call_got_x32): Change operand 0 to
11187 DImode before it is passed to ix86_output_call_operand.
11188 (*call_value_got_x32): Ditto for operand 1.
11190 2016-05-12 Jiong Wang <jiong.wang@arm.com>
11192 PR rtl-optimization/70904
11193 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
11194 reload for wide mode.
11196 2016-05-12 Marek Polacek <polacek@redhat.com>
11199 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
11200 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
11201 * langhooks.h (incomplete_type_error): Likewise.
11202 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
11203 parameter, pass it down to incomplete_type_error.
11204 * tree.h (size_in_bytes): New inline overload.
11205 (size_in_bytes_loc): Renamed from size_in_bytes.
11207 2016-05-12 Richard Biener <rguenther@suse.de>
11209 PR tree-optimization/71059
11210 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
11211 nary before looking up or entering the expression into the VN
11213 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
11214 Make sure to re-use NARYs without result as inserted by
11217 2016-05-12 Richard Biener <rguenther@suse.de>
11219 PR tree-optimization/71062
11220 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
11222 * tree-ssa-structalias.c (set_uids_in_ptset): Set
11223 vars_contains_restrict if the var is a restrict tag.
11224 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
11225 do not disambiguate pointers against it.
11226 (dump_points_to_solution): Re-structure and adjust for new
11227 vars_contains_restrict flag.
11228 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
11230 2016-05-12 Martin Liska <mliska@suse.cz>
11232 * doc/invoke.texi: Explain connection between
11233 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
11235 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
11237 PR tree-optimization/71006
11238 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
11239 consider COND_EXPR as a mask producer.
11241 2016-05-12 Marek Polacek <polacek@redhat.com>
11244 * opts.c (common_handle_option): Detect missing argument for --help^.
11246 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11249 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
11250 when popping the PC and within an interrupt handler routine.
11251 Add missing tab to output of "ldmfd".
11252 (output_return_instruction): Output LDMFD with SP update rather
11253 than POP when returning from interrupt handler.
11255 2016-05-12 Jakub Jelinek <jakub@redhat.com>
11257 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
11258 TARGET_64BIT && TARGET_AVX512DQ.
11259 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
11260 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
11261 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
11262 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
11263 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
11264 (*vec_extractv4si_zext): Add avx512dq alternative.
11265 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
11266 use v instead of x constraint in other alternatives where possible.
11268 * config/i386/sse.md (sse2_loadld): Use v instead of x
11269 constraint in alternatives 0,1,4.
11271 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
11272 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
11273 v constraints instead of x and <pinsr_evex_isa> isa attribute.
11276 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
11277 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
11278 is not emitted unless TARGET_AVX512BW.
11279 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
11280 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
11281 for the result operand.
11283 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
11284 constraint instead of x in avx alternatives. Use maybe_evex instead
11287 * config/i386/constraints.md (Yv): New constraint.
11288 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
11289 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
11290 * config/i386/i386.md (avx512fvecmode): New mode attr.
11291 (*pushtf): Use v constraint instead of x.
11292 (*movtf_internal): Likewise. For TARGET_AVX512VL and
11293 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
11294 (*absneg<mode>2): Use Yv constraint instead of x constraint.
11295 (*absnegtf2_sse): Likewise.
11296 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
11297 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
11298 avx512f alternatives.
11299 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
11301 2016-05-12 Richard Biener <rguenther@suse.de>
11303 PR tree-optimization/71060
11304 * tree-data-ref.c (initialize_data_dependence_relation): Do not
11305 require exact match of DR_BASE_OBJECT but only matching address and
11308 2016-05-12 Richard Biener <rguenther@suse.de>
11310 PR tree-optimization/70986
11311 * cfganal.c: Include cfgloop.h.
11312 (dfs_find_deadend): Prefer to take edges exiting loops.
11314 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11316 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
11317 compile and run time.
11319 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
11322 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
11324 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
11326 * config/i386/i386.c (legitimize_pic_address): Use
11327 copy_to_suggested_reg instead of gen_movsi.
11329 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
11331 * config/rs6000/predicates.md (quad_memory_operand): Move most of
11332 the code into quad_address_p and call it to share code with
11333 vsx_quad_dform_memory_operand.
11334 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
11336 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
11337 bit instead of being a separate word. Split -mpower9-dform into
11338 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
11339 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
11340 for the register class supporting 128-bit quad word memory offsets.
11341 (mode_supports_vsx_dform_quad): Helper function to return if the
11342 register class uses quad word memory offsets.
11343 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
11344 (rs6000_debug_reg_global): Always print if we are using LRA or not.
11345 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
11346 instructions are enabled, set up the appropriate addr_masks for
11348 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
11349 -mpower9-dform-scalar, instead of -mpower9-dform.
11350 (rs6000_option_override_internal): Split -mpower9-dform into two
11351 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
11352 -mpower9-dform switch sets or clears both. If we are not using
11353 the LRA register allocator, do not enable -mpower9-dform-vector by
11354 default. If we are using LRA, enable -mpower9-dform-vector and
11355 -mvsx-timode if it is appropriate. Issue a warning if either
11356 -mpower9-dform-vector or -mvsx-timode are explicitly used without
11358 (quad_address_offset_p): New helper function to return if the
11359 offset is legal for quad word memory instructions.
11360 (quad_address_p): New function to determin if GPR or vector
11361 register quad word memory addresses are legal.
11362 (mem_operand_gpr): Validate quad word address offsets.
11363 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
11364 d-form (register + offset) instructions.
11365 (offsettable_ok_by_alignment): Likewise.
11366 (rs6000_legitimate_offset_address_p): Likewise.
11367 (legitimate_lo_sum_address_p): Likewise.
11368 (rs6000_legitimize_address): Likewise.
11369 (rs6000_legitimize_reload_address): Add more debug statements for
11371 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
11372 d-form instructions.
11373 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
11374 d-form instructions. Distinguish different cases in debug
11375 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
11376 d-form instructions.
11377 (rs6000_preferred_reload_class): Likewise.
11378 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
11379 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
11380 of the ISA 2.06 indexed memory instructions.
11381 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
11382 use them to save/restore the saved vector registers instead of
11383 using Altivec instructions.
11384 (rs6000_emit_epilogue): Likewise.
11385 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
11386 (rs6000_opt_masks): Split -mpower9-dform into
11387 -mpower9-dform-scalar and -mpower9-dform-vector.
11388 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
11390 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
11391 ISA 3.0 vector indexed memory instructions, and fold the code into
11392 the normal mov<mode> patterns.
11393 (p9_vecstore_<mode>): Likewise.
11394 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
11396 (vsx_movti_64bit): Likewise.
11397 (vsx_movti_32bit): Likewise.
11398 * config/rs6000/constraints.md (wO constraint): New constraint for
11399 ISA 3.0 vector d-form support.
11400 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
11401 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
11402 include -mpower9-dform-vector until we switch over to LRA.
11403 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
11404 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
11405 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
11406 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
11407 for -mpower9-dform and -mlra.
11408 * doc/md.texi (wO constraint): Document wO constraint.
11410 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
11412 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
11413 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
11414 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
11415 Move handling of non-insn arguments inline into the sole user:
11416 (output_trans_func): ...here.
11417 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
11418 in emitted function prototype.
11419 (output_internal_insn_latency_func): Ditto. Simplify.
11420 (output_internal_maximal_insn_latency_func): Ditto. Delete
11421 always-unused argument.
11422 (output_insn_latency_func): Ditto.
11423 (output_maximal_insn_latency_func): Ditto.
11425 2016-05-11 Richard Biener <rguenther@suse.de>
11427 PR tree-optimization/71055
11428 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
11429 sth with precision not equal to access size verify we don't chop
11432 2016-05-11 Richard Biener <rguenther@suse.de>
11435 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
11436 (dwarf2out_finish): Move retry_incomplete_types call ...
11437 (dwarf2out_early_finish): ... here.
11439 2016-05-11 Richard Biener <rguenther@suse.de>
11441 PR middle-end/71002
11442 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
11443 if the langhook insists on it.
11444 * fold-const.c (make_bit_field_ref): Add arg for the original
11445 reference and preserve its alias-set.
11446 (decode_field_reference): Take exp by reference and adjust it
11447 to the original memory reference.
11448 (optimize_bit_field_compare): Adjust callers.
11449 (fold_truth_andor_1): Likewise.
11450 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
11452 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
11454 PR middle-end/70807
11455 * cfgrtl.h (delete_insn_and_edges): Now return bool.
11456 * cfgrtl.c (delete_insn_and_edges): Likewise.
11457 * config/i386/i386.c (convert_scalars_to_vector): Remove
11459 * cse.c (cse_insn): Compute cse_cfg_altered.
11460 (delete_trivially_dead_insns): Likewise.
11461 (cse_cc_succs): Likewise.
11462 (rest_of_handle_cse): Free dominance info if required.
11463 (rest_of_handle_cse2): Likewise.
11464 (rest_of_handle_cse_after_global_opts): Likewise.
11466 2016-05-11 Alan Modra <amodra@gmail.com>
11468 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
11469 abi_v4_pass_in_fpr): New functions.
11470 (rs6000_function_arg_boundary): Exclude complex IBM long double
11471 from 64-bit alignment when ABI_V4.
11472 (rs6000_function_arg, rs6000_function_arg_advance_1,
11473 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
11475 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
11477 PR rtl-optimization/71028
11478 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
11479 jump with just a return in the fallthrough block if the branch
11480 block contains just a return as well.
11482 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
11484 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
11485 * match.pd ((X & Y) ^ Y): ... this.
11486 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
11487 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
11489 2016-05-10 David Malcolm <dmalcolm@redhat.com>
11491 * read-md.c (require_char_ws): New function.
11492 (read_string): Simplify using require_char_ws.
11493 (handle_constants): Likewise.
11494 (handle_enum): Likewise.
11495 (handle_file): Likewise.
11496 * read-md.h (require_char_ws): New declaration.
11497 * read-rtl.c (read_conditions): Simplify using require_char_ws.
11498 (read_mapping): Likewise.
11499 (read_rtx_code): Likewise.
11500 (read_nested_rtx): Likewise.
11502 2016-05-10 James Norris <jnorris@codesourcery.com>
11504 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
11505 if offloading is enabled and -fopenacc or -fopenmp is specified.
11506 (CRTOFFLOADEND): Likewise.
11507 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
11508 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
11510 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
11512 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
11513 gotoff_operand code paths. Use copy_to_suggested_regs and
11514 expand_simple_binop where appropriate. Cleanup.
11516 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
11519 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
11521 (dimode_scalar_chain::vector_const_cost): New.
11522 (dimode_scalar_chain::compute_convert_gain): Handle constants.
11523 (dimode_scalar_chain::convert_op): Likewise.
11524 (dimode_scalar_chain::convert_insn): Likewise.
11526 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
11528 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
11529 unary operation, not a binary one.
11531 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
11533 PR middle-end/70877
11534 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
11535 calls with type casted fndecl.
11537 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
11539 PR tree-optimization/70786
11540 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
11541 * calls.c (initialize_argument_information): Bind bounds
11542 with corresponding args passed by reference.
11544 2016-05-10 Jakub Jelinek <jakub@redhat.com>
11547 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
11548 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
11549 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
11552 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11555 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
11556 code for a zero scale factor.
11557 (vsx_xvcvdpuxds_scale): Likewise.
11559 2016-05-10 David Malcolm <dmalcolm@redhat.com>
11561 * diagnostic-show-locus.c (layout::layout): Call show_ruler
11562 if show_ruler_p was set on the context.
11563 (layout::show_ruler): New method.
11564 * diagnostic.h (struct diagnostic_context): Add field
11567 2016-05-10 Richard Biener <rguenther@suse.de>
11569 PR tree-optimization/71039
11570 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
11571 (chk_uses): New function.
11572 (propagate_with_phi): Verify we can safely replicate the lhs of an
11573 aggregate assignment on all incoming edges.
11575 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
11577 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
11579 (rx_atomic_sequence): New class.
11580 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
11581 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
11583 (rx_atomic_sequence::rx_atomic_sequence,
11584 rx_atomic_sequence::~rx_atomic_sequence): New functions.
11585 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
11586 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
11587 CTRLREG_INTB): New constants.
11588 (FETCHOP): New code iterator.
11589 (fethcop_name, fetchop_name2): New iterator code attributes.
11590 (QIHI): New mode iterator.
11591 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
11592 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
11593 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
11595 2016-05-10 Martin Liska <mliska@suse.cz>
11597 * tree-inline.c (remap_dependence_clique): Do not remap
11598 debugging statements.
11600 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11602 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
11603 ("*fixuns_truncdfdi2_z13")
11604 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
11605 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
11606 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
11608 2016-05-10 Richard Biener <rguenther@suse.de>
11610 PR tree-optimization/70497
11611 PR tree-optimization/28367
11612 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
11614 (visit_reference_op_load): ... here.
11615 (vn_reference_lookup_3): Use it to handle subreg-like accesses
11616 with simplified BIT_FIELD_REFs.
11617 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
11618 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
11621 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
11623 * dwarf2out.c (add_abstract_origin_attribute): Adjust
11624 documentation comment. For BLOCK nodes, add a
11625 DW_AT_abstract_origin attribute that points to the DIE generated
11626 for the origin BLOCK.
11627 (gen_lexical_block_die): Call add_abstract_origin_attribute for
11628 blocks from inlined functions.
11630 2016-05-10 Alan Modra <amodra@gmail.com>
11633 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
11634 regrename modifying insns saving lr before __morestack call.
11635 * config/rs6000/rs6000.md (split_stack_return): Similarly for
11636 insns restoring lr after __morestack call.
11638 2016-05-09 Jakub Jelinek <jakub@redhat.com>
11640 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
11641 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
11643 * config/i386/sse.md (vec_interleave_high<mode>,
11644 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
11645 <avx512>_vpermt2var<mode>3_maskz): Likewise.
11647 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11649 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
11650 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
11651 parallel reassociation for power8 and forward.
11653 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
11655 * config/i386/i386.md (absneg splitters with general regs): Use
11656 general_reg_operand predicate.
11657 (btsq peephole2): Use x86_64_immediate_operand to check if new
11658 value is suitable for immediate operand. Generate emitted insn
11659 using RTL expressions.
11660 (btcq peephole2): Ditto.
11661 (btrq peephole2): Ditto. Generate correct immediate operand
11664 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
11666 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
11669 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
11671 * tree-affine.c (wide_int_constant_multiple_p): Add missing
11672 pointer dereference.
11674 2016-05-09 Richard Biener <rguenther@suse.de>
11676 PR tree-optimization/70985
11677 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
11678 op0 isn't a gimple register.
11680 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
11682 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
11683 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
11684 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
11685 (i6400_fpu_mult): New cpu units.
11686 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
11687 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
11688 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
11689 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
11690 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
11691 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
11692 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
11693 (i6400_msa_long_float4, i6400_msa_long_float5)
11694 (i6400_msa_long_float8, i6400_msa_fdiv_df)
11695 (i6400_msa_fdiv_sf): New reservations.
11696 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
11697 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
11698 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
11699 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
11700 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
11701 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
11702 (msa_short_cmp, msa_short_float2, msa_short_logic3)
11703 (msa_short_store4, msa_long_load, msa_short_store)
11704 (msa_long_logic, msa_long_float2, msa_long_float4)
11705 (msa_long_float5, msa_long_float8, msa_long_mult)
11706 (msa_long_fdiv, msa_long_div): New reservations.
11708 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
11709 Sameera Deshpande <sameera.deshpande@imgtec.com>
11710 Matthew Fortune <matthew.fortune@imgtec.com>
11711 Graham Stott <graham.stott@imgtec.com>
11712 Chao-ying Fu <chao-ying.fu@imgtec.com>
11714 * config.gcc: Add MSA header file for mips*-*-* target.
11715 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
11716 (Ubv8i, Urv8): New constraints.
11717 * config/mips/mips-ftypes.def: Add function types for MSA
11719 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
11720 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
11721 * config/mips/mips-msa.md: New file.
11722 * config/mips/mips-protos.h
11723 (mips_split_128bit_const_insns): New prototype.
11724 (mips_msa_idiv_insns): Likewise.
11725 (mips_split_128bit_move): Likewise.
11726 (mips_split_128bit_move_p): Likewise.
11727 (mips_split_msa_copy_d): Likewise.
11728 (mips_split_msa_insert_d): Likewise.
11729 (mips_split_msa_fill_d): Likewise.
11730 (mips_expand_msa_branch): Likewise.
11731 (mips_const_vector_same_val_p): Likewise.
11732 (mips_const_vector_same_bytes_p): Likewise.
11733 (mips_const_vector_same_int_p): Likewise.
11734 (mips_const_vector_shuffle_set_p): Likewise.
11735 (mips_const_vector_bitimm_set_p): Likewise.
11736 (mips_const_vector_bitimm_clr_p): Likewise.
11737 (mips_msa_vec_parallel_const_half): Likewise.
11738 (mips_msa_output_division): Likewise.
11739 (mips_ldst_scaled_shift): Likewise.
11740 (mips_expand_vec_cond_expr): Likewise.
11741 * config/mips/mips.c (enum mips_builtin_type): Add
11742 MIPS_BUILTIN_MSA_TEST_BRANCH.
11743 (mips_gen_const_int_vector_shuffle): New prototype.
11744 (mips_const_vector_bitimm_set_p): New function.
11745 (mips_const_vector_bitimm_clr_p): Likewise.
11746 (mips_const_vector_same_val_p): Likewise.
11747 (mips_const_vector_same_bytes_p): Likewise.
11748 (mips_const_vector_same_int_p): Likewise.
11749 (mips_const_vector_shuffle_set_p): Likewise.
11750 (mips_symbol_insns): Forbid loading symbols via immediate for
11752 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
11754 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
11756 (mips_lx_address_p): Add support load indexed address for MSA.
11757 (mips_address_insns): Add calculation of instructions needed for
11758 stores and loads for MSA.
11759 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
11760 CONST_VECTOR for MSA and let it fall through.
11761 (mips_ldst_scaled_shift): New function.
11762 (mips_subword_at_byte): Likewise.
11763 (mips_msa_idiv_insns): Likewise.
11764 (mips_legitimize_move): Validate MSA moves.
11765 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
11766 calculation of costs for MSA division.
11767 (mips_split_move_p): Check if MSA moves need splitting.
11768 (mips_split_move): Split MSA moves if necessary.
11769 (mips_split_128bit_move_p): New function.
11770 (mips_split_128bit_move): Likewise.
11771 (mips_split_msa_copy_d): Likewise.
11772 (mips_split_msa_insert_d): Likewise.
11773 (mips_split_msa_fill_d): Likewise.
11774 (mips_output_move): Handle MSA moves.
11775 (mips_expand_msa_branch): New function.
11776 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
11777 Reinstate 'y' modifier.
11778 (mips_file_start): Add MSA .gnu_attribute.
11779 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
11781 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
11782 (mips_class_max_nregs): Add register size for MSA supported mode.
11783 (mips_cannot_change_mode_class): Allow conversion between MSA
11784 vector modes and TImode.
11785 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
11787 (mips_secondary_reload_class): Force MSA loads/stores via memory.
11788 (mips_preferred_simd_mode): Add preffered modes for MSA.
11789 (mips_vector_mode_supported_p): Add MSA supported modes.
11790 (mips_autovectorize_vector_sizes): New function.
11791 (mips_msa_output_division): Likewise.
11792 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
11793 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
11794 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
11795 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
11796 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
11797 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
11798 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
11799 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
11800 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
11801 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
11802 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
11803 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
11804 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
11805 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
11806 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
11807 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
11808 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
11809 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
11810 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
11811 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
11812 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
11813 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
11814 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
11815 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
11816 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
11817 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
11818 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
11819 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
11820 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
11821 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
11822 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
11823 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
11824 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
11825 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
11826 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
11827 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
11828 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
11829 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
11830 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
11831 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
11832 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
11833 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
11834 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
11835 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
11836 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11837 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11838 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11839 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11840 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
11841 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
11842 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
11843 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
11844 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
11845 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
11846 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
11847 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
11848 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
11849 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
11850 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
11851 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
11852 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
11853 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
11854 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
11855 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
11856 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
11857 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
11858 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
11859 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
11860 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
11861 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
11862 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
11863 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
11864 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
11865 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
11866 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
11867 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
11868 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
11869 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
11870 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
11871 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
11872 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
11873 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
11874 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
11875 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
11876 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
11877 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
11878 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
11879 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
11880 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
11881 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
11882 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
11883 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
11884 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
11885 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
11886 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
11887 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
11888 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
11889 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
11890 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
11891 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
11892 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
11893 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
11894 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
11895 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
11896 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
11897 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
11898 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
11899 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
11900 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
11901 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
11902 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
11903 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
11904 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
11905 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
11906 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
11907 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
11908 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
11909 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
11910 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
11911 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
11912 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
11913 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
11914 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
11915 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
11916 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
11917 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
11918 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
11919 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
11920 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
11921 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
11922 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
11923 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
11924 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
11925 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
11926 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
11927 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
11928 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
11929 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
11930 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
11931 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
11932 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
11933 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
11934 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
11935 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
11936 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
11937 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
11938 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
11939 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
11940 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
11941 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
11942 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
11944 (mips_get_builtin_decl_index): New array.
11945 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
11946 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
11947 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
11948 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
11949 (mips_init_builtins): Initialize mips_get_builtin_decl_index
11951 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
11953 (mips_expand_builtin_insn): Prepare operands for
11954 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
11955 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
11956 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
11957 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
11958 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
11959 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
11960 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
11961 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
11962 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
11963 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
11964 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
11965 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
11966 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
11967 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
11968 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
11969 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
11970 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
11971 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
11972 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
11973 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
11974 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
11975 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
11976 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
11977 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
11978 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
11979 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
11980 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
11981 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
11982 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
11983 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
11984 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
11985 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
11986 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
11987 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
11988 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
11989 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
11990 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
11991 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
11992 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
11993 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
11994 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
11995 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
11996 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
11997 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
11998 These are set implicitly and an error is reported if overridden.
11999 (mips_expand_builtin_msa_test_branch): New function.
12000 (mips_expand_msa_shuffle): Likewise.
12001 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
12002 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
12003 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
12004 (mips_expand_vec_unpack): Add support for MSA.
12005 (mips_expand_vector_init): Likewise.
12006 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
12007 instead of const0_rtx.
12008 (mips_msa_vec_parallel_const_half): New function.
12009 (mips_gen_const_int_vector): Likewise.
12010 (mips_gen_const_int_vector_shuffle): Likewise.
12011 (mips_expand_msa_cmp): Likewise.
12012 (mips_expand_vec_cond_expr): Likewise.
12013 * config/mips/mips.h
12014 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
12015 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
12017 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
12018 (ISA_HAS_MSA): New macro.
12019 (UNITS_PER_MSA_REG): Likewise.
12020 (BITS_PER_MSA_REG): Likewise.
12021 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
12022 (MSA_REG_FIRST): New macro.
12023 (MSA_REG_LAST): Likewise.
12024 (MSA_REG_NUM): Likewise.
12025 (MSA_REG_P): Likewise.
12026 (MSA_REG_RTX_P): Likewise.
12027 (MSA_SUPPORTED_MODE_P): Likewise.
12028 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
12029 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
12030 * config/mips/mips.md: Include mips-msa.md.
12031 (alu_type): Add simd_add.
12032 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
12033 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
12034 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
12035 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
12036 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
12037 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
12038 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
12039 simd_move, simd_load, simd_store. Choose "multi" for moves
12041 (qword_mode): New attribute.
12042 (insn_count): Add instruction count for quad moves.
12043 Increase the count for MIPS SIMD division.
12044 (UNITMODE): Add UNITMODEs for vector types.
12045 (addsub): New code iterator.
12046 * config/mips/mips.opt (mmsa): New option.
12047 * config/mips/msa.h: New file.
12048 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
12050 * config/mips/mti-linux.h: Likewise.
12051 * config/mips/predicates.md
12052 (const_msa_branch_operand): New constraint.
12053 (const_uimm3_operand): Likewise.
12054 (const_uimm4_operand): Likewise.
12055 (const_uimm5_operand): Likewise.
12056 (const_uimm8_operand): Likewise.
12057 (const_imm5_operand): Likewise.
12058 (aq10b_operand): Likewise.
12059 (aq10h_operand): Likewise.
12060 (aq10w_operand): Likewise.
12061 (aq10d_operand): Likewise.
12062 (const_m1_operand): Likewise.
12063 (reg_or_m1_operand): Likewise.
12064 (const_exp_2_operand): Likewise.
12065 (const_exp_4_operand): Likewise.
12066 (const_exp_8_operand): Likewise.
12067 (const_exp_16_operand): Likewise.
12068 (const_vector_same_val_operand): Likewise.
12069 (const_vector_same_simm5_operand): Likewise.
12070 (const_vector_same_uimm5_operand): Likewise.
12071 (const_vector_same_uimm6_operand): Likewise.
12072 (const_vector_same_uimm8_operand): Likewise.
12073 (par_const_vector_shf_set_operand): Likewise.
12074 (reg_or_vector_same_val_operand): Likewise.
12075 (reg_or_vector_same_simm5_operand): Likewise.
12076 (reg_or_vector_same_uimm6_operand): Likewise.
12077 * doc/extend.texi (MIPS SIMD Architecture Functions): New
12079 * doc/invoke.texi (-mmsa): Document new option.
12081 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12083 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
12084 * configure: Regenerate.
12085 * config.in: Regenerate.
12086 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
12087 on -fvtable-verify.
12088 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
12089 (ENDFILE_VTV_SPEC): Define.
12091 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
12093 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
12094 registers in all interrupt handlers if necessary.
12095 (rl78_option_override): Add warning.
12096 (MUST_SAVE_MDUC_REGISTERS): New macro.
12097 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
12098 * config/rl78/rl78.c (check_mduc_usage): New function.
12099 (mduc_regs): New structure to hold MDUC register data.
12100 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
12101 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
12102 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
12103 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
12104 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
12105 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
12107 2016-05-09 Bin Cheng <bin.cheng@arm.com>
12109 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
12110 (tree-ssa-loop-niter.h): Ditto.
12111 (idx_within_array_bound, ref_within_array_bound): New functions.
12112 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
12113 Factor out check on writable base object to ...
12114 (base_object_writable): ... here.
12116 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12118 * config/arm/arm.md (probe_stack): Add modes to set source
12121 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
12123 * regrename.c (base_reg_class_for_rename): New static function.
12124 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
12126 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
12128 * cgraph.c (thunk_adjust): Export.
12129 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
12130 * cgraphunit.c (thunk_adjust): Export.
12131 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
12133 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
12135 * tree-inline.c (expand_call_inline): Expand thunks inline.
12137 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
12140 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
12141 (*sse2_vd_cvtss2sd): Ditto.
12142 * config/i386/i386.md
12143 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
12144 Generate *sse2_vd_cvtsd2ss pattern.
12145 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
12146 Generate *sse2_vd_cvtss2sd pattern.
12148 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
12150 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
12151 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
12154 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
12156 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
12157 * config/sh/sh.c: Define and declare variables on first use throughout
12159 (current_function_interrupt): Change to bool type.
12160 (frame_insn): Rename to emit_frame_insn and update users.
12161 (push_regs): Use bool for 'interrupt_handler' argument.
12162 (save_schedule_s): Remove.
12163 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
12164 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
12165 targetm.asm_out.unaligned_op.di.
12166 (gen_far_branch): Remove redundant forward declaration.
12167 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
12168 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
12169 (sh_set_return_address, sh_function_ok_for_sibcall,
12170 scavenge_reg): Update comments.
12171 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
12172 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
12173 (sh_attr_renesas_p): Remove unnecessary parentheses.
12174 (branch_dest): Simplify.
12175 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
12176 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
12177 (CUMULATIVE_ARGS): Change macro to typedef.
12178 (current_function_interrupt): Change to bool type.
12179 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
12180 Surround with __cplusplus ifdef.
12181 (sh_compare_op0, sh_compare_op1): Remove.
12182 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
12184 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
12186 * config/arm/arm.md: (arch): Add neon.
12187 (arch_enabled): Return yes for arch neon when TARGET_NEON.
12188 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
12189 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
12190 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
12191 attributes for alt renumbering. Mark alt 3 as non-predicable.
12192 (thumb2_movdf_vfp): Likewise.
12194 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
12196 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
12197 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
12198 (*andqi_1): Add preferred_for_speed attribute to disparage
12199 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
12200 (*<code>qi_1): Ditto.
12201 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
12202 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
12203 (*ashlqi3_1): Ditto.
12204 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
12205 Add preferred_for_size attribute to disparage alternative 0 and
12206 preferred_for_speed attribute to disparage alternative 1 for
12207 TARGET_PARTIAL_REG_STALL targets.
12209 2016-05-07 Tom de Vries <tom@codesourcery.com>
12211 PR tree-optimization/70956
12212 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
12215 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
12217 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
12218 * config/sh/sh.c (sh_cbranch_distance): Implement it.
12219 * config/sh/sh.md (branch_zero): Remove define_attr.
12220 (define_delay): Disable delay slot if branch distance is one insn.
12222 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
12224 * config/i386/i386.md (LEAMODE): New mode attribute.
12225 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
12226 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
12227 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
12228 operand 2 predicate.
12229 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
12230 (*lea<mode>_general_3): Ditto.
12231 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
12233 2016-05-06 Jakub Jelinek <jakub@redhat.com>
12235 * genmddump.c (main): Convert argv from char ** to const char **.
12237 2016-05-06 David Malcolm <dmalcolm@redhat.com>
12239 * coretypes.h (OVERRIDE): New macro.
12240 (FINAL): New macro.
12242 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
12244 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
12245 allow coalescing if the types are compatible.
12247 2016-05-06 David Malcolm <dmalcolm@redhat.com>
12249 * pass_manager.h (pass_manager::register_pass_name): New method.
12250 (pass_manager::get_pass_by_name): New method.
12251 (pass_manager::create_pass_tab): New method.
12252 (pass_manager::m_name_to_pass_map): New field.
12253 * passes.c (name_to_pass_map): Delete global in favor of field
12254 "m_name_to_pass_map" of pass_manager.
12255 (register_pass_name): Rename from a function to...
12256 (pass_manager::register_pass_name): ...this method, updating
12257 for renaming of global "name_to_pass_map" to field
12258 "m_name_to_pass_map".
12259 (create_pass_tab): Rename from a function to...
12260 (pass_manager::create_pass_tab): ...this method, updating
12261 for renaming of global "name_to_pass_map" to field.
12262 (get_pass_by_name): Rename from a function to...
12263 (pass_manager::get_pass_by_name): ...this method.
12264 (enable_disable_pass): Convert use of get_pass_by_name to
12265 a method call, locating the pass_manager singleton.
12267 2016-05-06 David Malcolm <dmalcolm@redhat.com>
12269 * genattr-common.c (main): Convert argv from char ** to const char **.
12270 * genattr.c (main): Likewise.
12271 * genattrtab.c (main): Likewise.
12272 * genautomata.c (initiate_automaton_gen): Likewise.
12274 * gencodes.c (main): Likewise.
12275 * genconditions.c (main): Likewise.
12276 * genconfig.c (main): Likewise.
12277 * genconstants.c (main): Likewise.
12278 * genemit.c (main): Likewise.
12279 * genenums.c (main): Likewise.
12280 * genextract.c (main): Likewise.
12281 * genflags.c (main): Likewise.
12282 * genmddeps.c (main): Likewise.
12283 * genopinit.c (main): Likewise.
12284 * genoutput.c (main): Likewise.
12285 * genpeep.c (main): Likewise.
12286 * genpreds.c (main): Likewise.
12287 * genrecog.c (main): Likewise.
12288 * gensupport.c (init_rtx_reader_args_cb): Likewise.
12289 (init_rtx_reader_args): Likewise.
12290 * gensupport.h (init_rtx_reader_args_cb): Likewise.
12291 (init_rtx_reader_args): Likewise.
12292 * gentarget-def.c (main): Likewise.
12293 * read-md.c (read_md_files): Likewise.
12294 * read-md.h (read_md_files): Likewise.
12296 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
12298 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
12299 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
12300 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
12301 Remove unused predicate.
12302 (register_and_not_fp_reg_operand): Ditto.
12304 2016-05-06 Martin Liska <mliska@suse.cz>
12306 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
12307 instead of vec as the vector is local to the function.
12309 2016-05-06 Jakub Jelinek <jakub@redhat.com>
12311 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
12312 avx512bw alternative.
12314 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
12315 before the ashr<mode>3 pattern.
12317 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
12318 v instead of x in vex or maybe_vex alternatives, use
12319 maybe_evex instead of vex in prefix.
12321 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
12322 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
12323 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
12324 in vex or maybe_vex alternatives, use maybe_evex instead of vex
12327 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
12328 v instead of x in vex or maybe_vex alternatives, use
12329 maybe_evex instead of vex in prefix.
12331 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
12332 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
12333 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
12334 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
12335 alternatives, use maybe_evex instead of vex in prefix.
12337 * config/i386/sse.md (vec_interleave_lowv4sf,
12338 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
12339 v instead of x in vex or maybe_vex alternatives, use
12340 maybe_evex instead of vex in prefix.
12342 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
12343 v instead of x in vex or maybe_vex alternatives, use
12344 maybe_evex instead of vex in prefix.
12346 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
12347 v constraint instead of x.
12349 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
12351 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
12352 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
12355 2016-05-06 Richard Biener <rguenther@suse.de>
12357 PR tree-optimization/70948
12358 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
12359 Properly clobber all fields of va_list for __builtin_va_start.
12361 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
12364 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
12365 loop latch destination.
12367 2016-05-06 Martin Liska <mliska@suse.cz>
12369 * tree-ssa-uninit.c: Apply manual changes
12370 to the GNU coding style.
12371 (prune_uninit_phi_opnds): Rename from
12372 prune_uninit_phi_opnds_in_unrealizable_paths.
12374 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12376 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
12377 mspace): Remove deprecated options.
12378 * doc/invoke.texi (SH options): Remove -mspace.
12380 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12382 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
12384 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12386 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
12387 corresponding combine split pattern.
12389 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12392 * config/sh/predicates.md (long_displacement_mem_operand): New.
12393 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
12394 Add movi20, movi20s alternatives. Adjust length attribute for
12396 (movsi_ie): Allow for any FPU. Adjust length attribute for
12398 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
12399 attribute for alternatives.
12400 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
12401 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
12402 length attribute for alternatives.
12404 2016-05-06 Richard Biener <rguenther@suse.de>
12406 PR tree-optimization/70960
12407 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
12409 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12412 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
12413 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
12415 2016-05-06 Marek Polacek <polacek@redhat.com>
12418 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
12420 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12423 * config/sh/sh.md (*rotcr): Add another variant.
12425 2016-05-06 Richard Biener <rguenther@suse.de>
12427 PR middle-end/70931
12428 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
12430 2016-05-06 Richard Biener <rguenther@suse.de>
12432 PR middle-end/70941
12433 * fold-const.c (split_tree): Always convert to the original type
12436 2016-05-06 Richard Biener <rguenther@suse.de>
12438 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
12439 (fwprop_addr): Likewise.
12441 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
12444 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
12446 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
12447 * config/i386/i386.md (push mem splitter): Use find_constant_src in
12448 the splitter condition.
12449 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
12450 the splitter condition.
12451 (FP float_extend load splitter): Ditto.
12453 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
12455 * config/i386/i386.md (peehole2 patterns): Change true_regnum
12456 to REGNO in all peephole2 patterns.
12457 (post-reload splitters): Change true_regnum to REGNO in
12458 post-reload splitters.
12459 (zero_extend splitters): Use general_reg_operand and
12460 nonimmediate_gr_operand predicates.
12462 2016-05-05 Jakub Jelinek <jakub@redhat.com>
12464 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
12465 v constraint instead of x.
12467 2016-05-05 Alan Modra <amodra@gmail.com>
12470 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
12471 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
12472 TARGET_NO_FP_IN_TOC for -mrelocatable.
12473 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
12474 TARGET_RELOCATABLE test.
12475 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12476 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12477 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
12478 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12479 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12480 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
12481 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
12482 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
12483 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
12484 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
12486 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
12487 (rs6000_stack_info): Likewise.
12488 (rs6000_elf_asm_out_constructor): Likewise.
12489 (rs6000_elf_asm_out_destructor): Likewise.
12490 (rs6000_elf_declare_function_name): Likewise.
12491 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
12492 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
12495 2016-05-05 Alan Modra <amodra@gmail.com>
12497 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
12499 2016-05-05 Alan Modra <amodra@gmail.com>
12501 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
12502 out-of-line gpr restore for one or two regs if that would add
12505 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
12508 * config/i386/i386.md
12509 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
12510 Change to post-epilogue_completed late splitter. Use sse_reg_operand
12511 as operand 0 predicate.
12512 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
12514 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
12515 Ditto. Emit the pattern using RTX.
12517 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
12518 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
12519 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
12520 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
12522 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
12523 sse_reg_operand as operand 0 predicate.
12525 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
12526 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
12527 instead of gen_rtx_REG.
12528 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
12531 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12533 * function.c (emit_use_return_register_into_block): Delete.
12534 (gen_return_pattern): Delete.
12535 (emit_return_into_block): Delete.
12536 (active_insn_between): Delete.
12537 (convert_jumps_to_returns): Delete.
12538 (emit_return_for_exit): Delete.
12539 (thread_prologue_and_epilogue_insns): Delete all code dealing with
12540 simple_return for shrink-wrapped blocks.
12541 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
12542 end of blocks that need one.
12543 (get_unconverted_simple_return): Delete.
12544 (convert_to_simple_return): Delete.
12545 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
12546 (convert_to_simple_return): Ditto.
12548 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12550 * cfgcleanup.c (bb_is_just_return): New function.
12551 (try_optimize_cfg): Simplify jumps to return, branches to return,
12552 and branches around return.
12554 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
12556 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
12557 branch to a return.
12559 2016-05-04 Jakub Jelinek <jakub@redhat.com>
12563 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
12564 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
12565 assert flags & OEP_HASH_CHECK, instead of asserting it
12566 never happens. Handle TARGET_EXPR.
12567 * fold-const.c (operand_equal_p): For hash verification,
12568 or in OEP_HASH_CHECK into flags.
12570 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
12572 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
12574 (compute_samebase_partition_bases): Fix typo.
12576 2016-05-04 Jakub Jelinek <jakub@redhat.com>
12578 * config/i386/sse.md (vec_interleave_highv8sf,
12579 vec_interleave_lowv8sf, vec_interleave_highv4df,
12580 vec_interleave_lowv4df): Remove constraints from expanders.
12582 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
12584 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
12586 * tree-inline.c (expand_call_inline): Fix path dealing with
12587 making lhs of call statement undefined.
12589 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
12591 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
12592 Check availability on NODE, too.
12593 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
12594 (cgraph_node::call_for_symbol_and_aliases): Likewise.
12595 (varpool_node::call_for_symbol_and_aliase): Likewise.
12596 * ipa-pure-const.c (add_new_function): Analyze all bodies.
12597 (propagate_pure_const): Propagate across interposable functions, too.
12598 (skip_function_for_local_pure_const): Do not skip interposable bodies
12600 (pass_local_pure_const::execute): Update.
12602 2016-05-04 Marek Polacek <polacek@redhat.com>
12604 * doc/invoke.texi: Document -Wdangling-else.
12606 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
12608 * config.gcc: Error out when conflicting multilib is detected. Do not
12609 loop over multilibs since no combination is legal.
12611 2016-05-04 Alan Modra <amodra@gmail.com>
12613 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
12614 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
12615 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
12618 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
12620 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
12621 Clean up p5600 comments.
12623 2016-05-04 Richard Biener <rguenther@suse.de>
12625 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
12626 constructor simplifications.
12627 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
12629 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
12631 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
12632 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
12633 result.set_rtx is null instead of aborting.
12634 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
12636 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
12637 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
12638 *mov<mode>_store_postinc): New patterns.
12640 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
12642 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
12643 as commutative. Check both conversions are NOP.
12644 ((A & B) OP (C & B)): Remove.
12646 2016-05-04 Alan Modra <amodra@gmail.com>
12648 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
12650 2016-05-04 Alan Modra <amodra@gmail.com>
12653 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
12654 when cr2,3,4 are all fixed regs.
12656 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
12658 PR rtl-optimization/57193
12659 * opts.c (default_options_table): Revert OPT_frename_registers change.
12660 * doc/invoke.texi (-frename-registers, -O2): Likewise.
12662 2016-05-03 Martin Sebor <msebor@redhat.com>
12665 * builtins.c (fold_builtin_FILE): New function.
12666 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
12667 (fold_builtin_0): Call them.
12668 * gimplify.c (gimplify_call_expr): Remove the handling of
12669 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
12672 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
12673 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
12677 * doc/extend.texi (Function Names as Strings): Update __func__,
12678 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
12681 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12682 Richard Biener <rguenther@suse.de>
12684 PR tree-optimization/70916
12685 * tree-if-conv.c: Include cfganal.h.
12686 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
12687 and remove_fake_exit_edges around the optimization pass.
12689 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
12691 * cgraph.c (symbol_table::create_edge): Set inline_failed.
12692 (cgraph_edge::make_direct): Likewise.
12693 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
12694 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
12695 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
12696 (CIF_THUNK): New code.
12697 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
12698 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
12699 (compute_inline_parameters): Set inline_failed for thunks.
12700 (inline_analyze_function): Cleanup.
12701 * ipa-inline.c (can_inline_edge_p): Do not deal with
12702 call_stmt_cannot_inline_p.
12703 (can_early_inline_edge_p): Likewise.
12704 (early_inliner): Initialize inline_failed.
12705 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
12707 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
12709 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
12710 from nonimm_ssenomem_operand.
12711 (nonimm_ssenomem_operand): New predicate.
12712 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
12713 as operand 0 predicate.
12714 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
12715 Disable unsupported alternatives using "enabled" attribute.
12716 Use register_ssemem_operand as operand 0 predicate.
12717 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
12719 2016-05-03 Marek Polacek <polacek@redhat.com>
12722 * input.c (expansion_point_location): New function.
12723 * input.h (expansion_point_location): Declare.
12725 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
12727 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
12728 occurence with frame_offset_ ones.
12730 2016-05-03 Alan Modra <amodra@gmail.com>
12732 PR rtl-optimization/70890
12733 * ira.c (combine_and_move_insns): When moving def_insn, remove
12734 equivs on use_insn.
12736 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
12738 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
12739 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
12740 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
12741 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
12743 2016-05-03 Alan Modra <amodra@gmail.com>
12745 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
12746 for SAVE_MULTIPLE/STORE_MULTIPLE.
12748 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12750 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
12751 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
12753 2016-05-03 Richard Biener <rguenther@suse.de>
12755 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
12757 (gimplify_arg): Likewise.
12758 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
12759 re-writing the result to a decl if required.
12760 (internal_get_tmp_var): Add allow_ssa parameter
12761 and override into_ssa with it.
12762 (get_formal_tmp_var): Adjust.
12763 (get_initialized_tmp_var): Add allow_ssa parameter.
12764 (gimplify_arg): Add allow_ssa parameter and avoid generating
12765 SSA names for the result false.
12766 (gimplify_call_expr): If the call may return twice do not
12767 gimplify parameters into SSA.
12768 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
12769 (gimplify_modify_expr): Adjust assert. For noreturn calls
12770 with a SSA name LHS adjust its def.
12771 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
12772 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
12773 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
12774 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
12775 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
12776 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
12777 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
12778 (optimize_target_teams): Do not allow SSA names for clause operands.
12779 (gimplify_expr): Likewise for where we mark the result addressable.
12780 * passes.def (pass_init_datastructures): Remove.
12781 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
12782 (rewrite_stmt): Likewise.
12783 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
12784 (replace_locals_op): Replace SSA names.
12785 (copy_gimple_seq_and_replace_locals): Init src_cfun.
12786 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
12787 * cgraph.c (release_function_body): Free CFG annotations only
12788 when we have a CFG. Simplify.
12789 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
12790 force_gimple_operand instead of get_initialized_tmp_var.
12791 * tree-pass.h (make_pass_init_datastructures): Remove.
12792 * tree-ssa.c (execute_init_datastructures): Remove.
12793 (pass_data_init_datastructures): Likewise.
12794 (class pass_init_datastructures): Likewise.
12795 (make_pass_init_datastructures): Likewise.
12796 * omp-low.c (create_omp_child_function): Init SSA data structures.
12797 (grid_expand_target_grid_body): Likewise.
12798 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
12799 name before adding it to names_to_release.
12800 (remove_bb): Always release SSA defs.
12801 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
12802 before dereferencing it.
12803 * cgraphunit.c (init_lowered_empty_function): Always
12804 int SSA data structures.
12805 * tree-ssanames.c (release_defs): Remove assert that we are in
12807 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
12809 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12810 Uros Bizjak <ubizjak@gmail.com>
12812 PR rtl-optimization/70467
12813 * config/i386/predicates.md (x86_64_hilo_int_operand,
12814 x86_64_hilo_general_operand): New predicates.
12815 * config/i386/constraints.md (Wd): New constraint.
12816 * config/i386/i386.md (mode attr di): Use Wd instead of e.
12817 (general_hilo_operand): New mode attr.
12818 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
12819 instead of <general_operand>.
12820 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
12821 x86_64_hilo_general_operand instead of <general_operand>.
12823 2016-05-03 Jakub Jelinek <jakub@redhat.com>
12825 PR tree-optimization/70916
12826 * tree-if-conv.c (constant_or_ssa_name): Removed.
12827 (fold_build_cond_expr): Use is_gimple_val instead of
12828 constant_or_ssa_name.
12830 PR tree-optimization/70916
12831 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
12832 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
12835 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
12836 (optimize_atomic_bit_test_and): New function.
12837 (pass_fold_builtins::execute): Use it.
12838 * optabs.def (atomic_bit_test_and_set_optab,
12839 atomic_bit_test_and_complement_optab,
12840 atomic_bit_test_and_reset_optab): New optabs.
12841 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
12842 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
12843 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
12844 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
12845 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
12846 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
12847 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
12848 * doc/md.texi (atomic_bit_test_and_set@var{mode},
12849 atomic_bit_test_and_complement@var{mode},
12850 atomic_bit_test_and_reset@var{mode}): Document.
12851 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
12852 atomic_bit_test_and_complement<mode>,
12853 atomic_bit_test_and_reset<mode>): New expanders.
12854 (atomic_bit_test_and_set<mode>_1,
12855 atomic_bit_test_and_complement<mode>_1,
12856 atomic_bit_test_and_reset<mode>_1): New insns.
12858 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
12860 PR rtl-optimization/70687
12861 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
12862 instead of unsigned HOST_WIDE_INT.
12864 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
12866 PR rtl-optimization/44281
12867 * hard-reg-set.h (struct target_hard_regs): New field
12868 x_fixed_nonglobal_reg_set.
12869 (fixed_nonglobal_reg_set): New macro.
12870 * reginfo.c (init_reg_sets_1): Initialize it.
12871 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
12873 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
12875 2016-05-03 Bin Cheng <bin.cheng@arm.com>
12877 PR tree-optimization/56541
12878 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
12879 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
12880 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
12881 (any_complicated_phi): new static variable.
12882 (aggressive_if_conv): delete.
12883 (if_convertible_phi_p): support phis with more than two arguments.
12884 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
12885 critical pred edges.
12886 (ifcvt_split_critical_edges): support phis with more than two
12887 arguments by checking new parameter. only split critical edges
12889 (tree_if_conversion): handle simd pragma marked loop using new
12890 local variable aggressive_if_conv. check any_complicated_phi.
12892 2016-05-03 Bin Cheng <bin.cheng@arm.com>
12894 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
12897 2016-05-03 Bin Cheng <bin.cheng@arm.com>
12899 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
12902 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
12904 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
12905 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
12906 define_insn_and_split.
12907 (mulsi3_i): New define_insn_and_split.
12908 (mulsi3_call): Convert to define_insn.
12909 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
12910 Remove constraints.
12912 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
12914 * machmode.h (mode_complex): Add support to give the complex mode
12916 (GET_MODE_COMPLEX_MODE): Likewise.
12917 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
12918 stored by build_complex_type and gfc_build_complex_type instead of
12919 trying to figure out the appropriate mode based on the size. Raise
12920 an assertion error, if the type was not set.
12921 * genmodes.c (struct mode_data): Add field for the complex type of
12923 (blank_mode): Likewise.
12924 (make_complex_modes): Remember the complex mode created in the
12926 (emit_mode_complex): Write out the mode_complex array to map a
12927 type mode to the complex version.
12928 (emit_insn_modes_c): Likewise.
12929 * tree.c (build_complex_type): Set the complex type to use before
12930 calling layout_type.
12931 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
12932 support for __float128 complex datatypes.
12933 (rs6000_hard_regno_mode_ok): Likewise.
12934 (rs6000_setup_reg_addr_masks): Likewise.
12935 (rs6000_complex_function_value): Likewise.
12936 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
12937 __float128 and __ibm128 complex.
12938 (FLOAT128_IBM_P): Likewise.
12939 (ALTIVEC_ARG_MAX_RETURN): Likewise.
12940 * doc/extend.texi (Additional Floating Types): Document that
12941 -mfloat128 must be used to enable __float128. Document complex
12942 __float128 and __ibm128 support.
12944 2016-05-02 Jakub Jelinek <jakub@redhat.com>
12947 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
12948 char/short arguments promoted to int because of promote_prototypes.
12950 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
12952 * config/i386/predicates.md (register_ssemem_operand): New predicate.
12953 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
12954 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
12955 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
12956 alternatives using "enabled" attribute. Use register_ssemem_operand
12957 as operand 1 predicate.
12958 (*cmpi<unord>xf_i387): Split XFmode pattern from
12959 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
12960 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
12961 *absneg<mode>2_i387. Disable unsupported alternatives using
12962 "enabled" attribute.
12963 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
12965 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
12967 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
12969 (oacc_loop_process): Check mask for loop termination.
12971 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
12973 * cif-code.def (CIF_THUNK): Add.
12974 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
12977 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
12979 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
12980 (dump_inline_summary): Dump it.
12981 (fp_expression_p): New predicate.
12982 (estimate_function_body_sizes): Use it.
12983 (inline_merge_summary): Merge fp_expressions.
12984 (inline_read_section): Read fp_expressions.
12985 (inline_write_summary): Write fp_expressions.
12986 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
12987 codegen boundary if either caller or callee is !fp_expressions.
12988 * ipa-inline.h (inline_summary): Add fp_expressions.
12989 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
12990 to fp_expressions be sure the fp generation flags are updated.
12992 2016-05-02 Jakub Jelinek <jakub@redhat.com>
12994 PR rtl-optimization/70467
12995 * cse.c (cse_insn): Handle no-op MEM moves after folding.
12997 PR rtl-optimization/70467
12998 * ipa-pure-const.c (check_call): Handle internal calls even in
12999 ipa mode like in local mode.
13001 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
13003 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
13005 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
13007 * match.pd (X u< X, X u> X): New transformations.
13009 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
13011 * flag-types.h (enum warn_strict_overflow_code): Move ...
13012 * coretypes.h: ... here.
13013 * fold-const.h (fold_overflow_warning): Declare.
13014 * fold-const.c (fold_overflow_warning): Make non-static.
13015 (fold_comparison): Move the transformation of X +- C1 CMP C2
13016 into X CMP C2 -+ C1 ...
13017 * match.pd: ... here.
13018 * gimple-fold.c (fold_stmt_1): Protect with
13019 fold_defer_overflow_warnings.
13021 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
13023 * omp-low.c (struct oacc_loop): Add 'inner' field.
13024 (new_oacc_loop_raw): Initialize it to zero.
13025 (oacc_loop_fixed_partitions): Initialize it.
13026 (oacc_loop_auto_partitions): Partition outermost loop to outermost
13027 available partitioning.
13029 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
13031 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
13033 (umulsidi3): Likewise.
13034 (indirect_jump): Fix jump instruction assembly patterns.
13036 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
13039 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
13040 (nvptx_function_value): Assert non-NULL cfun.
13042 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
13044 PR rtl-optimization/70886
13045 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
13047 * cselib.h (rtx_equal_for_cselib_1): Declare.
13048 (rtx_equal_for_cselib_p: New inline function.
13049 * cselib.c (rtx_equal_for_cselib_p): Delete.
13050 (rtx_equal_for_cselib_1): Make public.
13052 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
13054 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
13055 (register_mixssei387nonimm_operand): Remove predicate.
13056 * config/i386/i386.md (*fop_<mode>_comm): Merge from
13057 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
13058 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
13059 for TARGET_MIX_SSE_I387 alternatives.
13060 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
13061 Disable unsupported alternatives using "enabled" attribute. Use
13062 nonimm_ssenomem_operand as operand 1 predicate. Also check
13063 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
13065 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13067 * tree.c (cst_and_fits_in_hwi): Simplify.
13069 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13071 * tree.h (wi::to_wide): New function.
13072 * expr.c (expand_expr_real_1): Use wi::to_wide.
13073 * fold-const.c (int_const_binop_1): Likewise.
13074 (extract_muldiv_1): Likewise.
13076 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13078 * wide-int.h: Update offset_int and widest_int documentation.
13079 (WI_SIGNED_SHIFT_RESULT): New macro.
13080 (wi::binary_shift): Define signed_shift_result_type for
13081 shifts on offset_int- and widest_int-like types.
13082 (generic_wide_int): Support <<= and >>= if << and >> are supported.
13083 * tree.h (int_bit_position): Use shift operators instead of wi::
13085 * alias.c (adjust_offset_for_component_ref): Likewise.
13086 * expr.c (get_inner_reference): Likewise.
13087 * fold-const.c (fold_comparison): Likewise.
13088 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
13089 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
13090 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13091 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13092 (stmt_kills_ref_p): Likewise.
13093 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
13094 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
13095 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
13096 (ao_ref_init_from_vn_reference): Likewise.
13098 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
13100 * wide-int.h: Update offset_int and widest_int documentation.
13101 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
13102 (wi::binary_traits): Allow ordered comparisons between offset_int and
13103 offset_int, between widest_int and widest_int, and between either
13104 of these types and basic C types.
13105 (operator <, <=, >, >=): Define for the same combinations.
13106 * tree.h (tree_int_cst_lt): Use comparison operators instead
13107 of wi:: comparisons.
13108 (tree_int_cst_le): Likewise.
13109 * gimple-fold.c (fold_array_ctor_reference): Likewise.
13110 (fold_nonarray_ctor_reference): Likewise.
13111 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
13112 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
13113 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
13114 * tree-sra.c (completely_scalarize): Likewise.
13115 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
13116 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
13117 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
13118 (check_for_binary_op_overflow): Likewise.
13119 (search_for_addr_array): Likewise.
13120 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
13122 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
13124 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
13125 (arc_save_restore): Likewise.
13126 (arc_dwarf_register_span): Likewise.
13127 (arc_output_pic_addr_const): Initialize suffix variable.
13129 2016-05-02 Martin Liska <mliska@suse.cz>
13131 * symbol-summary.h (function_summary::function_summary):
13132 Remove checking assert for all cgraph nodes.
13133 (function_summary::get): Check summary_uid.
13134 (symtab_insertion): Check summary_uid.
13136 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
13138 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
13139 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
13140 bmaskn instruction.
13141 (arc_dwarf_register_span): Remove enum keyword.
13142 (compact_memory_operand_p): New function.
13143 * config/arc/arc.h (reg_class): Add code density register classes.
13144 (REG_CLASS_NAMES): Likewise.
13145 (REG_CLASS_CONTENTS): Likewise.
13146 * config/arc/arc.md (*movqi_insn): Add code density instructions.
13147 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
13148 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
13149 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
13150 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
13152 (h, Rcd, Rsd, Rzd): New register constraints.
13153 (T): Use compact_memory_operand_p function.
13154 * config/arc/predicates.md (compact_load_memory_operand): Remove.
13156 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
13158 * config/sh/sh.md (*negnegt, *movtt): Remove.
13160 2016-05-02 Marek Polacek <polacek@redhat.com>
13161 Tom de Vries <tom@codesourcery.com>
13163 PR tree-optimization/70700
13164 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
13165 bigger than FIRST_REF_NODE.
13167 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
13170 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
13172 (prepare_cbranch_operands): Don't use scratch register. Assume that
13173 function is used when pseudos can be created.
13174 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
13175 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
13176 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
13177 define_expand. Allow it only when pseudos can be created.
13178 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
13180 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
13182 * config/i386/constraints.md (BC): Only allow -1 operands.
13183 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
13184 Add "enabled" attribute. Update XI mode attribute calculation.
13185 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
13186 (*movoi_internal_avx): Update XI mode attribute calculation.
13187 (*movti_internal): Ditto.
13189 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
13191 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
13192 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
13194 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
13196 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
13197 statement on instruction code. Remove trailing spaces.
13198 (altivec_expand_stv_builtin): Likewise.
13200 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
13202 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
13203 (TARGET_FPU_DOUBLE): Simplify.
13204 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
13205 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
13206 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
13207 with 'TARGET_FPU_DOUBLE'.
13208 * config/sh/sh.md: Likewise.
13210 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
13212 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
13213 SH_DIV_STR_FOR_SIZE): Remove.
13214 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
13215 SH_DIV_STR_FOR_SIZE): Remove.
13217 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
13219 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
13220 logical_reg_operand): Delete.
13221 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
13222 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
13223 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
13224 match_operand and match_test.
13225 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
13226 variables on their first use. Return bool values.
13227 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
13228 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
13229 arith_reg_operand for input operand. Remove empty constraints.
13231 (*xorsi3_compact): Rename to xorsi3.
13232 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
13233 (*zero_extend<mode>si2_disp_mem): Update comment.
13236 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
13238 * config/sh/t-sh: Remove SH5 support.
13239 * config.gcc: Likewise.
13240 * configure: Likewise.
13242 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13244 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
13246 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
13248 * config/sh/sh.c (register_sh_passes, sh_option_override,
13249 sh_print_operand, prepare_move_operands,
13250 sh_can_follow_jump): Remove TARGET_SH1 checks.
13251 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
13252 PROMOTE_MODE): Likewise.
13253 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
13256 2016-04-30 Alan Modra <amodra@gmail.com>
13258 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
13259 restoring when fixed_reg_p, but allow out-of-line or stmw save.
13260 Check for user regs later to avoid unnecessary looping over regs.
13261 Merge user reg check with non-saved reg check. Don't force
13262 inline VR restore when static chain used.
13263 (rs6000_frame_related): Omit eh_frame info for user regs when
13265 (fixed_regs_p): Delete.
13267 2016-04-30 Alan Modra <amodra@gmail.com>
13269 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
13270 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
13273 2016-04-30 Alan Modra <amodra@gmail.com>
13276 * config/rs6000/rs6000.c (fixed_reg_p): New function.
13277 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
13280 2016-04-30 Alan Modra <amodra@gmail.com>
13282 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
13283 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
13284 flag_pic test for Darwin.
13286 2016-04-30 Alan Modra <amodra@gmail.com>
13288 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
13289 throw_calls_crossed.
13290 (REG_FREQ_CALLS_CROSSED): Delete.
13291 (REG_N_THROWING_CALLS_CROSSED): Delete.
13292 * regstat.c (regstat_bb_compute_ri): Don't calculate
13293 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
13294 (dump_reg_info): Don't print call cross frequency.
13295 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
13296 and REG_N_THROWING_CALLS_CROSSED.
13298 2016-04-30 Alan Modra <amodra@gmail.com>
13300 * regs.h (struct reg_info_t): Delete live_length.
13301 (REG_LIVE_LENGTH): Delete macro.
13302 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
13303 local_live, local_processed and local_live_last_luid params.
13304 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
13306 (regstat_compute_ri): Adjust for above. Don't set
13308 (dump_reg_info): Don't print live length.
13309 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
13310 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
13311 Localize loop_depth var.
13313 2016-04-30 Alan Modra <amodra@gmail.com>
13315 * ira.c (enum valid_equiv): New.
13316 (validate_equiv_mem): Return enum.
13317 (update_equiv_mem): Create replacement in more cases.
13318 (add_store_equivs): Update validate_equiv_mem call.
13320 2016-04-30 Alan Modra <amodra@gmail.com>
13322 * ira.c (combine_and_move_insns): Rather than scanning insns,
13323 use DF infrastucture to find use and def insns.
13325 2016-04-30 Alan Modra <amodra@gmail.com>
13327 ira.c (combine_and_move_insns): Move invariant conditions..
13328 (ira.c): ..to here. Call combine_and_move_insns before
13329 add_store_equivs. Call grow_reg_equivs later. Allocate
13330 req_equiv later using max_reg_num() rather than global max_regno.
13331 (contains_replace_regs): Delete.
13332 (add_store_equivs): Remove contains_replace_regs test.
13334 2016-04-30 Alan Modra <amodra@gmail.com>
13336 * ira.c (struct equiv_mem_data): New.
13337 (equiv_mem, equiv_mem_modified): Delete static vars.
13338 (validate_equiv_mem_from_store): Use "data" param to communicate..
13339 (validate_equiv_mem): ..from here.
13341 2016-04-30 Alan Modra <amodra@gmail.com>
13343 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
13345 (update_reg_equivs): ..here. Move allocation and freeing of
13346 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
13347 end_alias_analysis to..
13350 2016-04-30 Alan Modra <amodra@gmail.com>
13352 * ira.c (pdx_subregs): Delete.
13353 (struct equivalence): Add pdx_subregs field.
13354 (set_paradoxical_subreg): Remove pdx_subregs param. Update
13355 pdx_subregs access.
13356 (update_equiv_regs): Don't create or free pdx_subregs. Update
13357 pdx_subregs access.
13359 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13361 * config/rs6000/altivec.h: Change definitions of vec_xl and
13363 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
13364 (LD_ELEMREV_V2DI): New.
13365 (LD_ELEMREV_V4SF): New.
13366 (LD_ELEMREV_V4SI): New.
13367 (LD_ELEMREV_V8HI): New.
13368 (LD_ELEMREV_V16QI): New.
13369 (ST_ELEMREV_V2DF): New.
13370 (ST_ELEMREV_V2DI): New.
13371 (ST_ELEMREV_V4SF): New.
13372 (ST_ELEMREV_V4SI): New.
13373 (ST_ELEMREV_V8HI): New.
13374 (ST_ELEMREV_V16QI): New.
13377 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
13378 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
13379 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
13380 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
13381 (altivec_expand_builtin): Add handling for
13382 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
13383 (rs6000_invalid_builtin): Add error-checking for
13384 RS6000_BTM_P9_VECTOR.
13385 (altivec_init_builtins): Define builtins used to implement vec_xl
13387 (rs6000_builtin_mask_names): Define power9-vector.
13388 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
13389 (RS6000_BTM_P9_VECTOR): Define.
13390 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
13391 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
13392 (vsx_ld_elemrev_v2df): Likewise.
13393 (vsx_ld_elemrev_v4sf): Likewise.
13394 (vsx_ld_elemrev_v4si): Likewise.
13395 (vsx_ld_elemrev_v8hi): Likewise.
13396 (vsx_ld_elemrev_v16qi): Likewise.
13397 (vsx_st_elemrev_v2df): Likewise.
13398 (vsx_st_elemrev_v2di): Likewise.
13399 (vsx_st_elemrev_v4sf): Likewise.
13400 (vsx_st_elemrev_v4si): Likewise.
13401 (vsx_st_elemrev_v8hi): Likewise.
13402 (vsx_st_elemrev_v16qi): Likewise.
13403 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
13406 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
13408 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
13410 (simplify_control_stmt_condition_1): ... here. Recurse into
13411 BIT_AND_EXPRs and BIT_IOR_EXPRs.
13413 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
13416 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
13417 (zero_extendqi<mode>2_dot): Revert earlier conversion from
13418 define_insn_and_split to define_insn.
13419 (zero_extendqi<mode>2_dot2): Same.
13420 (extendqi<mode>2_dot): Same.
13421 (extendqi<mode>2_dot2): Same.
13423 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13425 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
13426 (probe_stack): New expander.
13427 (probe_stack_<mode>): New insn pattern.
13429 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13431 * config/i386/i386.md
13432 (operations with memory inputs setting flags peephole2):
13433 Remove uneeded REG_P checks. Cleanup pattern generation.
13435 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
13437 * tree-vect-loop.c (vect_transform_loop): Fix
13438 nb_iterations_upper_bound computation for vectorized loop.
13440 2016-04-29 Marek Polacek <polacek@redhat.com>
13441 Jakub Jelinek <jakub@redhat.com>
13444 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
13445 TARGET_EXPR_SLOT as a base.
13447 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
13449 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
13450 with 'rCm2' constraints to limit possible immediate size.
13451 (*load_zeroextendqisi_update): Likewise.
13452 (*load_signextendqisi_update): Likewise.
13453 (*loadhi_update): Likewise.
13454 (*load_zeroextendhisi_update): Likewise.
13455 (*load_signextendhisi_update): Likewise.
13456 (*loadsi_update): Likewise.
13457 (*loadsf_update): Likewise.
13459 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13461 * config/i386/predicates.md (constm1_operand): Fix comparison.
13463 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
13465 * testsuite/gcc.target/arc/ieee_eq.c: New test.
13467 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
13469 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
13470 remaining SH5 related settings.
13471 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
13472 shmedia_prepare_call_address): Delete.
13473 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
13474 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
13475 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
13476 UNSUPPORTED_SH2A): Remove m5 checks.
13477 (sh_divide_strategy_e): Remove SH5 division strategies.
13478 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
13479 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
13481 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
13483 * config/s390/s390.c (s390_rtx_costs): Update documentation.
13485 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13487 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
13488 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
13489 Change lder to ldr.
13490 * config/s390/vector.md ("mov<mode>"): Likewise.
13492 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
13494 * config/s390/constraints.md ("U", "W"): Invoke
13495 s390_mem_constraint with "ZR" and "ZT".
13496 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
13497 addresses when using LRA. Accept also short displacements for S
13498 and T constraints. Do not check for long displacement target for
13499 S and T constraints.
13500 (s390_mem_constraint): Remove handling of U and W constraints.
13501 * config/s390/s390.md (various patterns): Remove the short
13502 displacement constraints (Q and R) if a long displacement
13503 constraint is present. Add longdisp as required CPU capability.
13504 * config/s390/vector.md: Likewise.
13505 * config/s390/vx-builtins.md: Likewise.
13507 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
13510 * reload1.c (reload): Call finish_spills before
13511 restarting reload loop. Skip select_reload_regs
13512 if update_eliminables_and_spill returns true.
13514 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
13516 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
13517 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
13518 (umulhisi3_imm): Update predicates and constraint letters.
13519 (umulhisi3_reg): Declare instruction as commutative.
13520 * config/arc/constraints.md (J12, J16): New constraints.
13521 * config/arc/predicates.md (short_unsigned_const_operand): New
13523 (arc_short_operand): Likewise.
13524 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
13526 2016-04-29 Richard Biener <rguenther@suse.de>
13528 PR tree-optimization/13962
13529 PR tree-optimization/65686
13530 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
13531 * tree-ssa-alias.c (ptrs_compare_unequal): New function
13532 using PTA to compare pointers.
13533 * match.pd: Add pattern for pointer equality compare simplification
13534 using ptrs_compare_unequal.
13536 2016-04-29 Richard Biener <rguenther@suse.de>
13538 * stor-layout.c (layout_type): Do not build a pointer-to-element
13541 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
13543 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
13544 Use SWI mode iterator. Use general_reg_operand predicate.
13545 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
13546 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
13549 2016-04-29 Jakub Jelinek <jakub@redhat.com>
13551 PR middle-end/70843
13552 * fold-const.c (operand_equal_p): Don't verify hash value equality
13554 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
13557 2016-04-28 Jakub Jelinek <jakub@redhat.com>
13560 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
13561 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
13562 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
13563 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
13564 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
13566 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13568 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
13569 to info. Don't initialize separate fields to 0. Clean up
13572 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13574 * config/i386/i386.md (peephole2s for operations with memory inputs):
13575 Use SWI mode iterator.
13576 (peephole2s for operations with memory outputs): Ditto.
13577 Do not check for stack checking probe.
13579 (probe_stack): Remove expander.
13581 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13582 Andrew Burgess <andrew.burgess@embecosm.com>
13584 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
13585 operands as 32-bits.
13587 2016-04-28 Jason Merrill <jason@redhat.com>
13589 * gdbinit.in: Skip line-map.h.
13591 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13592 Andrew Burgess <andrew.burgess@embecosm.com>
13594 * config/arc/arc.c (arc_conditional_register_usage): Take
13595 TARGET_RRQ_CLASS into account.
13596 (arc_print_operand): Support printing 'p' and 's' operands.
13597 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
13599 (TARGET_RRQ_CLASS): Define.
13600 (IS_POWEROF2_OR_0_P): Define.
13601 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
13603 (*tst_movb): New define_insn.
13604 (*tst): Avoid recognition if it could prevent '*tst_movb'
13605 combination; replace c/CnL with c/Chs alternative.
13606 (*tst_bitfield_tst): New define_insn.
13607 (*tst_bitfield_asr): New define_insn.
13608 (*tst_bitfield): New define_insn.
13609 (andsi3_i): Add Rrq variant.
13610 (extzv): New define_expand.
13611 (insv): New define_expand.
13612 (*insv_i): New define_insn.
13613 (*movb): New define_insn.
13614 (*movb_signed): New define_insn.
13615 (*movb_high): New define_insn.
13616 (*movb_high_signed): New define_insn.
13617 (*movb_high_signed + 1): New define_split pattern.
13618 (*mrgb): New define_insn.
13619 (*mrgb + 1): New define_peephole2 pattern.
13620 (*mrgb + 2): New define_peephole2 pattern.
13621 * config/arc/arc.opt (mbitops): New option for nps400, uses
13622 TARGET_NPS_BITOPS_DEFAULT.
13623 * config/arc/constraints.md (q): Make register class conditional.
13624 (Rrq): New register constraint.
13625 (Chs): New constraint.
13626 (Clo): New constraint.
13627 (Chi): New constraint.
13628 (Cbf): New constraint.
13629 (Cbn): New constraint.
13630 (C18): New constraint.
13631 (Cbi): New constraint.
13633 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13635 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
13637 (bitmap_intersection_of_preds): Ditto.
13638 (bitmap_union_of_succs): Ditto.
13639 (bitmap_union_of_preds): Ditto.
13640 * sbitmap.c (do_popcount): Delete.
13641 (BITMAP_DEBUGGING): Delete.
13642 (sbitmap_verify_popcount): Delete.
13643 (sbitmap_alloc): Don't initialize the popcount field.
13644 (sbitmap_alloc_with_popcount): Delete.
13645 (sbitmap_resize): Don't resize the popcount array.
13646 (sbitmap_vector_alloc): Don't initialize the popcount field.
13647 (bitmap_copy): Don't copy the popcount array.
13648 (bitmap_clear): Don't clear the popcount array.
13649 (bitmap_clear): Delete the popcount array handling.
13650 (bitmap_ior_and_compl): Delete the popcount assert.
13651 (bitmap_not): Ditto.
13652 (bitmap_and_compl): Ditto.
13653 (bitmap_and): Delete the popcount array handling.
13654 (bitmap_xor): Ditto.
13655 (bitmap_ior): Ditto.
13656 (bitmap_or_and): Delete the popcount assert.
13657 (bitmap_and_or): Ditto.
13658 (popcount_table): Delete.
13659 (sbitmap_elt_popcount): Delete.
13660 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
13661 (bitmap_set_bit): Delete the popcount assert.
13662 (bitmap_clear_bit): Ditto.
13663 (sbitmap_free): Don't free the popcount array.
13664 (sbitmap_alloc_with_popcount): Delete declaration.
13665 (sbitmap_popcount): Ditto.
13667 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13668 Andrew Burgess <andrew.burgess@embecosm.com>
13670 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
13671 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
13672 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
13673 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
13674 * config/arc/arc.opt (mcmem): New option.
13675 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
13676 supply length for r/m alternative.
13677 (*extendqisi2_ac): Likewise.
13678 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
13680 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
13681 (movhi_insn): Likewise.
13682 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
13683 (*zero_extendqihi2_i): Add r/Ucm alternative.
13684 (*zero_extendqisi2_ac): Likewise.
13685 (*zero_extendhisi2_i): Likewise.
13686 * config/arc/constraints.md (Uex): New memory constraint.
13687 (Ucm): New define_constraint.
13688 * config/arc/predicates.md (long_immediate_loadstore_operand):
13689 Return 0 for MEM with cmem_address address.
13690 (cmem_address_0): New predicates.
13691 (cmem_address_1): Likewise.
13692 (cmem_address_2): Likewise.
13693 (cmem_address): Likewise.
13695 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13697 * config/rs6000/rs6000.c (machine_function): Rename
13698 insn_chain_scanned_p to spe_insn_chain_scanned_p.
13699 (rs6000_stack_info): Adjust.
13701 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
13702 Andrew Burgess <andrew.burgess@embecosm.com>
13704 * config/arc/constraints.md (Usd): Convert to define_constraint.
13708 2016-04-28 Jakub Jelinek <jakub@redhat.com>
13711 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
13712 Add new peephole2 where the first insn is *mov<mode>_or instead of
13713 *mov<mode>_internal.
13715 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
13717 * tracer.c (bb_seen): Make static.
13719 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
13721 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
13722 support, setup defaults.
13723 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
13724 * config/arc/arc.c (arc_init): Add NPS400 support.
13725 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
13726 (TARGET_ARC700): NPS400 is also an ARC700.
13727 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
13729 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
13732 * config/nds32/nds32.md (casesi): Don't access the operands array
13735 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13737 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
13738 (or $-1,reg peephole2): Ditto.
13739 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
13741 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
13743 * doc/extend.texi (Common Function Attributes) [optimize]:
13744 Discourage use of the optimize attribute.
13746 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
13748 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
13749 special case builtin.
13750 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
13751 ALTIVEC_BUILTIN_VEC_ADDE.
13752 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
13753 support for ALTIVEC_BUILTIN_VEC_ADDE.
13754 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
13755 for __builtin_vec_adde.
13757 2016-04-28 Jakub Jelinek <jakub@redhat.com>
13759 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
13760 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
13762 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13765 * doc/sourcebuild.texi (Effective-Target Keywords, Other
13766 attributes): Document cilkplus_runtime.
13768 2016-04-28 Martin Jambor <mjambor@suse.cz>
13770 * tree-cfg.c (verify_expr): Verify that local declarations belong to
13771 this function. Call verify_expr on MEM_REFs and bases of other
13772 handled_components.
13774 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13776 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
13777 for WORD_REGISTER_OPERATIONS to runtime check.
13779 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13781 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
13783 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13785 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
13786 big-endian compilation.
13787 * config/arc/arc.md (addf3): Likewise.
13788 (subdf3): Likewise.
13789 (muldf3): Likewise.
13791 2016-04-28 Richard Biener <rguenther@suse.de>
13793 PR tree-optimization/70840
13794 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
13795 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
13796 Mark x * pow(x,c) -> pow(x,c+1) commutative.
13797 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
13799 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13801 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
13802 and explain why in a comment.
13804 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13806 * config/arc/arc.md (cpu_facility): Add fpx variant.
13807 (subdf3): Prohibit use reverse sub when assist operations option
13809 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
13810 instructions only when FPX is enabled.
13811 * testsuite/gcc.target/arc/trsub.c: New test.
13813 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13815 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
13816 mult_operator when calculating "type" attribute.
13817 (*fop_<mode>_1_i387): Ditto.
13818 (*fop_xf_1_i387): Ditto.
13819 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
13820 Use std::swap to swap operands. Use RTL expressions to generate
13823 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13824 Joern Rennecke <joern.rennecke@embecosm.com>
13826 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
13828 (emit_pic_move): Remove.
13829 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
13830 * config/arc/arc.c (emit_pic_move): Removed.
13831 (TARGET_HAVE_TLS): Define.
13832 (arc_conditional_register_usage): Test for arc_tp_regno.
13833 (arc_print_operand, arc_print_operand_address): Handle TLS
13835 (arc_needs_pcl_p): New function.
13836 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
13837 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
13838 (arc_raw_symbolic_reference_mentioned_p): Likewise.
13839 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
13840 (arc_legitimize_tls_address): Likewise.
13841 (DTPOFF_ZERO_SYM): Define.
13842 (arc_legitimize_pic_address): Make it static, handle TLS cases.
13843 (arc_output_pic_addr_const): Print TLS unspecs.
13844 (prepare_pic_move): New function, replaces emit_pic_move.
13845 (arc_legitimate_constant_p): Handle TLS unspecs.
13846 (arc_legitimate_address_p): Likewise.
13847 (arc_rewrite_small_data_p): Use assert for TLS constants.
13848 (prepare_move_operands): Use prepare_pic_move.
13849 (arc_legitimize_address): Legitimize tls addresses.
13850 (arc_epilogue_uses): Check for arc_tp_regno.
13851 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
13852 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
13854 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
13856 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
13857 %(arc_tls_extra_start_spec).
13858 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
13859 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
13861 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
13862 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
13863 (UNSPEC_TLS_OFF): Add.
13865 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
13866 (get_thread_pointersi): New patterns.
13867 * config/arc/arc.opt (mtp-regno): New option.
13868 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
13869 (move_dest_operand): Likewise.
13870 * configure: Regenerate.
13871 * configure.ac: Add arc*-*-* case to test for tls.
13872 * doc/invoke.texi (ARC options): Document mtp-regno.
13874 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
13876 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
13877 the new ARC HS SIMD instructions.
13878 (arc_preferred_simd_mode): New function.
13879 (arc_autovectorize_vector_sizes): Likewise.
13880 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
13881 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
13882 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
13883 (arc_init_builtins): Add new SIMD builtin types.
13884 (arc_split_move): Handle 64 bit vector moves.
13885 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
13886 (TARGET_PLUS_QMACW): Define.
13887 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
13888 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
13889 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
13890 (VSUBADD4H): New builtins.
13891 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
13892 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
13894 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
13895 Matthias Klose <doko@debian.org>
13897 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
13899 2016-04-28 Richard Biener <rguenther@suse.de>
13901 PR middle-end/70777
13902 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
13905 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
13907 * common/config/sh/sh-common.c: Remove SH5 support.
13908 * config/sh/constraints.md: Likewise.
13909 * config/sh/config/sh/elf.h: Likewise.
13910 * config/sh/linux.h: Likewise.
13911 * config/sh/netbsd-elf.h: Likewise.
13912 * config/sh/predicates.md: Likewise.
13913 * config/sh/sh-c.c: Likewise.
13914 * config/sh/sh-protos.h: Likewise.
13915 * config/sh/sh.c: Likewise.
13916 * config/sh/sh.h: Likewise.
13917 * config/sh/sh.md: Likewise.
13918 * config/sh/sh.opt: Likewise.
13919 * config/sh/sync.md: Likewise.
13920 * config/sh/sh64.h: Delete.
13921 * config/sh/shmedia.h: Likewise.
13922 * config/sh/shmedia.md: Likewise.
13923 * config/sh/sshmedia.h: Likewise.
13924 * config/sh/t-netbsd-sh5-64: Likewise.
13925 * config/sh/t-sh64: Likewise.
13926 * config/sh/ushmedia.h: Likewise.
13928 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
13930 * config/i386/i386.md (sign_extend to memory peephole2s): Use
13931 general_reg_operand instead of register_operand predicate.
13933 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13935 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
13937 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
13939 * match.pd (A - B > A, A + B < A): New transformations.
13941 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
13943 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
13944 which defaults to true. Emit an outer pair of parentheses only if
13945 EMIT_PARENS. When continuing a chain of && or || (or & or |),
13946 don't emit parentheses for the right-hand operand.
13948 2016-04-27 Jeff Law <law@redhat.com>
13950 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
13952 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13954 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
13955 (altivec_lvx_<mode>_internal): Document.
13956 (altivec_lvx_<mode>_2op): New define_insn.
13957 (altivec_lvx_<mode>_1op): Likewise.
13958 (altivec_lvx_<mode>_2op_si): Likewise.
13959 (altivec_lvx_<mode>_1op_si): Likewise.
13960 (altivec_stvx_<mode>): Remove.
13961 (altivec_stvx_<mode>_internal): Document.
13962 (altivec_stvx_<mode>_2op): New define_insn.
13963 (altivec_stvx_<mode>_1op): Likewise.
13964 (altivec_stvx_<mode>_2op_si): Likewise.
13965 (altivec_stvx_<mode>_1op_si): Likewise.
13966 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
13967 Expand vec_ld and vec_st during parsing.
13968 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
13970 (altivec_expand_stvx_be): Likewise.
13971 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
13972 address-masking behavior in RTL.
13973 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
13974 address-masking behavior in RTL.
13975 (altivec_expand_builtin): Change builtin code arguments for calls
13976 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
13977 (insn_is_swappable_p): Avoid incorrect swap optimization in the
13978 presence of lvx/stvx patterns.
13979 (alignment_with_canonical_addr): New function.
13980 (alignment_mask): Likewise.
13981 (find_alignment_op): Likewise.
13982 (recombine_lvx_pattern): Likewise.
13983 (recombine_stvx_pattern): Likewise.
13984 (recombine_lvx_stvx_patterns): Likewise.
13985 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
13986 stvx patterns from expand.
13987 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
13989 (vector_altivec_store_<mode>): Likewise.
13991 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
13993 * config/aarch64/aarch64.md
13994 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
13995 remove the "fp" attributes.
13996 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
13997 add the "simd" attributes.
13998 (*movdf_aarch64): Likewise.
13999 (*movtf_aarch64): Remove the "fp" attributes.
14000 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
14001 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
14003 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14005 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
14006 rtx to rtx_code_label *.
14007 * rtl.h (maybe_set_first_label_num): Likewise.
14009 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14011 * df-core.c (df_add_problem): Make the problem param be const.
14012 (df_remove_problem): Make local "problem" be const.
14013 * df-problems.c (problem_RD): Make const.
14014 (problem_LR): Likewise.
14015 (problem_LIVE): Likewise.
14016 (problem_MIR): Likewise.
14017 (problem_CHAIN): Likewise.
14018 (problem_WORD_LR): Likewise.
14019 (problem_NOTE): Likewise.
14020 (problem_MD): Likewise.
14021 * df-scan.c (problem_SCAN): Likewise.
14022 * df.h (struct df_problem): Make field "dependent_problem" be
14024 (struct dataflow): Likewise for field "problem".
14025 (df_add_problem): Make param const.
14027 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
14029 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
14030 inter-unit moves to/from vector registers are enabled. Do not disable
14033 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14035 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
14036 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
14038 (enum df_problem_id): ...this new enum.
14039 (struct df_problem): Convert field "id" from "int" to
14040 enum df_problem_id.
14042 2016-04-27 David Malcolm <dmalcolm@redhat.com>
14044 * rtl.def: Update comment for "things in the instruction chain" to
14045 reflect the removal of the leading "i" field for INSN_UID in
14046 r210360. Fix bogus apostrophe.
14048 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
14050 * config/i386/i386.md
14051 (lea arith with mem operand + setcc peephole2): Set operator mode.
14053 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
14056 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
14057 (dimode_scalar_to_vector_candidate_p): This.
14058 (timode_scalar_to_vector_candidate_p): New function.
14059 (scalar_to_vector_candidate_p): Likewise.
14060 (timode_check_non_convertible_regs): Likewise.
14061 (timode_remove_non_convertible_regs): Likewise.
14062 (remove_non_convertible_regs): Likewise.
14063 (remove_non_convertible_regs): Renamed to ...
14064 (dimode_remove_non_convertible_regs): This.
14065 (scalar_chain::~scalar_chain): Make it virtual.
14066 (scalar_chain::compute_convert_gain): Make it pure virtual.
14067 (scalar_chain::mark_dual_mode_def): Likewise.
14068 (scalar_chain::convert_insn): Likewise.
14069 (scalar_chain::convert_registers): Likewise.
14070 (scalar_chain::add_to_queue): Make it protected.
14071 (scalar_chain::emit_conversion_insns): Likewise.
14072 (scalar_chain::replace_with_subreg): Likewise.
14073 (scalar_chain::replace_with_subreg_in_insn): Likewise.
14074 (scalar_chain::convert_op): Likewise.
14075 (scalar_chain::convert_reg): Likewise.
14076 (scalar_chain::make_vector_copies): Likewise.
14077 (scalar_chain::convert_registers): New pure virtual function.
14078 (class dimode_scalar_chain): New class.
14079 (class timode_scalar_chain): Likewise.
14080 (scalar_chain::mark_dual_mode_def): Renamed to ...
14081 (dimode_scalar_chain::mark_dual_mode_def): This.
14082 (timode_scalar_chain::mark_dual_mode_def): New function.
14083 (timode_scalar_chain::convert_insn): Likewise.
14084 (dimode_scalar_chain::convert_registers): Likewise.
14085 (scalar_chain::compute_convert_gain): Renamed to ...
14086 (dimode_scalar_chain::compute_convert_gain): This.
14087 (scalar_chain::replace_with_subreg): Renamed to ...
14088 (dimode_scalar_chain::replace_with_subreg): This.
14089 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
14090 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
14091 (scalar_chain::make_vector_copies): Renamed to ...
14092 (dimode_scalar_chain::make_vector_copies): This.
14093 (scalar_chain::convert_reg): Renamed to ...
14094 (dimode_scalar_chain::convert_reg ): This.
14095 (scalar_chain::convert_op): Renamed to ...
14096 (dimode_scalar_chain::convert_op): This.
14097 (scalar_chain::convert_insn): Renamed to ...
14098 (dimode_scalar_chain::convert_insn): This.
14099 (scalar_chain::convert): Call convert_registers.
14100 (convert_scalars_to_vector): Change to scalar_chain pointer to
14101 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
14102 in 32-bit mode. Delete scalar_chain pointer. Call
14103 free_dominance_info in 64-bit mode.
14104 (pass_stv::gate): Remove TARGET_64BIT check.
14105 (ix86_option_override): Put the 64-bit STV pass before the CSE
14108 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
14110 * dwarf2out.h (struct dw_loc_descr_node): Remove the
14111 dw_loc_frame_offset field.
14112 * dwarf2out.c (new_loc_descr): Likewise.
14113 (resolve_args_picking_1): Turn the VISITED hash set into a
14114 FRAME_OFFSET hash map. Use it to associate a frame offset to
14115 visited nodes. Remove uses of the CHECKING_P macro.
14116 (resolve_args_picking): Update call to resolve_args_picking_1.
14118 2016-04-27 Martin Liska <mliska@suse.cz>
14120 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
14121 (free_loop_data): Release vuses of groups.
14123 2016-04-27 Bin Cheng <bin.cheng@arm.com>
14125 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
14126 instead of redundant use_id and boolean have_use_for.
14127 (struct iv_use): Change sub_id into group_id. Remove field next.
14128 Move fields: related_cands, n_map_members, cost_map and selected
14130 (struct iv_group): ... here. New structure.
14131 (struct iv_common_cand): Use structure declaration directly.
14132 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
14133 (MAX_CONSIDERED_USES): Rename macro to ...
14134 (MAX_CONSIDERED_GROUPS): ... here.
14135 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
14136 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
14137 (dump_uses): Rename to ...
14138 (dump_groups): ... here. Update all uses.
14139 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
14140 (find_induction_variables): Refactor format of dump information.
14141 (record_sub_use): Delete.
14142 (record_use): Update all uses.
14143 (record_group): New function.
14144 (record_group_use, find_interesting_uses_op): Call above functions.
14146 (find_interesting_uses_cond): Ditto.
14147 (group_compare_offset): New function.
14148 (split_all_small_groups): Rename to ...
14149 (split_small_address_groups_p): ... here. Update all uses.
14150 (split_address_groups): Update all uses.
14151 (find_interesting_uses): Refactor format of dump information.
14152 (add_candidate_1): Update all uses. Remove redundant check on iv,
14154 (add_candidate, record_common_cand): Remove redundant assert.
14155 (add_iv_candidate_for_biv): Update use.
14156 (add_iv_candidate_derived_from_uses): Update all uses.
14157 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
14158 (alloc_use_cost_map): Ditto.
14159 (set_use_iv_cost, get_use_iv_cost): Rename to ...
14160 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
14161 (determine_use_iv_cost_generic): Ditto.
14162 (determine_group_iv_cost_generic): Ditto.
14163 (determine_use_iv_cost_address): Ditto.
14164 (determine_group_iv_cost_address): Ditto.
14165 (determine_use_iv_cost_condition): Ditto.
14166 (determine_group_iv_cost_cond): Ditto.
14167 (determine_use_iv_cost): Ditto.
14168 (determine_group_iv_cost): Ditto.
14169 (set_autoinc_for_original_candidates): Update all uses.
14170 (find_iv_candidates): Update all uses. Refactor dump information.
14171 (determine_use_iv_costs): Ditto.
14172 (determine_iv_costs): Ditto.
14173 (iv_ca_cand_for_use): Rename to ...
14174 (iv_ca_cand_for_group): ... here. Update all uses.
14175 (iv_ca_add_use, iv_ca_add_group): Ditto.
14176 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
14177 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
14178 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
14179 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
14180 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
14181 (create_new_iv, adjust_iv_update_pos): Ditto.
14182 (rewrite_use_address): Delete.
14183 (rewrite_use_address_1): Rename to ...
14184 (rewrite_use_address): ... here.
14185 (rewrite_use_compare): Update all uses.
14186 (rewrite_use): Delete.
14187 (rewrite_uses): Rename to ...
14188 (rewrite_groups): ... here. Update all uses.
14189 (remove_unused_ivs, free_loop_data): Update all uses.
14190 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
14192 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14194 * rtlanal.c (nonzero_bits1): Convert preprocessor check
14195 for WORD_REGISTER_OPERATIONS to runtime check.
14197 2016-04-27 Richard Biener <rguenther@suse.de>
14200 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
14201 aggregate_value_p to determine if a function result is
14202 returned by reference.
14203 (ipa_pta_execute): Functions having their address taken are
14204 not automatically nonlocal.
14206 2016-04-27 Jakub Jelinek <jakub@redhat.com>
14209 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
14210 * fold-const.c (operand_equal_p): If flag_checking and
14211 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
14212 and if it returns non-zero, assert iterative_hash_expr on both
14215 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
14217 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
14219 2016-04-27 Nick Clifton <nickc@redhat.com>
14221 PR middle-end/49889
14222 * varasm.c (merge_weak): Generate an error if an attempt is made
14223 to convert a non-weak static function into a weak, public function.
14225 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
14227 * params.def (MAX_PARTITION_SIZE): New param.
14228 * doc/invoke.texi: Document lto-max-partition.
14230 2016-04-27 Richard Biener <rguenther@suse.de>
14233 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
14234 function cummulating used_from_other_partition, externally_visible
14235 and force_output from aliases.
14236 (refered_from_nonlocal_var): Likewise.
14237 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
14238 node flags properly.
14240 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
14242 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
14243 (-Wmemset-elt-size): New item.
14245 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
14248 * stor-layout.h (internal_reference_types): Delete.
14249 * stor-layout.c (reference_types_internal): Likewise.
14250 (internal_reference_types): Likewise.
14251 (layout_type) <REFERENCE_TYPE>: Adjust.
14253 2016-04-27 Jakub Jelinek <jakub@redhat.com>
14256 * tree.h (inchash::add_expr): Add FLAGS argument.
14257 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
14258 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
14259 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
14260 Formatting fix. Adjust recursive calls. For tcc_comparison,
14261 if swap_tree_comparison (code) is smaller than code, hash that
14262 and arguments in the other order. Hash CONVERT_EXPR the same
14263 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
14264 of ADDR_EXPR of decl as the decl itself. Add or remove
14265 OEP_ADDRESS_OF from recursive flags as needed. For
14266 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
14267 operands commutatively and only the third one normally.
14268 For internal CALL_EXPR hash in CALL_EXPR_IFN.
14270 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
14272 * config/rtems.h (LIB_SPEC): Add -latomic.
14274 2016-04-27 Joel Sherrill <joel@rtems.org>
14276 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
14277 xilink.ld and flags not relevant to RTEMS.
14279 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
14281 * toplev.c (backend_init_target): Avoid calling init_reload when using
14284 2016-04-26 Jakub Jelinek <jakub@redhat.com>
14286 * reorg.c (try_merge_delay_insns): Declare i and j inside the
14287 for loops rather than one for the whole function.
14289 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
14291 * match.pd (X + CST CMP X): New transformation.
14293 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
14295 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
14296 * fold-const.c (fold_binary_loc): Remove 2 transformations
14297 superseded by match.pd.
14298 * match.pd (x+x -> x*2): Generalize to integers.
14300 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
14302 * config/i386/i386.md (operation on memory peephole): Duplicate an
14303 existing peephole and adapt it to match lea rather than an operation
14306 PR rtl-optimization/57193
14307 * opts.c (default_options_table): Add OPT_frename_registers at -O2
14309 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
14311 2016-04-26 Bin Cheng <bin.cheng@arm.com>
14313 * tree-if-conv.c (any_pred_load_store): New static variable.
14314 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
14315 any_pred_load_store instead of and_mask_load_store.
14316 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
14317 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
14318 (combine_blocks, tree_if_conversion): Ditto.
14320 2016-04-26 Bin Cheng <bin.cheng@arm.com>
14322 PR tree-optimization/70771
14323 PR tree-optimization/70775
14324 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
14325 virtual PHI nodes. Delete parameter.
14326 (if_convertible_loop_p_1): Delete argument to above function.
14327 (predicate_all_scalar_phis): Delete code handling single-argument
14329 (tree_if_conversion): Mark and update virtual SSA.
14331 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14334 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
14335 (x86_elf_aligned_common): Rename to ...
14336 (x86_elf_aligned_decl_common): ... this.
14337 Add decl arg. Switch to .lbss for largecomm object. Use
14338 LARGECOMM_SECTION_ASM_OP.
14339 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
14341 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
14342 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
14344 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
14345 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
14347 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14350 * config/i386/i386.c (SECTION_LARGE): Define.
14351 (x86_64_elf_select_section): Set it for large data/bss sections.
14352 Only clear SECTION_WRITE for .lrodata.
14353 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
14355 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
14356 * varasm.c (default_elf_asm_named_section): Grow flagchars.
14357 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
14359 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
14360 * doc/tm.texi: Regenerate.
14362 2016-04-26 Jakub Jelinek <jakub@redhat.com>
14365 * configure.ac (--enable-checking): Document extra flag, for
14366 non-release builds default to --enable-checking=yes,extra.
14367 If misc checking and extra checking, define CHECKING_P to 2 instead
14369 * common.opt (fchecking=): Add.
14370 * doc/invoke.texi (-fchecking=): Document.
14371 * doc/install.texi: Document --enable-checking changes.
14372 * configure: Regenerated.
14373 * config.in: Regenerated.
14375 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14377 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
14378 attribute instead of which_alternative.
14379 * config/i386/sse.md (*mov<mode>_internal): Ditto.
14380 Use EXT_REX_SSE_REG_P where appropriate.
14382 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14384 * config/i386/predicates.md (const0_operand): Do not match
14385 const_wide_int code.
14386 (const1_operand): Ditto.
14388 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14390 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
14391 for SSE constm1 operands and TARGET_AVX512VL.
14392 (*movti_internal): Ditto.
14393 (*mov<mode>_or): Use constm1_operand predicate.
14394 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
14395 for SSE vector_all_ones operands and TARGET_AVX512VL.
14396 * config/i386/predicates.md (constm1_operand): New predicate.
14397 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
14398 emission of constant -1 load.
14400 2016-04-25 Jason Merrill <jason@redhat.com>
14402 * gdbinit.in: Skip is-a.h.
14404 * attribs.c (register_scoped_attributes): Fix logic.
14405 * attribs.h: Declare register_scoped_attributes.
14407 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14409 * config/rs6000/rs6000-builtin.def: Correct pasto error for
14410 stxvd2x and stxvw4x built-in functions.
14412 2016-04-25 DJ Delorie <dj@redhat.com>
14414 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
14415 (ashrhi3): Likewise.
14416 (lshrhi3): Likewise.
14418 2016-04-25 Richard Biener <rguenther@suse.de>
14420 PR tree-optimization/70780
14421 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
14422 wasn't visited yet.
14423 (compute_antic): Mark blocks with abnormal preds as visited as
14424 they have a final empty antic-in solution already.
14426 2016-04-25 Michael Collison <michael.collison@linaro.org>
14428 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
14430 2016-04-25 Michael Collison <michael.collison@linaro.org>
14432 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
14433 mode is VQI to improve mixed mode vectorization.
14434 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
14435 define_insn to match low half of signed vaddw.
14436 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
14437 define_insn to match high half of signed vaddw.
14438 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
14439 define_insn to match low half of unsigned vaddw.
14440 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
14441 define_insn to match high half of unsigned vaddw.
14442 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
14443 (arm_simd_check_vect_par_cnst_half_p): Likewise.
14444 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
14446 (arm_simd_check_vect_par_cnst_half_p): Likewise.
14447 * config/arm/predicates.md (vect_par_constant_high): Support
14448 big endian and simplify by calling
14449 arm_simd_check_vect_par_cnst_half
14450 (vect_par_constant_low): Likewise.
14452 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
14454 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
14455 predicate for operand 2.
14457 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
14458 H.J. Lu <hongjiu.lu@intel.com>
14460 * config/i386/i386-protos.h (standard_sse_constant_p): Add
14461 machine_mode argument.
14462 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
14463 constm1_rtx operands. For VOIDmode constants, get mode from
14464 pred_mode. Check mode size if the mode is supported by ABI.
14465 (standard_sse_constant_opcode): Do not use standard_constant_p.
14466 Strictly check ABI support for all-ones operands.
14467 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
14468 immediates. Update calls to standard_sse_constant_p.
14469 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
14470 (ix86_rtx_costs): Ditto.
14471 * config/i386/i386.md (*movxi_internal_avx512f): Use
14472 nonimmediate_or_sse_const_operand instead of vector_move_operand.
14473 Use (v,BC) alternative instead of (v,C). Use register_operand
14474 checks instead of MEM_P.
14475 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
14476 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
14477 isa attribute. Use register_operand checks instead of MEM_P.
14478 (*movti_internal): Use nonimmediate_or_sse_const_operand for
14479 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
14480 alternative and corresponding sse2 isa attribute.
14481 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
14482 to standard_sse_constant_p.
14483 (FP constant splitters): Ditto.
14484 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
14486 * config/i386/predicates.md (constm1_operand): Remove.
14487 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
14488 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
14489 vector_all_ones_operand instead of constm1_operand.
14491 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14493 * print-rtl.c (print_rtx_insn_vec): New function.
14494 * print-rtl.h: New prototype.
14495 * store-motion.c (struct st_expr): Make avail_stores a vector.
14496 (st_expr_entry): Adjust.
14497 (free_st_expr_entry): Likewise.
14498 (print_store_motion_mems): Likewise.
14499 (find_moveable_store): Likewise.
14500 (compute_store_table): Likewise.
14501 (delete_store): Likewise.
14502 (build_store_vectors): Likewise.
14504 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14506 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
14508 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14510 * vec.h (vec_safe_contains): New function.
14511 (vec::contains): Likewise.
14512 (vec::begin): Likewise.
14513 (vec::end): Likewise.
14515 2016-04-23 Jakub Jelinek <jakub@redhat.com>
14518 * cfgexpand.c (expand_stack_vars): Fix typo.
14520 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
14522 * system.h (list, map, set, vector): Include conditionally.
14523 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
14524 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
14525 * ipa-icf.c (INCLUDE_LIST): Define.
14526 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
14527 * config/sh/sh.c (INCLUDE_VECTOR): Define.
14528 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
14529 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
14530 * cp/logic.cc (INCLUDE_LIST): Define.
14531 * fortran/trans-common.c (INCLUDE_MAP): Define.
14533 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
14535 * auto-profile.c: Remove <string.h> include.
14536 * ipa-icf-gimple.c: Remove <list> include.
14537 * diagnostic.c: Remove <new> include.
14538 * genmatch.c: Likewise.
14539 * pretty-print.c: Likewise.
14540 * toplev.c: Likewise
14541 * c/c-objc-common.c: Likewise.
14542 * cp/error.c: Likewise.
14543 * fortran/error.c: Likewise.
14545 2016-04-22 Richard Biener <rguenther@suse.de>
14547 * lto-streamer-in.c (input_ssa_names): Do not allocate
14548 GIMPLE_NOP for all SSA names.
14549 * lto-streamer-out.c (output_ssa_names): Do not output
14550 SSA names that should have been released.
14552 2016-04-22 Richard Biener <rguenther@suse.de>
14554 PR tree-optimization/70740
14555 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
14558 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
14561 * config/i386/predicates.md (call_insn_operand): Replace
14562 sibcall_memory_operand with memory_operand.
14564 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
14566 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
14567 has_single_use() tests.
14568 (register_edge_assert_for_1): Likewise.
14569 (find_assert_locations_1): Check the liveness bitmap instead of
14570 checking has_single_use().
14572 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
14575 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
14576 Extract AVX-512BW constraint from AVX.
14578 2016-04-21 Richard Biener <rguenther@suse.de>
14580 PR tree-optimization/70725
14581 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
14582 for phi_convertible_by_degenerating_args.
14583 (predicate_all_scalar_phis): Handle single-argument PHIs.
14585 2016-04-21 Richard Biener <rguenther@suse.de>
14587 PR middle-end/70747
14588 * fold-const.c (fold_comparison): Return properly typed
14591 2016-04-21 Bin Cheng <bin.cheng@arm.com>
14593 PR tree-optimization/70715
14594 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
14595 after expanding BASE using expand_simple_operations.
14597 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
14599 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
14600 New transformations.
14602 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
14604 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
14606 2016-04-20 Jan Hubicka <jh@suse.cz>
14608 * ipa-inline.c (can_inline_edge_p): Pass caller info to
14609 ultiimate_alias_target.
14610 (update_callee_keys): Likewise.
14611 (lookup_recursive_calls): Likewise.
14612 (speculation_useful_p): Likewise.
14614 2016-04-20 Jan Hubicka <jh@suse.cz>
14617 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
14618 (set_nothrow_flag_1): ... this; handle interposition correctly;
14619 recurse on aliases and thunks.
14620 (cgraph_node::set_nothrow_flag): New.
14621 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
14622 functions compiled with non-call exceptions that binds to current
14624 (propagate_nothrow): Be safe WRT interposition.
14625 * cgraph.h (set_nothrow_flag): Update prototype.
14627 2016-04-18 Jan Hubicka <jh@suse.cz>
14629 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
14630 max_loop_iterations_int.
14631 (tree_unswitch_outer_loop): Likewise.
14633 2016-04-20 Bin Cheng <bin.cheng@arm.com>
14635 PR tree-optimization/69489
14636 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
14637 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
14638 Revise dump message.
14639 (if_convertible_bb_p): Remove check on edge count of basic block's
14642 2016-04-20 Bin Cheng <bin.cheng@arm.com>
14644 PR tree-optimization/56625
14645 PR tree-optimization/69489
14646 * tree-data-ref.h (DR_INNERMOST): New macro.
14647 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
14648 hashing struct innermost_loop_behavior.
14649 (ref_DR_map): Remove.
14650 (innermost_DR_map): New map.
14651 (baseref_DR_map): Revise comment.
14652 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
14653 to innermost_DR_map accroding to its innermost loop behavior.
14654 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
14655 to its innermost loop behavior.
14656 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
14657 Add initialization for innermost_DR_map. Record memory reference
14658 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
14659 have innermost loop behavior.
14660 (if_convertible_loop_p): Remove release for ref_DR_map. Release
14663 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
14665 * config/i386/i386.md (*lea<mode>_general_1): Rename from
14666 *lea_general_1. Use explicit SWI12 mode interator.
14667 (*lea<mode>_general_2): Rename from *lea_general_2.
14668 Use explicit SWI12 mode interator.
14669 (*lea<mode>_general_3): Rename from *lea_general_3.
14670 Use explicit SWI12 mode interator.
14671 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
14672 Use explicit SWI12 mode interator.
14673 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
14674 Use explicit SWI48 mode interator.
14676 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
14678 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
14679 Short-cut unaligned load and store cases. Handle all integer
14681 (ix86_expand_vector_move_misalign): Short-cut unaligned load
14682 and store cases. Call ix86_avx256_split_vector_move_misalign
14683 directly without checking mode class.
14685 2016-04-20 Andrew Pinski <apinski@cavium.com>
14686 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14689 * config/aarch64/aarch64.md (sibcall): Force call
14690 address to be DImode for ILP32.
14691 (sibcall_value): Likewise.
14693 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
14695 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
14697 2016-04-20 Richard Biener <rguenther@suse.de>
14699 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
14700 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
14701 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
14702 (maybe_push_res_to_seq): Adjust.
14703 * gimple-fold.c (maybe_build_generic_op): Likewise.
14705 2016-04-20 Marek Polacek <polacek@redhat.com>
14707 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
14710 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
14712 * config/i386/sse.md (vec_unpacks_lo_hi): Always
14713 use kmovw to support AVX512F target.
14715 2016-04-20 Bin Cheng <bin.cheng@arm.com>
14717 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
14719 2016-04-20 Marek Polacek <polacek@redhat.com>
14721 PR tree-optimization/70725
14722 * tree-if-conv.c (is_false_predicate): New function.
14723 (predicate_mem_writes): Use it.
14725 2016-04-20 Richard Biener <rguenther@suse.de>
14727 PR tree-optimization/70726
14728 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
14729 shift amounts from a pattern stmt operand.
14731 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14734 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
14735 stack_restore_from_fpr pattern when restoring r15.
14736 (s390_optimize_prologue): Strip away the memory barrier in the
14737 parallel when trying to get rid of restore insns.
14738 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
14739 definition for loading the stack pointer from an FPR. Compared to
14740 the normal move insn this pattern includes a full memory barrier.
14742 2016-04-19 Jakub Jelinek <jakub@redhat.com>
14744 PR middle-end/70680
14745 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
14746 implicitly linear or lastprivate iterator on the outer context.
14748 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
14750 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
14752 * config/i386/i386.md (ssememalign): Removed.
14753 * config/i386/sse.md: Remove ssememalign attribute from patterns.
14755 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
14758 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
14759 const short * to __builtin_ia32_loaddquhi512_mask.
14760 (_mm512_maskz_loadu_epi16): Likewise.
14761 (_mm512_mask_storeu_epi16): Pass short * to
14762 __builtin_ia32_storedquhi512_mask.
14763 (_mm512_mask_loadu_epi8): Pass const char * to
14764 __builtin_ia32_loaddquqi512_mask.
14765 (_mm512_maskz_loadu_epi8): Likewise.
14766 (_mm512_mask_storeu_epi8): Pass char * to
14767 __builtin_ia32_storedquqi512_mask.
14768 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
14769 const double * to __builtin_ia32_loadupd512_mask.
14770 (_mm512_mask_loadu_pd): Likewise.
14771 (_mm512_maskz_loadu_pd): Likewise.
14772 (_mm512_storeu_pd): Pass double * to
14773 __builtin_ia32_storeupd512_mask.
14774 (_mm512_mask_storeu_pd): Likewise.
14775 (_mm512_loadu_ps): Pass const float * to
14776 __builtin_ia32_loadups512_mask.
14777 (_mm512_mask_loadu_ps): Likewise.
14778 (_mm512_maskz_loadu_ps): Likewise.
14779 (_mm512_storeu_ps): Pass float * to
14780 __builtin_ia32_storeups512_mask.
14781 (_mm512_mask_storeu_ps): Likewise.
14782 (_mm512_mask_loadu_epi64): Pass const long long * to
14783 __builtin_ia32_loaddqudi512_mask.
14784 (_mm512_maskz_loadu_epi64): Likewise.
14785 (_mm512_mask_storeu_epi64): Pass long long *
14786 to __builtin_ia32_storedqudi512_mask.
14787 (_mm512_loadu_si512): Pass const int * to
14788 __builtin_ia32_loaddqusi512_mask.
14789 (_mm512_mask_loadu_epi32): Likewise.
14790 (_mm512_maskz_loadu_epi32): Likewise.
14791 (_mm512_storeu_si512): Pass int * to
14792 __builtin_ia32_storedqusi512_mask.
14793 (_mm512_mask_storeu_epi32): Likewise.
14794 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
14795 char * to __builtin_ia32_storedquqi256_mask.
14796 (_mm_mask_storeu_epi8): Likewise.
14797 (_mm256_mask_loadu_epi16): Pass const short * to
14798 __builtin_ia32_loaddquhi256_mask.
14799 (_mm256_maskz_loadu_epi16): Likewise.
14800 (_mm_mask_loadu_epi16): Pass const short * to
14801 __builtin_ia32_loaddquhi128_mask.
14802 (_mm_maskz_loadu_epi16): Likewise.
14803 (_mm256_mask_loadu_epi8): Pass const char * to
14804 __builtin_ia32_loaddquqi256_mask.
14805 (_mm256_maskz_loadu_epi8): Likewise.
14806 (_mm_mask_loadu_epi8): Pass const char * to
14807 __builtin_ia32_loaddquqi128_mask.
14808 (_mm_maskz_loadu_epi8): Likewise.
14809 (_mm256_mask_storeu_epi16): Pass short * to.
14810 __builtin_ia32_storedquhi256_mask.
14811 (_mm_mask_storeu_epi16): Pass short * to.
14812 __builtin_ia32_storedquhi128_mask.
14813 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
14814 const double * to __builtin_ia32_loadupd256_mask.
14815 (_mm256_maskz_loadu_pd): Likewise.
14816 (_mm_mask_loadu_pd): Pass onst double * to
14817 __builtin_ia32_loadupd128_mask.
14818 (_mm_maskz_loadu_pd): Likewise.
14819 (_mm256_mask_storeu_pd): Pass double * to
14820 __builtin_ia32_storeupd256_mask.
14821 (_mm_mask_storeu_pd): Pass double * to
14822 __builtin_ia32_storeupd128_mask.
14823 (_mm256_mask_loadu_ps): Pass const float * to
14824 __builtin_ia32_loadups256_mask.
14825 (_mm256_maskz_loadu_ps): Likewise.
14826 (_mm_mask_loadu_ps): Pass const float * to
14827 __builtin_ia32_loadups128_mask.
14828 (_mm_maskz_loadu_ps): Likewise.
14829 (_mm256_mask_storeu_ps): Pass float * to
14830 __builtin_ia32_storeups256_mask.
14831 (_mm_mask_storeu_ps): ass float * to
14832 __builtin_ia32_storeups128_mask.
14833 (_mm256_mask_loadu_epi64): Pass const long long * to
14834 __builtin_ia32_loaddqudi256_mask.
14835 (_mm256_maskz_loadu_epi64): Likewise.
14836 (_mm_mask_loadu_epi64): Pass const long long * to
14837 __builtin_ia32_loaddqudi128_mask.
14838 (_mm_maskz_loadu_epi64): Likewise.
14839 (_mm256_mask_storeu_epi64): Pass long long * to
14840 __builtin_ia32_storedqudi256_mask.
14841 (_mm_mask_storeu_epi64): Pass long long * to
14842 __builtin_ia32_storedqudi128_mask.
14843 (_mm256_mask_loadu_epi32): Pass const int * to
14844 __builtin_ia32_loaddqusi256_mask.
14845 (_mm256_maskz_loadu_epi32): Likewise.
14846 (_mm_mask_loadu_epi32): Pass const int * to
14847 __builtin_ia32_loaddqusi128_mask.
14848 (_mm_maskz_loadu_epi32): Likewise.
14849 (_mm256_mask_storeu_epi32): Pass int * to
14850 __builtin_ia32_storedqusi256_mask.
14851 (_mm_mask_storeu_epi32): Pass int * to
14852 __builtin_ia32_storedqusi128_mask.
14853 * config/i386/i386-builtin-types.def (PCSHORT): New.
14854 (PINT64): Likewise.
14855 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
14856 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
14857 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
14858 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
14859 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
14860 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
14861 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
14862 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
14863 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
14864 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
14865 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
14866 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
14867 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
14868 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
14869 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
14870 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
14871 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
14872 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
14873 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
14874 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
14875 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
14876 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
14877 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
14878 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
14879 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
14880 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
14881 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
14882 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
14883 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
14884 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
14885 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
14886 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
14887 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
14888 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
14889 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
14890 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
14891 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
14892 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
14893 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
14894 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
14895 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
14896 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
14897 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
14898 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
14899 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
14900 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
14901 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
14902 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
14903 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
14905 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
14906 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
14908 (ix86_expand_vector_move_misalign): Likewise.
14909 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
14910 to scalar function prototype for unaligned load/store builtins.
14911 (ix86_expand_special_args_builtin): Updated.
14912 * config/i386/sse.md (UNSPEC_LOADU): Removed.
14913 (UNSPEC_STOREU): Likewise.
14914 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
14915 (VI_ULOADSTORE_F_AVX512VL): Likewise.
14916 (ssescalarsize): Handle V4TI, V2TI and V1TI.
14917 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
14918 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
14919 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
14920 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
14921 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
14922 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
14923 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
14924 (<avx512>_storedqu<mode>_mask): Likewise.
14925 (*sse4_2_pcmpestr_unaligned): Likewise.
14926 (*sse4_2_pcmpistr_unaligned): Likewise.
14927 (*mov<mode>_internal): Renamed to ...
14928 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
14929 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
14930 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
14931 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
14933 2016-04-19 Richard Biener <rguenther@suse.de>
14935 PR tree-optimization/70171
14936 * tree-ssa-phiprop.c: Include stor-layout.h.
14937 (phiprop_insert_phi): Handle the aggregate copy case.
14938 (propagate_with_phi): Likewise.
14940 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
14942 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
14943 instead of simplify_gen_subreg (... , 0).
14944 (ix86_delegitimize_address): Ditto.
14945 (ix86_split_divmod): Ditto.
14946 (ix86_split_copysign_const): Ditto.
14947 (ix86_split_copysign_var): Ditto.
14948 (ix86_expand_args_builtin): Ditto.
14949 (ix86_expand_round_builtin): Ditto.
14950 (ix86_expand_special_args_builtin): Ditto.
14951 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
14952 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
14953 (udivmodqi4): Ditto.
14954 (absneg splitters): Ditto.
14955 (*jcc_bt<mode>_1): Ditto.
14957 2016-04-19 Richard Biener <rguenther@suse.de>
14959 PR tree-optimization/70724
14960 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
14961 restoring out from ...
14962 (free_scc_vn): ... here.
14963 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
14964 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
14966 (pass_fre::execute): Restore SSA info.
14968 2016-04-19 Richard Biener <rguenther@suse.de>
14970 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
14971 * gimple-walk.c (walk_gimple_op): Initialize it.
14972 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
14973 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
14974 remapping SSA names of defs.
14975 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
14978 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
14980 PR middle-end/70689
14981 * lra-constraints.c (equiv_substition_p): New.
14982 (process_alt_operands): Use it.
14983 (swap_operands): Swap it.
14984 (curr_insn_transform): Update it.
14986 2016-04-18 Michael Matz <matz@suse.de>
14988 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
14989 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
14990 * tree-core.h (tree_type_common.align): Use bit-field.
14991 (tree_type_common.spare): New.
14992 (tree_decl_common.off_align): Make smaller.
14993 (tree_decl_common.align): Use bit-field.
14995 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
14996 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
14997 (scan_sharing_clauses): Ditto.
14998 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
14999 (omp_finish_file): Ditto.
15000 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
15001 (layout_decl): Ditto.
15002 (relayout_decl): Ditto.
15003 (finalize_record_size): Use SET_TYPE_ALIGN.
15004 (finalize_type_size): Ditto.
15005 (finish_builtin_struct): Ditto.
15006 (layout_type): Ditto.
15007 (initialize_sizetypes): Ditto.
15008 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
15009 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
15010 (lookup_field_for_decl): Use SET_DECL_ALIGN.
15011 (get_chain_field): Ditto.
15012 (get_trampoline_type): Ditto.
15013 (get_nl_goto_field): Ditto.
15014 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
15016 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
15017 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
15018 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
15019 (build_qualified_type): Use SET_TYPE_ALIGN.
15020 (build_aligned_type, build_range_type_1): Ditto.
15021 (build_atomic_base): Ditto.
15022 (build_common_tree_nodes): Ditto.
15023 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
15024 (expand_one_stack_var_at): Ditto.
15025 * coverage.c (build_var): Use SET_DECL_ALIGN.
15026 * except.c (init_eh): Ditto.
15027 * function.c (assign_parm_setup_block): Ditto.
15028 * symtab.c (increase_alignment_1): Ditto.
15029 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
15030 * tree-vect-stmts.c (ensure_base_align): Ditto.
15031 * varasm.c (align_variable): Ditto.
15032 (assemble_variable): Ditto.
15033 (build_constant_desc): Ditto.
15034 (output_constant_def_contents): Ditto.
15036 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
15037 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
15038 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
15039 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
15040 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
15042 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
15045 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
15046 replace %vmovsd with "%vmovq".
15047 (vec_concatv2df): Likewise.
15049 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
15051 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
15052 (*vec_extractv2si_0): Ditto.
15053 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
15054 (zero_extended_scalar_load_operand splitters): Ditto.
15055 (vec_extract splitters): Ditto.
15056 (*vec_extractv4si_0_zext): Ditto.
15057 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
15058 and lowpart_subreg.
15059 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
15060 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
15061 (*sse4_1_extractps): Use lowpart_subreg.
15062 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
15064 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15066 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
15068 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
15069 Mention Solaris 11 packaging changes.
15070 Update gas and gld requirements.
15071 Remove reference to pre-Solaris 10 bug.
15072 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
15074 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
15077 2016-04-17 Jan Hubicka <jh@suse.cz>
15079 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
15080 max_loop_iterations_int.
15082 2016-04-18 Richard Biener <rguenther@suse.de>
15084 PR tree-optimization/43434
15085 * tree-ssa-structalias.c (struct vls_data): New.
15086 (visit_loadstore): Handle all pointer-based accesses.
15087 (compute_dependence_clique): Compute a bitmap of restrict tags
15088 assigned bases and pass it to visit_loadstore.
15090 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
15093 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
15094 armv8.1-a and armv8.1-a+crc.
15096 2016-04-18 Richard Biener <rguenther@suse.de>
15098 PR tree-optimization/70701
15099 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
15100 references after translating through a memcpy.
15102 2016-04-18 Richard Biener <rguenther@suse.de>
15104 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
15105 (compute_antic): ... here. For partial antic use regular
15106 postorder and scrap iteration.
15107 (compute_partial_antic_aux): Remove unused return value.
15108 (init_pre): Do not allocate postorder.
15109 (fini_pre): Do not free postorder.
15111 2016-04-18 Richard Biener <rguenther@suse.de>
15113 PR middle-end/37870
15114 * expmed.c (extract_bit_field_1): Remove broken case
15115 using a wider MODE_INT mode.
15117 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
15119 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
15120 unless compiling with at least GCC-4.8.
15122 2016-04-17 Jan Hubicka <jh@suse.cz>
15125 * graphite.c (graphite_finalize): Update call to
15126 tree_estimate_probability.
15127 * predict.h (tree_estimate_probability): Update prototype.
15129 2016-04-17 Jan Hubicka <jh@suse.cz>
15131 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
15132 (tree_estimate_probability): Likewise.
15133 (pass_profile::execute): Update.
15134 (report_predictor_hitrates): New function.
15135 * profile.c (compute_branch_probabilities): Use it.
15136 * predict.h (report_predictor_hitrates): Declare.
15138 2016-04-17 Jan Hubicka <jh@suse.cz>
15141 * cgraph.h (cgraph_node::set_const_flag,
15142 cgraph_node::set_pure_flag): Update prototype to return bool;
15144 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
15145 of interposable symbol are interposable, too.
15146 (cgraph_set_const_flag_1): Rename to ...
15147 (set_const_flag_1): ... this one; change to self recursive function
15148 instead of call_for_symbol_thunks_and_aliases. Handle correctly
15149 clearnig the flag in all variants and also virtual thunks of const
15150 functions are pure; track if any change was done.
15151 (cgraph_node::set_const_flag): Update.
15152 (struct set_pure_flag_info): New struct.
15153 (cgraph_set_pure_flag_1): Rename to ...
15154 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
15155 rather than pointer encoded flags; track if any changes was done;
15156 handle correctly clearning flag and setting flag of aliases already
15158 (cgraph_node::set_pure_flag): Update.
15159 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
15161 2016-04-17 Tom de Vries <tom@codesourcery.com>
15164 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
15165 backslash in label.
15167 2016-04-17 Tom de Vries <tom@codesourcery.com>
15169 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
15170 '{}<> ' as escape-for-record.
15172 2016-04-17 Tom de Vries <tom@codesourcery.com>
15174 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
15177 2016-04-17 Tom de Vries <tom@codesourcery.com>
15180 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
15181 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
15182 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
15183 * passes.c (finish_optimization_passes): Only call
15184 finish_graph_dump_file if dfi->graph_dump_initialized.
15185 (execute_function_dump, pass_init_dump_file): Use
15186 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
15188 2016-04-17 Tom de Vries <tom@codesourcery.com>
15190 PR tree-optimization/70256
15191 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
15192 (debug_varmap): New function.
15194 2016-04-17 Tom de Vries <tom@codesourcery.com>
15197 * passes.c (pass_manager::register_pass): Propagate pflags.
15199 2016-04-17 Tom de Vries <tom@codesourcery.com>
15202 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
15203 * passes.c (pass_manager::pass_manager): Declare and init p_start in
15204 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
15205 check if it's equal to p_start.
15206 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
15208 2016-04-15 Jan Hubicka <jh@suse.cz>
15211 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
15212 function does not bind to current def.
15213 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
15214 handle conservatively calls to functions that does not need to bind
15216 (check_call): Update call of worse_state.
15217 (ignore_edge_for_nothrow): Update.
15218 (ignore_edge_for_pure_const): Likewise.
15219 (propagate_pure_const): Update calls to worse_state.
15220 (skip_function_for_local_pure_const): Reformat comments.
15222 2016-04-15 Jan Hubicka <jh@suse.cz>
15225 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
15226 (cgraph_node::function_symbol): Likewise.
15227 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
15228 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
15229 (symtab_node::ultimate_alias_target): Add REF parameter.
15230 (symtab_node::binds_to_current_def_p): Declare.
15231 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
15232 (cgraph_node::function_symbol): Likewise.
15233 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
15234 (cgraph_node::get_availability): Likewise.
15235 (cgraph_edge::binds_to_current_def_p): New inline function.
15236 (varpool_node::get_availability): Add REF parameter.
15237 (varpool_node::ultimate_alias_target): Likewise.
15238 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
15239 (symtab_node::binds_to_current_def_p): Likewise.
15240 * varpool.c (varpool_node::get_availability): Likewise.
15242 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
15245 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
15246 Fix mode size check.
15248 2016-04-15 Jakub Jelinek <jakub@redhat.com>
15250 * BASE-VER: Set to 7.0.0.
15252 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
15254 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
15256 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15258 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
15259 architecture revisions.
15261 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
15263 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
15264 * config/i386/i386.c (ix86_using_red_zone): No longer static.
15265 * config/i386/i386.md (stack decrement to push peepholes): Guard
15266 with !x86_using_red_zone ().
15268 2016-04-15 Jakub Jelinek <jakub@redhat.com>
15271 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
15272 to dump_generic_node.
15273 (NIY): Pass also flags to do_niy.
15275 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
15277 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
15278 (simd_clone_vector_of_formal_parm_types)
15279 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
15280 (simd_clone_mangle, simd_clone_create)
15281 (simd_clone_adjust_return_type, create_tmp_simd_array)
15282 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
15283 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
15284 (ipa_simd_modify_function_body, simd_clone_linear_addend)
15285 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
15286 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
15287 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
15288 * omp-simd-clone.c: ... this new file.
15289 (simd_clone_vector_of_formal_parm_types): Make it static.
15290 * Makefile.in (OBJS): Add omp-simd-clone.o.
15292 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
15295 * config/i386/sse.md: Use proper memory operand modifiers.
15298 2016-04-15 Richard Biener <rguenther@suse.de>
15299 Alan Modra <amodra@gmail.com>
15301 PR tree-optimization/70130
15302 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
15303 when alignment stays not the same and no not use the realign
15306 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
15309 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
15310 direct move handlers for KFmode. Change TFmode handlers test from
15311 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
15313 2016-04-14 Jakub Jelinek <jakub@redhat.com>
15316 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
15317 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
15318 (inlined_polymorphic_ctor_dtor_block_p): Use it.
15319 * tree-ssa-live.c (remove_unused_scope_block_p): When
15320 in_ctor_dtor_block, avoid discarding not just BLOCKs with
15321 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
15322 block_ultimate_origin is FUNCTION_DECL.
15323 (remove_unused_locals): If current_function_decl is
15324 polymorphic_ctor_dtor_p, pass initial true to
15325 remove_unused_scope_block_p' is_ctor_dtor_block.
15327 2016-04-14 Martin Sebor <msebor@redhat.com>
15332 * doc/extend.texi (Variable Length): Revert.
15334 2016-04-14 Marek Polacek <polacek@redhat.com>
15335 Jan Hubicka <hubicka@ucw.cz>
15338 * tree.c (verify_type): Disable the canonical type of main variant
15341 2016-04-14 Jason Merrill <jason@redhat.com>
15343 * cfgexpand.c, expr.c: Revert previous change.
15345 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
15347 PR middle-end/70643
15348 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
15349 when building a mem ref for the incoming reduction variable.
15351 2016-04-14 Richard Biener <rguenther@suse.de>
15353 PR tree-optimization/70614
15354 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
15355 loop if the evolution dropped to chrec_dont_know.
15356 (interpret_condition_phi): Likewise.
15358 2016-04-14 Richard Biener <rguenther@suse.de>
15360 PR tree-optimization/70623
15361 * tree-ssa-pre.c (changed_blocks): Make global ...
15362 (compute_antic): ... local here. Move and fix worklist
15363 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
15364 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
15365 worklist handling, dump when ANTIC_IN changed.
15366 (compute_partial_antic_aux): Remove worklist handling.
15367 (init_pre): Do not compute post dominators. Add a comment about
15368 the CFG order chosen.
15369 (fini_pre): Do not free post dominators.
15371 2016-04-13 Martin Sebor <msebor@redhat.com>
15376 * doc/extend.texi (Variable Length): Document C++ specifics.
15378 2016-04-13 Jakub Jelinek <jakub@redhat.com>
15381 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
15382 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
15383 eh edges have been purged.
15386 * tree-sra.c (create_access_replacement,
15387 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
15389 * tree-pretty-print.c (dump_fancy_name): New function.
15390 (dump_decl_name, dump_generic_node): Use it.
15392 2016-04-13 Jason Merrill <jason@redhat.com>
15394 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
15395 * expr.c (expand_expr_real_1): Likewise.
15397 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
15399 * config/i386/i386.md (kunpckhi): Swap operands.
15400 (kunpcksi): Likewise.
15401 (kunpckdi): Likewise.
15402 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
15403 (vec_pack_trunc_<mode>): Likewise.
15405 2016-04-13 Jakub Jelinek <jakub@redhat.com>
15408 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
15410 PR middle-end/70633
15411 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
15412 gimplification turns some element into non-constant.
15415 * rtl.h (convert_memory_address_addr_space_1): New prototype.
15416 * explow.c (convert_memory_address_addr_space_1): No longer static,
15417 add NO_EMIT argument and don't call convert_modes if true, pass
15418 it down recursively, remove break after return.
15419 (convert_memory_address_addr_space): Adjust caller.
15420 * simplify-rtx.c (simplify_unary_operation_1): Call
15421 convert_memory_address_addr_space_1 instead of convert_memory_address,
15422 if it returns NULL, don't simplify.
15424 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
15427 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
15429 2016-04-12 Jakub Jelinek <jakub@redhat.com>
15431 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15432 Bump the upper SIMDLEN limits, so that if the return type or
15433 characteristic type if the return type is void can be passed in
15434 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
15437 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
15440 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
15441 Do not use "=" constraint on an input constraint.
15442 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
15443 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
15444 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
15445 generates (neg (abs ...)) instead of (abs ...).
15447 2016-04-12 Jakub Jelinek <jakub@redhat.com>
15449 PR rtl-optimization/70596
15450 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
15451 just invalidate LRA data and reset them. Adjust dump wording.
15453 2016-04-12 Martin Liska <mliska@suse.cz>
15456 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
15458 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
15460 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
15461 max_loop_iterations_int.
15462 (tree_unswitch_outer_loop): Likewise.
15463 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
15464 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
15466 2016-04-12 Tom de Vries <tom@codesourcery.com>
15468 PR tree-optimization/68756
15469 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
15470 instead of new_name.
15472 2016-04-12 Jakub Jelinek <jakub@redhat.com>
15474 PR tree-optimization/70602
15475 * tree-sra.c (generate_subtree_copies): Don't write anything into
15476 constant pool decls.
15478 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
15479 regardless whether there are depend clauses or not.
15481 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
15484 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
15485 target attribute and pragma from changing the -mfloat128
15486 and -mfloat128-hardware options.
15488 * doc/extend.texi (Additional Floating Types): Document PowerPC
15489 __float128 restrictions.
15491 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15494 * config/aarch64/driver-aarch64.c
15495 (aarch64_get_extension_string_for_isa_flags): New.
15496 (arch_extension): Rename to...
15497 (aarch64_arch_extension): ...This.
15498 (ext_to_feat_string): Rename to...
15499 (aarch64_extensions): ...This.
15500 (aarch64_core_data): Keep track of architecture extension flags.
15501 (cpu_data): Rename to...
15502 (aarch64_cpu_data): ...This.
15503 (aarch64_arch_driver_info): Keep track of architecture extension
15505 (get_arch_name_from_id): Rename to...
15506 (get_arch_from_id): ...This, change return type.
15507 (host_detect_local_cpu): Update and reformat for renames, handle
15508 extensions through common infrastructure.
15510 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15513 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
15514 track of a canonical flag name.
15515 (all_extensions): Likewise.
15516 (arch_to_arch_name): Also track extension flags enabled by the arch.
15517 (all_architectures): Likewise.
15518 (aarch64_parse_extension): Move to here.
15519 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
15521 (aarch64_rewrite_selected_cpu): Update for above change.
15522 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
15523 are handled, such that the single explicit value enabled by an
15524 extension is kept seperate from the implicit values it also enables.
15525 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
15527 (aarch64_parse_extension): New.
15528 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
15529 here to config/aarch64/aarch64-protos.h.
15530 (aarch64_parse_extension): Move from here to
15531 common/config/aarch64/aarch64-common.c.
15532 (aarch64_option_print): Update.
15533 (aarch64_declare_function_name): Likewise.
15534 (aarch64_start_file): Likewise.
15535 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
15536 the canonical flag for extensions.
15537 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
15540 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15542 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
15545 2016-04-09 Tom de Vries <tom@codesourcery.com>
15547 PR tree-optimization/68953
15548 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
15549 first to last subscript.
15551 2016-04-09 Jakub Jelinek <jakub@redhat.com>
15553 PR tree-optimization/70586
15554 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
15557 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
15561 PR tree-optimization/70373
15562 PR middle-end/70533
15563 PR middle-end/70534
15564 PR middle-end/70535
15565 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
15566 clauses for acc parallel reductions as necessary. Error on those
15568 * omp-low.c (scan_sharing_clauses): Don't install variables which
15569 are used in acc parallel reductions.
15570 (lower_rec_input_clauses): Remove dead code.
15571 (lower_oacc_reductions): Add support for reference reductions.
15572 (lower_reduction_clauses): Remove dead code.
15573 (lower_omp_target): Don't remap variables appearing in acc parallel
15575 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
15577 2016-04-08 Jakub Jelinek <jakub@redhat.com>
15579 PR middle-end/70593
15580 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
15581 with multiple SSA_NAME defs, force the outputs other than first
15582 to be live before calling live_track_process_def on each output.
15584 PR rtl-optimization/70574
15585 * fwprop.c (forward_propagate_and_simplify): Don't add
15586 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
15587 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
15588 paradoxical subregs within *loc.
15590 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
15592 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
15593 -ftree-parallelize-loops={0,1}.
15594 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
15595 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
15596 * config/ia64/hpux.h (LIB_SPEC): Likewise.
15597 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
15598 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
15600 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
15603 * asan.c (instrument_derefs): If we get unknown location, extract it
15604 with EXPR_LOCATION.
15605 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
15607 2016-04-08 Tom de Vries <tom@codesourcery.com>
15609 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
15610 implicit firstprivate clause.
15612 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15615 * config/arm/thumb2.md (tst + branch-> lsls + branch
15616 peephole below *orsi_not_shiftsi_si): Require that condition
15617 register is dead after the peephole.
15618 (second peephole after the above): Likewise.
15620 2016-04-08 Alan Modra <amodra@gmail.com>
15623 * builtins.c (fold_builtin_classify): For IBM extended precision,
15624 look at just the high-order double to test for NaN.
15625 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
15626 test just the high double for Inf but both doubles for subnormal
15629 2016-04-07 Jakub Jelinek <jakub@redhat.com>
15631 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
15632 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
15633 node->simdclone->mask_mode != VOIDmode masks.
15634 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
15635 earlier, use it instead of node->simdclone.
15636 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15637 Set clonei->mask_mode.
15639 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
15642 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
15643 Pass it through to cp_parser_already_scoped_statement.
15644 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
15645 it through to cp_parser_statement.
15646 (cp_parser_statement): Pass IF_P through to
15647 cp_parser_iteration_statement.
15648 (cp_parser_pragma): Adjust call to
15649 cp_parser_iteration_statement.
15651 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
15654 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
15655 resolve a future -Wparentheses warning.
15656 * omp-low.c (scan_sharing_clauses): Likewise.
15657 * tree-parloops.c (eliminate_local_variables): Likewise.
15659 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
15661 PR rtl-optimization/70398
15662 * lra-constraints.c (process_address_1): Check zero scale and code
15663 for reloading with zero scale.
15665 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
15667 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
15668 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
15670 2016-04-06 Jakub Jelinek <jakub@redhat.com>
15672 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
15673 Add support for AVX512F clones, include them by default for
15674 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
15675 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
15678 PR middle-end/70550
15679 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
15680 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
15681 firstprivate clauses.
15682 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
15683 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
15684 (lower_omp_target): Set TREE_NO_WARNING for
15685 non-addressable possibly uninitialized vars which are copied into
15686 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
15688 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
15690 * config/pa/predicates.md (integer_store_memory_operand): Accept
15691 REG+D operands with a large offset when reload_in_progress is true.
15692 (floating_point_store_memory_operand): Likewise.
15694 2016-04-05 Jakub Jelinek <jakub@redhat.com>
15697 * match.pd (nested int casts): Limit to GIMPLE.
15699 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
15702 * ipa-devirt.c (maybe_record_node): Fix comment; use
15703 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
15705 2016-04-05 Jakub Jelinek <jakub@redhat.com>
15707 PR rtl-optimization/70542
15708 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
15709 if there are any uses other than insn or debug insns.
15711 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
15712 Jakub Jelinek <jakub@redhat.com>
15714 PR tree-optimization/70509
15715 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
15716 Shift HOST_WIDE_INT_1U instead of 1.
15718 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
15720 PR tree-optimization/70509
15721 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
15722 of the vector base type for index.
15724 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
15727 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
15729 2016-04-05 Richard Biener <rguenther@suse.de>
15731 PR tree-optimization/70526
15732 * tree-sra.c (build_ref_for_offset): Use prev_base to
15733 extract the alias pointer type.
15735 2016-04-05 Richard Biener <rguenther@suse.de>
15737 * dse.c (struct store_info): Remove alias_set member.
15738 (struct read_info_type): Likewise.
15739 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
15740 spill_deleted, clear_alias_set_lookup): Remove.
15741 (get_group_info): Remove dead base == NULL_RTX case.
15742 (dse_step0): Remove initialization of removed variables.
15743 (delete_dead_store_insn): Reomve alias set dumping.
15744 (free_read_records): Remove alias_set handling.
15745 (canon_address): Remove alias_set_out parameter.
15746 (record_store): Remove spill_alias_set, it's always zero.
15747 (check_mem_read_rtx): Likewise.
15748 (dse_step2): Rename from ...
15749 (dse_step2_nospill): ... this. Adjust.
15750 (scan_stores): Rename from ...
15751 (scan_stores_nospill): ... this.
15752 (scan_reads): Rename from ...
15753 (scan_reads_nospill): ... this.
15754 (scan_stores_spill, scan_reads_spill): Remove.
15755 (dse_step3_scan): Remove for_spills argument which is always false.
15756 (dse_step3): Likewise.
15757 (dse_step5): Rename from ...
15758 (dse_step5_nospill): ... this. Remove alias_set handling.
15759 (rest_of_handle_dse): Adjust.
15761 2016-04-05 Jakub Jelinek <jakub@redhat.com>
15764 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
15765 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
15766 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
15767 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
15769 2016-04-05 Richard Biener <rguenther@suse.de>
15771 PR middle-end/70499
15772 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
15773 non-register type temporaries into SSA.
15775 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
15778 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
15779 calls when sanitizing.
15780 (possible_polymorphic_call_target_p): Fix formatting.
15782 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15783 Jakub Jelinek <jakub@redhat.com>
15785 PR middle-end/70457
15786 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
15787 to ensure a call statement is compatible with a built-in's
15789 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
15792 2016-04-04 Richard Biener <rguenther@suse.de>
15794 PR rtl-optimization/70484
15795 * rtl.h (canon_output_dependence): Declare.
15796 * alias.c (canon_output_dependence): New function.
15797 * dse.c (record_store): Use canon_output_dependence rather
15798 than canon_true_dependence.
15800 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
15803 * cgraph.h (symtab_node::copy_visibility_from): New function.
15804 * symtab.c (symtab_node::copy_visibility_from): New function.
15805 * ipa-visibility.c (optimize_weakref): New function.
15806 (function_and_variable_visibility): Use it.
15808 2016-04-04 Martin Liska <mliska@suse.cz>
15811 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
15812 value that is really in range handled by SBR instruction.
15813 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
15814 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
15815 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
15817 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
15821 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
15822 set, but not for SP_REG operands.
15824 2016-04-02 Martin Sebor <msebor@redhat.com>
15827 * fold-const.c (maybe_nonzero_address): New function.
15828 (fold_comparison): Call it. Fold equality and relational
15829 expressions involving null pointers.
15830 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
15832 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
15834 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
15835 the "Y" constraint (scalar FP 0.0 immediate).
15837 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
15838 Add the "const_double" to the list of operand constraints.
15840 2016-04-01 Jakub Jelinek <jakub@redhat.com>
15842 PR rtl-optimization/70467
15843 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
15844 If low word of the last operand is 0, just emit addition/subtraction
15847 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15850 * config/s390/s390.c (s390_expand_insv): Check for everything
15851 constant instead of just VOIDmode stuff.
15853 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15856 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
15858 2016-04-01 Nathan Sidwell <nathan@acm.org>
15860 * tree.def (TRY_CATCH_EXPR): Correct documentation.
15862 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
15864 PR rtl-optimization/70461
15865 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
15868 2016-03-31 Martin Liska <mliska@suse.cz>
15871 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
15872 a tree value or an immediate integer value to a buffer
15873 that is eventually copied to a BRIG section.
15874 (emit_immediate_operand): Call the function here.
15875 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
15876 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
15877 of class' fields that are removed.
15878 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
15879 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
15880 m_brig_repr_size fields.
15882 2016-03-31 Martin Liska <mliska@suse.cz>
15885 * hsa-gen.c (hsa_function_representation::update_dominance): New
15887 (convert_addr_to_flat_segment): Likewise.
15888 (gen_hsa_memory_set): New alignment argument.
15889 (gen_hsa_ctor_assignment): Likewise.
15890 (gen_hsa_insns_for_single_assignment): Provide alignment
15891 to gen_hsa_ctor_assignment.
15892 (gen_hsa_insns_for_direct_call): Add new argument.
15893 (expand_lhs_of_string_op): New function.
15894 (expand_string_operation_builtin): Likewise.
15895 (expand_memory_copy): New function.
15896 (expand_memory_set): New function.
15897 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
15898 (convert_switch_statements): Change signature.
15899 (generate_hsa): Use a return value of the function.
15900 (pass_gen_hsail::execute): Do not call
15901 convert_switch_statements here.
15902 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
15903 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
15904 (hsa_function_representation::update_dominance): New function.
15906 2016-03-31 Martin Liska <mliska@suse.cz>
15909 * hsa-brig.c (emit_directive_variable): Emit alignment
15910 according to hsa_symbol::m_align.
15911 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
15912 (dump_hsa_symbol): Dump alignment of HSA symbols.
15913 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
15914 (gen_hsa_addr_with_align): New function.
15915 (hsa_bitmemref_alignment): Use newly added function.
15916 (gen_hsa_insns_for_load): Likewise.
15917 (gen_hsa_insns_for_store): Likewise.
15918 (gen_hsa_memory_copy): New argument added.
15919 (gen_hsa_insns_for_single_assignment): Respect
15920 alignment for assignments processed via gen_hsa_memory_copy.
15921 (gen_hsa_insns_for_direct_call): Likewise.
15922 (gen_hsa_insns_for_return): Likewise.
15923 (gen_function_def_parameters): Set default alignment.
15924 * hsa.c (hsa_object_alignment): New function.
15925 (hsa_byte_alignment): Pasted function.
15926 * hsa.h (hsa_symbol::m_align): New field.
15928 2016-03-31 Bin Cheng <bin.cheng@arm.com>
15930 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
15931 scratch field for goto case.
15933 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
15935 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
15937 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
15940 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
15941 (scalar_chain::convert_insn): Call convert_op for reg
15942 moves to handle undefined registers.
15944 2016-03-31 Nathan Sidwell <nathan@acm.org>
15947 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
15948 Assert we don't want to move backwards.
15950 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
15953 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
15955 2016-03-31 Jakub Jelinek <jakub@redhat.com>
15957 PR rtl-optimization/70460
15958 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
15959 with operand from REG_LABEL_OPERAND, instead substitute
15960 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
15961 Don't do anything for REG_NON_LOCAL_GOTO jumps.
15963 2016-03-31 Martin Liska <mliska@suse.cz>
15965 * passes.c (execute_one_pass): Do not call
15966 todo_after for a discarded function.
15968 2016-03-31 Bin Cheng <bin.cheng@arm.com>
15970 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
15971 (no_cost, infinite_cost): Initialize the new field.
15972 (get_computation_cost_at): Record setup cost.
15973 (determine_use_iv_cost_address): Skip cost computation for sub
15974 uses if we can estimate it without losing accuracy.
15976 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
15978 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
15980 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
15981 max_loop_iterations_int.
15982 (tree_unswitch_outer_loop): Likewise.
15983 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
15984 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
15986 2016-03-30 Richard Biener <rguenther@suse.de>
15988 PR middle-end/70450
15989 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
15991 2016-03-30 Jakub Jelinek <jakub@redhat.com>
15994 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
15995 in gen_blendm expander.
15997 2016-03-30 Nick Clifton <nickc@redhat.com>
16000 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
16001 case where we are already provided with an SImode SUBREG.
16003 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
16006 * config/i386/i386.c (ix86_expand_epilogue): Properly check
16007 conflict between DRAP register and __builtin_eh_return.
16009 2016-03-30 Michael Matz <matz@suse.de>
16010 Richard Biener <rguenther@suse.de>
16013 * ipa-polymorphic-call.c (struct type_change_info): Change
16014 speculative to an unsigned allowing to limit the work we do.
16015 (csftc_abort_walking_p): New inline function..
16016 (check_stmt_for_type_change): Limit the number of may-defs
16017 skipped for speculative devirtualization to
16018 max-speculative-devirt-maydefs.
16019 * params.def (max-speculative-devirt-maydefs): New param.
16020 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
16022 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
16025 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
16028 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
16030 PR tree-optimization/59124
16031 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
16032 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
16034 2016-03-29 Jeff Law <law@redhat.com>
16036 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
16038 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16040 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
16043 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
16045 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
16046 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
16047 gcrt0.o if linking dynamically.
16049 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16052 * ipa-devirt.c (methods_equal_p): New function.
16053 (compare_virtual_tables): Use it.
16054 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
16055 * cgraphclones.c (clone_function_name_1): Use
16056 symbol_table::symbol_suffix_separator.
16057 * coverage.c (build_var): Likewise.
16058 * symtab.c (symbol_table::symbol_suffix_separator): New.
16060 2016-03-29 Jakub Jelinek <jakub@redhat.com>
16062 PR rtl-optimization/70429
16063 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
16064 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
16065 mode != result_mode.
16068 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
16070 PR tree-optimization/70405
16071 * ssa-iterators.h (num_imm_uses): Add missing braces.
16073 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
16075 PR rtl-optimization/68695
16076 * ira-color.c (allocno_copy_cost_saving): New.
16077 (improve_allocation): Use it.
16079 2016-03-29 Richard Henderson <rth@redhat.com>
16081 PR middle-end/70355
16082 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
16084 2016-03-29 Richard Biener <rguenther@suse.de>
16086 PR middle-end/70424
16087 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
16088 use alignment returned by get_pointer_alignment_1 if it is
16089 bigger than BITS_PER_UNIT.
16090 * builtins.c (get_pointer_alignment_1): Do not return true
16091 for alignment extracted from SSA info.
16093 2016-03-28 James Bowman <james.bowman@ftdichip.com>
16095 * config/ft32/ft32.opt (mnodiv): New.
16096 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
16097 * doc/invoke.texi (FT32 Options -mnodiv): New.
16099 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
16102 * config/i386/i386.md (define_split, andn): Fix modes.
16104 2016-03-26 Richard Biener <rguenther@suse.de>
16105 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16108 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
16110 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
16111 as 2nd argument to cl_optimization_restore().
16113 2016-03-25 Richard Henderson <rth@redhat.com>
16116 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
16117 * config/aarch64/aarch64-protos.h: Declare it.
16118 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
16120 2016-03-25 Alan Modra <amodra@gmail.com>
16123 * config/rs6000/constraints.md (j): Simplify.
16124 * config/rs6000/predicates.md (easy_fp_constant): Exclude
16126 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
16127 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
16128 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
16129 in all constraint alternatives.
16130 (movtd_64bit_nodm): Delete "j" constraint alternative.
16132 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
16134 * tree-ssa-propagate.c: Enhance docs for
16135 SSA_PROP_NOT_INTERESTING.
16137 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
16139 * doc/extend.texi: Fix typo in documentation to pure attribute.
16141 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
16144 * config/pa/pa.md (bswapdi2): Use a scratch register.
16146 2016-03-24 Richard Henderson <rth@redhat.com>
16148 PR middle-end/69845
16149 * fold-const.c (extract_muldiv_1): Correct test for multiplication
16152 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
16154 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
16155 using ix86_expand_binary_operator instead of gen_andsi3.
16157 2016-03-24 Richard Biener <rguenther@suse.de>
16159 PR tree-optimization/70396
16160 * tree-vect-stmts.c (vectorizable_comparison): Use
16161 get_vectype_for_scalar_type.
16163 2016-03-24 Richard Biener <rguenther@suse.de>
16165 PR middle-end/70370
16166 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
16167 with register bases.
16169 2016-03-24 Richard Biener <rguenther@suse.de>
16171 PR tree-optimization/70372
16172 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
16173 build_all_ones_cst to also handle vector types correctly.
16175 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
16178 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
16181 2016-03-23 Marek Polacek <polacek@redhat.com>
16184 * doc/invoke.texi: Document -Wignored-attributes.
16186 2016-03-23 Bin Cheng <bin.cheng@arm.com>
16188 PR tree-optimization/69042
16189 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
16190 parameter from 30 to 40.
16192 2016-03-23 Bin Cheng <bin.cheng@arm.com>
16194 PR tree-optimization/69042
16195 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
16196 for use with constant offset stripped in base.
16198 2016-03-23 Richard Biener <rguenther@suse.de>
16200 PR middle-end/70251
16201 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
16202 mode compatibility check.
16203 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16205 2016-03-23 Jeff Law <law@redhat.com>
16207 PR tree-optimization/64058
16208 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
16210 (struct ssa_conflicts): Move up earlier in the file.
16211 (conflicts_, var_map_): New static variables.
16212 (initialize_conflict_count): New function to initialize the
16213 CONFLICT_COUNT field for each conflict pair.
16214 (compare_pairs): Lazily initialize the conflict count and use it
16215 as the first tie-breaker.
16216 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
16217 and wipe conflicts_ and map_ around the call to qsort. Remove
16218 special case for 2 coalesce pairs.
16219 * bitmap.c (bitmap_count_unique_bits): New function.
16220 (bitmap_count_bits_in_word): New function, extracted from
16222 (bitmap_count_bits): Use bitmap_count_bits_in_word.
16223 * bitmap.h (bitmap_count_unique_bits): Declare it.
16225 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
16228 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
16229 transparent alias chain for decl assembler name.
16230 * config/sol2.c (solaris_assemble_visibility): Likewise.
16232 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16234 * config/arm/arm1020e.md (1020call_op): Reduce reservation
16236 (v10_fdivs): Likewise.
16237 (v10_fdivd): Likewise.
16239 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16242 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
16243 to not call fclose twice on file.
16245 2016-03-23 Jakub Jelinek <jakub@redhat.com>
16247 PR tree-optimization/70354
16248 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
16249 oprnd0 is wider than oprnd1 and there is a cast from the wider
16250 type to oprnd1, mask it with the mask of the narrower type.
16253 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
16254 Optimize TARGET_STV splitters, if high or low word of last argument
16257 2016-03-22 Jeff Law <law@redhat.com>
16260 tree-ssa-threadbackward.c
16261 (fsm_find_control_statement_thread_paths): Correctly distinguish
16262 between old style jump threads vs FSM jump threads.
16264 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
16267 * config/i386/i386.c (scalar_chain::convert_op): Support
16268 uninitialized register usage case.
16270 2016-03-22 Richard Biener <rguenther@suse.de>
16272 PR middle-end/70251
16273 * genmatch.c (gen_transform): Adjust last parameter to a three-state
16275 (capture::gen_transform): ... to change behavior when substituting
16276 a condition into cond or not-cond expr context.
16277 (dt_simplify::gen_1): Adjust.
16278 * gimple-match-head.c: Include gimplify.h for unshare_expr.
16279 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
16280 last change and instead change to
16281 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
16282 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16284 2016-03-22 Anthony Green <green@moxielogic.com>
16286 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
16287 issue for moxiebox targets.
16288 (CC1PLUS_SPEC): Ditto.
16290 2016-03-22 Richard Biener <rguenther@suse.de>
16292 PR middle-end/70333
16293 * fold-const.c (extract_muldiv_1): Properly perform multiplication
16296 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
16298 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
16300 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
16303 * config/i386/i386.c (def_builtin): Handle
16304 OPTION_MASK_ISA_AVX512VL to be and-ed with other
16306 (const struct builtin_description bdesc_special_args[]):
16307 Remove duplicate ISA bits.
16309 2016-03-22 Jakub Jelinek <jakub@redhat.com>
16312 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
16313 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
16314 in a way that works also for AVX512BW.
16317 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
16318 instead of source if operands[1] is xmm16 and above and
16319 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
16320 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
16323 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
16324 on assign if (*from_p) is a comparison, set it to
16325 TREE_NO_WARNING (*from_p).
16327 2016-03-21 Jakub Jelinek <jakub@redhat.com>
16329 PR middle-end/70326
16330 * lra.c (restore_scratches): Ignore deleted insns.
16332 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
16333 Jakub Jelinek <jakub@redhat.com>
16335 PR tree-optimization/70317
16336 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
16339 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
16342 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
16343 of ix86_expand_move.
16345 (movti): Use general_operand for operand 1 predicate.
16347 2016-03-21 Martin Liska <mliska@suse.cz>
16349 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
16351 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
16353 2016-03-21 Martin Liska <mliska@suse.cz>
16356 * ipa-icf.c (sem_function::parse): Skip static
16357 constructors and destructors.
16359 2016-03-21 Jakub Jelinek <jakub@redhat.com>
16362 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
16363 function-like macro, peek following token(s) if it is followed
16364 by CPP_OPEN_PAREN token with optional padding in between, and
16365 if not, don't treat it like a macro.
16367 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
16368 Alexander Monakov <amonakov@ispras.ru>
16370 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
16371 for the stabs debug format.
16373 2016-03-21 Richard Biener <rguenther@suse.de>
16375 PR tree-optimization/70310
16376 * tree-vect-generic.c (expand_vector_condition): Fold the built
16379 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
16382 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
16383 Block third alternative for AVX-512VL target,
16385 2016-03-21 Martin Liska <mliska@suse.cz>
16388 * hsa-brig.c (emit_function_directives): Mark unemitted
16389 global variables for emission.
16390 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
16391 (get_symbol_for_decl): Likewise.
16392 * hsa.h (struct hsa_symbol): New flag.
16394 2016-03-21 Richard Biener <rguenther@suse.de>
16396 PR tree-optimization/70288
16397 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
16398 we do not estimate unsimplified all-constant conditionals or
16399 switches as optimized away.
16401 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
16403 PR rtl-optimization/69102
16404 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
16405 when we have a readonly dependency context.
16407 2016-03-18 Jeff Law <law@redhat.com>
16409 PR rtl-optimization/70263
16410 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
16411 (update_equiv_regs): When trying to move a store to after the insn
16412 that sets the source of the store, make sure the store occurs after
16413 the insn that sets the source of the store. When successful note
16414 the REG_EQUIV note created in the dump file.
16416 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
16417 Bernd Schmidt <bschmidt@redhat.com>
16419 * doc/extend.texi: Document more potential problems with basic asms.
16421 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
16423 PR rtl-optimization/70278
16424 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
16427 2016-03-18 Jason Merrill <jason@redhat.com>
16429 * calls.c (load_register_parameters): Fix zero size sibcall logic.
16431 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
16433 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
16434 values to 128b regs.
16436 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
16438 PR tree-optimization/70252
16439 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
16440 boolean vector has a proper number of elements.
16441 (supportable_narrowing_operation): Likewise.
16443 2016-03-18 Tom de Vries <tom@codesourcery.com>
16446 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
16448 2016-03-18 Jakub Jelinek <jakub@redhat.com>
16450 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
16451 instead of replace_rtx for DEBUG_INSNs.
16453 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
16455 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
16456 load type reservations.
16458 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
16461 * config/pa/constraints.md: Revert 2015-02-13 change. Use
16462 define_constraint for "Q" and "T" constraints.
16464 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
16466 Tweak the pipeline model for Exynos M1
16468 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
16471 2016-03-17 David Malcolm <dmalcolm@redhat.com>
16474 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
16475 where one or both locations aren't within a line_map.
16477 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
16480 * opts.c (finish_options): Don't set flag_pie to the default if
16481 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
16484 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
16486 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
16487 true as ALL_REGS argument to replace_rtx.
16489 2016-03-17 Richard Biener <rguenther@suse.de>
16492 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
16495 2016-03-17 Jakub Jelinek <jakub@redhat.com>
16498 * rtl.h (replace_rtx): Add ALL_REGS argument.
16499 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
16500 equality and assert mode is the same, instead of just rtx pointer
16502 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
16503 true as ALL_REGS argument to replace_rtx.
16505 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
16507 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
16508 for boolean vector with vector mode only.
16509 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
16511 2016-03-17 Nick Clifton <nickc@redhat.com>
16514 * config/rx/rx.c (rx_print_integer): Print negative constants in
16517 2016-03-17 Jakub Jelinek <jakub@redhat.com>
16520 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
16522 2016-03-16 Richard Henderson <rth@redhat.com>
16523 Richard Biener <rguenth@suse.de>
16525 PR middle-end/70240
16526 PR middle-end/68215
16528 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
16529 first operand as is_gimple_condexpr.
16531 PR middle-end/70240
16532 PR middle-end/68215
16534 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
16535 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
16536 Do not gimplify the result.
16537 (do_unop): Adjust call to tree_vec_extract.
16538 (do_binop): Likewise.
16539 (do_compare): Likewise.
16540 (do_plus_minus): Likewise.
16541 (do_negate): Likewise.
16542 (expand_vector_condition): Likewise.
16543 (do_cond): Likewise.
16545 2016-03-16 Richard Henderson <rth@redhat.com>
16548 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
16549 (aarch64_classify_address): Use it.
16550 (aarch64_legitimize_address): Force all subexpressions of PLUS
16551 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
16553 2016-03-16 Jakub Jelinek <jakub@redhat.com>
16554 Richard Biener <rguenth@suse.de>
16557 * rtlanal.c (replace_rtx): For REG, if from is a REG,
16558 return to even if only REGNO is equal, and assert
16561 2016-03-11 Jeff Law <law@redhat.com>
16563 PR rtl-optimization/70224
16564 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
16566 2016-03-16 Richard Henderson <rth@redhat.com>
16568 PR middle-end/70199
16569 * function.h (struct function): Add has_forced_label_in_static.
16570 * gimplify.c (force_labels_r): Set it.
16571 * lto-streamer-in.c (input_struct_function_base): Read it.
16572 * lto-streamer-out.c (output_struct_function_base): Write it.
16573 * tree-inline.c (has_label_address_in_static_1): Remove.
16574 (copy_forbidden): Remove fndecl parameter; test
16575 has_forced_label_in_static.
16576 (inline_forbidden_p): Update call to copy_forbidden.
16577 (tree_versionable_function_p): Likewise.
16578 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
16579 (chkp_versioning): Likewise.
16580 * tree-inline.h (copy_forbidden): Update decl.
16582 2016-03-16 Marek Polacek <polacek@redhat.com>
16585 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
16586 function being thunked if the result type doesn't have fixed size.
16587 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
16588 doesn't have fixed size.
16590 2016-03-16 Bin Cheng <bin.cheng@arm.com>
16592 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
16593 reporting malformed loop nest.
16595 2016-03-16 Tom de Vries <tom@codesourcery.com>
16598 * ipa-devirt.c (possible_polymorphic_call_targets): Move
16599 nodes.length () == 1 test to before first nodes[0] access.
16601 2016-03-16 Tom de Vries <tom@codesourcery.com>
16603 PR tree-optimization/68715
16604 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
16605 single_pred_p test.
16607 2016-03-16 Tom de Vries <tom@codesourcery.com>
16609 PR tree-optimization/68809
16610 * graphite-scop-detection.c (same_close_phi_node): Test if result types
16613 2016-03-16 Carlos O'Donell <carlos@redhat.com>
16614 Sandra Loosemore <sandra@codesourcery.com>
16616 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
16617 on leaf attribute. Mention ELF interposition problems.
16619 2016-03-16 Alan Modra <amodra@gmail.com>
16621 PR rtl-optimization/69195
16622 PR rtl-optimization/47992
16623 * ira.c (indirect_jump_optimize): Ignore artificial defs.
16626 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
16629 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
16631 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
16633 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
16635 2016-03-15 Jakub Jelinek <jakub@redhat.com>
16637 PR rtl-optimization/70222
16638 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
16639 optimization if mode is different from result_mode, queue up masking
16640 of the result in outer_op. Formatting fix.
16642 PR middle-end/70239
16643 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
16646 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16648 PR rtl-optimization/69032
16649 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
16650 looping backwards over basic block insns.
16652 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16655 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
16656 to non-speculative when propagating trap bits.
16658 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16660 PR rtl-optimization/63384
16661 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
16662 DEBUG_INSN_P insns.
16664 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
16667 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
16668 factored out from ...
16669 (sched_analyze_insn): ... here.
16670 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
16671 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
16672 get_implicit_reg_pending_clobbers in it.
16673 (setup_id_reg_sets): Use setup_id_implicit_regs.
16674 (deps_init_id): Ditto.
16676 2016-03-15 Tom de Vries <tom@codesourcery.com>
16679 * cgraph.c (cgraph_node::get_body): Save, reset and restore
16681 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
16682 execute_function_dump.
16683 (execute_one_pass): Don't dump function if it will be dumped after ipa
16686 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
16688 * genrecog.c (match_pattern_2): If pred is NULL don't call
16689 safe_predicate_mode on it.
16691 2016-03-14 Jakub Jelinek <jakub@redhat.com>
16693 PR middle-end/70219
16694 * lra-constraints.c (delete_move_and_clobber): Change assertion
16695 to also allow dregno == 0.
16697 2016-03-14 Richard Henderson <rth@redhat.com>
16700 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
16701 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
16702 (reassociate_bb): Use optimize_vec_cond_expr; avoid
16703 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
16706 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
16709 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
16711 (lra_create_live_ranges_1): initialize hard register biggest_mode to
16713 * lra-constraints.c (split_reg): For hard regs, try to find the
16714 biggest single-register mode used in the function.
16716 2016-03-14 Richard Biener <rguenther@suse.de>
16718 PR tree-optimization/56365
16719 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
16720 constants to compare against.
16722 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
16725 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
16726 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
16727 (define_split for the GPR case): Use int_reg_operand instead of
16728 gpc_reg_operand for the output.
16730 2016-03-14 Tom de Vries <tom@codesourcery.com>
16732 PR tree-optimization/70045
16733 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
16734 create_empty_if_region_on_edge argument.
16736 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
16738 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
16739 (STACK_CHECK_PROTECT): Likewise.
16740 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16741 (STACK_CHECK_PROTECT): Likewise.
16742 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
16743 (STACK_CHECK_PROTECT): Likewise.
16744 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
16745 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
16746 (STACK_CHECK_PROTECT): Likewise.
16748 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
16750 PR rtl-optimization/69307
16751 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
16752 registers in modes that span more than one register.
16754 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
16757 * lra-constraints.c (delete_move_and_clobber): New.
16758 (remove_inheritance_pseudos): Use it.
16760 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
16763 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
16764 the libcall is LCT_THROW.
16765 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
16766 for the checking routine.
16768 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16771 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
16772 optimization if we have direct move.
16773 (roundu32<mode>2_fprs): Likewise.
16775 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
16778 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
16780 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
16781 Arguments swapped. All callers changed. Take reg_renumber into
16782 account, and Calculate and compare register ranges for hard regs.
16784 2016-03-11 Jeff Law <law@redhat.com>
16786 PR tree-optimization/70190
16787 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
16788 Handle cases where we can not extract the taken edge, even though we
16789 found a constant value.
16791 PR tree-optimization/64058
16792 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
16793 (num_coalesce_pairs): Move up earlier in file.
16794 (find_coalesce_pair): Initialize the INDEX field for each pair
16796 (compare_pairs): No longer sort on the elements in each pair.
16797 Instead break ties with the index of the coalesce pair.
16799 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16802 * config/aarch64/aarch64-protos.h
16803 (aarch64_save_restore_target_globals): New prototype.
16804 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
16805 Call the above when popping pragma.
16806 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
16808 (aarch64_set_current_function): Rewrite using the above.
16810 2016-03-11 Jakub Jelinek <jakub@redhat.com>
16812 PR tree-optimization/70177
16813 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
16814 (extract_ops_from_tree): ... this. In the 2 argument
16815 overload remove _1 suffix.
16816 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
16817 (extract_ops_from_tree): ... this.
16818 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
16820 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
16821 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
16822 extract_ops_from_tree instead of 2 operand one.
16824 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
16826 PR tree-optimization/70013
16827 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
16828 for constant-pool entries.
16830 2016-03-11 Jakub Jelinek <jakub@redhat.com>
16832 PR rtl-optimization/70174
16833 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
16834 followed by gen_lowpart on force_reg instead of just gen_lowpart.
16836 PR tree-optimization/70169
16837 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
16838 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
16841 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
16842 Jakub Jelinek <jakub@redhat.com>
16845 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
16846 of uninitialized values.
16848 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16850 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
16852 ("*trunctddd2"): New pattern definition.
16853 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
16856 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16858 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
16859 definitions for BFP and DFP rounding modes.
16860 ("fixuns_truncdddi2", "fixuns_trunctddi2")
16861 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
16862 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
16863 ("fix_trunctf<mode>2"): Use the new constants instead of magic
16866 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16868 * config/s390/constraints.md: Adjust comment.
16869 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
16870 s390_decompose_addrstyle_without_index.
16871 * config/s390/predicates.md (shift_count_or_setmem_operand):
16872 Rename to setmem_operand.
16873 * config/s390/s390-protos.h
16874 (s390_decompose_shift_count): Rename to
16875 s390_decompose_addrstyle_without_index.
16876 * config/s390/s390.c (s390_decompose_shift_count)
16877 (s390_mem_constraint, print_shift_count_operand)
16878 (print_operand_address, print_operand): Rename
16879 s390_decompose_shift_count to
16880 s390_decompose_addrstyle_without_index and rename
16881 print_shift_count_operand to print_addrstyle_operand troughout the
16883 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
16884 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
16885 Rename shift_count_or_setmem_operand to setmem_operand.
16886 * config/s390/vx-builtins.md ("vec_insert<mode>")
16887 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
16890 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16893 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
16894 Handle overlapping retval and newval.
16896 2016-03-10 Nick Clifton <nickc@redhat.com>
16899 * config/aarch64/aarch64.c
16900 (aarch64_override_options_after_change_1): When forcing
16901 flag_omit_frame_pointer to be true, use a special value that can
16902 be detected if this function is called again, thus preventing
16903 flag_omit_leaf_frame_pointer from being forced to be false.
16905 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16907 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
16908 Set x_flag_omit_leaf_frame_pointer when handling
16909 -momit-leaf-frame-pointer.
16911 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16914 * cgraph.c (cgraph_node::dump): Dump split_part and
16915 indirect_call_target.
16916 * cgraph.h (cgraph_node): Add indirect_call_target flag.
16917 * ipa.c (has_addr_references_p): Cleanup.
16918 (is_indirect_call_target_p): New.
16919 (walk_polymorphic_call_targets): Do not mark virtuals that may be
16920 called indirectly as local.
16921 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
16923 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16926 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
16927 on cxa_pure_virtual.
16929 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16932 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
16934 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
16937 * tree.c (need_assembler_name_p): Only record main variant type names.
16939 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
16942 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
16943 Always define to 0 or 1.
16944 (TARGET_FIX_ERR_A53_843419): New macro.
16945 * config/aarch64/aarch64-elf-raw.h
16946 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
16947 * config/aarch64/aarch64-linux.h: Likewise.
16948 * config/aarch64/aarch64.c
16949 (aarch64_override_options_after_change_1): Do not default
16950 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
16952 (aarch64_attributes): Handle fix-cortex-a53-843419.
16953 (aarch64_can_inline_p): Likewise.
16954 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
16956 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
16957 Jakub Jelinek <jakub@redhat.com>
16959 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
16960 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
16961 DECL_COMMONS if flag_unconstrained_commons is set.
16962 * tree-dfa.c (get_ref_base_and_extent): Likewise.
16963 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
16964 (funconstrained-commons): Document.
16966 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
16968 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
16969 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
16971 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
16973 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
16974 has a proper number of elements.
16976 2016-03-10 Alan Modra <amodra@gmail.com>
16978 PR rtl-optimization/69195
16979 PR rtl-optimization/47992
16980 * ira.c (recorded_label_ref): Delete.
16981 (update_equiv_regs): Return void.
16982 (indirect_jump_optimize): New function.
16983 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
16984 before regstat_compute_ri. Don't rebuild_jump_labels here.
16985 Delete update_regstat.
16987 2016-03-10 Richard Biener <rguenther@suse.de>
16989 PR tree-optimization/70128
16990 * tree-ssa-structalias.c (set_uids_in_ptset): Set
16991 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
16993 2016-03-09 Jakub Jelinek <jakub@redhat.com>
16995 PR tree-optimization/70152
16996 * tree-sra.c (replace_removed_params_ssa_names): Copy over
16997 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
17000 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
17001 instead of gen_sse2_loadlpd.
17002 * config/i386/sse.md (*vec_concatv2df): Rename to...
17003 (vec_concatv2df): ... this.
17005 PR tree-optimization/70127
17006 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
17008 2016-03-09 David Malcolm <dmalcolm@redhat.com>
17012 * diagnostic-show-locus.c (compatible_locations_p): New function.
17013 (layout::layout): Sanitize ranges using compatible_locations_p.
17015 2016-03-09 David Malcolm <dmalcolm@redhat.com>
17019 * diagnostic-show-locus.c (layout_range::layout_range): Replace
17020 location_range param with three const expanded_locations * and a
17022 (layout::layout): Replace call to
17023 rich_location::lazily_expand_location with get_expanded_location.
17024 Extract the range and perform location expansion here, passing
17025 the results to the layout_range ctor.
17026 * diagnostic.c (source_range::debug): Delete.
17027 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
17028 of rich_location::get_expanded_location.
17029 * gcc-rich-location.c (get_range_for_expr): Delete.
17030 (gcc_rich_location::add_expr): Reimplement to avoid the
17031 rich_location::add_range overload that took a location_range,
17032 passing a location_t instead.
17034 2016-03-09 Richard Biener <rguenther@suse.de>
17035 Jakub Jelinek <jakub@redhat.com>
17037 PR tree-optimization/70138
17038 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
17039 Also skip vect_double_reduction_def.
17041 2016-03-09 Jakub Jelinek <jakub@redhat.com>
17044 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
17045 if the operand is "m".
17047 2016-03-09 Nathan Sidwell <nathan@acm.org>
17049 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
17051 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
17053 * config/i386/i386.c (processor_target_table): Fix cost table
17054 intialization order for znver1.
17056 2016-03-08 Jakub Jelinek <jakub@redhat.com>
17058 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
17059 - becuase -> because.
17060 * ipa-reference.c (ignore_module_statics): Likewise.
17061 * cgraph.c (cgraph_node::get_body): Likewise.
17062 * ipa-inline.c (early_inliner): Likewise.
17063 * ipa-devirt.c (types_same_for_odr): Likewise.
17064 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
17065 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
17067 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17069 * tree-ssa-math-opts.c: Fix typo in comment.
17071 2016-03-08 Jakub Jelinek <jakub@redhat.com>
17074 * config/i386/i386.c (scalar_chain::make_vector_copies,
17075 scalar_chain::convert_reg): Call end_sequence in between
17076 get_insns and emit_conversion_insns rather than after both
17079 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
17082 * config/i386/i386.h (machine_function): Add
17083 pc_thunk_call_expanded flag.
17084 (ix86_pc_thunk_call_expanded): New define.
17085 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
17086 (*set_got): Rename insn pattern from set_got.
17087 (*set_got_labelled): Rename inst pattern from set_got_labelled.
17088 * config/i386/i386.c (ix86_compute_frame_layout): Use
17089 ix86_pc_thunk_call_expanded to prevent red-zone.
17091 2016-03-07 Martin Jambor <mjambor@suse.cz>
17093 * hsa.h (hsa_get_ctor_statements): Declare.
17094 (hsa_get_dtor_statements): Likewise.
17095 (hsa_get_kernel_dispatch_type): Likewise.
17096 * hsa.c (hsa_get_ctor_statements): New function.
17097 (hsa_get_dtor_statements): Likewise.
17098 (hsa_get_kernel_dispatch_type): Likewise.
17099 * hsa-brig.c (hsa_cdtor_statements): Removed.
17100 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
17101 hsa_get_dtor_statements.
17102 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
17103 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
17105 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
17107 * config/arm/arm-cores.def (cortex-r8): New.
17108 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
17109 * config/arm/arm-tune.md: Likewise.
17110 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
17112 2016-03-07 Martin Sebor <msebor@redhat.com>
17114 PR rtl-optimization/19705
17115 * doc/invoke.texi (Options That Control Optimization): Clarify
17116 -fno-branch-count-reg.
17118 2016-02-26 Richard Biener <rguenther@suse.de>
17119 Jeff Law <law@redhat.com>
17121 PR tree-optimization/69740
17122 * cfghooks.c (remove_edge): Request loop fixups if we delete
17123 an edge that might turn an irreducible loop into a natural
17125 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
17126 Move after definition of loops_state_clear.
17128 2016-03-07 Bin Cheng <bin.cheng@arm.com>
17130 PR rtl-optimization/69052
17131 * rtlanal.c (commutative_operand_precedence): Set higher precedence
17134 2016-03-07 Tom de Vries <tom@codesourcery.com>
17136 PR tree-optimization/70116
17137 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
17138 is_tm_ending stmts and ubsan/asan internal functions.
17139 (find_duplicate): Use it. Don't test is_tm_ending here.
17141 2016-03-07 Richard Biener <rguenther@suse.de>
17143 PR tree-optimization/70115
17144 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
17145 (propagate_constants_for_unrolling): Use replace_uses_by.
17147 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
17149 PR middle-end/69916
17150 * omp-low.c (struct oacc_loop): Add ifns.
17151 (new_oacc_loop_raw): Initialize it.
17152 (finish_oacc_loop): Clear mask & flags if no ifns.
17153 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
17154 (oacc_loop_xform_loop): Add ifns arg & adjust.
17155 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
17157 2016-03-07 Richard Henderson <rth@redhat.com>
17160 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
17161 (insert_value_copy_on_edge): Likewise.
17163 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17165 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
17167 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17170 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
17172 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
17174 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
17176 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
17178 Fix sseimul type attribute.
17179 * config/i386/znver1.md
17180 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
17181 znver1_sseimul_avx256_load) : Fix the type attribute.
17182 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
17183 pipe usage and latency.
17185 2016-03-05 Jakub Jelinek <jakub@redhat.com>
17188 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
17189 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
17192 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
17195 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
17197 PR rtl-optimization/69941
17198 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
17199 the reg share its mode.
17201 2016-03-04 Jeff Law <law@redhat.com>
17203 PR tree-optimization/69196
17204 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17205 If the both SSA_NAMEs are anonymous, then consider them unassociated
17206 and include the PHI in the statement count.
17208 2016-03-05 Tom de Vries <tom@codesourcery.com>
17210 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
17211 construct in oacc routine. Check for oacc region in oacc routine.
17213 2016-03-04 Jakub Jelinek <jakub@redhat.com>
17216 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
17217 2016-02-22 changes, instead don't recurse if RECUR is already true.
17218 Don't change *dynamic_check if RECUR. Adjust recursive caller
17219 to pass true to the new argument.
17220 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
17223 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
17224 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
17226 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
17228 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
17230 PR rtl-optimization/57676
17231 * lra-assigns.c (lra_assign): Guard test for maximum iterations
17232 with flag_checking.
17234 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
17236 * tree-vect-patterns.c (search_type_for_mask): Handle
17237 comparison of booleans.
17239 2016-03-04 Jakub Jelinek <jakub@redhat.com>
17241 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
17245 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
17246 all other ops that have dw_val_class_die_ref operands,
17247 and DW_OP_GNU_entry_value.
17249 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17251 PR rtl-optimization/69904
17252 * config/arm/arm.c (arm_cannot_copy_insn_p):
17253 Return true for load-exclusive instructions.
17255 2016-03-03 Jakub Jelinek <jakub@redhat.com>
17258 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
17259 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
17260 the pattern no matter if it is used just by non-pattern, pattern
17262 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
17263 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
17264 oprnd1 def_stmt is in pattern, don't look through it.
17266 2016-03-03 Marek Polacek <polacek@redhat.com>
17268 PR middle-end/70050
17269 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
17271 2016-03-03 Martin Liska <mliska@suse.cz>
17273 PR tree-optimization/70043
17274 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
17275 previous statement if we see a debug statement.
17277 2016-03-03 Richard Biener <rguenther@suse.de>
17279 PR tree-optimization/55936
17280 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
17281 parameter and guard unsafe equivalence use.
17282 (vrp_evaluate_conditional_warnv_with_ops): Always use
17283 safe equivalences but not via the quadratic compare_names
17286 2016-03-03 Michael Collison <michael.collison@linaro.org>
17289 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
17290 for operand 1 to s_register_operand. Change predicate for operand
17291 2 to arm_not_immediate_operand.
17293 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
17295 * doc/tm.texi: Regenerated.
17297 2016-03-02 Richard Henderson <rth@redhat.com>
17300 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
17301 simplification when all args are positive non-fixed registers.
17303 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
17305 * target.def (lra_p): Specify that new ports should use LRA.
17307 2016-03-02 Jakub Jelinek <jakub@redhat.com>
17310 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
17311 gimplify_type_sizes the type they refer to.
17312 (omp_notice_variable): Handle reference vars to VLAs.
17313 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
17314 reference to VLA decls in the second pass instead of first pass.
17316 2016-03-02 Tom de Vries <tom@codesourcery.com>
17318 PR tree-optimization/68659
17319 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
17320 new_expr == NULL_TREE.
17321 (get_new_name): Handle ADDR_EXPR.
17323 2016-03-02 Bin Cheng <bin.cheng@arm.com>
17325 PR rtl-optimization/69052
17326 * loop-invariant.c (canonicalize_address): New function.
17327 (inv_can_prop_to_addr_use): Check validity of address expression
17328 which is canonicalized by above function.
17330 2016-03-02 Alan Modra <amodra@gmail.com>
17333 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
17336 2016-03-02 Jakub Jelinek <jakub@redhat.com>
17339 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
17340 (*movhi_internal): Put mask moves from and to memory separately
17341 from moves from/to GPRs.
17343 2016-03-02 Richard Biener <rguenther@suse.de>
17345 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
17346 GENERIC expressions in GIMPLE.
17348 2016-03-02 Richard Biener <rguenther@suse.de>
17350 * config/i386/i386.c (type_natural_mode): Fix typo.
17352 2016-03-02 Nick Clifton <nickc@redhat.com>
17354 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
17356 2016-03-02 Richard Biener <rguenther@suse.de>
17357 Uros Bizjak <ubizjak@gmail.com>
17360 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
17362 2016-03-02 Richard Biener <rguenther@suse.de>
17364 PR middle-end/67278
17365 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
17367 2016-03-02 Marek Polacek <polacek@redhat.com>
17370 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
17371 "is promoted to" warning.
17373 2016-03-01 DJ Delorie <dj@redhat.com>
17375 * config.gcc: Deprecate mep-*.
17377 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
17379 PR middle-end/70025
17380 * lra-constraints.c (regno_val_use_in): New.
17381 (match_reload): Use it instead of regno_use_in.
17383 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
17385 PR rtl-optimization/70007
17386 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
17387 references present in REG_EQUAL notes attached to non-SET patterns.
17389 2016-03-01 Jeff Law <law@redhat.com>
17391 PR tree-optimization/69196
17392 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17393 Appropriately clamp the number of statements to copy when the
17394 thread path does not traverse a loop backedge.
17396 PR tree-optimization/69196
17397 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
17398 Do count some PHIs in the thread path against the insn count. Decrease
17399 final statement count by one as the control statement in the last
17400 block will get removed. Remove special cased code for handling PHIs
17403 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
17406 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
17407 asm dialect alternatives to explicit GOTPCREL calls.
17409 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
17412 * ira.c (do_reload): Issue warning for generic stack checking here...
17413 * reload1.c (reload): ...instead of here and streamline it.
17415 2016-03-01 Nick Clifton <nickc@redhat.com>
17417 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
17419 2016-03-01 Richard Biener <rguenther@suse.de>
17421 PR tree-optimization/69983
17422 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
17423 types and fall back to operand_equal_p.
17425 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17428 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17430 * config/s390/constraints.md ("jm8"): New constraint.
17431 * config/s390/predicates.md ("const_int_8bitset_operand"): New
17433 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
17435 ("*setmem_long<setmem_and>"): New pattern.
17436 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
17438 ("*setmem_long_31z<setmem_and>"): New pattern.
17439 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
17440 New substitution rules with the required attributes.
17443 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17446 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17448 * gensupport.c (process_substs_on_one_elem): Split loop to
17449 complete mark_operands_used_in_match_dup on all expressions in the
17451 (adjust_operands_numbers): Inline into process_substs_on_one_elem
17452 and remove function.
17454 2016-03-01 Richard Biener <rguenther@suse.de>
17456 PR middle-end/70022
17457 * fold-const.c (fold_indirect_ref_1): Fix range checking for
17458 vector BIT_FIELD_REF extract.
17460 2016-03-01 Richard Biener <rguenther@suse.de>
17462 PR tree-optimization/69994
17463 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
17465 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
17467 PR tree-optimization/69956
17468 * tree-vect-stmts.c (supportable_widening_operation): Support
17469 multi-step conversion of boolean vectors.
17470 (supportable_narrowing_operation): Likewise.
17472 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17474 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
17477 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17479 * config/s390/subst.md (DSI_VI): New mode iterator.
17480 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
17481 * config/s390/vector.md ("vec_set<mode>"): Move expander before
17482 the insn definition.
17483 ("*vec_set<mode>"): Change predicate and add alternative to
17484 support only either register or const_int operands as element
17486 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
17488 ("vec_extract<mode>"): New expander.
17489 ("*vec_extract<mode>"): New insn definition supporting reg and
17490 const_int element selectors.
17491 ("*vec_extract<mode>_plus"): New insn definition supporting
17492 reg+const_int element selectors.
17493 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
17494 following expander+insn definition.
17495 ("<vec_shifts_name><mode>3"): New expander.
17496 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
17498 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17500 * config/s390/s390.md ("*tabort_1"): Change predicate to
17501 nonmemory_operand. Add a second alternative to cover
17502 register as well as const int operands.
17503 ("*tabort_1_plus"): New pattern definition.
17505 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17507 * config/s390/s390.md ("*ashrdi3_cc_31")
17508 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
17509 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
17510 Merge insn definitions into ...
17511 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
17512 New pattern definition.
17513 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
17514 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
17515 ("*ashr<mode>3_and"): Merge insn definitions into ...
17516 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
17517 New pattern definition.
17518 * config/s390/subst.md ("addr_style_op_cc_subst")
17519 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
17520 substitutions patterns plus attributes.
17521 Add ashiftrt to SUBST iterator.
17523 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17525 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
17526 op2 to nonmemory_operand.
17527 ("*<shift>di3_31", "*<shift>di3_31_and"):
17528 Merge into single pattern definition ...
17529 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
17530 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
17531 pattern definition ...
17532 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
17533 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
17536 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17538 * config/s390/predicates.md (const_int_6bitset_operand): New
17540 * config/s390/s390.md: Include subst.md.
17541 ("rotl<mode>3"): New expander.
17542 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
17544 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
17545 * config/s390/subst.md: New file.
17547 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17549 * config/s390/s390.md ("op_type", "atype", "length" attributes):
17550 Remove RRR type. It doesn't really exist.
17551 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
17553 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
17554 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
17555 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
17556 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
17557 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
17558 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
17559 `enabled' attribute.
17561 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17563 * gensupport.c (process_substs_on_one_elem): Split loop to
17564 complete mark_operands_used_in_match_dup on all expressions in the
17566 (adjust_operands_numbers): Inline into process_substs_on_one_elem
17567 and remove function.
17569 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
17572 * config/sparc/sparc.c (NWORDS_UP): Rename to...
17573 (CEIL_NWORDS): ...this. Use CEIL macro.
17574 (compute_fp_layout): Adjust to above renaming.
17575 (function_arg_union_value): Likewise.
17576 (sparc_arg_partial_bytes): Likewise.
17577 (sparc_function_arg_advance): Likewise.
17579 2016-02-29 Jeff Law <law@redhat.com>
17581 PR tree-optimization/70005
17582 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
17583 where an object with a boolean range is compared against a value
17586 PR tree-optimization/69999
17587 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
17588 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
17591 2016-02-29 Richard Biener <rguenther@suse.de>
17593 PR tree-optimization/69994
17594 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
17595 (get_unary_op): Look through nop conversions.
17596 (ops_equal_values_p): New function, look for equality diregarding
17598 (eliminate_plus_minus_pair): Use ops_equal_values_p
17599 (repropagate_negates): Do not use get_unary_op here.
17601 2016-02-29 Martin Liska <mliska@suse.cz>
17603 * system.h: Poison ENABLE_CHECKING macro.
17605 2016-02-29 Martin Liska <mliska@suse.cz>
17607 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
17608 is presented in dump flags.
17609 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
17610 (hsa_regalloc): Likewise.
17612 2016-02-19 Richard Biener <rguenther@suse.de>
17614 PR tree-optimization/69980
17615 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
17616 permutation of those we need to keep.
17618 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
17621 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
17622 (NWORDS_UP): ...this
17623 (init_cumulative_args): Minor tweaks.
17624 (sparc_promote_function_mode): Likewise.
17625 (scan_record_type): Delete.
17626 (traverse_record_type): New function template.
17627 (classify_data_t): New structure type.
17628 (classify_registers): New inline function.
17629 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
17630 exhausted. Instantiate traverse_record_type on classify_registers and
17631 deal with the case of a structure passed in slot #15 with no FP field
17633 (assign_data_t): New structure type.
17634 (compute_int_layout): New static function.
17635 (compute_fp_layout): Likewise.
17636 (count_registers): New inline function.
17637 (assign_int_registers): New static function.
17638 (assign_fp_registers): Likewise.
17639 (assign_registers): New inline function.
17640 (function_arg_record_value_1): Delete.
17641 (function_arg_record_value_2): Likewise.
17642 (function_arg_record_value_3): Likewise.
17643 (function_arg_record_value): Adjust to above changes. Instantiate
17644 traverse_record_type on count_registers to first count the number of
17645 registers to be used and then on assign_registers to assign them.
17646 (function_arg_union_value): Adjust to above renaming.
17647 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
17648 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
17649 case of a structure passed in slot #15
17650 (sparc_function_arg_advance): Likewise.
17651 (function_arg_padding): Minor tweak.
17653 2016-02-29 Richard Biener <rguenther@suse.de>
17655 PR tree-optimization/69720
17656 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
17657 the adjustment_def path for possibly vectorized defs.
17658 (vect_create_epilog_for_reduction): Handle vectorized initial
17661 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
17663 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
17665 2016-02-27 Jeff Law <law@redhat.com>
17668 2016-02-26 Richard Biener <rguenther@suse.de>
17669 Jeff Law <law@redhat.com>
17671 PR tree-optimization/69740
17672 * cfghooks.c (remove_edge): Request loop fixups if we delete
17673 an edge that might turn an irreducible loop into a natural
17676 2016-02-27 Jakub Jelinek <jakub@redhat.com>
17678 PR rtl-optimization/69896
17679 * tree-vect-generic.c (get_compute_type): Avoid single element
17682 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
17684 Rename the AArch64 tuning option and related functions to enable the
17685 Newton series for the reciprocal square root to reflect its
17686 approximative characteristic.
17688 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
17689 function to "aarch64_emit_approx_rsqrt".
17690 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
17691 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
17692 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
17693 (xgene1_tunings): Likewise.
17694 (use_rsqrt_p): Likewise.
17695 (aarch64_emit_swrsqrt): Use new function name.
17696 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
17697 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
17698 text explaining this option.
17699 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
17701 2016-02-26 Jakub Jelinek <jakub@redhat.com>
17704 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
17705 complain about -mallow-movmisalign without -mvsx if
17706 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
17708 2016-02-26 Joel Sherrill <joel@rtems.org>
17710 * config.gcc: Add x86_64-*-rtems*.
17711 * config/i386/rtems-64.h: New file.
17713 2016-02-26 Joel Sherrill <joel@rtems.org>
17715 * config.gcc: Add aarch64-*-rtems*.
17716 * config/aarch64/rtems.h: New file.
17718 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
17721 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
17722 shift amount using %h. Add comment.
17724 2016-02-26 Richard Biener <rguenther@suse.de>
17725 Jeff Law <law@redhat.com>
17727 PR tree-optimization/69740
17728 * cfghooks.c (remove_edge): Request loop fixups if we delete
17729 an edge that might turn an irreducible loop into a natural
17732 2016-02-26 Martin Jambor <mjambor@suse.cz>
17734 PR middle-end/69920
17735 * tree-sra.c (sra_modify_assign): Do not remove loads of
17736 uninitialized aggregates to SSA_NAMEs.
17738 2016-02-26 Richard Henderson <rth@redhat.com>
17741 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
17742 pseudo in case the target rtx matches the source of the left
17745 2016-02-26 Martin Jambor <mjambor@suse.cz>
17748 * hsa.h (hsa_type_packed_p): Declare.
17749 * hsa.c (hsa_type_packed_p): New function.
17750 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
17752 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
17753 * hsa-brig.c (emit_basic_insn): Likewise.
17755 2016-02-26 Martin Jambor <mjambor@suse.cz>
17758 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
17760 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
17762 2016-02-26 Martin Jambor <mjambor@suse.cz>
17764 * hsa.h (is_a_helper): New overload for hsa_op_immed for
17765 hsa_op_with_type operands.
17766 (hsa_unsigned_type_for_type): Declare.
17767 * hsa.c (hsa_unsigned_type_for_type): New function.
17768 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
17769 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
17770 the finalizer. Do not emit extra move.
17772 2016-02-26 Martin Jambor <mjambor@suse.cz>
17774 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
17775 atomic operations in private segment.
17777 2016-02-26 Martin Jambor <mjambor@suse.cz>
17779 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
17780 statements to wi->info. Also disallow omp simd constructs.
17781 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
17782 for not gridifying. Dump special string for omp_for.
17784 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17787 * config/aarch64/aarch64.c (aarch64_set_current_function):
17788 Save/restore target globals when switching to
17789 target_option_default_node.
17791 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17794 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
17795 Return 0 if !SHIFT_COUNT_TRUNCATED.
17797 2016-02-26 Jakub Jelinek <jakub@redhat.com>
17798 Eric Botcazou <ebotcazou@adacore.com>
17800 PR rtl-optimization/69891
17801 * dse.c (scan_insn): If we can't figure out memset arguments
17802 or they are non-constant, call clear_rhs_from_active_local_stores.
17804 2016-02-26 Martin Liska <mliska@suse.cz>
17806 * doc/extend.texi: Mention clog10, clog10f an clog10l
17807 in Builtins section.
17809 2016-02-26 Martin Liska <mliska@suse.cz>
17811 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
17813 (resolve_args_picking_1): Likewise.
17814 * dwarf2out.h (struct GTY): Likewise.
17816 2016-02-26 Martin Liska <mliska@suse.cz>
17818 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
17819 with flag_checking.
17820 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
17822 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
17823 Martin Liska <mliska@suse.cz>
17825 * doc/install.texi: Mention --enable-valgrind-annotations.
17827 2016-02-26 Richard Biener <rguenther@suse.de>
17829 PR tree-optimization/69551
17830 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
17831 looking through aliases adjust DECL_PT_UID to refer to the
17832 ultimate alias target.
17834 2016-02-25 Martin Liska <mliska@suse.cz>
17836 PR middle-end/69919
17837 * alloc-pool.c (after_memory_report): New variable.
17838 * alloc-pool.h (base_pool_allocator ::release): Do not use
17839 the infrastructure if after_memory_report.
17840 * toplev.c (toplev::main): Mark after memory report.
17842 2016-02-25 Richard Biener <rguenther@suse.de>
17844 PR tree-optimization/48795
17845 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
17847 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
17850 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
17851 offloading is enabled and -fopenacc or -fopenmp is specified.
17852 (CRTOFFLOADEND): Likewise.
17853 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
17854 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
17855 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
17856 (offload_objects_file_name): New static var.
17857 (tool_cleanup): Remove offload_objects_file_name file.
17858 (find_offloadbeginend): Replace with ...
17859 (find_crtoffloadtable): ... this.
17860 (run_gcc): Remove offload_argc and offload_argv.
17861 Get offload_objects_file_name from -foffload-objects=... option.
17862 Read names of object files with offload from this file, pass them to
17863 compile_images_for_offload_targets. Don't call find_offloadbeginend and
17864 don't pass offloadbegin and offloadend to the linker. Don't pass
17865 offload non-LTO files to the linker, because now they're not claimed.
17867 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
17870 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
17871 on builtin_unreachable.
17873 2016-02-25 Jakub Jelinek <jakub@redhat.com>
17875 PR rtl-optimization/69896
17876 * regcprop.c: Include cfgrtl.h.
17877 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
17878 than remembered mode, either delete it (if noop_move_p), or
17879 treat like copy_p but not noop_p instruction.
17881 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17884 * dwarf2out.c (gen_variable_die): Work around buggy LTO
17885 - allow NULL decl for Fortran DW_TAG_common_block variables.
17887 2016-02-24 Jason Merrill <jason@redhat.com>
17889 * common.opt (flifetime-dse): Add -flifetime-dse=1.
17891 2016-02-24 Richard Biener <rguenther@suse.de>
17892 Jakub Jelinek <jakub@redhat.com>
17894 PR middle-end/69760
17895 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
17896 conditionally executed ops to well-defined overflow behavior.
17898 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17900 PR middle-end/69915
17901 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
17904 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17906 PR rtl-optimization/69886
17907 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
17908 argument. Use it when checking validity of set instructions.
17909 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
17910 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
17912 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
17913 * store-motion.c (find_moveable_store): Update
17914 can_assign_to_reg_without_clobbers_p callsite.
17916 2016-02-24 Richard Biener <rguenther@suse.de>
17918 PR middle-end/68963
17919 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
17921 (record_nonwrapping_iv): Do not fall back to the low/high bound
17922 for non-constant IV bases if the stmt is not always executed.
17924 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17926 * config/arm/arm-cores.def (cortex-a32): New entry.
17927 * config/arm/arm-tables.opt: Regenerate.
17928 * config/arm/arm-tune.md: Regenerate.
17929 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
17930 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
17931 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
17932 for -mcpu and -mtune.
17934 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17937 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
17938 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
17939 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
17940 (atomic_loaddi_1): Delete.
17941 (atomic_loaddi): Rewrite expander using the above changes.
17943 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17946 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
17949 2016-02-24 Jakub Jelinek <jakub@redhat.com>
17950 Richard Biener <rguenth@suse.de>
17952 PR middle-end/69909
17953 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
17954 set_mem_attributes if tem is SSA_NAME which got expanded
17957 2016-02-24 Richard Biener <rguenther@suse.de>
17959 PR tree-optimization/69907
17960 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
17961 end of permutations for BB vectorization.
17963 2016-02-24 Christian Bruel <christian.bruel@st.com>
17965 * config/arm/arm-c.c (arm_option_override): Initialize
17966 target_option_current_node.
17967 * config/arm/arm.c (arm_pragma_target_parse): Replace
17968 build_target_option_node call by target_option_current_node.
17969 Set target_option_current_node.
17972 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
17975 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
17976 define_insn_and_split to define_insn.
17977 (zero_extendqi<mode>2_dot2): Same.
17978 (extendqi<mode>2_dot): Same.
17979 (extendqi<mode>2_dot2): Same.
17981 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
17983 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
17984 and add bypass for AES{D,E} and AESMC pairs.
17985 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
17988 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
17990 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
17991 series for reciprocal square root in Exynos M1.
17993 2016-02-23 Martin Sebor <msebor@redhat.com>
17996 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
17997 __builtin_alloca_with_align.
17999 2016-02-23 Richard Henderson <rth@redhat.com>
18001 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
18002 (ix86_register_pragmas): Remove __seg_tls.
18003 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
18004 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
18005 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
18006 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
18007 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
18008 * doc/extend.texi (__seg_tls): Remove item.
18010 2016-02-23 Richard Biener <rguenther@suse.de>
18012 * alloc-pool.h (struct allocation_object): Make id member
18013 conditional on CHECKING_P again.
18014 (get_instance): Adjust.
18015 (base_pool_allocator): Likewise.
18017 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
18019 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
18020 (parallelize_loops): In OpenACC kernels mode, set n_threads to
18022 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
18024 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
18026 2016-02-23 Richard Biener <rguenther@suse.de>
18028 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
18029 * bitmap.h (struct bitmap_usage): Likewise.
18030 (bitmap_move): Declare.
18031 * bitmap.c (register_overhead): Take size_t argument.
18032 (bitmap_move): New function.
18033 * df-problems.c (df_rd_transfer_function): Use bitmap_move
18034 to properly account overhead.
18035 * tree.c (free_node): Use tree_size.
18037 2016-02-23 Jakub Jelinek <jakub@redhat.com>
18040 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
18041 when inverting comparison.
18044 * common.opt (Wunreachable-code): Add Warning flag.
18046 2016-02-23 Mark Wielaard <mjw@redhat.com>
18047 Jakub Jelinek <jakub@redhat.com>
18050 * cgraphunit.c (check_global_declaration): Check main_input_filename
18051 and DECL_SOURCE_FILE are not NULL.
18053 2016-02-23 Martin Jambor <mjambor@suse.cz>
18055 PR tree-optimization/69666
18056 * tree-sra.c (sra_modify_assign): Do not attempt to create
18057 default_def replacements for unscalarizable regions.
18059 2016-02-20 Mark Wielaard <mjw@redhat.com>
18062 * cgraphunit.c (check_global_declaration): Check level of
18063 warn_unused_const_variable and main_input_filename.
18064 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
18065 (-Wunused-variable): For C implies -Wunused-const-variable=1.
18066 (-Wunused-const-variable): Explain levels 1 and 2.
18068 2016-02-22 Jakub Jelinek <jakub@redhat.com>
18071 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
18072 identical arguments. Formatting and spelling fixes.
18075 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
18080 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
18081 and m68k-devices.def.
18082 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
18083 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
18085 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
18087 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
18088 and HImode registers.
18090 2016-02-22 Richard Biener <rguenther@suse.de>
18092 PR tree-optimization/69882
18093 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
18094 preserve permutations present because of gaps.
18095 (vect_supported_load_permutation_p): Always continue checking
18096 permutations after vect_attempt_slp_rearrange_stmts.
18098 2016-02-22 Bin Cheng <bin.cheng@arm.com>
18100 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
18101 min_profitable_estimate, rather than min_profitable_iters.
18103 2016-02-22 Jakub Jelinek <jakub@redhat.com>
18106 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
18107 SImode for last match_operand.
18109 2016-02-22 Martin Liska <mliska@suse.cz>
18111 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
18112 return bitsize - 1 as the return value.
18114 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
18118 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
18119 Handle negative shift counts.
18120 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
18121 force_reg on the shift constant.
18122 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
18123 (lshrsi3_d): Handle negative shift counts.
18125 2016-02-22 Richard Biener <rguenther@suse.de>
18126 Tom de Vries <tom@codesourcery.com>
18128 * graph.c: Include dumpfile.h.
18129 (print_graph_cfg): Split into three overloads.
18130 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
18132 2016-02-22 Tom de Vries <tom@codesourcery.com>
18134 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
18137 2016-02-22 Richard Biener <rguenther@suse.de>
18140 * ipa-inline-transform.c (inline_call): When not updating
18141 overall summaries adjust self size by the growth estimate.
18142 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
18143 hash-set, do not update overall summaries here. Renamed from ...
18144 (inline_to_all_callers): ... this which is now wrapping the
18145 above and performing delayed overall summary update.
18146 (early_inline_small_functions): Delay updating of the overall
18149 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
18151 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
18154 2016-02-19 Jakub Jelinek <jakub@redhat.com>
18157 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
18158 :%* in %:gt() argument.
18159 (greater_than_spec_func): Adjust for expecting only numbers,
18160 if there are more than two numbers, compare the last two.
18162 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
18164 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
18165 -Wnarrowing with -std.
18167 2016-02-19 Jakub Jelinek <jakub@redhat.com>
18170 * expr.c (store_field): Don't use bit-field path if exp is
18171 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
18172 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
18173 and the assignment can be performed by bitwise copy. Formatting
18176 PR middle-end/69838
18177 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
18178 call copy_reg_eh_region_note_forward on before and/or after sequences
18179 and remove note from insn if it no longer can throw.
18182 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
18183 if TARGET_AVX512BW.
18185 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18187 * config/s390/vector.md: Add missing commutative operand markers
18188 to the patterns which qualify for one.
18189 * config/s390/vx-builtins.md: Likewise.
18191 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18193 * config/s390/vector.md (VI, VI_QHS): Add single element vector
18194 types to mode iterators.
18195 (vec_double): ... and mode attribute.
18196 * config/s390/vx-builtins.md (non_vec_int): Likewise.
18198 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18200 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
18201 Change the predicate of op2 from nonimmediate to general and let
18202 reload fix it if necessary.
18204 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18206 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
18208 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18210 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
18213 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18215 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
18216 * config/s390/s390.c (s390_expand_vec_movstr): New function.
18217 * config/s390/s390.md ("movstr<P:mode>"): Call
18218 s390_expand_vec_movstr.
18220 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18222 * config/s390/s390.md: Add missing output modifier for operand 1
18223 to print it as address properly.
18225 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18227 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
18228 * config/s390/2964.md: New file.
18229 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
18230 of insn grouping attributes depending on the CPU level.
18231 (s390_get_unit_mask): New function.
18232 (s390_sched_score): Remove the OOO from the scheduling macros.
18233 Add loop to calculate a score for the instruction mix.
18234 (s390_sched_reorder): Likewise plus improve debug output.
18235 (s390_sched_variable_issue): Rename macros as above. Calculate
18236 the unit distances after actually scheduling an insn. Improve
18238 (s390_sched_init): Clear last_scheduled_unit_distance array.
18239 * config/s390/s390.md: Include 2964.md.
18241 2016-02-18 Jakub Jelinek <jakub@redhat.com>
18244 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
18245 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
18246 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
18247 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
18248 *avx512f_<code>v8div16qi2_mask_1): New insns.
18250 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
18253 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
18256 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
18257 earlyclobber from target. Use wF constraint for fused memory
18259 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
18261 2016-02-18 Jakub Jelinek <jakub@redhat.com>
18262 Martin Liska <mliska@suse.cz>
18265 * cfgexpand.c (asan_sanitize_stack_p): New function.
18266 (partition_stack_vars): Use the function.
18267 (expand_stack_vars): Likewise.
18268 (defer_stack_allocation): Likewise.
18269 (expand_used_vars): Likewise.
18271 2016-02-18 Richard Biener <rguenther@suse.de>
18273 PR middle-end/69553
18274 * fold-const.c (operand_equal_p): Properly compare offsets for
18275 IMAGPART_EXPR and ARRAY_REF.
18277 2016-02-18 Nick Clifton <nickc@redhat.com>
18281 * config/arm/arm.c (arm_option_override_internal): Disable
18282 interworking if the target does not support thumb instructions.
18283 (arm_reload_in_hi): Handle the case where a register to register
18284 move needs reloading because there is no simple pattern to handle
18286 (arm_reload_out_hi): Likewise.
18288 2016-02-18 Richard Biener <rguenther@suse.de>
18290 PR middle-end/69854
18291 * match.pd: Don't use fold_binary or fold_unary for folding
18294 2016-02-17 Jakub Jelinek <jakub@redhat.com>
18297 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
18298 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
18299 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
18300 warn on gimple_no_warning_p statements.
18302 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
18304 * doc/extend.texi (C++ Attributes): Correct description of
18305 warn_unused type attribute.
18307 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18309 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
18310 correct instruction.
18312 2016-02-17 Richard Biener <rguenther@suse.de>
18314 PR rtl-optimization/69609
18315 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
18316 (find_traces_1_round): When ending a trace update cached priority
18318 (bb_to_key): Use cached priority when available.
18319 (copy_bb): Initialize cached priority.
18320 (reorder_basic_blocks_software_trace_cache): Likewise.
18322 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18325 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
18327 (aarch64_comparison_operator): Break overly long line into two.
18328 (aarch64_comparison_operation): Likewise.
18329 * config/aarch64/aarch64.md (cstorecc4): Use
18330 aarch64_comparison_operator_mode instead of
18331 aarch64_comparison_operator.
18332 (cstore<mode>4): Likewise.
18333 (aarch64_cstore<mode>): Likewise.
18334 (*cstoresi_insn_uxtw): Likewise.
18335 (cstore<mode>_neg): Likewise.
18336 (*cstoresi_neg_uxtw): Likewise.
18338 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18341 * config/arm/predicates.md (arm_comparison_operator_mode):
18343 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
18344 instead of arm_comparison_operator.
18345 (*mov_negscc): Likewise.
18346 (*mov_notscc): Likewise.
18347 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
18348 (*thumb2_mov_negscc): Likewise.
18349 (*thumb2_mov_negscc_strict_it): Likewise.
18350 (*thumb2_mov_notscc): Likewise.
18351 (*thumb2_mov_notscc_strict_it): Likewise.
18353 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
18355 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
18356 Add missing return.
18358 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
18360 * config/visium/visium.c (machine_libfunc_index): New enum.
18361 (machine_libfuncs): New structure.
18362 (visium_libfuncs): New static variable.
18363 (TARGET_INIT_LIBFUNCS): Define to...
18364 (visium_init_libfuncs): ...this. New function.
18365 (expand_block_move_4): Use the appropriate libfunc.
18366 (expand_block_move_2): Likewise.
18367 (expand_block_move_1): Likewise.
18368 (expand_block_set_4): Likewise.
18369 (expand_block_set_2): Likewise.
18370 (expand_block_set_1): Likewise.
18371 (visium_trampoline_init): Likewise.
18373 2016-02-17 Nick Clifton <nickc@redhat.com>
18375 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
18376 TI's devices.csv file as of March 2016.
18378 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
18381 * opts-global.c (handle_common_deferred_options): Introduce and
18382 initialize two global variables to remember command-line options
18383 specifying a stack-limiting register.
18384 * opts.h: Add extern declarations of the two new global variables.
18385 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
18386 variable based on the values of the two new global variables.
18388 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18391 * common.opt (Wnonnull-compare): New warning.
18392 * doc/invoke.texi (-Wnonnull): Remove text about comparison
18393 of arguments against NULL.
18394 (-Wnonnull-compare): Document.
18395 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
18396 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
18397 * passes.def (pass_warn_nonnull_compare): Add.
18398 * gimple-ssa-nonnull-compare.c: New file.
18400 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18402 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
18403 AARCH64_EXTRA_TUNE_RECIP_SQRT.
18405 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18407 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
18408 reciprocal sqrt for -mlow-precision-recip-sqrt.
18410 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18411 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18413 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
18414 always use lane loads to construct non-constant vectors.
18416 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18418 * config/aarch64/aarch64.md
18419 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
18420 constraints for operand 3.
18421 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
18423 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18424 Richard Biener <rguenther@suse.de>
18426 PR tree-optimization/69820
18427 * tree-vect-patterns.c (type_conversion_p): Return false if
18428 *orig_type is unsigned single precision or boolean.
18429 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
18432 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18434 PR rtl-optimization/69764
18435 PR rtl-optimization/69771
18436 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
18437 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
18439 2016-02-16 Richard Biener <rguenther@suse.de>
18441 PR tree-optimization/69776
18442 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
18444 (indirect_refs_may_alias_p): Likewise.
18445 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
18446 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
18447 according to tbaa_p.
18448 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
18449 (optimize_stmt): For redundant store discovery do not allow tbaa.
18451 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
18453 PR tree-optimization/69714
18454 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
18455 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
18457 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
18459 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
18460 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
18461 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
18462 * config/arc/arc.c (arc_init): Check FPU options.
18463 (get_arc_condition_code): Handle new CC_FPU* modes.
18464 (arc_select_cc_mode): Likewise.
18465 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
18466 register pair only. Allow access for ARCv2 accumulator.
18467 (gen_compare_reg): Whenever we have FPU support use FPU compare
18469 (arc_reorg): Don't generate brcc insns when FPU compare
18470 instructions are involved.
18471 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
18472 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
18473 floating point emulation.
18474 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
18475 (REVERSE_CONDITION): Add new CC_FPU* modes.
18476 (TARGET_FP_SP_BASE): Define.
18477 (TARGET_FP_DP_BASE): Likewise.
18478 (TARGET_FP_SP_FUSED): Likewise.
18479 (TARGET_FP_DP_FUSED): Likewise.
18480 (TARGET_FP_SP_CONV): Likewise.
18481 (TARGET_FP_DP_CONV): Likewise.
18482 (TARGET_FP_SP_SQRT): Likewise.
18483 (TARGET_FP_DP_SQRT): Likewise.
18484 (TARGET_FP_DP_AX): Likewise.
18485 * config/arc/arc.md (ARCV2_ACC): New constant.
18486 (type): New fpu type attribute.
18487 (SDF): Conditional iterator.
18488 (cstore<mode>, cbranch<mode>): Change expand condition.
18489 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
18490 handles FPU/FPX cases as well.
18491 * config/arc/arc.opt (mfpu): New option.
18492 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
18494 (adddf3, muldf3, subdf3): Removed.
18495 * config/arc/predicates.md (proper_comparison_operator): Recognize
18497 * config/arc/fpu.md: New file.
18498 * doc/invoke.texi (ARC Options): Document mfpu option.
18500 2016-02-16 Richard Biener <rguenther@suse.de>
18502 PR rtl-optimization/69291
18503 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
18504 noce_operand_ok check.
18506 2016-02-16 Tom de Vries <tom@codesourcery.com>
18509 * omp-low.c (simd_clone_create): Remove call to
18510 symtab->call_cgraph_insertion_hooks.
18512 2016-02-16 Jakub Jelinek <jakub@redhat.com>
18514 PR tree-optimization/69802
18515 * tree-ssa-reassoc.c (update_range_test): If op is
18516 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
18517 op == 1 test of precision 1 integral op, otherwise handle
18518 that case as op itself. Fix up formatting.
18519 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
18522 2016-02-16 Richard Biener <rguenther@suse.de>
18524 PR tree-optimization/69586
18525 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
18526 types for conversion sources.
18528 2016-02-16 Richard Biener <rguenther@suse.de>
18530 PR middle-end/69801
18531 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
18532 mask OEP_ADDRESS_OF.
18534 2016-02-16 Alan Modra <amodra@gmail.com>
18537 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
18538 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
18539 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
18541 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
18542 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
18543 (p8_fmrgow_<mode>): Likewise.
18544 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
18546 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
18547 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
18548 to use movdi_internal64. Remove op0_di.
18549 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
18551 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
18553 Add support for the FCCMP insn types
18555 * config/aarch64/aarch64.md (fccmp): Change insn type.
18556 (fccmpe): Likewise.
18557 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
18558 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
18559 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
18560 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
18561 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
18562 * config/arm/types.md (fccmps): Add new insn type.
18563 (fccmpd): Likewise.
18565 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
18567 * alias.c (get_alias_set): Fix a typo in comment.
18569 2016-02-15 Richard Biener <rguenther@suse.de>
18571 PR tree-optimization/69595
18572 * match.pd: Complete range test simplification to true.
18574 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
18576 PR rtl-optimization/69648
18577 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
18578 pic_offset_table_rtx.
18580 PR rtl-optimization/69752
18581 * ira.c (update_equiv_regs): When looking for more than a single SET,
18582 also take other side effects into account.
18584 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
18586 * config/s390/s390.c (s390_function_profiler): Add a new sequence
18587 for z900+ CPUs in 31-bit mode.
18589 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
18591 * common/config/s390/s390-common.c (s390_supports_split_stack):
18593 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
18594 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
18595 * config/s390/s390.c (struct machine_function): New field
18596 split_stack_varargs_pointer.
18597 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
18598 in s390_emit_prologue.
18599 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
18601 (morestack_ref): New global.
18602 (SPLIT_STACK_AVAILABLE): New macro.
18603 (s390_expand_split_stack_prologue): New function.
18604 (s390_live_on_entry): New function.
18605 (s390_va_start): Use split-stack vararg pointer if appropriate.
18606 (s390_asm_file_end): Emit the split-stack note sections.
18607 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
18608 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
18609 (UNSPECV_SPLIT_STACK_CALL): New unspec.
18610 (UNSPECV_SPLIT_STACK_DATA): New unspec.
18611 (split_stack_prologue): New expand.
18612 (split_stack_space_check): New expand.
18613 (split_stack_data): New insn.
18614 (split_stack_call): New expand.
18615 (split_stack_call_*): New insn.
18616 (split_stack_cond_call): New expand.
18617 (split_stack_cond_call_*): New insn.
18619 2016-02-15 Richard Biener <rguenther@suse.de>
18621 PR tree-optimization/69783
18622 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
18623 Add trivially correct cases.
18625 2016-02-15 Tom de Vries <tom@codesourcery.com>
18628 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
18630 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
18632 2016-02-15 Richard Biener <rguenther@suse.de>
18634 PR tree-optimization/69776
18635 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
18636 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
18637 indicate whether we can use TBAA to disambiguate against stores.
18638 Use alias-set zero if not.
18639 (visit_reference_op_store): Do not use TBAA when looking up
18641 * tree-ssa-pre.c (compute_avail): Use TBAA here.
18642 (eliminate_dom_walker::before_dom_children): But not when looking
18643 up redundant stores.
18645 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
18647 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
18649 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
18651 * config/i386/znver1.md
18652 (znver1_pop, znver1_pop_mem,
18653 znver1_load_imov_double_store,
18654 znver1_load_imov_direct_store,
18655 znver1_load_imov_direct_load,
18656 znver1_load_imov_double_load): Add new.
18657 (znver1_insn, znver1_insn_load): Add icmov type.
18658 (znver1_sseavx_fma,
18659 znver1_sseavx_fma_load,
18661 znver1_avx256_fma_load): Fix pipe usage.
18663 2016-02-14 Alan Modra <amodra@gmail.com>
18666 * reload.c (find_reloads_address_1): For pre/post-inc/dec
18667 with an invalid hard reg, reload just the reg not the entire
18668 pre/post-inc/dec address expression.
18670 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
18673 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
18674 fixed R1_REG scratch reg.
18675 (sibcall_value_pcrel_fdpic): Likewise.
18677 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
18681 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
18683 2016-02-12 Walter Lee <walt@tilera.com>
18685 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
18686 * config/tilegx/t-tilegx: Likewise.
18688 2016-02-12 David Malcolm <dmalcolm@redhat.com>
18691 * diagnostic-show-locus.c (struct line_span): New struct.
18692 (layout::get_first_line): Delete.
18693 (layout::get_last_line): Delete.
18694 (layout::get_num_line_spans): New member function.
18695 (layout::get_line_span): Likewise.
18696 (layout::print_heading_for_line_span_index_p): Likewise.
18697 (layout::get_expanded_location): Likewise.
18698 (layout::calculate_line_spans): Likewise.
18699 (layout::m_first_line): Delete.
18700 (layout::m_last_line): Delete.
18701 (layout::m_line_spans): New field.
18702 (layout::layout): Update comment. Replace m_first_line and
18703 m_last_line with m_line_spans, replacing their initialization
18704 with a call to calculate_line_spans.
18705 (diagnostic_show_locus): When printing source lines and
18706 annotations, rather than looping over a single span
18707 of lines, instead loop over each line_span within
18708 the layout, with an inner loop over the lines within them.
18709 Call the context's start_span callback when changing line spans.
18710 * diagnostic.c (diagnostic_initialize): Initialize start_span.
18711 (diagnostic_build_prefix): Break out the building of the location
18712 part of the string into...
18713 (diagnostic_get_location_text): ...this new function, rewriting
18714 it from nested ternary expressions to a sequence of "if"
18716 (default_diagnostic_start_span_fn): New function.
18717 * diagnostic.h (diagnostic_start_span_fn): New typedef.
18718 (diagnostic_context::start_span): New field.
18719 (default_diagnostic_start_span_fn): New prototype.
18721 2016-02-12 David Malcolm <dmalcolm@redhat.com>
18724 * gcc.c (driver::finalize): Fix cleanup of "specs".
18726 2016-02-12 David Malcolm <dmalcolm@redhat.com>
18730 * gcc.c (driver::driver): Initialize m_option_suggestions.
18731 (driver::~driver): Clean up m_option_suggestions.
18732 (suggest_option): Convert to...
18733 (driver::suggest_option): ...this, and split out into
18734 driver::build_option_suggestions and find_closest_string.
18735 (driver::build_option_suggestions): New function, from
18736 first half of suggest_option. Special-case
18737 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
18738 the sanitizer_opts array. For options of enum types, add the
18739 various enum values to the candidate strings.
18740 (driver::handle_unrecognized_options): Remove "const".
18741 * gcc.h (driver::handle_unrecognized_options): Likewise.
18742 (driver::build_option_suggestions): New decl.
18743 (driver::suggest_option): New decl.
18744 (driver::m_option_suggestions): New field.
18745 * opts-common.c (add_misspelling_candidates): New function.
18746 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
18747 and make non-static.
18748 * opts.h (sanitizer_opts): New array decl.
18749 (add_misspelling_candidates): New function decl.
18750 * spellcheck.c (find_closest_string): New function.
18751 * spellcheck.h (find_closest_string): New function decl.
18753 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18755 PR rtl-optimization/69764
18756 PR rtl-optimization/69771
18757 * optabs.c (expand_binop_directly): For shift_optab_p, force
18758 convert_modes with VOIDmode if xop1 has VOIDmode.
18760 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
18763 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
18764 to correctly determine instrumentation thunks.
18766 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18769 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
18770 type by reference, force lhs on the call.
18773 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
18774 Compute retval and retbnd early in all cases if split_part_return_p
18775 and return_bb is not EXIT. Remove all clobber stmts and reset
18776 all debug stmts that refer to SSA_NAMEs defined in split part,
18777 except if it is retval, in that case replace the old retval with the
18778 lhs of the call to the split part.
18780 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18783 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18785 PR middle-end/66726
18786 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18787 whose result is used in PHI.
18788 (maybe_optimize_range_tests): Likewise.
18789 (final_range_test_p): Likweise.
18791 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
18793 PR middle-end/66726
18794 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
18795 whose result is used in PHI.
18796 (maybe_optimize_range_tests): Likewise.
18797 (final_range_test_p): Likweise.
18799 2016-02-12 Jakub Jelinek <jakub@redhat.com>
18801 * cgraph.c: Spelling fixes - behaviour -> behavior and
18802 neighbour -> neighbor.
18803 * target.def: Likewise.
18804 * sel-sched.c: Likewise.
18805 * config/mips/mips.c: Likewise.
18806 * config/arc/arc.md: Likewise.
18807 * config/arm/cortex-a57.md: Likewise.
18808 * config/arm/arm.c: Likewise.
18809 * config/arm/neon.md: Likewise.
18810 * config/arm/arm-c.c: Likewise.
18811 * config/vms/vms-c.c: Likewise.
18812 * config/s390/s390.c: Likewise.
18813 * config/i386/znver1.md: Likewise.
18814 * config/i386/i386.c: Likewise.
18815 * config/ia64/hpux-unix2003.h: Likewise.
18816 * config/msp430/msp430.md: Likewise.
18817 * config/rx/rx.c: Likewise.
18818 * config/rx/rx.md: Likewise.
18819 * config/aarch64/aarch64-simd.md: Likewise.
18820 * config/aarch64/aarch64.c: Likewise.
18821 * config/nvptx/nvptx.c: Likewise.
18822 * config/bfin/bfin.c: Likewise.
18823 * config/cris/cris.opt: Likewise.
18824 * config/rs6000/rs6000.c: Likewise.
18825 * target.h: Likewise.
18826 * spellcheck.c: Likewise.
18827 * ira-build.c: Likewise.
18828 * tree-inline.c: Likewise.
18829 * builtins.c: Likewise.
18830 * lra-constraints.c: Likewise.
18831 * explow.c: Likewise.
18832 * hwint.h: Likewise.
18833 * targhooks.c: Likewise.
18834 * tree-vect-data-refs.c: Likewise.
18835 * expr.c: Likewise.
18836 * doc/tm.texi: Likewise.
18837 * doc/extend.texi: Likewise.
18838 * doc/install.texi: Likewise.
18839 * doc/md.texi: Likewise.
18840 * tree-ssa-tail-merge.c: Likewise.
18841 * sched-int.h: Likewise.
18842 * match.pd: Likewise.
18843 * sched-ebb.c: Likewise.
18844 * target.def (omit_struct_return_reg): Likewise.
18845 * gimple-ssa-isolate-paths.c: Likewise.
18846 (find_implicit_erroneous_behaviour): Renamed to...
18847 (find_implicit_erroneous_behavior): ... this.
18848 (find_explicit_erroneous_behaviour): Renamed to...
18849 (find_explicit_erroneous_behavior): ... this.
18850 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
18852 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
18854 PR rtl-optimization/64682
18855 PR rtl-optimization/69567
18856 PR rtl-optimization/69737
18857 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
18858 in I2 as well, just lose it.
18860 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18862 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
18864 (aarch64_last_printed_tune_string): Likewise.
18865 (aarch64_declare_function_name): Only output .arch assembler
18866 directive if it will be different from the previously output
18867 directive. Same for .tune comment but only if -dA is set.
18868 (aarch64_start_file): New function.
18869 (TARGET_ASM_FILE_START): Define.
18871 2016-02-11 David Malcolm <dmalcolm@redhat.com>
18874 * Makefile.in (PLUGIN_HEADERS): Add params.list.
18876 2016-02-11 Jakub Jelinek <jakub@redhat.com>
18879 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
18880 -Wmaybe-uninitialized warning.
18882 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
18885 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
18887 2016-02-11 Richard Biener <rguenther@suse.de>
18889 PR rtl-optimization/69291
18890 * ifcvt.c (noce_try_store_flag_constants): Do not allow
18891 subexpressions affected by changing the result.
18893 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
18896 * lra-constraints.c (curr_insn_transform): Find in/out operands
18897 for secondary memory moves. Update dups.
18899 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
18901 PR tree-optimization/69652
18902 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
18903 to nested loop, did source re-formatting, skip debug statements,
18904 add check on statement with volatile operand, remove dead scalar
18907 2016-02-10 Jakub Jelinek <jakub@redhat.com>
18908 Patrick Palka <ppalka@gcc.gnu.org>
18912 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
18913 calls if the return type is TREE_ADDRESSABLE.
18914 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
18915 * ipa-split.c (split_function): Fix doubled "we" in comment.
18916 Use void return type for the split part even if
18917 !split_point->split_part_set_retval.
18919 2016-02-10 Bin Cheng <bin.cheng@arm.com>
18921 PR tree-optimization/68021
18922 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
18923 when computing the value of biv cand by itself.
18925 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
18927 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
18928 (cortexa57_tunings): Likewise.
18929 (cortexa72_tunings): Likewise.
18930 (arch_macro_fusion_pair_p): Add support for AES fusion.
18931 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
18932 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
18933 Allow virtual registers before reload so early scheduling works.
18934 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
18935 correct latency and pipeline.
18936 (cortex_a57_crypto_complex): Likewise.
18937 (cortex_a57_crypto_xor): Likewise.
18938 (define_bypass): Add AES bypass.
18940 2016-02-10 Richard Biener <rguenther@suse.de>
18942 PR tree-optimization/69726
18943 * passes.def: Add DCE pass before late uninit.
18944 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
18945 really fixup if-conversions job.
18947 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
18949 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
18950 (arm_cortex_a57_tune): Likewise.
18951 (aarch_macro_fusion_pair_p): Add support for AES fusion.
18952 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
18954 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
18956 * timevar.def (TV_PHASE_DBGINFO): Delete.
18957 (TV_PHASE_CHECK_DBGINFO): Likewise.
18958 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
18960 2016-02-10 Richard Biener <rguenther@suse.de>
18962 PR tree-optimization/69719
18963 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
18964 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
18966 2016-02-09 Andrew Pinski <apinski@cavium.com>
18969 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
18970 get_vcond_mask_icode returns false.
18972 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
18975 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
18976 an ADDIS that adds a pointer to a large constant that sets the
18977 upper16 bits with a load operation.
18979 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
18982 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
18984 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
18986 (vzipq_s16): Likewise.
18987 (vzipq_s32): Likewise.
18988 (vzipq_f32): Likewise.
18989 (vzipq_u8): Likewise.
18990 (vzipq_u16): Likewise.
18991 (vzipq_u32): Likewise.
18992 (vzipq_p8): Likewise.
18993 (vzipq_p16): Likewise.
18995 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
18998 * config/arm/arm.c (neon_endian_lane_map): New function.
18999 (neon_vector_pair_endian_lane_map): New function.
19000 (arm_evpc_neon_vuzp): Allow for big endian lane order.
19001 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
19003 (vuzpq_s16): Likewise.
19004 (vuzpq_s32): Likewise.
19005 (vuzpq_f32): Likewise.
19006 (vuzpq_u8): Likewise.
19007 (vuzpq_u16): Likewise.
19008 (vuzpq_u32): Likewise.
19009 (vuzpq_p8): Likewise.
19010 (vuzpq_p16): Likewise.
19012 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
19015 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
19018 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
19020 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
19021 truncate const_int operand 1 to QImode.
19023 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
19025 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
19026 corresponding to an abnormal edge.
19028 2016-02-09 Tom de Vries <tom@codesourcery.com>
19030 PR tree-optimization/69599
19031 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
19033 (find_func_aliases_for_builtin_call, find_func_clobbers)
19034 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
19037 2016-02-09 Richard Biener <rguenther@suse.de>
19039 PR tree-optimization/69715
19040 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
19041 LHS on calls as non-rewritable.
19043 2016-02-09 Tom de Vries <tom@codesourcery.com>
19046 * lto-wrapper.c (append_diag_options): New function.
19047 (compile_offload_image): Call append_diag_options.
19049 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
19052 * doc/extend.texi (Flag Output Operands): Correct sectioning.
19053 Minor copy-edit to fix verb tenses.
19055 2016-02-08 Jakub Jelinek <jakub@redhat.com>
19057 PR tree-optimization/69209
19058 * ipa-split.c (split_function): If split part is not
19059 returning retval, retval has gimple type but is not
19060 gimple value, force it into a SSA_NAME first.
19062 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
19064 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
19067 2016-02-08 Jason Merrill <jason@redhat.com>
19070 * convert.c (convert_to_integer_1): Check dofold on truncation
19072 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
19073 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
19074 Rename from *_nofold.
19075 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
19076 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
19078 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
19081 * tree.c (build_common_tree_nodes): Remove short_double argument.
19082 All callers changed.
19083 * tree.h (build_common_tree_nodes): Adjust declaration.
19084 * doc/invoke.texi (-fshort-double): Remove documentation.
19085 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
19086 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
19087 * lto-wrapper.c (merge_and_complain, append_compiler_options)
19088 (append_linker_options): Don't handle OPT_fshort_double.
19090 PR rtl-optimization/68730
19091 * lra-remat.c (insn_to_cand_activation): New static variable.
19092 (lra_remat): Allocate and free it.
19093 (create_cand): New arg activation. Initialize a field in
19094 insn_to_cand_activation if it is nonnull.
19095 (create_cands): Pass the activation insn to create_cand when making
19096 a candidate involving an output reload. Reorganize code a little.
19097 (do_remat): Keep track of active status of candidates in a separate
19100 2016-02-08 Richard Biener <rguenther@suse.de>
19102 PR tree-optimization/69719
19103 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
19104 Properly use absolute of the difference of the two offsets to
19105 compare or adjust the segment length.
19107 2016-02-08 Richard Biener <rguenther@suse.de>
19108 Jeff Law <law@redhat.com>
19111 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
19112 types for anonymous SSA names.
19114 2016-02-08 Richard Biener <rguenther@suse.de>
19116 PR rtl-optimization/69274
19117 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
19119 2016-02-08 Jeff Law <law@redhat.com>
19121 PR tree-optimization/65917
19122 * tree-ssa-dom.c (record_temporary_equivalences): Record both
19123 equivalences from if (x == y) style conditionals.
19124 (loop_depth_of_name): Remove.
19125 (record_equality): Remove loop depth check.
19126 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
19127 (const_and_copies::record_const_or_copy_raw): New member function.
19128 * tree-ssa-scopedtables.c
19129 (const_and_copies::record_const_or_copy_raw): New, factored out of
19130 (const_and_copies::record_const_or_copy): Call new member function.
19132 2016-02-05 Jeff Law <law@redhat.com>
19134 PR tree-optimization/68541
19135 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
19136 (count_stmts_in_block): New function.
19137 (poor_ifcvt_candidate_code): Likewise.
19138 (is_feasible_trace): Add some heuristics to determine when path
19139 splitting is profitable.
19140 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
19141 is a diamond with a single exit.
19143 2016-02-05 Martin Sebor <msebor@redhat.com>
19146 * doc/invoke.texi: Update -Wplacement-new to take an optional
19149 2016-02-06 Richard Henderson <rth@redhat.com>
19152 * tree.c (tree_nop_conversion_p): Do not strip casts into or
19153 out of non-standard address spaces.
19155 2016-02-05 Jakub Jelinek <jakub@redhat.com>
19157 PR rtl-optimization/69691
19158 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
19160 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
19162 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
19163 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
19164 (*ieee128_mfvsrd_64bit): Likewise.
19165 (*ieee128_mfvsrd_32bit): Likewise.
19167 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
19171 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
19173 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
19174 instrumented_version.
19176 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
19178 * doc/invoke.texi (Optimize Options): In table of --param options
19179 rename second occurrence of tracer-min-branch-ratio to
19180 tracer-min-branch-probability, rename
19181 tracer-min-branch-ratio-feedback to
19182 tracer-min-branch-probability-feedback and clarify description,
19183 rename sched-spec-state-edge-prob-cutoff to
19184 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
19185 to selsched-insns-to-rename, rename lto-minpartition to
19186 lto-min-partition, delete reorder-blocks-duplicate and
19187 reorder-blocks-duplicate-feedback.
19189 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19191 * config/s390/s390.c (s390_register_info_set_ranges): Remove
19194 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
19196 * doc/extend.texi: S/390: Correct some typos.
19198 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19200 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
19202 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19205 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
19206 (s390_register_info_gprtofpr): Use new macros above.
19207 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
19209 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
19210 its name. Adjust restore and save gpr ranges.
19211 (s390_register_info_set_ranges): New function.
19212 (s390_register_info): Use new macros above. Call
19213 s390_register_info_set_ranges.
19214 (s390_optimize_register_info): Likewise.
19215 (s390_hard_regno_rename_ok): Use new macros.
19216 (s390_hard_regno_scratch_ok): Likewise.
19217 (s390_emit_epilogue): Likewise.
19218 (s390_can_use_return_insn): Likewise.
19219 (s390_optimize_prologue): Likewise.
19220 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
19222 2016-02-05 Jakub Jelinek <jakub@redhat.com>
19225 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
19227 (ix86_option_override_internal): Disable TARGET_STV even for
19228 -m{incoming,preferred}-stack-boundary=3.
19230 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
19232 * config.gcc: Mark deprecated rtems targets as obsolete.
19234 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
19236 PR rtl-optimization/64682
19237 PR rtl-optimization/69567
19238 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
19239 before I2 only if the register is both used and set in I2.
19241 2016-02-04 DJ Delorie <dj@redhat.com>
19243 * config/msp430/msp430.c (msp430_start_function): Add function type.
19245 2016-02-04 Jakub Jelinek <jakub@redhat.com>
19248 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
19250 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
19252 PR rtl-optimization/69577
19254 2015-10-29 Richard Henderson <rth@redhat.com>
19258 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
19259 sse check to the exact conditions of PR 67609.
19261 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
19264 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
19265 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
19266 not allowed into the traditional Altivec registers.
19267 (movtd_64bit_nodm): Likewise.
19268 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
19270 2016-02-04 David Malcolm <dmalcolm@redhat.com>
19272 * config/aarch64/cortex-a57-fma-steering.c
19273 (aarch64_register_fma_steering): Remove "static" from arguments
19276 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
19279 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
19280 twice when complex.
19282 2016-02-04 Mike Frysinger <vapier@gentoo.org>
19284 * doc/invoke.texi: Delete -mno-fma4.
19286 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
19288 PR rtl-optimization/69577
19289 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
19290 (find_subregs_of_mode): Update accordingly. Iterate over partial
19293 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
19295 * config/arm/arm-protos.h (neon_reinterpret): Remove.
19296 * config/arm/arm.c (neon_reinterpret): Remove.
19297 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
19298 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
19299 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
19300 vreinterpretti): Remove.
19301 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
19302 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
19303 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
19304 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
19305 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
19306 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
19307 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
19308 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
19309 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
19310 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
19311 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
19312 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
19313 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
19314 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
19315 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
19316 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
19317 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
19318 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
19319 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
19320 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
19321 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
19322 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
19323 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
19324 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
19325 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
19326 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
19327 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
19328 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
19329 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
19330 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
19331 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
19332 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
19333 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
19334 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
19335 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
19336 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
19337 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
19338 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
19339 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
19340 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
19341 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
19342 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
19343 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
19344 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
19345 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
19346 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
19347 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
19348 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
19349 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
19350 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
19351 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
19352 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
19353 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
19354 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
19355 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
19356 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
19357 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
19358 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
19359 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
19360 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
19361 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
19362 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
19363 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
19364 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
19365 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
19366 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
19367 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
19368 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
19369 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
19370 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
19371 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
19372 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
19373 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
19374 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
19375 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
19376 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
19377 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
19378 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
19379 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
19380 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
19381 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
19382 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
19383 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
19384 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
19385 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
19386 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
19387 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
19388 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
19389 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
19390 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
19391 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
19392 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
19393 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
19394 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
19395 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
19396 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
19397 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
19398 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
19399 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
19400 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
19401 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
19402 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
19403 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
19405 2016-02-04 Martin Liska <mliska@suse.cz>
19408 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
19409 that are gimple_store_p.
19410 (maybe_instrument_call): Likewise.
19412 2016-02-04 Bin Cheng <bin.cheng@arm.com>
19414 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
19415 register scaling out of memory reference and comment why.
19417 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19421 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
19422 folding the source of a SET.
19424 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19428 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
19429 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
19431 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
19435 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
19438 2016-02-04 Christian Bruel <christian.bruel@st.com>
19440 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
19441 * config/arm/arm.c (arm_set_current_function): Likewise.
19443 2016-02-04 Jakub Jelinek <jakub@redhat.com>
19444 Ilya Enkovich <enkovich.gnu@gmail.com>
19445 H.J. Lu <hongjiu.lu@intel.com>
19448 * config/i386/i386.c (convert_scalars_to_vector): Remove
19449 stack alignment fixes.
19450 (ix86_option_override_internal): Disable TARGET_STV if stack
19451 might not be aligned enough.
19452 (ix86_minimum_alignment): Assert that TARGET_STV is false.
19454 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
19456 * config/i386/x86-tune.def: Disable default prefetching
19459 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
19460 Vladimir Makarov <vmakarov@redhat.com>
19463 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
19464 in validating fused toc addresses.
19466 2016-02-03 Jakub Jelinek <jakub@redhat.com>
19469 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
19470 range->m_caret fields if range->m_show_caret_p is false.
19473 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
19474 Force oldval into register if it does not satisfy reg_or_short_operand
19475 predicate. Fix up formatting.
19477 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
19478 Alexandre Oliva <aoliva@redhat.com>
19481 * lra-constraints.c (simplify_operand_subreg): Check additionally
19482 address validity after potential reloading.
19483 (process_address_1): Check insns validity. In case of failure do
19486 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
19489 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
19492 2016-02-02 Jakub Jelinek <jakub@redhat.com>
19494 * wide-int.cc (canonize_uhwi): New function.
19495 (wi::divmod_internal): Use it.
19497 2016-02-02 James Norris <jnorris@codesourcery.com>
19499 * gimplify.c (omp_notice_variable): Add usage check.
19501 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
19503 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
19504 like LE, GE, LT, GT when emitting relational operator.
19506 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
19508 * ira-costs.c (find_costs_and_classes): Add extra argument.
19509 * target.def (ira_change_pseudo_allocno_class): Add parameter.
19510 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
19511 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
19512 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
19513 Add best_class parameter, and return it if not ALL_REGS.
19514 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
19516 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
19517 Update target hook.
19519 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
19521 * config/aarch64/aarch64.c
19522 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
19523 (aarch64_ira_change_pseudo_allocno_class): New function.
19525 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
19528 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
19530 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
19532 * config/avr/avr.c (avr_option_override): Set
19533 PARAM_ALLOW_STORE_DATA_RACES to 1.
19535 2016-02-02 Richard Biener <rguenther@suse.de>
19537 PR tree-optimization/69595
19538 * match.pd: Add range test simplifications to true/false.
19540 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
19542 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
19543 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
19546 2016-02-02 Richard Biener <rguenther@suse.de>
19548 PR tree-optimization/69606
19549 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
19550 info on the result before moving a stmt.
19552 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
19554 PR middle-end/68542
19555 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
19556 branch with vector comparison.
19557 * config/i386/sse.md (VI48_AVX): New mode iterator.
19558 (define_expand "cbranch<mode>4): Add support for conditional branch
19559 with vector comparison.
19560 * tree-vect-loop.c (optimize_mask_stores): New function.
19561 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
19562 has_mask_store field of vect_info.
19563 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
19564 vectorized loops having masked stores after vec_info destroy.
19565 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
19566 correspondent macros.
19567 (optimize_mask_stores): Add prototype.
19569 2016-02-02 Alan Modra <amodra@gmail.com>
19572 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
19575 2016-02-02 Alan Modra <amodra@gmail.com>
19578 * config/rs6000/rs6000.c (need_toc_init): New var, set it
19579 whenever toc_label_name used.
19580 (rs6000_file_start): Don't set up toc section here,
19581 (rs6000_output_function_epilogue): do so here instead,
19582 (rs6000_xcoff_file_start): and here.
19583 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
19584 (load_toc_aix_di): Likewise.
19586 2016-02-01 Jakub Jelinek <jakub@redhat.com>
19588 PR rtl-optimization/69592
19589 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
19590 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
19591 (num_sign_bit_copies_binary_arith_p): New inline function.
19592 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
19594 2016-02-01 Jeff Law <law@redhat.com>
19596 PR tree-optimization/69580
19597 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
19598 * tree-ssa-threadbackward.c
19599 (fsm_find_control_statement_thread_paths): Do not try to walk
19600 through large PHI nodes.
19602 2016-02-01 Jakub Jelinek <jakub@redhat.com>
19604 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
19605 when count is incremented above limit, don't analyze further
19608 * omp-low.c (oacc_parse_default_dims): Avoid
19609 -Wsign-compare warning, make sure value fits into int
19610 rather than just unsigned int.
19612 2016-02-01 Bin Cheng <bin.cheng@arm.com>
19614 PR tree-optimization/67921
19615 * fold-const.c (split_tree): New parameters. Convert pointer
19616 type variable part to proper type before negating.
19617 (fold_binary_loc): Pass new arguments to split_tree.
19619 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
19621 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
19622 (nvptx_goacc_validate_dims): Extend to handle global defaults.
19623 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
19624 * doc/tm.texti: Rebuilt.
19625 * doc/invoke.texi (fopenacc-dim): Document.
19626 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
19627 (append_compiler_options): Likewise.
19628 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
19629 (oacc_parse_default_dims): New.
19630 (oacc_validate_dims): Add USED arg. Select non-unity default when
19632 (oacc_loop_fixed_partitions): Return mask of used partitions.
19633 (oacc_loop_auto_partitions): Emit dump info.
19634 (oacc_loop_partition): Return mask of used partitions.
19635 (execute_oacc_device_lower): Parse default dimension arg. Adjust
19636 loop partitioning and validation calls.
19638 2016-02-01 Richard Biener <rguenther@suse.de>
19640 PR middle-end/69556
19641 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
19643 2016-02-01 Richard Biener <rguenther@suse.de>
19645 PR tree-optimization/69574
19646 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
19647 of asserting return chrec_dont_know.
19649 2016-02-01 Martin Liska <mliska@suse.cz>
19651 * mem-stats-traits.h: Add copyright header.
19652 * mem-stats.h: Likewise.
19654 2016-02-01 Richard Biener <rguenther@suse.de>
19656 PR tree-optimization/69579
19657 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
19658 Do not propagate through abnormal PHI results.
19660 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
19662 * postreload.c (reload_cse_simplify): Remove dead code.
19664 2016-02-01 Jakub Jelinek <jakub@redhat.com>
19666 PR rtl-optimization/69570
19667 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
19668 if there is more than one set, not if there is a single set.
19670 2016-02-01 Richard Henderson <rth@redhat.com>
19673 * combine.c (make_compound_operation): When looking through a
19674 subreg, make sure to re-extend to the width of the outer mode.
19676 2016-01-30 Jakub Jelinek <jakub@redhat.com>
19678 PR tree-optimization/69546
19679 * wide-int.cc (wi::divmod_internal): For unsigned division
19680 where both operands fit into uhwi, if o1 is 1 and o0 has
19681 msb set, if divident_prec is larger than bits per hwi,
19682 clear another quotient word and return 2 instead of 1.
19683 Similarly for remainder with msb in HWI set, if dividend_prec
19684 is larger than bits per hwi.
19686 2016-01-29 Martin Jambor <mjambor@suse.cz>
19688 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
19689 Use short lowercase names.
19690 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
19691 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
19692 acq_rel one. Protect warning agains segfaults if
19693 get_memory_order_name returns NULL.
19694 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
19695 with release semantics. Do not warn if get_memory_order already did.
19696 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
19697 semantics. Fix check for relaxed or acquire semantics. Do not warn
19698 if get_memory_order already did.
19700 2016-01-29 Sebastian Pop <s.pop@samsung.com>
19702 * doc/install.texi: Document that isl-0.16 is supported.
19704 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
19707 * config/i386/constraints.md (Bm): Describe as special memory
19709 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
19710 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19711 * genpreds.c (struct constraint_data): Add is_special_memory.
19712 (have_special_memory_constraints, special_memory_start): New
19714 (special_memory_end): Ditto.
19715 (add_constraint): Add new arg is_special_memory. Add code to
19716 process its true value. Update have_special_memory_constraints.
19717 (process_define_constraint): Pass the new arg.
19718 (process_define_register_constraint): Ditto.
19719 (choose_enum_order): Process special memory.
19720 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
19721 function insn_extra_special_memory_constraint.
19722 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19723 * gensupport.c (process_rtx): Process
19724 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
19725 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
19726 * ira-lives.c (single_reg_class): Use
19727 insn_extra_special_memory_constraint.
19728 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
19729 * lra-constraints.c (process_alt_operands): Ditto.
19730 (curr_insn_transform): Use insn_extra_special_memory_constraint.
19731 * recog.c (asm_operand_ok, preprocess_constraints): Process
19733 * reload.c (find_reloads): Ditto.
19734 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
19735 * stmt.c (parse_input_constraint): Use
19736 insn_extra_special_memory_constraint.
19738 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
19741 * lra-splill.c (lra_final_code_change): Revert r229087 by
19742 removing all sub-registers.
19744 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
19747 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
19749 2016-01-29 Jakub Jelinek <jakub@redhat.com>
19752 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
19753 SSE1, copy target into the temporary reg first before recursing
19756 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
19758 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
19761 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
19763 * ginclude/stdarg.h: Test __cplusplus instead of
19764 __GXX_EXPERIMENTAL_CXX0X__.
19766 2016-01-29 Richard Biener <rguenther@suse.de>
19768 PR tree-optimization/69547
19769 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
19770 Do not mark clobbers necessary.
19771 (mark_all_reaching_defs_necessary_1): Likewise.
19773 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19775 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
19776 declaration name with %qs and print it in both error messages.
19777 Also fix indentation.
19779 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19782 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
19783 trailing blank line from error message.
19785 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
19788 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
19791 2016-01-29 Richard Biener <rguenther@suse.de>
19793 PR middle-end/69537
19794 * match.pd: Allow all integral types when simplifying a
19795 widening or sign-changing conversion.
19797 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19799 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
19800 back to setting codegen_error to fail codegen.
19802 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
19805 * config/i386/constraints.md (C): Only accept constant zero operand.
19806 (BC): New constraint.
19807 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
19808 instead of C constraint.
19809 * doc/md.texi (Machine Constraints): Update description
19812 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
19815 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
19817 2016-01-28 Jakub Jelinek <jakub@redhat.com>
19819 PR middle-end/69542
19820 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
19823 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
19825 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
19826 branches if using guessed profile.
19828 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
19830 * graphite-optimize-isl.c (optimize_isl): Fix dump.
19832 2016-01-28 Richard Henderson <rth@redhat.com>
19835 * config/aarch64/aarch64-modes.def (CC_Cmode): New
19836 * config/aarch64/aarch64-protos.h: Update.
19837 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
19838 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
19839 (aarch64_get_condition_code_1): Handle CC_Cmode.
19840 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
19841 (*add<mode>3_compareC_cconly_imm): New.
19842 (*add<mode>3_compareC_cconly): New.
19843 (*add<mode>3_compareC_imm): New.
19844 (add<mode>3_compareC): New.
19845 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
19846 to be first. Use aarch64_carry_operation.
19847 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
19848 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
19849 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
19850 (subti3): Use subdi3_compare1.
19851 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
19852 (sub<mode>3_compare1): New.
19853 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
19854 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
19855 (*subsi3_carryin_uxtw): Likewise.
19856 (*ngc<mode>, *ngcsi_uxtw): Likewise.
19857 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
19858 * config/aarch64/iterators.md (DWI): New.
19859 * config/aarch64/predicates.md (aarch64_carry_operation): New.
19860 (aarch64_borrow_operation): New.
19862 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
19864 * graphite-optimize-isl.c (optimize_isl): Print a different debug
19865 message when isl does not return a valid schedule.
19867 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19869 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
19870 Remove comments from class declarations: they are already in the code
19873 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19875 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
19877 (ternary_op_to_tree): Same.
19878 (unary_op_to_tree): Same.
19879 (nary_op_to_tree): Same.
19880 (gcc_expression_from_isl_expr_op): Same.
19881 (gcc_expression_from_isl_expression): Same.
19882 (graphite_create_new_loop): Same.
19883 (graphite_create_new_loop_guard): Same.
19884 (build_iv_mapping): Same.
19885 (graphite_create_new_guard): Same.
19886 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
19887 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
19889 2016-01-28 Sebastian Pop <s.pop@samsung.com>
19891 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
19892 instead of setting codegen_error to fail codegen.
19894 2016-01-28 Jason Merrill <jason@redhat.com>
19896 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
19898 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
19900 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
19901 Remove CONST_INT_P check in CCMP cost calculation.
19903 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
19905 * config/aarch64/aarch64.c (generic_vector_cost):
19906 Set vec_permute_cost.
19907 (cortexa57_vector_cost): Likewise.
19908 (exynosm1_vector_cost): Likewise.
19909 (xgene1_vector_cost): Likewise.
19910 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
19911 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
19912 Add vec_permute_cost entry.
19914 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
19916 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
19918 (add<mode>3_compare0): Likewise.
19919 (addsi3_compare0_uxtw): Likewise.
19920 (add<mode>3nr_compare0): Likewise.
19921 (compare_neg<mode>): Likewise.
19922 (<optab><mode>3): Likewise.
19924 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
19926 * tree-vect-stmts.c (vectorizable_comparison): Add
19927 NULL check for vectype.
19929 2016-01-28 Richard Biener <rguenther@suse.de>
19931 PR tree-optimization/69466
19932 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
19933 Account for PHIs we couldn't duplicate.
19935 2016-01-28 Martin Liska <mliska@suse.cz>
19938 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
19939 instead of ENABLE_VALGRIND_CHECKING.
19941 2016-01-27 Richard Henderson <rth@redhat.com>
19944 * lra-remat.c (subreg_regs): New.
19945 (dump_candidates_and_remat_bb_data): Dump it.
19946 (operand_to_remat): Reject if operand in subreg_regs.
19947 (set_bb_regs): Collect subreg_regs.
19948 (lra_remat): Init and free subreg_regs. Compute
19949 calculate_local_reg_remat_bb_data before create_cands.
19951 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
19954 * config/i386/i386.c (ix86_update_stack_boundary): Don't
19955 change stack_alignment_needed for __tls_get_addr call.
19957 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
19959 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
19961 2016-01-27 Jeff Law <law@redhat.com>
19963 PR tree-optimization/68398
19964 PR tree-optimization/69196
19965 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
19966 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
19967 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19968 Only count PHIs in the last block in the path. The others will
19969 const/copy propagate away. Add heuristic to allow more irreducible
19970 subloops to be created when it is likely profitable to do so.
19972 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19973 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
19974 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
19976 2016-01-27 Jakub Jelinek <jakub@redhat.com>
19979 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
19980 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
19981 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
19982 * tree-streamer-in.c: Include asan.h.
19983 (streamer_get_builtin_tree): For builtins in sanitizer
19984 range call initialize_sanitizer_builtins and retry.
19986 2016-01-27 Ian Lance Taylor <iant@google.com>
19988 * common.opt (fkeep-gc-roots-live): New undocumented option.
19989 * tree-ssa-loop-ivopts.c (add_candidate_1): If
19990 -fkeep-gc-roots-live, skip pointers.
19991 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
19994 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
19997 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
19998 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
20000 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
20003 * configure.ac: NetBSD provides SSP in its C library.
20004 * configure: Updated.
20006 2016-01-27 Richard Biener <rguenther@suse.de>
20008 PR tree-optimization/69166
20009 * tree-vect-loop.c (vect_is_simple_reduction): Always check
20010 reduction code for commutativity / associativity.
20012 2016-01-27 Martin Jambor <mjambor@suse.cz>
20014 PR tree-optimization/69355
20015 * tree-sra.c (analyze_access_subtree): Correct hole detection when
20016 total_scalarization fails.
20018 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
20020 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
20023 2016-01-27 Christian Bruel <christian.bruel@st.com>
20026 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
20027 Move arm_reset_previous_fndecl and set_target_option_current_node in
20028 the conditional part. Call save_restore_target_globals.
20029 * config/arm/arm.c (arm_set_current_function):
20030 Refactor to better support #pragma target and attribute mix.
20031 Call save_restore_target_globals.
20032 * config/arm/arm-protos.h (save_restore_target_globals): New function.
20034 2016-01-27 Martin Liska <mliska@suse.cz>
20036 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
20037 reference for an HSA kernel and its host function.
20039 2016-01-27 Jakub Jelinek <jakub@redhat.com>
20041 PR tree-optimization/69399
20042 * wide-int.h (wi::lrshift): For larger precisions, only
20043 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
20045 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
20047 * config/arc/predicates.md (proper_comparison_operator): Reject
20048 constant-constant comparison.
20050 2016-01-26 Tom de Vries <tom@codesourcery.com>
20052 PR tree-optimization/69110
20053 * tree-data-ref.c (initialize_data_dependence_relation): Handle
20054 DR_NUM_DIMENSIONS == 0.
20056 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
20057 Sebastian Pop <s.pop@samsung.com>
20059 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
20060 isl_ast_op_cond and isl_ast_op_select.
20061 (gcc_expression_from_isl_expr_op): Same.
20063 2016-01-26 Jason Merrill <jason@redhat.com>
20066 * tree.c (recompute_constructor_flags): Split out from
20068 (verify_constructor_flags): New.
20069 * tree.h: Declare them.
20071 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
20073 PR rtl-optimization/69217
20074 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
20075 are no TYPE_FIELDS set for the record type.
20077 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20080 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
20081 toc_label_name unconditionally.
20082 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
20083 SYMBOL_REF string. Use toc_label_name instead of constructing
20085 (rs6000_elf_declare_function_name): Use toc_label_name instead of
20086 constructing LCTOC1.
20088 2016-01-26 Martin Sebor <msebor@redhat.com>
20091 * doc/extend.texi (Common Type Attributes): Move text that talks about
20092 attribute packed from attribute aligned to the section discussing
20093 the former attribute for clarity.
20095 2016-01-26 Richard Henderson <rth@redhat.com>
20097 PR middle-end/60908
20098 * trans-mem.c (tm_region_init): Mark entry block as visited.
20100 2016-01-26 David Malcolm <dmalcolm@redhat.com>
20103 * diagnostic-show-locus.c (layout::print_source_line): Replace
20104 call to pp_newline with call to layout::print_newline.
20105 (layout::print_annotation_line): Likewise.
20106 (layout::move_to_column): Likewise.
20107 (layout::print_any_fixits): After printing any fixits, print a
20108 trailing newline, if necessary.
20109 (layout::print_newline): New method, resetting any colorization
20111 (diagnostic_show_locus): Move the pp_newline to before the
20112 early bailout. Remove dummy block enclosing the layout instance.
20113 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
20114 of pp_newline_and_flush with pp_flush.
20115 (diagnostic_append_note): Delete use of pp_newline.
20116 (diagnostic_append_note_at_rich_loc): Delete.
20117 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
20118 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
20119 when newline characters are added to the buffer.
20121 2016-01-26 Michael Matz <matz@suse.de>
20123 * configure.ac (ac_cv_std_swap_in_utility): New test.
20124 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
20125 * configure: Regenerate.
20126 * config.in: Regenerate.
20128 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
20130 * config/arc/arc.md (cstoresi4): Force operand into register.
20131 (arcset<code>): Fix predicate.
20132 (arcsetltu): Likewise.
20133 (arcsetgeu): Likewise.
20134 (arcsethi): Likewise.
20135 (arcsetls): Likewise.
20137 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20139 PR tree-optimization/69483
20140 * gimple-fold.c (canonicalize_constructor_val): Return NULL
20141 if base has error_mark_node type.
20143 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
20146 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
20147 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
20149 (vget_lane_f16): Handle big-endian.
20150 (vgetq_lane_f16): Likewise.
20151 (vset_lane_f16): Likewise.
20152 (vsetq_lane_f16): Likewise.
20153 * config/arm/iterators.md (VQXMOV): Add V8HF.
20154 (VDQ): Add V4HF and V8HF.
20155 (V_reg): Handle V4HF and V8HF.
20156 (Is_float_mode): Likewise.
20157 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
20158 neon_vdup_nv8hf): New patterns.
20159 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
20160 Use VD_LANE iterator.
20161 (neon_vld1_dup<mode>): Use VQ2 iterator.
20163 2016-01-26 Nathan Sidwell <nathan@acm.org>
20165 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
20166 (set_oacc_fn_attrib): Add IS_KERNEL arg.
20167 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
20168 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
20169 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
20170 (oacc_validate_dims): Add LEVEL arg, don't return level.
20171 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
20172 oacc_validate_dims.
20173 (execute_oacc_device_lower): Adjust, add more dump output.
20174 * tree-ssa-loop.c (gate_oacc_kernels): Use
20175 oacc_fn_attrib_kernels_p.
20176 * tree-parloops.c (create_parallel_loop): Adjust
20177 set_oacc_fn_attrib call.
20179 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20182 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
20183 (append_compiler_options): Handle -fcilkplus.
20184 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
20186 2016-01-26 Nick Clifton <nickc@redhat.com>
20189 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
20190 been marked as DECL_ONE_ONLY but we do not the means to make it
20191 so, then do not allow it to bind locally.
20193 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20196 * opts.h (parse_sanitizer_options): New prototype.
20197 * opts.c (sanitizer_opts): New array.
20198 (parse_sanitizer_options): New function.
20199 (common_handle_option): Use parse_sanitizer_options.
20201 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
20204 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
20205 alignment adjustment to ...
20206 (ix86_update_stack_boundary): Here. Don't over-align stack for
20208 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
20209 if __tls_get_addr is called.
20211 2016-01-26 Christian Bruel <christian.bruel@st.com>
20213 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
20215 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
20217 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
20219 2016-01-26 Richard Biener <rguenther@suse.de>
20221 PR middle-end/69467
20222 * match.pd: Guard X * CST CMP 0 pattern with single_use.
20224 2016-01-26 Richard Biener <rguenther@suse.de>
20226 PR tree-optimization/69452
20227 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
20228 (move_computations_dom_walker::before_dom_children): Rename
20230 (move_computations_worker): This.
20231 (move_computations): Perform an RPO rather than a DOM walk.
20233 2016-01-26 Jakub Jelinek <jakub@redhat.com>
20236 * combine.c (combine_instructions): For REG_EQUAL note with
20237 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
20238 to the underlying register.
20239 * doc/rtl.texi (REG_EQUAL): Document the behavior of
20240 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
20242 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
20245 * config/aarch64/aarch64-builtins.c
20246 (aarch64_init_simd_builtin_types): Do not set structural
20247 equality to __Poly{8,16,64,128}_t types.
20249 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
20251 PR tree-optimization/69400
20252 * wide-int.cc (wi_pack): Take the precision as argument and
20253 perform canonicalization here rather than in the callers.
20254 Use the main loop to handle all full-width HWIs. Add a
20255 zero HWI if in_len isn't a full result.
20256 (wi::divmod_internal): Update accordingly.
20257 (wi::mul_internal): Likewise. Simplify.
20259 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
20260 Sebastian Pop <s.pop@samsung.com>
20262 * graphite-poly.c (apply_poly_transforms): Simplify.
20263 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
20264 (print_isl_map): Same.
20265 (print_isl_union_map): Same.
20266 (print_isl_schedule): New.
20267 (debug_isl_schedule): New.
20268 * graphite-dependences.c (scop_get_reads): Do not call
20269 isl_union_map_add_map that is undocumented isl functionality.
20270 (scop_get_must_writes): Same.
20271 (scop_get_may_writes): Same.
20272 (scop_get_original_schedule): Remove.
20273 (scop_get_dependences): Do not call isl_union_map_compute_flow that
20274 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
20275 (compute_deps): Remove.
20276 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
20277 (debug_schedule_ast): New.
20278 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
20279 set_separate_option.
20280 (graphite_regenerate_ast_isl): Add dump.
20281 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
20282 from scop->transformed_schedule.
20283 (graphite_regenerate_ast_isl): Add more dump.
20284 * graphite-optimize-isl.c (optimize_isl): Set
20285 scop->transformed_schedule. Check whether schedules are equal.
20286 (apply_poly_transforms): Move here.
20287 * graphite-poly.c (apply_poly_transforms): ... from here.
20288 (free_poly_bb): Static.
20289 (free_scop): Static.
20290 (pbb_number_of_iterations_at_time): Remove.
20291 (print_isl_ast): New.
20292 (debug_isl_ast): New.
20293 (debug_scop_pbb): New.
20294 * graphite-scop-detection.c (print_edge): Move.
20295 (print_sese): Move.
20296 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
20297 (build_scop_scattering): Remove.
20298 (create_pw_aff_from_tree): Assert instead of bailing out.
20299 (add_condition_to_pbb): Remove unused code, do not fail.
20300 (add_conditions_to_domain): Same.
20301 (add_conditions_to_constraints): Remove.
20302 (build_scop_context): New.
20303 (add_iter_domain_dimension): New.
20304 (build_iteration_domains): Initialize pbb->iterators.
20305 Call add_conditions_to_domain.
20308 (index_outermost_in_loop): New.
20309 (index_pbb_in_loop): New.
20310 (outermost_pbb_in): New.
20311 (add_in_sequence): New.
20312 (add_outer_projection): New.
20313 (outer_projection_mupa): New.
20314 (add_loop_schedule): New.
20315 (build_schedule_pbb): New.
20316 (build_schedule_loop): New.
20317 (embed_in_surrounding_loops): New.
20318 (build_schedule_loop_nest): New.
20319 (build_original_schedule): New.
20320 (build_poly_scop): Call build_original_schedule.
20321 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
20322 (free_poly_dr): Remove.
20323 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
20324 (free_poly_bb): Remove.
20325 (debug_loop_vec): Remove.
20326 (print_isl_ast): Declare.
20327 (debug_isl_ast): Declare.
20328 (scop_do_interchange): Remove.
20329 (scop_do_strip_mine): Remove.
20330 (scop_do_block): Remove.
20331 (flatten_all_loops): Remove.
20332 (optimize_isl): Remove.
20333 (pbb_number_of_iterations_at_time): Remove.
20334 (debug_scop_pbb): Declare.
20335 (print_schedule_ast): Declare.
20336 (debug_schedule_ast): Declare.
20337 (struct scop): Remove schedule. Add original_schedule,
20338 transformed_schedule.
20339 (free_gimple_poly_bb): Remove.
20340 (print_generated_program): Remove.
20341 (debug_generated_program): Remove.
20342 (unify_scattering_dimensions): Remove.
20343 * sese.c (print_edge): ... here.
20344 (print_sese): ... here.
20345 (debug_edge): ... here.
20346 (debug_sese): ... here.
20347 * sese.h (print_edge): Declare.
20348 (print_sese): Declare.
20349 (dump_edge): Declare.
20350 (dump_sese): Declare.
20352 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
20353 Sebastian Pop <s.pop@samsung.com>
20355 * Makefile.in: Set ISLVER in site.exp.
20357 2016-01-25 Jakub Jelinek <jakub@redhat.com>
20359 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
20360 DECL_VALUE_EXPR of new_var even for the non-array case. Look
20361 through DECL_VALUE_EXPR for expansion.
20363 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
20365 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
20366 the frame info after reload completed.
20368 2016-01-25 Jeff Law <law@redhat.com>
20370 PR tree-optimization/69196
20371 PR tree-optimization/68398
20372 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
20373 tree-ssa-threadupdate.c.
20374 (determine_bb_domination_status): Prototype
20375 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
20376 (determine_bb_domination_status): No longer static.
20377 (valid_jump_thread_path): Remove code to detect characteristics
20378 of the jump thread path not associated with correctness.
20379 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
20380 Correct test for thread path length. Count PHIs for real operands as
20381 statements that need to be copied. Do not count ASSERT_EXPRs.
20382 Look at all the blocks in the thread path. Compute and selectively
20383 filter thread paths based on threading through the latch, threading
20384 a multiway branch or crossing a multiway branch.
20386 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20388 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
20389 decl with __attribute__ ((unused)) annotation.
20391 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
20394 * tree-vect-stmts.c (vectorizable_condition): Check vectype
20395 of operands is compatible with a statement vectype.
20397 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
20399 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
20400 improve wording for mixed storage order support.
20402 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
20404 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
20405 (vcvt_u64_f64): Likewise.
20406 (vcvta_s64_f64): Likewise.
20407 (vcvta_u64_f64): Likewise.
20408 (vcvtm_s64_f64): Likewise.
20409 (vcvtm_u64_f64): Likewise.
20410 (vcvtn_s64_f64): Likewise.
20411 (vcvtn_u64_f64): Likewise.
20412 (vcvtp_s64_f64): Likewise.
20413 (vcvtp_u64_f64): Likewise.
20415 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
20417 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
20418 (arc_init): Check validity mll64 option.
20419 (arc_save_restore): Use double load/store instruction.
20420 (arc_expand_movmem): Likewise.
20421 (arc_split_move): Don't split if we have double load/store
20422 instructions. Returns a boolean.
20423 (arc_process_double_reg_moves): Change function to return boolean
20424 instead of a sequence of instructions.
20425 (arc_dwarf_register_span): New function.
20426 * config/arc/arc-protos.h (arc_split_move): Change prototype.
20427 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
20428 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
20429 (*movdf_insn): Likewise.
20430 * config/arc/arc.opt (mll64): New option.
20431 * config/arc/predicates.md (even_register_operand): New predicate.
20432 * doc/invoke.texi (ARC Options): Add mll64 documentation.
20434 2016-01-25 Richard Biener <rguenther@suse.de>
20437 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
20438 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
20440 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
20442 2016-01-25 Richard Biener <rguenther@suse.de>
20444 PR tree-optimization/69376
20445 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
20447 (VN_INFO_ANTI_RANGE_P): New inline.
20448 (VN_INFO_RANGE_TYPE): Likewise.
20449 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
20450 SSA_NAME_ANTI_RANGE_P.
20451 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
20452 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20453 Properly query VN_INFO_RANGE_TYPE.
20455 2016-01-25 Nick Clifton <nickc@redhat.com>
20458 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
20460 2016-01-23 Tom de Vries <tom@codesourcery.com>
20462 PR tree-optimization/69426
20463 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
20466 2016-01-23 Jakub Jelinek <jakub@redhat.com>
20468 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
20469 "the the" with "the" in the comments.
20470 * ipa-devirt.c (build_type_inheritance_graph,
20471 update_type_inheritance_graph): Likewise.
20472 * tree.c (build_function_type_list_1): Likewise.
20473 * cfgloopmanip.c (scale_loop_profile): Likewise.
20474 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
20475 * gimple-ssa-split-paths.c
20476 (find_block_to_duplicate_for_splitting_paths): Likewise.
20477 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
20478 * expr.c (convert_move): Likewise.
20479 * var-tracking.c (vt_stack_adjustments): Likewise.
20480 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
20481 * tree-vrp.c (test_for_singularity): Likewise.
20483 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
20484 directly instead of building a temporary tree.
20487 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
20488 remove <algorithm> include.
20490 2016-01-22 Jakub Jelinek <jakub@redhat.com>
20493 * config/i386/i386.c: Include dojump.h.
20494 (expand_small_movmem_or_setmem,
20495 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
20497 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
20498 if dynamic_check != -1.
20500 2016-01-21 Jeff Law <law@redhat.com>
20502 PR middle-end/69347
20503 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
20504 record_temporary_equivalences. Rewritten to avoid unnecessary calls
20505 into dominated_by_p.
20506 (cprop_into_successor_phis): Avoid unnecessary tests.
20508 2016-01-22 Richard Henderson <rth@redhat.com>
20511 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
20512 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
20514 2016-01-22 Michael Matz <matz@suse.de>
20516 * system.h (string, algorithm): Include only conditionally.
20517 (new): Include always under C++.
20518 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
20519 * final.c (toplevel): Ditto.
20520 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
20521 * genconditions.c (write_header): Make gencondmd.c define
20523 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
20525 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
20526 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
20528 2016-01-22 Christian Bruel <christian.bruel@st.com>
20531 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
20533 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20536 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
20537 define_insn_and_split. Ensure operands[1] and operands[0] do not
20538 get assigned the same register.
20540 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
20542 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
20544 2016-01-22 Christian Bruel <christian.bruel@st.com>
20546 * config/arm/arm-c.c (arm_pragma_target_parse):
20547 Remove warn_builtin_macro_redefined overwrite.
20549 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
20551 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
20552 flag_non_call_exceptions compatibility.
20554 2016-01-22 Jakub Jelinek <jakub@redhat.com>
20557 * dwarf2out.c (add_child_die_after): New function.
20558 (dwarf_qual_info_t): New type.
20559 (dwarf_qual_info): New variable.
20560 (qualified_die_p): New function.
20561 (modified_type_die): For -fdebug-types-section, ensure
20562 canonical order of qualifiers. Put qualified DIEs adjacent
20563 to the corresponding non-qualified type DIE and search there
20564 for existing qualified DIEs.
20566 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
20568 * doc/extend.texi (scalar_storage_order type attribute): Document
20569 restriction on type punning and aliasing, and remove future tense.
20571 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
20574 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
20577 2016-01-21 Jeff Law <law@redhat.com>
20579 PR middle-end/69347
20580 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
20581 useless call to record_temporary_equivalences.
20582 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
20583 allocate 10 slots in the bb_path vector and let it grow as needed.
20584 (fsm_find_control_statement_thread_paths): Similarly for the next_path
20587 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
20589 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
20591 * configure: Regenerate.
20593 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
20595 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
20596 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
20598 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
20600 PR middle-end/66178
20601 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
20602 drop EXPAND_INITIALIZER.
20603 * rtl.h (contains_symbolic_reference_p): Declare.
20604 * rtlanal.c (contains_symbolic_reference_p): New function.
20605 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
20606 a subtraction into a NOT if symbolic constants are involved.
20608 2016-01-21 Anton Blanchard <anton@samba.org>
20609 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20612 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
20614 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
20617 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
20619 * config/microblaze/microblaze.c
20620 (get_branch_target): New.
20621 (insert_wic_for_ilb_runout): New.
20623 (microblaze_machine_dependent_reorg): New.
20624 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
20625 * config/microblaze/microblaze.md
20626 (UNSPEC_IPREFETCH): Define.
20627 (iprefetch): New pattern
20628 * config/microblaze/microblaze.opt
20629 (mxl-prefetch): New flag.
20631 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
20633 * config/microblaze/microblaze.h
20634 (FIXED_REGISTERS): Update in macro.
20635 (CALL_USED_REGISTERS): Update in macro.
20637 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
20639 PR rtl-optimization/68920
20640 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
20643 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
20645 PR rtl-optimization/68990
20646 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
20647 pseudo instead of inheritance ones.
20649 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
20650 Nick Clifton <nickc@redhat.com>
20654 * config/mips/mips.c (mips_compute_frame_info): Initialise
20655 args_size and hard_frame_pointer_offset fields of the frame
20656 structure before calling mips_global_pointer.
20658 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
20660 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
20662 * configure: Regenerate.
20664 2016-01-21 Richard Biener <rguenther@suse.de>
20666 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
20668 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
20670 * config/s390/s390.c (s390_asm_declare_function_size): Add code
20671 to actually emit the .size directive.
20673 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
20674 Jakub Jelinek <jakub@redhat.com>
20678 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
20679 args array size by one to avoid buffer overflow.
20681 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
20683 * config/s390/s390.md (pool_section_start): Use switch_to_section
20684 to select proper read-only data section instead of hardcoding
20686 (pool_section_end): Use switch_to_section to match the above.
20688 2016-01-21 Richard Biener <rguenther@suse.de>
20690 PR tree-optimization/69378
20691 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
20692 (set_ssa_val_to): Use it for dominance checks taking into
20693 account not executable edges.
20695 2016-01-21 Jakub Jelinek <jakub@redhat.com>
20698 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
20699 for bitsize instead of GET_MODE_PRECISION (mode).
20701 2016-01-20 Martin Sebor <msebor@redhat.com>
20704 * extend.texi (__sync Builtins): Clarify the semantics of
20705 __sync_fetch_and_OP built-ins on pointers.
20706 (__atomic Builtins): Same.
20708 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20709 Sebastian Pop <s.pop@samsung.com>
20711 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
20712 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
20713 (is_valid_rename): Same.
20714 (translate_isl_ast_to_gimple::get_rename): Same.
20715 (translate_isl_ast_to_gimple::rename_all_uses): Same.
20716 (translate_isl_ast_to_gimple::rename_uses): Same.
20717 (get_new_name): Check for close_phi nodes.
20718 (copy_loop_phi_args): Use phi_node_kind.
20719 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
20720 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
20722 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20723 Sebastian Pop <s.pop@samsung.com>
20725 Revert commit r229783.
20726 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
20727 Remove use of parameter_rename_map.
20728 (copy_def): Remove.
20729 (copy_internal_parameters): Remove.
20730 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
20731 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
20732 (free_sese_info): Do not free parameter_rename_map.
20733 (set_rename): Do not use parameter_rename_map.
20734 (rename_uses): Update call to set_rename.
20735 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
20736 * sese.h (parameter_rename_map_t): Remove.
20737 (struct sese_info_t): Remove field parameter_rename_map.
20739 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20740 Sebastian Pop <s.pop@samsung.com>
20742 * graphite-isl-ast-to-gimple.c: Fix comment.
20743 * graphite-scop-detection.c (defined_in_loop_p): New.
20744 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
20745 names defined in loop.
20747 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20748 Sebastian Pop <s.pop@samsung.com>
20750 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
20751 Discard unstructured if-then-else regions.
20753 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20754 Sebastian Pop <s.pop@samsung.com>
20756 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
20757 (cleanup_loop_iter_dom): Remove.
20758 (build_loop_iteration_domains): Remove.
20759 (build_scop_context): Remove.
20760 (build_scop_iteration_domain): Remove.
20761 (add_loop_constraints): New.
20762 (build_iteration_domains): New.
20763 (build_poly_scop): Call build_iteration_domains.
20765 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20766 Sebastian Pop <s.pop@samsung.com>
20768 * graphite-scop-detection.c
20769 (scop_detection::harmful_loop_in_region): Free dom and loops.
20770 (scop_detection::loop_body_is_valid_scop): Free bbs.
20772 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20773 Sebastian Pop <s.pop@samsung.com>
20775 * graphite-scop-detection.c (record_loop_in_sese): New.
20776 (gather_bbs::before_dom_children): Call record_loop_in_sese.
20777 (build_scops): Remove call to build_sese_loop_nests.
20778 * sese.c (sese_record_loop): Remove.
20779 (build_sese_loop_nests): Remove.
20780 (new_sese_info): Remove region->loops.
20781 (free_sese_info): Same.
20782 * sese.h (sese_contains_loop): Same.
20783 (build_sese_loop_nests): Remove.
20784 (sese_contains_loop): Remove.
20786 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20787 Sebastian Pop <s.pop@samsung.com>
20789 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
20790 loop_is_valid_in_scop.
20791 (scop_detection::harmful_stmt_in_region): Renamed
20792 harmful_loop_in_region.
20793 Call loop_is_valid_in_scop.
20795 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20796 Sebastian Pop <s.pop@samsung.com>
20798 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
20801 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20802 Sebastian Pop <s.pop@samsung.com>
20804 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
20805 * graphite.h (struct poly_bb): Remove field is_reduction.
20806 (PBB_IS_REDUCTION): Remove.
20808 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
20809 Sebastian Pop <s.pop@samsung.com>
20811 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
20812 (add_pdr_constraints): Same.
20813 (scop_get_reads): Same.
20814 (scop_get_must_writes): Same.
20815 (scop_get_may_writes): Same.
20816 (scop_get_original_schedule): Same.
20817 (extend_schedule): Same.
20818 (apply_schedule_on_deps): Same.
20819 (carries_deps): Same.
20820 (compute_deps): Same.
20821 (scop_get_dependences): Same.
20822 * graphite-isl-ast-to-gimple.c
20823 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
20824 * graphite-optimize-isl.c (get_schedule_for_band): Same.
20825 (get_schedule_for_band_list): Same.
20826 (get_schedule_map): Same.
20827 (apply_schedule_map_to_scop): Same.
20828 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
20829 (build_loop_iteration_domains): Same.
20830 (add_condition_to_pbb): Same.
20831 (add_param_constraints): Same.
20832 (pdr_add_memory_accesses): Same.
20833 (pdr_add_data_dimensions): Same.
20835 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
20837 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
20840 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
20842 * common.opt (feliminate-dwarf2-dups): Replace references to
20843 "DWARF 2" with just "DWARF".
20844 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
20845 * doc/extend.texi: Likewise.
20846 * doc/cpp.texi: Likewise.
20847 * doc/invoke.texi: Likewise.
20848 (Option Summary): Add -gdwarf to list of Debugging Options.
20849 (Debugging Options): Document -gdwarf.
20850 * doc/contrib.texi: Spell "DWARF" like that.
20852 2016-01-21 Jakub Jelinek <jakub@redhat.com>
20854 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
20855 warning. Fix up formatting.
20857 PR middle-end/67653
20858 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
20859 attempt to mark memory input operand addressable and
20860 call prepare_gimple_addressable in that case. Don't adjust
20861 input_location for diagnostics, use error_at instead.
20863 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
20865 * config/rs6000/ppc-auxv.h: New file.
20866 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
20867 (cpu_is): Likewise.
20868 (cpu_supports): Likewise.
20869 * config/rs6000/rs6000.c: include "ppc-auxv.h".
20870 (cpu_is_info): New variable.
20871 (cpu_supports_info): Likewise.
20872 (tcb_verification_symbol): Likewise.
20873 (cpu_builtin_p): Likewise.
20874 (cpu_expand_builtin): New function.
20875 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
20876 (rs6000_init_builtins): Likewise.
20877 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
20878 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
20879 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
20880 * configure: Regenerate.
20881 * config.in: Likewise.
20882 * doc/extend.texi (PowerPC Built-in Functions): Document
20883 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
20885 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
20888 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
20890 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
20893 2016-01-20 Richard Henderson <rth@redhat.com>
20899 * tree.c (tm_define_builtin): New.
20900 (find_tm_vector_type): New.
20901 (build_tm_vector_builtins): New.
20902 (build_common_builtin_nodes): Call it.
20904 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
20906 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
20907 (arm_fp_ok): Likewise.
20908 (arm_fp): Likewise.
20909 (arm_crypto): Likewise.
20911 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
20912 Richard Biener <rguenther@suse.de>
20914 PR tree-optimization/69328
20915 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
20916 vectors have same number of elements.
20917 (vectorizable_condition): Fix masked version recognition.
20919 2016-01-20 Richard Biener <rguenther@suse.de>
20921 PR tree-optimization/69345
20922 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
20923 (VN_INFO_PTR_INFO): Likewise.
20924 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
20925 info when it is equal between non-dominating SSA names.
20926 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
20927 Make sure to look at original SSA infos.
20929 2016-01-20 Jeff Law <law@redhat.com>
20932 * config/m68k/predicates.md (pow2_m1_operand): New predicate
20934 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
20935 (pc_or_label_operand): New predicate.
20936 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
20937 tests for small integers that are 2^n - 1.
20939 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
20941 * doc/invoke.texi (Options Summary): Add '.' after @xref.
20943 2016-01-19 Jeff Law <law@redhat.com>
20945 PR middle-end/69347
20946 * tree-ssa-threadbackwards.c
20947 (fsm_find_control_statement_thread_paths): Do not try to lookup
20948 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
20950 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
20952 * doc/lto.texi: Remove text that says only Gold has linker plugin
20955 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
20957 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
20958 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
20959 the DIE accordingly.
20960 (modified_type_die): Add REVERSE parameter and pass it recursively,
20961 as well as to base_type_die. Adjust presence check accordingly.
20962 (base_type_for_mode): Adjust call to modified_type_die.
20963 (add_type_attribute): Add REVERSE parameter and pass it to
20965 (generic_parameter_die): Adjust call to add_type_attribute.
20966 (add_scalar_info): Likewise.
20967 (add_subscript_info): Likewise.
20968 (gen_array_type_die): Likewise.
20969 (gen_descr_array_type_die): Likewise.
20970 (gen_entry_point_die): Likewise.
20971 (gen_enumeration_type_die): Likewise.
20972 (gen_formal_parameter_die): Likewise.
20973 (gen_subprogram_die): Likewise.
20974 (gen_variable_die ): Likewise.
20975 (gen_const_die): Likewise.
20976 (gen_field_die): Likewise.
20977 (gen_pointer_type_die): Likewise.
20978 (gen_reference_type_die): Likewise.
20979 (gen_ptr_to_mbr_type_die): Likewise.
20980 (gen_inheritance_die): Likewise.
20981 (gen_subroutine_type_die): Likewise.
20982 (gen_typedef_die): Likewise.
20983 (force_type_die): Adjust call to modified_type_die.
20985 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
20987 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
20988 flow throughout the file. Fix broken link to Objective-C 2.0
20990 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
20993 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
20995 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
20997 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21000 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
21001 (maybe_record_node): Record cxa_pure_virtual as the only possible
21002 target if there are not ohter candidates.
21003 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
21005 2016-01-19 Richard Biener <rguenther@suse.de>
21007 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
21008 (get_memory_order): Likewise.
21010 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
21012 * tree-vect-stmts.c (vectorizable_store): Check
21015 2016-01-19 David Malcolm <dmalcolm@redhat.com>
21018 * gcc.c (driver::decode_argv): Add call to
21019 init_opts_obstack before init_options_struct.
21020 * opts.c (init_opts_obstack): Remove idempotency.
21021 (init_options_struct): Replace call to init_opts_obstack
21022 with a gcc_assert to verify that it has already been called.
21023 * toplev.c (toplev::main): Add call to init_opts_obstack before
21024 calls to init_options_struct.
21025 (toplev::finalize): Move cleanup of opts_obstack next to
21026 cleanup of save_decoded_options, clearing the latter, and
21027 save_decoded_options_count.
21029 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21032 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
21033 attribute to unconditional. Remove %? from output template.
21035 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21036 Jiong Wang <jiong.wang@arm.com>
21038 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
21039 generated from different expand order.
21041 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21043 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
21044 Add support for CCMP costing.
21046 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21048 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
21049 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
21050 (fccmpe<mode>): Likewise.
21051 (fcmp): Rename to fcmp and globalize pattern.
21053 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
21054 (aarch64_gen_ccmp_next): Add FP support.
21056 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
21058 * target.def (gen_ccmp_first): Update documentation.
21059 (gen_ccmp_next): Likewise.
21060 * doc/tm.texi (gen_ccmp_first): Update documentation.
21061 (gen_ccmp_next): Likewise.
21062 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
21063 expand_ccmp_expr_1. Improve comments.
21064 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
21065 (ccmp_ior<mode>): Remove pattern.
21066 (cmp<mode>): Remove expand.
21067 (cmp): Globalize pattern.
21068 (cstorecc4): Use cc_register.
21069 (mov<mode>cc): Remove ccmp_cc_register check.
21070 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
21071 Simplify after removal of CC_DNE/* modes.
21072 (aarch64_ccmp_mode_to_code): Remove.
21073 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
21074 In 'k' case use integer as condition.
21075 (aarch64_nzcv_codes): Remove inverted cases.
21076 (aarch64_code_to_ccmode): Remove.
21077 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
21078 comparison with CC register to be used in folowing CCMP/branch/CSEL.
21079 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
21080 pattern. Return the comparison with CC register. Invert conditions
21081 when bitcode is OR.
21082 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
21083 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
21085 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21087 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
21088 instrumented_version.
21090 2016-01-19 Richard Biener <rguenther@suse.de>
21092 PR tree-optimization/69336
21093 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
21094 handled components with get_ref_base_and_extent.
21095 (equal_mem_array_ref_p): Adjust.
21097 2016-01-19 Jakub Jelinek <jakub@redhat.com>
21100 * shrink-wrap.c: Include valtrack.h.
21101 (move_insn_for_shrink_wrap): Add DEBUG argument. If
21102 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
21103 in between insn and where it will be moved to. Call
21104 dead_debug_insert_temp.
21105 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
21106 first and dead_debug_local_finish at the end.
21107 For uses and defs bitmap, handle all regs in between REGNO and
21108 END_REGNO, not just the first one.
21110 2016-01-19 Richard Biener <rguenther@suse.de>
21112 PR tree-optimization/69352
21113 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
21114 (equal_mem_array_ref_p): Constrain size and max size properly.
21115 Compare the reverse flag.
21117 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
21119 * ira.c (ira): Update regstat data if we deleted insns.
21121 2016-01-19 Jakub Jelinek <jakub@redhat.com>
21123 PR rtl-optimization/68955
21124 PR rtl-optimization/64557
21125 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
21126 here. Fix up formatting.
21127 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
21129 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21132 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
21133 assume that the node has body.
21134 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
21137 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21139 * lto-streamer-out.c (lto_output): Do not stream instrumentation
21142 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21144 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
21145 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
21147 2016-01-19 Martin Jambor <mjambor@suse.cz>
21148 Martin Liska <mliska@suse.cz>
21149 Michael Matz <matz@suse.de>
21151 * Makefile.in (OBJS): Add new source files.
21152 (GTFILES): Add hsa.c.
21153 * common.opt (disable_hsa): New variable.
21154 (-Whsa): New warning.
21155 * config.in (ENABLE_HSA): New.
21156 * configure.ac: Treat hsa differently from other accelerators.
21157 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
21158 $enable_offloading.
21159 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
21160 * doc/install.texi (Configuration): Document --with-hsa-runtime,
21161 --with-hsa-runtime-include, --with-hsa-runtime-lib and
21162 --with-hsa-kmt-lib.
21163 * doc/invoke.texi (-Whsa): Document.
21164 (hsa-gen-debug-stores): Likewise.
21165 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
21166 to invoke offload compiler for hsa acclerator.
21167 * opts.c (common_handle_option): Determine whether HSA offloading
21168 should be performed.
21169 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
21170 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
21171 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
21172 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
21173 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
21174 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
21175 GF_OMP_FOR_KIND_GRID_LOOP.
21176 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
21177 (pp_gimple_stmt_1): Likewise.
21178 * gimple-walk.c (walk_gimple_stmt): Likewise.
21179 * gimple.c (gimple_build_omp_grid_body): New function.
21180 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
21181 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
21182 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
21183 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
21184 GF_OMP_TEAMS_GRID_PHONY.
21185 (gimple_statement_omp_single_layout): Updated comments.
21186 (gimple_build_omp_grid_body): New function.
21187 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
21188 (gimple_omp_for_grid_phony): New function.
21189 (gimple_omp_for_set_grid_phony): Likewise.
21190 (gimple_omp_parallel_grid_phony): Likewise.
21191 (gimple_omp_parallel_set_grid_phony): Likewise.
21192 (gimple_omp_teams_grid_phony): Likewise.
21193 (gimple_omp_teams_set_grid_phony): Likewise.
21194 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
21195 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
21196 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
21197 (BUILT_IN_GOMP_TARGET): Updated type.
21198 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
21199 (adjust_for_condition): New function.
21200 (get_omp_for_step_from_incr): Likewise.
21201 (extract_omp_for_data): Moved parts to adjust_for_condition and
21202 get_omp_for_step_from_incr.
21203 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
21204 (fixup_child_record_type): Bail out if receiver_decl is NULL.
21205 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
21206 (scan_omp_parallel): Do not create child functions for phony
21208 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
21209 (scan_omp_1_op): Checking assert we are not remapping to
21210 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
21211 (parallel_needs_hsa_kernel_p): New function.
21212 (expand_parallel_call): Register apprpriate parallel child
21213 functions as HSA kernels.
21214 (grid_launch_attributes_trees): New type.
21215 (grid_attr_trees): New variable.
21216 (grid_create_kernel_launch_attr_types): New function.
21217 (grid_insert_store_range_dim): Likewise.
21218 (grid_get_kernel_launch_attributes): Likewise.
21219 (get_target_argument_identifier_1): Likewise.
21220 (get_target_argument_identifier): Likewise.
21221 (get_target_argument_value): Likewise.
21222 (push_target_argument_according_to_value): Likewise.
21223 (get_target_arguments): Likewise.
21224 (expand_omp_target): Call get_target_arguments instead of looking
21225 up for teams and thread limit.
21226 (grid_expand_omp_for_loop): New function.
21227 (grid_arg_decl_map): New type.
21228 (grid_remap_kernel_arg_accesses): New function.
21229 (grid_expand_target_kernel_body): New function.
21230 (expand_omp): Call it.
21231 (lower_omp_for): Do not emit phony constructs.
21232 (lower_omp_taskreg): Do not emit phony constructs but create for them
21233 a temporary variable receiver_decl.
21234 (lower_omp_taskreg): Do not emit phony constructs.
21235 (lower_omp_teams): Likewise.
21236 (lower_omp_grid_body): New function.
21237 (lower_omp_1): Call it.
21238 (grid_reg_assignment_to_local_var_p): New function.
21239 (grid_seq_only_contains_local_assignments): Likewise.
21240 (grid_find_single_omp_among_assignments_1): Likewise.
21241 (grid_find_single_omp_among_assignments): Likewise.
21242 (grid_find_ungridifiable_statement): Likewise.
21243 (grid_target_follows_gridifiable_pattern): Likewise.
21244 (grid_remap_prebody_decls): Likewise.
21245 (grid_copy_leading_local_assignments): Likewise.
21246 (grid_process_kernel_body_copy): Likewise.
21247 (grid_attempt_target_gridification): Likewise.
21248 (grid_gridify_all_targets_stmt): Likewise.
21249 (grid_gridify_all_targets): Likewise.
21250 (execute_lower_omp): Call grid_gridify_all_targets.
21251 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
21252 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
21253 (tree_omp_clause): Added union field dimension.
21254 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
21255 * tree.c (omp_clause_num_ops): Added number of arguments of
21256 OMP_CLAUSE__GRIDDIM_.
21257 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
21258 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
21259 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
21260 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
21261 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
21262 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
21263 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
21264 * tree-pass.h (make_pass_gen_hsail): Declare.
21265 (make_pass_ipa_hsa): Likewise.
21266 * ipa-hsa.c: New file.
21267 * lto-section-in.c (lto_section_name): Add hsa section name.
21268 * lto-streamer.h (lto_section_type): Add hsa section.
21269 * timevar.def (TV_IPA_HSA): New.
21270 * hsa-brig-format.h: New file.
21271 * hsa-brig.c: New file.
21272 * hsa-dump.c: Likewise.
21273 * hsa-gen.c: Likewise.
21276 * toplev.c (compile_file): Call hsa_output_brig.
21277 * hsa-regalloc.c: New file.
21279 2016-01-18 Jeff Law <law@redhat.com>
21281 PR tree-optimization/69320
21282 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
21283 ranged object, do nothing if the RHS constant is not [0..1].
21284 (optimize_stmt): Comparing a boolean ranged object against a
21285 constant outside [0..1] results in a compile-time constant.
21287 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
21290 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
21292 * doc/invoke.texi (Invoking GCC): Add new section to menu.
21293 (Option Summary): Update to reflect new section and moved options.
21294 (C++ Dialect Options): Move -fstats to new section.
21295 (Debugging Options): Move all dump, statistics, and other GCC
21296 developer options to new section. Rewrite section introduction
21297 and re-order remaining options to put the more basic ones first.
21298 (Optimization Options): Move -fira-verbose and -flto-report* to
21300 (Developer Options): New section incorporating moved options.
21301 * doc/cppopts.texi (-dM): Update cross-reference.
21303 2016-01-18 Richard Henderson <rth@redhat.com>
21306 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
21307 operands to pseudo only if CSE is expected. Split long immediate
21308 operands only after reload, and for the stack pointer.
21309 (*add<GPI>3_pluslong): Remove.
21310 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
21311 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
21312 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
21313 (*add<GPI>3 peepholes): New.
21314 (*add<GPI>3 splitters): New.
21315 * config/aarch64/constraints.md (Upl): New.
21316 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
21318 2016-01-18 Richard Biener <rguenther@suse.de>
21320 PR tree-optimization/69297
21321 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
21323 (vect_bb_vectorization_profitable_p): Clear visited flag again.
21325 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
21327 PR middle-end/68542
21328 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
21329 of mixind vector and scalar types.
21330 (fold_relational_const): Add handling of vector
21331 comparison with boolean result.
21332 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
21333 comparison of vector operands with boolean result for EQ/NE only.
21334 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
21335 (verify_gimple_cond): Likewise.
21336 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
21339 2016-01-18 Joseph Myers <joseph@codesourcery.com>
21341 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
21344 2016-01-18 Richard Biener <rguenther@suse.de>
21346 PR middle-end/69308
21347 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
21349 2016-01-18 Tom de Vries <tom@codesourcery.com>
21351 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
21353 2016-01-18 Tom de Vries <tom@codesourcery.com>
21355 * omp-low.c (set_oacc_fn_attrib): Make extern.
21356 * omp-low.h (set_oacc_fn_attrib): Declare.
21357 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
21358 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
21359 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
21360 Add and handle function parameter oacc_kernels_p.
21361 (find_reduc_addr, get_omp_data_i_param): New function.
21362 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
21363 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
21364 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
21365 Calculate dominance info. Skip loops that are not in a kernels region
21366 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
21367 (pass_parallelize_loops::execute): Call parallelize_loops with
21368 oacc_kernels_p argument.
21369 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
21370 New member function.
21371 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
21372 * passes.def: Add argument to pass_parallelize_loops instantation.
21374 2016-01-18 Tom de Vries <tom@codesourcery.com>
21376 * tree-parloops.c (pass_parallelize_loops::execute): Allow
21377 pass_parallelize_loops to be run outside the loop pipeline.
21379 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
21381 * tree-scalar-evolution.c (follow_copies_to_constant): New.
21382 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
21384 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
21387 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
21388 using get_ref_base_and_extent.
21389 (equal_mem_array_ref_p): New.
21390 (hashable_expr_equal_p): Add call to previous.
21392 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
21395 * tree-sra.c (disqualified_constants, constant_decl_p): New.
21396 (sra_initialize): Allocate disqualified_constants.
21397 (sra_deinitialize): Free disqualified_constants.
21398 (disqualify_candidate): Update disqualified_constants when appropriate.
21399 (create_access): Scan for constant-pool entries as we go along.
21400 (scalarizable_type_p): Add check against type_contains_placeholder_p.
21401 (maybe_add_sra_candidate): Allow constant-pool entries.
21402 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
21403 (initialize_constant_pool_replacements): New.
21404 (sra_modify_assign): Avoid mangling assignments created by previous,
21405 and don't generate writes into constant pool.
21406 (sra_modify_function_body): Call initialize_constant_pool_replacements.
21408 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
21410 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
21411 andnot instruction.
21412 (scalar_chain::convert_op): Likewise.
21413 * config/i386/i386.md (*andndi3_doubleword): New.
21415 2016-01-18 Richard Biener <rguenther@suse.de>
21417 PR tree-optimization/69170
21418 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
21419 building a vector from scalar results of a pattern stmt.
21421 2016-01-18 Jakub Jelinek <jakub@redhat.com>
21423 * haifa-sched.c (autopref_multipass_init): Work around
21424 -Wmaybe-uninitialized warning.
21426 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
21428 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
21429 against the constant 0.
21431 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
21433 PR tree-optimization/68799
21434 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
21435 look up phi candidates in the statement-candidate map.
21436 (phi_add_costs): Likewise.
21437 (record_phi_increments): Likewise.
21438 (phi_incr_cost): Likewise.
21439 (ncd_with_phi): Likewise.
21440 (all_phi_incrs_profitable): Likewise.
21442 2016-01-17 Jakub Jelinek <jakub@redhat.com>
21444 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
21445 -Wmaybe-uninitialized warning.
21447 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
21449 * doc/invoke.texi (Invoking GCC): Add new section to menu.
21450 (Option Summary): Update to reflect new section and moved options.
21451 (C++ Dialect Options): Move -fvtable-verify and related options.
21452 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
21453 and profiling-related options.
21454 (Optimization Options): Move profile generation options and
21455 -fstack-protector and related options.
21456 (Instrumentation Options): New section incorporating moved options.
21457 (Code Generation Options): Move -finstrument-functions and
21458 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
21460 2016-01-16 Tom de Vries <tom@codesourcery.com>
21462 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
21464 2016-01-16 Tom de Vries <tom@codesourcery.com>
21466 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
21468 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
21470 * hash-table.h (hash_table::empty): Turn into an inline wrapper
21471 that checks whether the table is already empty. Rename the
21472 original implementation to...
21473 (hash_table::empty_slot): ...this new private function.
21475 2016-01-15 David Malcolm <dmalcolm@redhat.com>
21477 PR diagnostic/68899
21478 * diagnostic-show-locus.c (layout::print_source_line): Move x
21479 offset of line until after call to
21480 get_line_width_without_trailing_whitespace.
21482 2016-01-15 Jeff Law <law@redhat.com>
21484 PR tree-optimization/69270
21485 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
21486 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
21487 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
21488 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
21489 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
21490 ssa_name_has_boolean_range and constant_boolean_node.
21492 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
21494 PR rtl-optimization/69030
21495 * lra-spills.c (remove_pseudos): Check nrefs and make the function
21497 (spill_pseudos): Delete debug insn for dead pseudo.
21498 (lra_spill): Initiate spill_hard_reg and slots memory separately.
21500 2016-01-15 Jiong Wang <jiong.wang@arm.com>
21502 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
21504 (TYPES_UNOPUS): Likewise.
21505 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
21506 builtin type, from UNOP to UNOPUS.
21507 (lbtruncuv4sf): Likewise.
21508 (lbtruncuv2df): Likewise.
21509 (lrounduv2sf): Likewise.
21510 (lrounduv4sf): Likewise.
21511 (lrounduv2df): Likewise.
21512 (lroundusf): Likewise.
21513 (lroundusf): Likewise.
21514 (lceiluv2sf): Likewise.
21515 (lceiluv4sf): Likewise.
21516 (lceiluv2df): Likewise.
21517 (lceilusf): Likewise.
21518 (lceiludf): Likewise.
21519 (lflooruv2sf): Likewise.
21520 (lflooruv4sf): Likewise.
21521 (lflooruv2df): Likewise.
21522 (lfloorusf): Likewise.
21523 (lfloorudf): Likewise.
21524 (lfrintnuv2sf): Likewise.
21525 (lfrintnuv4sf): Likewise.
21526 (lfrintnuv2df): Likewise.
21527 (lfrintnusf): Likewise.
21528 (lfrintnudf): Likewise.
21529 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
21531 (vcvtq_u32_f32): Likewise.
21532 (vcvtq_u64_f64): Likewise.
21533 (vcvta_u32_f32): Likewise.
21534 (vcvtaq_u32_f32): Likewise.
21535 (vcvtaq_u64_f64): Likewise.
21536 (vcvtm_u32_f32): Likewise.
21537 (vcvtmq_u32_f32): Likewise.
21538 (vcvtmq_u64_f64): Likewise.
21539 (vcvtn_u32_f32): Likwise.
21540 (vcvtnq_u32_f32): Likewise.
21541 (vcvtnq_u64_f64): Likewise.
21542 (vcvtp_u32_f32): Likewise.
21543 (vcvtpq_u32_f32): Likewise.
21544 (vcvtpq_u64_f64): Likewise.
21545 (vcvtmd_u64_f64): Likewise.
21546 (vcvtms_u32_f32): Likewise.
21547 (vcvtad_u64_f64): Likewise.
21548 (vcvtas_u32_f32): Likewise.
21549 (vcvtnd_u64_f64): Likewise.
21550 (vcvtns_u32_f32): Likewise.
21551 (vcvtpd_u64_f64): Likewise.
21552 (vcvtps_u32_f32): Likewise.
21554 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21556 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
21557 CSEL of zero_extended registers.
21559 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21561 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
21562 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
21564 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21566 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
21567 false when argument string is not found in the attributes table
21570 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
21573 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
21574 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
21575 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
21576 precision estimate.
21578 2016-01-15 Richard Biener <rguenther@suse.de>
21580 PR tree-optimization/66856
21581 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
21582 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
21583 (vect_create_new_slp_node): Increment stmt reference count.
21584 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
21585 an SLP tree before swapping operands.
21586 (vect_build_slp_tree): Likewise.
21587 (destroy_bb_vec_info): Free stmt info after SLP instances.
21588 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
21589 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
21590 (STMT_VINFO_NUM_SLP_USES): New macro.
21592 2016-01-15 Richard Biener <rguenther@suse.de>
21595 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
21596 (add_linkage_name): ... here.
21597 (gen_typedef_die): Use add_linkage_name_raw instead of
21598 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
21601 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
21603 * gimplify.c (oacc_default_clause): Decode reference and pointer
21604 types for both kernels and parallel regions.
21606 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
21608 PR middle-end/69246
21609 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
21611 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
21613 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
21614 (convert_scalars_to_vector): Likewise.
21616 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
21618 * doc/extend.texi (Type Traits): Fix grammar.
21620 2016-01-15 Martin Jambor <mjambor@suse.cz>
21622 * tree-inline.c (remap_decl): Use existing dclarations if
21623 remapping a type and prevent_decl_creation_for_types.
21624 (replace_locals_stmt): Do an initial remapping of non-VLA typed
21625 decls first. Do real remapping with
21626 prevent_decl_creation_for_types set.
21627 * tree-inline.h (copy_body_data): New field
21628 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
21631 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
21633 * config/s390/s390.opt (mmvcle): More verbose help text.
21635 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
21637 * config/s390/s390.opt: Add period to -mzvector option text.
21639 2016-01-15 Richard Biener <rguenther@suse.de>
21641 PR tree-optimization/68961
21642 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
21643 of invariants in stores again.
21645 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
21647 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
21649 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
21651 * config/i386/i386.c (ix86_expand_branch): Don't split
21652 DI mode xor instruction to SI mode.
21654 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
21657 * ipa-icf.c (sem_function::merge): Virtual functions may become
21658 reachable even if they address is not taken and there are no
21661 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
21663 * lto-streamer-out.c (subtract_estimated_size): New function.
21664 (get_symbol_initial_value): Use it.
21666 2016-01-15 Christian Bruel <christian.bruel@st.com>
21669 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
21670 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
21671 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
21672 use add_builtin_function_ext_scope instead of add_builtin_function.
21673 (neon_set_p, neon_crypto_set_p): Remove.
21674 (arm_init_builtins): Always call arm_init_neon_builtins and
21675 arm_init_crypto_builtins.
21676 (arm_expand_builtin): Check that builtins are allowed for the arch.
21677 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
21678 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
21679 arm_init_neon_builtins call.
21681 2016-01-15 Richard Biener <rguenther@suse.de>
21683 PR tree-optimization/69117
21684 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
21685 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
21686 of the leader conservatively.
21687 (free_scc_vn): Restore original SSA name infos.
21689 2016-01-14 Jeff Law <law@redhat.com>
21691 PR tree-optimization/69270
21692 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
21693 single bit of precision, verify it's also unsigned.
21694 (record_edge_info): Use constant_boolean_node rather than fold_convert
21695 to convert boolean_true/boolean_false to the right type.
21697 2016-01-14 Richard Henderson <rth@redhat.com>
21700 * loop-doloop.c (record_reg_sets): New.
21701 (doloop_optimize): Reject the transform if the sequence
21702 clobbers registers live at the end of the loop block.
21703 (doloop_optimize_loops): Enable df_live if needed.
21705 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
21707 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
21708 * config/rs6000/rs6000.c: Likewise.
21709 * config/rs6000/rs6000.h: Likewise.
21710 * config/rs6000/rs6000.md: Likewise.
21711 * doc/extend.texi: Likewsie.
21713 2016-01-14 Jeff Law <law@redhat.com>
21715 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
21718 2016-01-14 Richard Henderson <rth@redhat.com>
21722 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
21723 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
21724 instead of builtin_decl_declared_p to test for declaration.
21726 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
21728 * doc/loop.texi (Loop Analysis and Representation): Document
21729 loop_depth function.
21731 2016-01-14 Tom de Vries <tom@codesourcery.com>
21733 PR tree-optimization/68773
21734 * omp-low.c (expand_omp_target): Don't set force_output.
21735 * varpool.c (varpool_node::get_create): Same.
21736 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
21737 offload_funcs with force_output.
21739 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21742 * lra-eliminations.c (move_plus_up): Don't change anything if either
21743 the outer or inner subreg mode is not MODE_INT.
21744 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
21745 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
21747 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
21749 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
21750 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
21751 reduc_uplus_@var{m}): Remove.
21752 * expr.c (expand_expr_real_2): Remove expansion path for
21753 reduc_[us](min|max|plus) optabs.
21754 * optabs-tree.c (scalar_reduc_to_vector): Remove.
21755 * optabs-tree.h (scalar_reduc_to_vector): Remove.
21756 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
21757 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
21758 * tree-vect-loop.c (vectorizable_reduction): Remove test for
21759 reduc_[us](min|max|plus) optabs.
21761 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
21763 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
21764 (reduc_plus_scal_v2sf): New.
21765 (reduc_smax_v2sf): Rename to...
21766 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
21767 (reduc_smin_v2sf): Rename to...
21768 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
21770 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
21772 * alias.c (compare_base_symbol_refs): New function.
21773 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
21776 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21778 PR middle-end/68146
21779 PR tree-optimization/69155
21780 * tree-complex.c: Include cfganal.h.
21781 (phis_to_revisit): New variable.
21782 (extract_component): Add phiarg_p argument. Assert that returned
21783 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
21784 (update_phi_components): Partly rewrite to use loop over real/imag
21785 components instead of code duplication. If extract_component returns
21786 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
21787 create_tmp_reg into the PHI node instead, and mention the phi triplet
21788 in phis_to_revisit.
21789 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
21790 in phis_to_revisit at the end.
21792 2016-01-14 Richard Biener <rguenther@suse.de>
21794 PR tree-optimization/68060
21795 * tree-vect-loop.c (vect_is_simple_reduction): Check the
21796 outer loop reduction is only used in the inner loop before
21797 detecting a double reduction.
21799 2016-01-14 Jakub Jelinek <jakub@redhat.com>
21802 * combine.c (expand_field_assignment): Punt if compute_mode is
21803 unsupported scalar mode.
21805 2016-01-14 Richard Biener <rguenther@suse.de>
21807 PR tree-optimization/66856
21808 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
21809 SLP node only if it built successfully.
21810 (vect_analyze_slp_instance): Adjust.
21812 2016-01-14 Jeff Law <law@redhat.com>
21814 PR tree-optimization/69270
21815 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
21816 (record_edge_info): Use it. Convert boolean_{true,false}_node
21817 to the type of op0.
21819 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
21822 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
21823 use block_ultimate_origin
21824 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
21826 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
21828 * doc/invoke.texi (Submodel Options): Rename section to
21829 "Machine-Dependent Options" to better reflect its content.
21830 Rewrite introductory text to remove archaic CPU names.
21833 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
21835 * doc/invoke.texi (Code Gen Options): Move section up in file,
21836 before target-specific options. Update menu and option summary
21837 to reflect the new section ordering.
21839 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
21841 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
21842 (C++ Dialect Options): Add cross-reference to -std option.
21843 * doc/standards.texi (C++ Language): Document C++14 support.
21845 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
21847 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
21848 for pack/unpack functions for __ibm128.
21849 (PACK_IF): Likewise.
21850 (UNPACK_IF): Likewise.
21852 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
21853 support for __ibm128 pack/unpack functions.
21854 (rs6000_invalid_builtin): Likewise.
21855 (rs6000_init_builtins): Likewise.
21856 (rs6000_opt_masks): Likewise.
21858 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
21859 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
21861 (RS6000_BTM_COMMON): Likewise.
21863 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
21864 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
21865 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
21866 128-bit floating point. Add support for the double values to be
21867 in Altivec registers for TF/IF packing and unpacking, but restrict
21868 TD packing sub-fields to be FPR registers. Don't allow overlapped
21869 register support for packing. Allow pack inputs to be memory
21870 locations. Don't build generator functions for unpack<mode>_dm
21871 and unpack<mode>_nodm.
21872 (unpack<mode>_dm): Likewise.
21873 (unpack<mode>_nodm): Likewise.
21874 (pack<mode>): Likewise.
21876 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
21877 built-in functions to pack/unpack explicit __ibm128 values.
21878 (__builtin_unpack_ibm128): Likewise.
21880 * doc/extend.texi (PowerPC Built-in Functions): Document
21881 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
21883 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
21886 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
21887 Add new arg loc and pass it down as context.
21888 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
21889 to the location to use for the warning.
21890 (check_function_arguments): New arg loc. All callers changed. Pass
21891 it to check_function_nonnull.
21892 * c-common.h (check_function_arguments): Adjust declaration.
21894 2016-01-13 Jakub Jelinek <jakub@redhat.com>
21896 PR tree-optimization/69156
21897 * gimple.c (validate_type): Removed.
21898 (gimple_builtin_call_types_compatible_p): Use
21899 useless_type_conversion_p instead of validate_type.
21900 * value-prof.c (gimple_stringop_fixed_value): Fold
21901 icall_size to correct type.
21903 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
21905 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
21908 2016-01-13 Richard Henderson <rth@redhat.com>
21911 * target.def (builtin_tm_load, builtin_tm_store): Remove.
21912 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
21913 (ix86_builtin_tm_store): Remove.
21914 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
21915 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
21916 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
21917 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
21918 * doc/tm.texi: Rebuild.
21920 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
21921 (BUILT_IN_TM_MEMCPY_RTWN): New.
21922 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
21923 fallback from vector to integer helpers.
21924 (build_tm_load): Handle vector types directly, instead of
21926 (build_tm_store): Likewise.
21927 (expand_assign_tm): Prepare for register types not handled by
21928 the above. Copy them to memory and use memcpy.
21929 * tree.c (tm_define_builtin): New.
21930 (find_tm_vector_type): New.
21931 (build_tm_vector_builtins): New.
21932 (build_common_builtin_nodes): Call it.
21934 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
21936 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
21937 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
21939 2016-01-13 Tom de Vries <tom@codesourcery.com>
21941 PR tree-optimization/69169
21942 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
21943 handled_struct_type param.
21944 (create_variable_info_for, intra_create_variable_infos): Call
21945 create_variable_info_for_1 with extra arg.
21947 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
21949 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
21950 and "armv8.1-a+crc" entries.
21952 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
21955 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
21956 Change first operand predicate from register_or_constm1_operand
21957 to register_operand.
21958 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
21959 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
21960 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
21961 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
21962 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
21963 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
21964 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
21965 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
21966 comparison with constm1_rtx from vec_prefetch_gen part.
21968 2016-01-13 Richard Biener <rguenther@suse.de>
21970 PR tree-optimization/69013
21971 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
21972 Exchange assert for a test.
21974 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21977 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
21979 2016-01-13 Richard Biener <rguenther@suse.de>
21981 PR tree-optimization/69242
21982 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
21983 assert with a check.
21985 2016-01-13 Richard Biener <rguenther@suse.de>
21987 PR tree-optimization/69186
21988 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
21989 Properly guard vect_update_misalignment_for_peel call.
21991 2016-01-12 Jeff Law <law@redhat.com>
21993 PR tree-optimization/pr67755
21994 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
21995 "need_profile_correction".
21996 (thread_block_1): Initialize new field to false by default. If we
21997 have multiple thread paths through a common joiner to different
21998 final targets, then set new field to true.
21999 (compute_path_counts): Only do count adjustment when it's really
22002 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
22004 * doc/invoke.texi (Spec Files): Move section down in file, past
22005 all command-line option descriptions.
22007 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22009 PR middle-end/54809
22010 * doc/gty.texi: Remove documentation of mark_hook.
22011 * gengtype.c (struct write_types_data): Remove code to support
22012 mark_hook attribute.
22013 (walk_type): Likewise.
22014 (write_func_for_structure): Likewise.
22016 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
22018 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
22019 Directory Options, and -specs= to Overall Options.
22020 (Overall Options): Adjust similarly. Reorder to group related
22021 options together. Make -specs= cross-reference the spec file details.
22022 (Directory Options): Adjust similarly.
22024 2016-01-12 Jeff Law <law@redhat.com>
22026 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
22028 2016-01-12 Olivier Hainque <hainque@adacore.com>
22030 * gcc.c (spec_undefvar_allowed): New global.
22031 (process_command): Set to true when running for --version or --help,
22033 (getenv_spec_function): When the variable is not defined, use the
22034 variable name as the variable value if we're allowed not to issue
22037 2016-01-12 Bin Cheng <bin.cheng@arm.com>
22039 PR tree-optimization/68911
22040 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
22041 information computed for expression "init + nit * step".
22043 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
22045 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
22046 about name of GCC executable. Remove deleted node from menu.
22047 (Directory Options) <-B>: Remove cross-reference to deleted node.
22048 (Target Options): Delete section.
22050 2016-01-12 Christian Bruel <christian.bruel@st.com>
22053 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
22054 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
22056 2016-01-12 Jakub Jelinek <jakub@redhat.com>
22059 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
22060 aligned_mem is properly set for AVX512-VL floating point masked
22064 * ifcvt.c (cond_exec_process_if_block): When removing the last
22065 insn from then_bb, remove also any possible barriers that follow it.
22067 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
22071 * config/i386/iamcu.h (SIZE_TYPE): New macro.
22072 (PTRDIFF_TYPE): Likewise.
22073 (WCHAR_TYPE): Likewise.
22074 (WCHAR_TYPE_SIZE): Likewise.
22075 (STDINT_LONG32): Likewise.
22077 2016-01-12 Richard Biener <rguenther@suse.de>
22079 PR tree-optimization/69053
22080 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
22081 convert initial value for cond reductions.
22083 2016-01-12 Richard Biener <rguenther@suse.de>
22085 PR tree-optimization/69007
22086 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
22087 widen_sum after dot_prod and sad.
22089 2016-01-12 Richard Biener <rguenther@suse.de>
22091 PR tree-optimization/69168
22092 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
22093 pattern stmt SLP type.
22094 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
22095 end up unused so cope with that case.
22097 2016-01-12 Richard Biener <rguenther@suse.de>
22099 PR tree-optimization/69157
22100 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
22101 stmts def type only during analyze phase.
22102 (vectorizable_call): Likewise.
22103 (vectorizable_simd_clone_call): Likewise.
22104 (vectorizable_conversion): Likewise.
22105 (vectorizable_assignment): Likewise.
22106 (vectorizable_shift): Likewise.
22107 (vectorizable_operation): Likewise.
22108 (vectorizable_store): Likewise.
22109 (vectorizable_load): Likewise.
22111 2016-01-12 Richard Biener <rguenther@suse.de>
22113 PR tree-optimization/69174
22114 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
22116 (vectorizable_load): Properly compute the number of loads needed
22117 for permuted strided SLP loads and do not spuriously assign
22118 to SLP_TREE_VEC_STMTS.
22120 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
22122 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
22123 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
22124 (MD_EXEC_PREFIX): Remove.
22125 (MD_STARTFILE_PREFIX) Removee.
22126 (FILE_NAME_ABSOLUTE_P): Remove.
22127 (CPP_SPEC): Do not read macros from sys/version.h.
22128 (LINK_COMMAND_SPEC): Remove.
22129 (LOCAL_INCLUDE_DIR): Remove.
22130 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
22131 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
22132 (POST_LINK_SPEC): Define to invoke stubify after linker
22133 (LIBSTDCXX): Remove define
22134 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
22135 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
22136 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
22137 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
22138 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
22139 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
22140 (i386_djgpp_asm_named_section): Add propotype of new procedure
22142 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
22143 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
22144 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
22145 in config/i386/djgpp.h).
22146 (STANDARD_STARTFILE_PREFIX_2): Define identical to
22147 STANDARD_STARTFILE_PREFIX_1.
22148 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
22149 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
22150 installation errors.
22151 (MAX_OFILE_ALIGNMENT): Define to 128.
22152 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
22154 * config/i386/djgpp.c: New file. Add implementation of
22155 i386_djgpp_asm_named_section.
22157 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
22159 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
22160 Add rule for building djgpp.o.
22162 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22164 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
22165 (rtx_is_swappable_p): Reductions are swappable.
22166 (insn_is_swappable_p): V2DF reductions are swappable.
22168 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
22170 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
22171 reloads for other unsupported memory operands.
22173 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
22174 Jim Wilson <jim.wilson@linaro.org>
22177 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
22178 copy_to_mode_reg instead of force_reg.
22180 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
22183 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
22184 TARGET_80387 is true.
22186 2016-01-11 Jakub Jelinek <jakub@redhat.com>
22189 * lra-eliminations.c (move_plus_up): Only move plus up
22190 if subreg of the constant can be simplified into constant
22191 and use the simplified subreg of the constant instead of
22192 the original constant.
22194 * fold-const.c (fold_convertible_p): Don't return true
22195 for conversion of VECTOR_TYPE to same sized integral type.
22196 (fold_convert_loc): Fix up formatting. Fold conversion of
22197 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
22198 instead of NOP_EXPR.
22200 PR tree-optimization/69214
22201 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
22202 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
22205 PR tree-optimization/69207
22206 * tree-vect-slp.c (vect_get_constant_vectors): For
22207 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
22208 fold_convertible_p to vector_type's element type, and always
22209 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
22211 2016-01-11 Richard Biener <rguenther@suse.de>
22213 PR tree-optimization/69173
22214 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
22215 fixup the cycle if all stmts are in a pattern.
22217 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
22219 PR middle-end/68999
22220 * alias.c (base_alias_check): Move check for addresses with
22221 alignment ANDs before the call for compare_base_decls.
22222 (memrefs_conflict_p): Return -1 for different decls
22223 that went through alignment adjustments.
22225 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22227 PR rtl-optimization/68796
22228 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
22229 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
22230 and QImode comparisons against zero with CC_NZmode.
22231 * config/aarch64/iterators.md (short_mask): New mode_attr.
22233 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
22235 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
22236 (<avx512>_store<mode>_mask): Likewise.
22238 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
22239 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22241 PR rtl-optimization/68841
22242 * ifcvt.c (struct noce_if_info): Add orig_x field.
22243 (bbs_ok_for_cmove_arith): Add to_rename parameter.
22244 Don't record conflicts on to_rename if it's present.
22245 Allow memory destinations in sets.
22246 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
22247 blocks, passing orig_x to the checks.
22248 (noce_process_if_block): Set if_info->orig_x appropriately.
22250 2016-01-11 Tom de Vries <tom@codesourcery.com>
22252 PR tree-optimization/69069
22253 * tree-parloops.c (create_parallel_loop): Add missing phi args.
22255 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
22257 PR rtl-optimization/68920
22258 * config/i386/i386.c (ix86_option_override_internal): Restrict number
22259 of conditional moves for RTL if-conversion to 1 for
22260 TARGET_ONE_IF_CONV_INSN.
22261 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
22262 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
22263 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
22264 parameter to restirct number of conditional moves for
22266 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
22267 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
22270 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
22273 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
22274 onepart vars. Fix typo in comment. Fix reversed condition in
22276 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
22279 * var-tracking.c (dump_onepart_variable_differences): New.
22280 (dataflow_set_different): If a detailed dump is requested,
22281 delay early returns and dump differences between onepart
22282 variables present before and after, and added variables.
22284 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
22287 * expr.c (expand_expr_real_1): For boolean vector constants
22288 with a scalar mode use const_scalar_mask_from_tree.
22289 (const_scalar_mask_from_tree): New.
22290 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
22291 assigned to a mask type to handle constants.
22293 2016-01-11 Martin Jambor <mjambor@suse.cz>
22296 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
22297 useless parameters if we cannot change function signature.
22299 2016-01-11 Martin Jambor <mjambor@suse.cz>
22302 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
22305 2016-01-11 Tom de Vries <tom@codesourcery.com>
22307 PR tree-optimization/69109
22308 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
22311 2016-01-11 Tom de Vries <tom@codesourcery.com>
22313 PR tree-optimization/69108
22314 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
22315 res is not used in a phi.
22317 2016-01-11 Yury Gribov <y.gribov@samsung.com>
22320 * common.opt (frandom-seed): Fix parameter name.
22321 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
22323 2016-01-11 Tom de Vries <tom@codesourcery.com>
22325 PR tree-optimization/69058
22326 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
22329 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
22331 * config/arc/arc.opt (mdiv-rem): Add period to the end.
22332 (mcode-density): Likewise.
22334 2016-01-10 Tom de Vries <tom@codesourcery.com>
22336 PR tree-optimization/69062
22337 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
22338 (parallelize_loops): Don't paralelize loop that has phi with address
22341 2016-01-10 Tom de Vries <tom@codesourcery.com>
22343 PR tree-optimization/69039
22344 * tree-parloops.c (try_create_reduction_list): Only allow single exit
22347 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
22349 PR middle-end/68743
22350 * match.pd: Require target has function_c99_misc before doing
22351 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
22353 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
22355 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
22357 * configure: Regenerate.
22359 2016-01-09 Jakub Jelinek <jakub@redhat.com>
22361 PR middle-end/50865
22362 PR tree-optimization/69097
22363 * fold-const.h (expr_not_equal_to): New prototype.
22364 * fold-const.c: Include stringpool.h and tree-ssanames.h.
22365 (expr_not_equal_to): New function.
22366 * match.pd (X % -Y is the same as X % Y): Don't optimize
22367 unless X is known not to be equal to minimum or Y is known
22368 not to be equal to -1.
22369 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
22370 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
22371 (simplify_stmt_using_ranges): Adjust caller.
22372 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
22373 substitute_and_fold.
22375 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
22377 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
22380 2016-01-08 Jakub Jelinek <jakub@redhat.com>
22382 PR tree-optimization/69167
22383 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
22384 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
22386 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
22388 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
22389 Richard Biener <rguenther@suse.de>
22391 PR tree-optimization/68707
22392 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
22393 instances that can be handled via vect_load_lanes.
22395 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
22397 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
22398 if we can't determine address equivalence.
22399 * alias.c (compare_base_decl): Update for changed return value of
22400 symtab_node::equal_address_to.
22402 2016-01-08 Jason Merrill <jason@redhat.com>
22406 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
22407 * expr.c (store_field): Not here.
22408 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
22409 call with TREE_ADDRESSABLE type.
22410 * tree-cfg.c (verify_gimple_call): Adjust.
22412 2016-01-08 Olivier Hainque <hainque@adacore.com>
22414 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
22417 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
22419 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
22420 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
22421 (reduc_smin_v2sf): Rename to...
22422 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
22423 (reduc_splus_v2sf): Rename to...
22424 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
22426 2016-01-08 Jakub Jelinek <jakub@redhat.com>
22428 PR tree-optimization/69162
22429 * gimplify.c (gimplify_va_arg_expr): Encode original type of
22430 valist argument in another argument.
22431 (gimplify_modify_expr): Adjust for the above change. Cleanup.
22432 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
22433 to determine the va_list type, build a MEM_REF instead of
22434 build_fold_indirect_ref.
22436 PR tree-optimization/69172
22437 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
22440 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
22442 PR tree-optimization/67781
22443 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
22444 and cmpnop in two steps: first the ones not accessed in original
22445 gimple expression in a endian independent way and then the ones not
22446 accessed in the final result in an endian-specific way.
22448 2016-01-08 Jakub Jelinek <jakub@redhat.com>
22450 PR tree-optimization/69083
22451 * tree-vect-slp.c (vect_get_constant_vectors): For
22452 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
22453 element type. If op is fold_convertible_p to vector_type's element
22454 type, use NOP_EXPR instead of VCE.
22456 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
22458 PR rtl-optimization/67778
22459 PR rtl-optimization/68634
22460 PR rtl-optimization/68909
22461 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
22462 block from the stack until done with it. Remove a superfluous
22463 bitmap set. Remove a superfluous bitmap test.
22465 2016-01-07 Martin Sebor <msebor@redhat.com>
22468 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
22469 constraint on the type of arguments.
22471 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
22473 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
22474 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
22475 unaligned_access on the gcc_options set.
22476 * config/arm/arm.c (arm_option_override_internal): Use
22477 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
22479 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
22482 * config/i386/i386.c (ix86_frame_pointer_required): Enable
22483 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
22485 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
22488 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
22491 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
22492 depending on frame_pointer_needed before remaining integer and SSE
22493 registers are saved.
22495 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
22498 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
22500 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
22503 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
22504 Use the "xBm" constraint.
22505 (float<sseintvecmodelower><mode>2<mask_name><round_name):
22507 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
22508 (sse_cvtsi2ssq<round_name>): Likewise.
22509 (sse_cvtss2si<round_name>): Likewise.
22510 (sse_cvtss2siq<round_name>): Likewise.
22511 (sse2_cvtsi2sdq<round_name>): Likewise.
22512 (sse2_cvtsd2si<round_name>): Likewise.
22513 (sse2_cvtsd2siq<round_name>): Likewise.
22514 * config/i386/subst.md (round_nimm_scalar_predicate): New
22517 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
22519 PR middle-end/67639
22520 * varasm.c (make_decl_rtl): Mark invalid register vars as
22523 PR rtl-optimization/66206
22524 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
22525 All callers changed.
22527 2016-01-07 Jakub Jelinek <jakub@redhat.com>
22529 PR tree-optimization/69141
22530 * tree-ssa-pre.c: Include langhooks.h.
22531 (eliminate_dom_walker::before_dom_children): Use
22532 lang_hooks.decl_printable_name instead of
22533 cgraph_node::get ()->name ().
22535 PR middle-end/68960
22536 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
22537 it and DECL_ALIGN too.
22539 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
22541 * config/mips/mips-ftypes.def: Sort to lexicographical order.
22543 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
22546 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
22547 depending on frame_pointer_needed before remaining integer and SSE
22548 registers are saved.
22550 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22552 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
22553 mode iterator with VSX_M2.
22554 (*p9_vecstore_<mode>): Likewise.
22555 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
22556 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
22557 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
22558 (define_split for VSX_LE128 stores): Likewise.
22559 (define_peephole2 for TImode LE swaps): Likewise.
22560 (define_split for VSX_LE128 post-reload stores): Likewise.
22562 2016-01-06 Marek Polacek <polacek@redhat.com>
22565 * convert.c (convert_to_integer_1): Adjust call to
22566 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
22567 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
22568 EXPR instead of ARG.
22569 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
22571 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
22574 * doc/extend.texi (RL78 Variable Attributes): New section.
22576 2016-01-05 Marek Polacek <polacek@redhat.com>
22579 * builtins.c (get_memmodel): Use expansion point location rather than
22580 the input location. Call warning_at rather than warning.
22581 (expand_builtin_atomic_compare_exchange): Likewise.
22582 (expand_builtin_atomic_load): Likewise.
22583 (expand_builtin_atomic_store): Likewise.
22584 (expand_builtin_atomic_clear): Likewise.
22586 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
22589 * config/i386/i386.c (ix86_expand_vector_logical_operator):
22590 Replace nonimmediate_operand with vector_operand.
22591 * config/i386/predicates.md (vector_operand): New predicate.
22592 (general_vector_operand): Replace nonimmediate_operand with
22594 * config/i386/sse.md: Replace nonimmediate_operand with
22595 vector_operand and m constraint with Bm constraint on SSE
22596 patterns with 16-byte memory operand.
22597 * config/i386/subst.md (round_nimm_predicate): Replace
22598 nonimmediate_operand with vector_operand.
22599 (round_saeonly_nimm_predicate): Likewise.
22600 (round_saeonly_nimm_scalar_predicate): New.
22602 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
22605 * config/i386/constraints.md (Bm): New constraint.
22606 * config/i386/predicates.md (vector_memory_operand): New
22608 * config/i386/sse.md: Replace xm with xBm in plusminus and
22609 any_logic patterns.
22611 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
22614 * doc/extend.texi (V850 Function Attributes): New section.
22615 (V850 Variable Attributes): New section.
22617 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
22620 * doc/extend.texi (MicroBlaze Function Attributes): Document
22621 interrupt_handler and fast_interrupt attributes.
22623 2016-01-05 Sergei Trofimovich <siarheit@google.com>
22626 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
22627 for local symbolic operands.
22628 * config/ia64/predicates.md (local_symbolic_operand64): New
22631 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22633 PR rtl-optimization/68651
22634 * combine.c (combine_simplify_rtx): Canonicalize x + x into
22637 2016-01-05 Nathan Sidwell <nathan@acm.org>
22639 * alias.c (compare_base_decls): Use symtab_node::get.
22641 2016-01-05 Nick Clifton <nickc@redhat.com>
22644 * ira-costs.c (copy_cost): Initialise the t_icode field of the
22645 secondary_reload_info structure.
22648 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
22649 decls if weak support is available.
22651 2016-01-04 Martin Sebor <msebor@redhat.com>
22653 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
22655 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
22657 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
22658 OPTION_MASK_P9_DFORM.
22660 * config/rs6000/constraints.md (wo constraint): New constraint for
22663 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
22665 (rs6000_init_hard_regno_mode_ok): Likewise.
22667 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
22670 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
22671 expanders not to have constraints. Add support for ISA 3.0 xxperm
22672 instruction. Add support for fusing xxlor with xxperm.
22673 (altivec_vperm_<mode>_internal): Likewise.
22674 (altivec_vperm_v8hiv16qi): Likewise.
22675 (altivec_vperm_<mode>v16q): Likewise.
22676 (altivec_vperm_<mode>_uns): Likewise.
22677 (vperm_v8hiv4si): Likewise.
22678 (vperm_v16qiv8hi): Likewise.
22680 * doc/md.texi (RS/6000 constraints): Document wo constraint.
22682 2016-01-04 Jakub Jelinek <jakub@redhat.com>
22684 Update copyright years.
22686 * gcc.c (process_command): Update copyright notice dates.
22687 * gcov-dump.c (print_version): Ditto.
22688 * gcov.c (print_version): Ditto.
22689 * gcov-tool.c (print_version): Ditto.
22690 * gengtype.c (create_file): Ditto.
22691 * doc/cpp.texi: Bump @copying's copyright year.
22692 * doc/cppinternals.texi: Ditto.
22693 * doc/gcc.texi: Ditto.
22694 * doc/gccint.texi: Ditto.
22695 * doc/gcov.texi: Ditto.
22696 * doc/install.texi: Ditto.
22697 * doc/invoke.texi: Ditto.
22699 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
22701 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
22702 modes larger than TImode as TImode if NEON is not enabled.
22704 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
22707 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
22708 mode for %f0-%f31 only if TARGET_FPU.
22710 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
22713 * config/sparc/sparc.c (scan_record_type): Take into account subfields
22714 to compute the PACKED_P predicate.
22715 (function_arg_record_value): Minor tweaks.
22717 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
22719 * doc/install.texi (--with-multilib-list): Describe the meaning of the
22720 option for arm*-*-* targets.
22722 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
22724 * doc/extend.texi (Common Function Attributes): Move docs for
22725 MSP430-specific attributes to....
22726 (MSP430 Function Attributes): ...here. Delete the redundant
22727 entries and copy-edit the remaining text.
22728 (MSP430 Variable Attributes): Use uniform format for index
22729 entries and add a cross-reference to the corresponding function
22732 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
22734 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
22736 (x86 Options): Likewise.
22738 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
22742 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
22743 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
22744 to corresponding attribute.
22746 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
22748 * doc/extend.texi (Common Function Attributes) <noplt>: Move
22749 to correct alphabetization of table. Copy-edit and correct
22751 <stack_protect>: Likewise.
22752 <target_clones>: Likewise.
22754 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
22755 Correct punctuation.
22756 (Code Gen Options) <-fno-plt>: Copy-edit.
22758 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
22761 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
22762 SI values. Explicitly convert SI to DI and vice-versa.
22764 2016-01-01 Jakub Jelinek <jakub@redhat.com>
22766 PR tree-optimization/69070
22767 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
22768 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
22771 * ubsan.c (ubsan_instrument_float_cast): Call
22772 initialize_sanitizer_builtins.
22775 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
22777 Copyright (C) 2016 Free Software Foundation, Inc.
22779 Copying and distribution of this file, with or without modification,
22780 are permitted in any medium without royalty provided the copyright
22781 notice and this notice are preserved.